piker/ai/prompt-io/opencode/20260828T195032Z_9115d24d_p...

68 lines
3.2 KiB
Markdown

---
model: openai/gpt-5.6-sol
service: opencode
session: opencode-fsp-backfill-sync-20260828
timestamp: 2026-08-28T19:50:32+00:00
git_ref: 9115d24d
scope: code
substantive: true
raw_file: 20260828T195032Z_9115d24d_prompt_io.raw.md
---
## Prompt
The human requested a repo-specialist role for realtime financial signal
processing, a new FSP expert skill, and a fix for repeated FSP desynchronizing
and whole-chart refreshes during near-term backfill with multiple overlaid
market feeds. Work was required in a new worktree based on the root checkout.
Follow-up direction required explicit typing throughout the patch, exact
Qt/pyqtgraph widget types, project-style union spacing, and a final
per-behaviour multi-commit plan.
## Response summary
The response traced the reported `step_diff=0`, `len_diff=2000` state to
legitimate source-history prepends. It retained required historical
recomputation while preventing backfill wakeups from advancing destination
rows or refreshing unrelated charts. It introduced immutable bootstrap
snapshots, source/timeframe event filtering, absolute SHM-bound checks,
targeted graphics invalidation, and deterministic tests.
The typing follow-up established a canonical FSP generator protocol, removed
an engine-side cast, normalized the `wma` and `rsi` built-ins, validated
historical output schemas, and made generator cleanup deterministic. A later
review replaced arbitrary redraw kwargs with an explicit control, typed the
`Viz`/`PlotItem`/`Axis`/`YAxisLabel` path, added normalized quote and tick
shapes, and corrected false iterator and NumPy/Numba annotations.
The new provider-neutral `piker-fsp-expert` skill captures architecture,
mathematical methods, optimization guidance, roadmap context, dependency
research, and a test matrix.
## Files changed
- `piker/fsp/_api.py` - typed FSP decorator and generator contract.
- `piker/fsp/_engine.py` - backfill synchronization, snapshot, publication,
event filtering, and cleanup behavior.
- `piker/fsp/_momo.py` - protocol-conforming WMA and RSI streams.
- `piker/fsp/_volume.py` - typed volume FSP stream declarations.
- `piker/data/ticktools.py` - concrete quote/tick and iterator contracts.
- `piker/data/_sharedmem.py` - serializable SHM token message shape.
- `piker/ui/_dataviz.py` - piker `PlotItem` ownership on `Viz`.
- `piker/ui/_pg_overrides.py` - piker view and axis return types.
- `piker/ui/_fsp.py` - destination-token-targeted redraw and y-range refresh.
- `tests/test_fsp_sync.py` - deterministic engine, UI, and operator tests.
- `.agents/skills/piker-fsp-expert/` - reusable FSP specialist knowledge.
- `.claude/skills/piker-fsp-expert` - Claude-compatible skill link.
## Human edits
The human identified insufficient typing in the initial patch and required
the implementation to expose and repair the actual FSP protocol instead of
using broad or misleading casts. In later review, the human specifically
rejected `**kwargs: Any`, an optional `Viz.shm`, a broad sticky-label type,
and spaced union syntax, then directed the agent to infer reusable types from
the actual graphics widgets. The human also required a per-behaviour commit
plan for final review. No direct manual source edits were observed.