2.7 KiB
Prompt
Investigate existing branch fixes before repairing IB day-skipping. Create an isolated worktree on ib_connectivity_harden and add a test that checks actual persisted data, leaving live gap repair for later.
Response summary
Preserve IB request boundaries on HMDS no-data responses. Retain the existing earliest-history classification and bounded reset handling. Separate requested and published boundaries during backfill so the first response after an empty interval does not lose its end bar. Prove supplied bars survive both SHM publication and a fresh parquet load while a simulated venue closure remains empty.
Files changed
piker/brokers/ib/feed.py: complete HMDS no-data requests unchanged.piker/tsp/_history.py: filter overlap against published history.tests/test_ib_history.py: six empty-response boundary cases.tests/test_history_backfill.py: two SHM/parquet integration cases.
Human edits
The human identified the live gap, required prior-branch discovery, selected ib_connectivity_harden as the base, and requested stronger end-to-end evidence. They corrected overstated reproduction claims, insisted on plain explanations, and pointed out that valid venue closures must remain gaps. Existing data repair was explicitly deferred. No direct human source edits have been observed; changes await review.
Review follow-up
The human’s tuicr review asked whether None was part of the backfill protocol and requested plain explanations of the two dates and overlap filter. Clarified the IB-internal empty-response sentinel and its translation into NoData/DataUnavailable before reaching the backfiller. Renamed last_start_dt to request_end_dt and published_start_dt to oldest_shm_dt. Added a concrete empty-interval example at the filter and explained that only successful SHM writes move oldest_shm_dt. These changes clarify naming and documentation without changing the previously tested request or publication behavior.
History-filter review follow-up
The human flagged the unused append_until_dt argument and confusing append/prepend terminology in diff_history(). The helper had one caller, using only prepend_until_dt. Removed the helper and inlined its inclusive lower-time cutoff beside the SHM duplicate filter. The human’s nearby TODO comment is resolved by this removal; the replacement comment describes the retained timestamps directly. The storage comparison remains >= backfill_until_dt; the SHM comparison remains < oldest_shm_dt.