`JsonFileIngestConfig::batch_delay_ms` (added in #538) is an ordinary throttling knob — a real, explicit delay after each batch send, default `0` (no-op). It exists because deterministic timing-sensitive e2e tests (e.g. exercising the precompute engine's wall-clock fallback under active ingest) need ingest to guaranteed-span real wall-clock time, not just probably.
`CsvFileIngestSource` (`csv_ingest.rs`) has the identical reader-loop structure (`spawn_blocking`, batch-and-send) but no equivalent field. Add the same `batch_delay_ms` to `CsvFileIngestConfig` if/when a similar e2e test is needed against the CSV ingest path.
No current test needs this — filing so the gap is tracked rather than silently missing if someone reaches for it later.
`JsonFileIngestConfig::batch_delay_ms` (added in #538) is an ordinary throttling knob — a real, explicit delay after each batch send, default `0` (no-op). It exists because deterministic timing-sensitive e2e tests (e.g. exercising the precompute engine's wall-clock fallback under active ingest) need ingest to guaranteed-span real wall-clock time, not just probably.
`CsvFileIngestSource` (`csv_ingest.rs`) has the identical reader-loop structure (`spawn_blocking`, batch-and-send) but no equivalent field. Add the same `batch_delay_ms` to `CsvFileIngestConfig` if/when a similar e2e test is needed against the CSV ingest path.
No current test needs this — filing so the gap is tracked rather than silently missing if someone reaches for it later.