Pin qualified `tractor` and require `trio>=0.34.0`
Advance the `piker_pin` lock from `b64c89f0` to the published `8fe574c1`, retaining the evaluated Trio 0.34.0 release. Require Trio >=0.34.0 for the updated cancellation APIs. Restore the Git source used before local editable evaluation; no environment sync is included. Record the human's overlapping charts, Gateway data reset and close/reopen qualification. Keep the full Gateway restart string error and Tractor teardown callback assertion explicit as separate recovery limits. Offline lock validation resolves 126 packages; this is not a fresh-install qualification claim. Prompt-IO: ai/prompt-io/20261106T201746Z_495c0915_612dfc_prompt_io.md (this patch was generated in some part by `codex` (`openai`))wkt/land_flake_update
parent
51795a4e07
commit
cb5e81d443
|
|
@ -0,0 +1,71 @@
|
|||
# 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.
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
---
|
||||
created_at: 2026-11-06T20:17:46.622316+00:00
|
||||
generated_by:
|
||||
harness: codex
|
||||
provider: OpenAI
|
||||
git_ref: 495c0915
|
||||
scope: config
|
||||
substantive: true
|
||||
raw_file: 20261106T201746Z_495c0915_612dfc_prompt_io.raw.md
|
||||
---
|
||||
|
||||
## Prompt
|
||||
|
||||
The human requested a commit plan, then a fast-forward landing of
|
||||
the #94 branch and PR updates. They agreed the temporary local
|
||||
Tractor source must be replaced, published piker_pin themselves,
|
||||
and reported "pushed it". They also supplied the manual recovery
|
||||
results and full Gateway restart failure diagnostics.
|
||||
|
||||
## Response summary
|
||||
|
||||
Restore the Git Tractor source after local qualification and lock
|
||||
its published piker_pin at 8fe574c1e447358dafd8ebf5ada3b0714c688f78.
|
||||
Retain the evaluated Trio 0.34.0 lock and require Trio >=0.34.0.
|
||||
Record the human's overlap, data-reset and reopen observations,
|
||||
the narrow history extraction, and full-restart recovery limits.
|
||||
Offline uv lock validation passed without an environment sync.
|
||||
|
||||
## Files changed
|
||||
|
||||
- `pyproject.toml`: Trio minimum; restore existing Tractor Git source.
|
||||
- `uv.lock`: published Tractor OID and evaluated Trio 0.34.0.
|
||||
- `ai/ib-recovery-qualification-20261106.md`: scoped evidence.
|
||||
|
||||
## Human edits
|
||||
|
||||
The human selected the bounded landing scope, performed live tests,
|
||||
identified the more aggressive reset distinction, and published
|
||||
the tested Tractor ref. The agent applied the metadata edits and
|
||||
wrote the qualification record from those observations. No human
|
||||
acceptance or task-state transitions are inferred by this record.
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
created_at: 2026-11-06T20:17:46.622316+00:00
|
||||
generated_by:
|
||||
harness: codex
|
||||
provider: OpenAI
|
||||
git_ref: 495c0915
|
||||
diff_cmd: git diff HEAD~1..HEAD
|
||||
---
|
||||
|
||||
> `git diff HEAD~1..HEAD -- pyproject.toml`
|
||||
|
||||
> `git diff HEAD~1..HEAD -- uv.lock`
|
||||
|
||||
> `git diff HEAD~1..HEAD -- ai/ib-recovery-qualification-20261106.md`
|
||||
|
||||
Restore the Git Tractor source after local qualification and lock
|
||||
its published piker_pin at 8fe574c1e447358dafd8ebf5ada3b0714c688f78.
|
||||
Retain the evaluated Trio 0.34.0 lock and require Trio >=0.34.0.
|
||||
Record the human's overlap, data-reset and reopen observations,
|
||||
the narrow history extraction, and full-restart recovery limits.
|
||||
Offline uv lock validation passed without an environment sync.
|
||||
|
|
@ -61,7 +61,7 @@ dependencies = [
|
|||
"trio-util >=0.7.0, <0.8.0",
|
||||
"trio-websocket >=0.10.3, <0.11.0",
|
||||
"typer >=0.9.0, <1.0.0",
|
||||
"trio >=0.27",
|
||||
"trio >=0.34.0",
|
||||
"pendulum",
|
||||
"httpx >=0.27.0, <0.28.0",
|
||||
"cryptofeed >=2.4.0, <3.0.0",
|
||||
|
|
|
|||
10
uv.lock
10
uv.lock
|
|
@ -991,7 +991,7 @@ requires-dist = [
|
|||
{ name = "tomli-w", specifier = ">=1.0.0,<2.0.0" },
|
||||
{ name = "tomlkit", git = "https://github.com/pikers/tomlkit.git?branch=piker_pin" },
|
||||
{ name = "tractor", git = "https://github.com/goodboy/tractor.git?branch=piker_pin" },
|
||||
{ name = "trio", specifier = ">=0.27" },
|
||||
{ name = "trio", specifier = ">=0.34.0" },
|
||||
{ name = "trio-typing", specifier = ">=0.10.0" },
|
||||
{ name = "trio-util", specifier = ">=0.7.0,<0.8.0" },
|
||||
{ name = "trio-websocket", specifier = ">=0.10.3,<0.11.0" },
|
||||
|
|
@ -1671,7 +1671,7 @@ wheels = [
|
|||
[[package]]
|
||||
name = "tractor"
|
||||
version = "0.1.0a6.dev0"
|
||||
source = { git = "https://github.com/goodboy/tractor.git?branch=piker_pin#b64c89f05a9fc8ac2878551eb5eda36574ebef6a" }
|
||||
source = { git = "https://github.com/goodboy/tractor.git?branch=piker_pin#8fe574c1e447358dafd8ebf5ada3b0714c688f78" }
|
||||
dependencies = [
|
||||
{ name = "bidict" },
|
||||
{ name = "colorlog" },
|
||||
|
|
@ -1700,7 +1700,7 @@ wheels = [
|
|||
|
||||
[[package]]
|
||||
name = "trio"
|
||||
version = "0.32.0"
|
||||
version = "0.34.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "attrs" },
|
||||
|
|
@ -1710,9 +1710,9 @@ dependencies = [
|
|||
{ name = "sniffio" },
|
||||
{ name = "sortedcontainers" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/d8/ce/0041ddd9160aac0031bcf5ab786c7640d795c797e67c438e15cfedf815c8/trio-0.32.0.tar.gz", hash = "sha256:150f29ec923bcd51231e1d4c71c7006e65247d68759dd1c19af4ea815a25806b", size = 605323, upload-time = "2025-10-31T07:18:17.466Z" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/92/dc/a2d25ed73ad49cfd79bf18d262577c3731c98e382284e28d522f49a0df35/trio-0.34.0.tar.gz", hash = "sha256:63b9485408bdfdde544fced107045a8c0086cdc4bd0ef2f797b9e0dd111b964b", size = 607457, upload-time = "2026-08-11T00:33:42.198Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/41/bf/945d527ff706233636c73880b22c7c953f3faeb9d6c7e2e85bfbfd0134a0/trio-0.32.0-py3-none-any.whl", hash = "sha256:4ab65984ef8370b79a76659ec87aa3a30c5c7c83ff250b4de88c29a8ab6123c5", size = 512030, upload-time = "2025-10-31T07:18:15.885Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/77/1f/555f1364bed52a92a864181962b77f1b15adadeacf23b86105324363e461/trio-0.34.0-py3-none-any.whl", hash = "sha256:6c7c9f49917694dcdcd5f67abd168df5599eca480d61f29854d17a61a75c2f05", size = 511840, upload-time = "2026-08-11T00:33:40.552Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
|
|||
Loading…
Reference in New Issue