72 lines
3.3 KiB
Markdown
72 lines
3.3 KiB
Markdown
|
|
# IB recovery qualification, 2026-11-06
|
||
|
|
|
||
|
|
This records human-operated qualification of the bounded #94
|
||
|
|
landing on `wkt/land_ib_recovery`, starting from `495c0915` plus
|
||
|
|
the narrow history catch described below. It supplements the
|
||
|
|
historical evidence in `ai/ib-recovery-candidate.md`.
|
||
|
|
|
||
|
|
## Runtime and dependency source
|
||
|
|
|
||
|
|
The evaluated environment uses Python 3.13, Trio 0.34.0 and Tractor
|
||
|
|
`8fe574c1e447358dafd8ebf5ada3b0714c688f78`. Tractor was an editable
|
||
|
|
local checkout during evaluation. The human subsequently published
|
||
|
|
that exact commit as GitHub's `goodboy/tractor:piker_pin`; a read-only
|
||
|
|
remote query confirmed the published OID before restoring Piker's
|
||
|
|
Git source and recording the same OID in `uv.lock`.
|
||
|
|
|
||
|
|
Offline lock validation resolves 126 packages successfully. No
|
||
|
|
environment sync was performed. This validates the lock metadata;
|
||
|
|
it does not claim a fresh installation from the published source.
|
||
|
|
|
||
|
|
## Manual observations
|
||
|
|
|
||
|
|
The human operated Gateway, chart windows and paper orders. The
|
||
|
|
agent did not operate live services or the account.
|
||
|
|
|
||
|
|
- Same-feed overlap, close/reopen and paper order submit/cancel
|
||
|
|
worked after the existing order-dialog guard was imported.
|
||
|
|
- Different-feed overlap originally exposed a timed-out one-second
|
||
|
|
MNQ March 2027 gap query. PDB showed `timedout=True` and
|
||
|
|
`out is None`. Its uncaught `NoData` canceled sibling history and
|
||
|
|
quote tasks even though `pikerd` remained alive.
|
||
|
|
- After the narrow catch, the human reported the overlap journeys
|
||
|
|
working, then confirmed cases 5 and 6 with Ctrl+Alt+F: overlapping
|
||
|
|
live feeds survived the Gateway data reset; closing all charts
|
||
|
|
and reopening with `pikerd` left running restored live updates.
|
||
|
|
- Earlier Ctrl+Shift+R attempts left feeds live, but do not prove
|
||
|
|
that the intended Gateway data reset was triggered.
|
||
|
|
|
||
|
|
These are manual observations, not automated timing or latency
|
||
|
|
measurements. Ctrl+Alt+R was not qualified here; Piker's utility
|
||
|
|
labels it a connection reset.
|
||
|
|
|
||
|
|
## Narrow history backport
|
||
|
|
|
||
|
|
Only the `NoData`/`DataUnavailable` catch around `get_hist()` in
|
||
|
|
`maybe_fill_null_segments()` is copied from
|
||
|
|
`0846cbd4a4197e47415689cf5e9d146ba3174c32`, authored by
|
||
|
|
`goodboy <goodboy_foss@protonmail.com>`. The existing gap fallback
|
||
|
|
remains in place; this does not import broader history repair.
|
||
|
|
|
||
|
|
The new regression uses real null detection and checks that a
|
||
|
|
sibling in the same nursery still runs after either provider
|
||
|
|
exception. Both cases failed before the catch. With it, the two
|
||
|
|
focused history files passed: 17 tests. Earlier bounded-recovery
|
||
|
|
and Tractor qualification results remain separate evidence, not
|
||
|
|
fresh test runs of the final dependency commit tree.
|
||
|
|
|
||
|
|
## Remaining recovery limits
|
||
|
|
|
||
|
|
A full Gateway restart was triggered accidentally through its
|
||
|
|
auto-restart settings dialog. The disconnect delivered the string
|
||
|
|
`Peer closed connection.` to `deliver_trade_events()`. The string
|
||
|
|
branch then reached `err['reqid']`, raising `TypeError`; its `code`
|
||
|
|
local can also retain an earlier event's value. Full Gateway restart
|
||
|
|
recovery is outside this bounded landing.
|
||
|
|
|
||
|
|
The earlier history-failure teardown also exposed a separate
|
||
|
|
Tractor completion-callback assertion after `BrokenResourceError`.
|
||
|
|
The history catch does not establish that this callback race is
|
||
|
|
fixed. Broader history recovery and these disconnect paths remain
|
||
|
|
downstream work.
|