Introduce frozen, tagged `msgspec.Struct` payloads alongside the
legacy clearing protocol. Separate startup, request, event and
final result phases, with strict directional Tractor receive sets
and local validation before typed objects enter state or transport.
The pure reducer preserves cancel-before-ack intent, correlates
account/request IDs across edits, deduplicates identified fills and
retains bounded terminal dialogs for late events. Snapshot copies
cannot mutate previously published requests or statuses.
Also,
- require owned accounts, positions and an open-order completion
barrier before a backend session accepts requests;
- refresh the migration plan against current Piker and Tractor
branches, preserving the installed dependency pin;
- add 65 offline schema/state/phase tests and eight real actor
tests for typed traffic, rejection, race handling and bounded
teardown.
- include AGPL headers and apply the Python style guide across
protocol code and qualification fixtures.
Ruff and all 73 targeted tests pass on installed Tractor
`5c98ab1f`. Eight IPC tests also pass against local main `5cb600a8`
with its pytest plugin isolated from Piker's duplicate `--ll`
option. Production paper/live adapters and EMS/UI consumers migrate
in subsequent paired changes; no existing endpoint switches here.
(this patch was generated in some part by `codex` using
`gpt-6` (`openai`))
Audit every retained worktree, branch family, rebased patch, stash,
and unreachable commit against `main`.
Deats,
- factor useful histories into dependency-ordered PR lanes;
- reduce the DPI branch swarm to one five-commit patch set;
- separate runtime, datad, backfill and chart ownership work;
- record deferred patches and post-landing stale-ref cleanup;
- attach Prompt-IO provenance for the generated audit plan.
Prompt-IO: ai/prompt-io/opencode/20260818T064340Z_09ddcf50_prompt_io.md
(this patch was generated in some part by `opencode` using `gpt-5.6-sol` (`openai`))
Distill the gap-overlay E2E findings into a staged audit plan for
the full PyQtGraph iface. Keep Qt and graphics real while replacing
feeds, services and provider search with deterministic seams.
Deats,
- define the headless PyQt6 env and pytest-qt fixture ownership;
- layer primitive, input, SHM, full-window and actor checks;
- guard window SIGINT, provider search and overlapping symbol boot;
- require signal/postcondition waits and lifecycle leak assertions;
- split reviewable PRs before distilling a repo-local UI skill.
(this patch was generated in some part by `opencode` using `gpt-5.6-sol` (`openai`))
Schema checks do not exercise ctx discovery, directional decoding,
stream setup, request correlation or endpoint-finally cleanup.
Boot an isolated child actor around `remote_gap_overlays()` and
drive it through `AnnotClient`. Cancel one published request, leave
its reply queued and prove the next request discards that stale
msg.
Also,
- verify generated request IDs and remote-owner cleanup;
- document automated coverage and broker-backed manual boundaries.
Prompt-IO: ai/prompt-io/opencode/20260817T222036Z_f65df6a1_prompt_io.md
(this patch was generated in some part by `opencode` using `gpt-5.6-sol` (`openai`))
Detect positive timestamp gaps from chart OHLCV SHM with one
vectorized pass. Route local UI and remote callers through one
`GapOverlayMngr` renderer, and key each layer by owner, chart,
FQME and timeframe so remote ctx teardown cannot remove local
graphics.
Deats,
- add tagged `SetGapOverlay` requests and typed
`GapOverlay` responses;
- keep `remote_annotate()` intact and serve its typed dialog from
a dedicated `remote_gap_overlays()` Tractor ctx;
- admit `SetGapOverlay`, `GapOverlay`, `list[str]` and `None` in
the Tractor payload spec, then strictly narrow requests to
`SetGapOverlay` and replies to `GapOverlay`;
- serialize shared-stream dialogs and correlate request IDs so
stale replies cannot skew later exchanges;
- rename `AnnotCtl` / `open_annot_ctl()` to `AnnotClient` /
`open_annot_client()` across storage and annotation callers;
- enable 60s history overlays at startup and toggle the focused
1s or 60s chart directly with `Ctrl+G`;
- guard redraws by chart, FQME and timeframe; tolerate empty
arrays and out-of-range lookups; update rect and arrow geometry;
- cover detector geometry, msgpack roundtrips, schema rejection,
typed stale-FQME errors and renamed storage seams;
- document ownership, refresh, stack landing and live
qualification.
Prompt-IO: ai/prompt-io/opencode/20260814T032716Z_2aa66c2c_prompt_io.md
(this patch was generated in some part by `opencode` using `gpt-5.6-sol` (`openai`))
- preserve dirty main-tree work while transferring branch ownership
- hold provider, FQME, timeframe, and symptom fixed while debugging
- capture read-only baselines before disposable live runs
- turn each reproduced failure into deterministic coverage
- qualify interruption and restart behavior after the normal lifecycle
(this patch was generated in some part by `opencode` using `gpt-5.6-sol` (`openai`))
Lay out a correctness-first path from deterministic regressions
through normalized gap detection, structured backfill completion,
and crash-safe `NativeDB` persistence.
Deats,
- separate checker, storage, provider, and annotation gates
- record confirmed current defects and data invariants
- define commit boundaries and timeout-wrapped verification
Prompt-IO: ai/prompt-io/opencode/20260721T215055Z_c6ec3d41_prompt_io.md
(this patch was generated in some part by `opencode` using `gpt-5.6-sol` (`openai`))