3.3 KiB
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=Trueandout is None. Its uncaughtNoDatacanceled sibling history and quote tasks even thoughpikerdremained 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
pikerdleft 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.