fix(durable): stream long pursuit journals without whole-file allocation - #1270
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Final verification: normal PR CI run 35147441962 completed successfully on product head 29e34ca. All four jobs passed: This is code/package qualification, not live-provider or production qualification. The branch remains a non-draft review PR; it has not been merged, tagged, published, or deployed by this work. |
29e34ca to
abfb572
Compare
Current candidate — conflicts resolved, CI green
Prepared version 0.237.1, on main
43bb5614275f15608f8b51f633d4d570f0432723(0.237.0).Head:
01c98cc1640c137496d86b5bc637fb73dba99191.Resolved all six actual merge conflicts: CHANGELOG.md, package.json, docs/canonical-api.md, docs/api/primitive-catalog.md, and the two generated improvement-proposal fixtures. Preserved all newer mainline code and regenerated release metadata through the maintained release script. All ten source/test/reliability-document patch sections are byte-identical to the previously reviewed repair. Updated the existing PR by fast-forwarding to a merge commit with the previous head and current main as parents; no force-push or history deletion.
Normal PR CI run 35163152582 passed all four jobs on this exact head: core CI, agent-bench, official GEPA/SkillOpt, and the packed Interface/Eval/Knowledge/Runtime cohort. The previous head's
action_requiredresult is historical and does not apply to this candidate.Is this still needed?
Yes. Re-tested current main with its exact frozen dependency lock:
ERR_STRING_TOO_LONG, even with a 1,024 MiB heap allowance.Both main and npm's latest published Runtime were 0.237.0 during the audit. This failure comes from Runtime's own whole-file journal reads; dependency updates do not replace that code.
The repair consolidates seven journal-reading paths over one fixed-prefix streaming reader. Complete observer-chain verification, exact raw-byte receipts, committed-corruption errors, torn-tail semantics and early-exit descriptor cleanup are retained. No new execution policy, scheduler, budget, deadline, credential rule, storage authority, public API or durable format.
Verification and evidence
Exact-head preparation run 35162788355 also passed on Node 22.23.2:
verify:package, unchanged API baseline, packed edge execution, documentation freshness anddocs:check.Its artifacts retain real merge-conflict diagnostics, baseline regressions, before/after file-size results, live registry metadata, native logs, exact Git identities, patch and bundle. The write-enabled delivery job handled only verified Git objects; it ran no package scripts. Temporary audit files are not in the PR tree or ancestry.
Dependency audit — 2026-09-16 23:33 UTC
Queried the npm registry directly. This change preserves main's tested dependencies; it is not a blanket dependency upgrade.
Core 0.9.7 is a relevant separate upgrade: long timeout/Retry-After overflow and completed-sleep listener cleanup (agent-sdk#333). Interface 2.9.0 is allowed by the declared range, but the checked-in release cohort verifies 2.6.0. Materialize 0.20.1 is outside the current
<0.20.0range and requires explicit compatibility verification.Some toolchain differences are intentional: TypeScript 6.0.3 supplies the compiler API required by repository tooling, with TypeScript 7.0.2 checked separately as a consumer. Miniflare's registry
latestcurrently points to a 5.x alpha. Other direct-tooling drift is recorded in dependencies.json; rawlatestis not a safe blanket upgrade policy.Limits
Array-returning APIs still retain selected history; individual records retain Node's limits. Fixed-prefix reads are not distributed atomic snapshots. These synthetic filesystem checks do not establish months of uptime, multi-coordinator fencing, deployed provider recovery or fleet throughput. No merge to main, publication, deployment or paid research launch was performed.