68 lines
3.2 KiB
Markdown
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.
|