--- model: openai/gpt-5.6-sol service: opencode timestamp: 2026-08-05T19:50:01Z git_ref: f0f3c806 diff_cmd: git diff HEAD~1..HEAD --- The user reported that a completed NVDA 60s backfill left a large zero region in live SHM and asked for immediate inspection before restarting the workspace. The captured buffer contained 42,720 invalid rows at absolute indexes `3065895..3108614`. The valid rows on both sides had the identical timestamp `1781271360`, proving the region was an erroneous physical-index reservation rather than a real temporal gap. The user then asked the agent to continue fixing the backfill logic. > `git diff HEAD~1..HEAD -- piker/tsp/_history.py` Removed wall-clock-based SHM reservation from `tsdb_backfill()`. Reverse provider frames now extend the visible `ShmArray._first` boundary on every prepend, beginning exactly at the current first index after inclusive query endpoints are removed. Added `_prepend_tsdb_history()` to trim storage rows against the actual earliest provider timestamp and prepend them directly adjacent only after reverse provider retrieval completes. This preserves sparse venue history as ordinal samples rather than treating every elapsed calendar period as a physical SHM row. It also prevents the old `_first + 1` insertion point from overwriting the earliest published bar. > `git diff HEAD~1..HEAD -- tests/test_history_backfill.py` Added a full `tsdb_backfill()` regression modeled on the live NVDA failure. It uses a real `ShmArray`, NativeDB's field map, two inclusive reverse-provider frames, and overlapping stored history. Assertions prove the complete timestamp sequence is contiguous and lossless, contains no non-positive timestamps, sends complete provider frames to durable storage, and notifies chart/FSP consumers after the final storage prepend. Live evidence captured before workspace restart: ```text rows 1575296 first_index 1568233 last_index 3143528 invalid_count 42720 left boundary [(3065893, 1781271300, 204.03, 204.82) (3065894, 1781271360, 204.81, 204.72) (3065895, 0, 0. , 0. )] right boundary [(3108614, 0, 0. , 0. ) (3108615, 1781271360, 204.81, 205.44) (3108616, 1781271420, 205.46, 205.48)] ``` Verification output: ```text ........................................................................ [ 68%] ................................. [100%] 105 passed in 4.80s ``` Adversarial review caught stale `_first` semantics and an off-by-one insertion point in the initial patch. The first live restart then exposed an undefined `time_key` local at the new `tsdb_backfill()` call site, which crashed `datad.ib` and propagated to the chart as `RemoteActorError`. The helper now derives the source timestamp field from its field map, and the test enters the full enclosing lifecycle so the original `NameError` can not recur unnoticed. A final review also drove explicit publication after stored history is prepended and deterministic final-stage synchronization. Final review found no remaining issues; another live restart remains pending.