piker/ai/prompt-io/opencode/20260903T232525Z_fadab3d2_p...

72 lines
2.7 KiB
Markdown

---
model: gpt-5.6-sol
service: opencode
timestamp: 2026-09-03T23:25:25Z
git_ref: fadab3d2
diff_cmd: git diff HEAD~4..HEAD
---
## Prompt
The human reported that the MNQ volume subchart repeatedly rendered
its last bar at one index around the equity-futures closure, then
reported that the volume curve disappeared after reopening. During
live testing, the human confirmed that `flow_rates`, which started
later, advanced correctly while `dolla_vlm` remained pinned. The human
then reported a stale downsampled curve on zoom-out and supplied the
repeated console warning:
`No yrange provided for dolla_vlm!?`
The human requested a live diagnosis and fix, validated each restart,
and confirmed the final chart behavior was fixed.
## Response
Read-only SHM snapshots showed that `dolla_vlm` remained at exclusive
bound `172801` while the source advanced hundreds of rows. Its one
current row kept receiving current quote values, explaining the
same-index repaint. `flow_rates` remained aligned because it started
after regular one-second timestamps resumed.
The cascade had inferred its sampler period from the last two distinct
timestamps. A market closure therefore looked like the source cadence.
Explicit `Flume` RT/history periods now drive sampling and downsampling
metadata instead.
> `git diff HEAD~4..HEAD -- piker/data/flows.py`
> `git diff HEAD~4..HEAD -- piker/fsp/_engine.py`
Further SHM inspection found an IB source row with volume `-2319096`.
`dolla_vlm` multiplied that value into a `-68277471626` outlier, causing
`Viz.maxmin()` to reject the zoomed-out range. Sample ingestion and
volume FSP history/realtime calculations now clamp negative volume.
> `git diff HEAD~4..HEAD -- piker/data/_sampling.py`
> `git diff HEAD~4..HEAD -- piker/fsp/_volume.py`
The M4 renderer already returned a cache-reset signal after rebuilding
a downsampled path, but `Viz.update_graphics()` overwrote that signal
with `False`. The override was removed so Qt's device-coordinate cache
is invalidated with the new path.
> `git diff HEAD~4..HEAD -- piker/ui/_dataviz.py`
Normal quote cycles also redrew unchanged FSP state. A per-`Viz`
bounds/timestamp/value signature now suppresses only identical
realtime refreshes; forced history redraws still bypass it.
> `git diff HEAD~4..HEAD -- piker/ui/_fsp.py`
Regression coverage models closure-gap cadence, negative provider
volume, unchanged realtime redraws, and the broader FSP synchronization
behavior.
> `git diff HEAD~4..HEAD -- tests/test_fsp_sync.py`
Live verification after restart showed source and `dolla_vlm` advancing
at the same bound, zero negative destination rows, and correct zoomed-out
rendering. The focused suite completed with 38 passing tests.