Repository navigation
fix(durability): synthesize strict SQL recovery and stale-owner conformance - #1395
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
tangletools
left a comment
There was a problem hiding this comment.
✅ Auto-approved drewstone PR — ce808528
This PR was opened by the trusted drewstone account.
No automated review runs on this PR. This approval rests on the rule above alone.
tangletools · auto-approval · reason: drewstone_author · 2026-09-25T09:16:46Z
Add the last strict assertion from tournament entrant p2's zero-replacement-key contract: each spawned worker has exactly one settled event and it is done — completeness alone could hide a duplicated settlement behind a Set. Verified with the synthesis suite: 56/56 including the former known-gap windows.
tangletools
left a comment
There was a problem hiding this comment.
✅ Auto-approved drewstone PR — 4dba2752
This PR was opened by the trusted drewstone account.
No automated review runs on this PR. This approval rests on the rule above alone.
tangletools · auto-approval · reason: drewstone_author · 2026-09-25T09:43:39Z
Resolved: CHANGELOG (main's 0.273.0 entries above the synthesis 0.273.1), package.json (main's side, version 0.273.1), generated docs/fixtures/ api-surface regenerated. Re-verified post-merge: durability conformance 159/159, full suite 4,728 passed, lint/typecheck/docs gates green.
tangletools
left a comment
There was a problem hiding this comment.
✅ Auto-approved drewstone PR — 2704a9c2
This PR was opened by the trusted drewstone account.
No automated review runs on this PR. This approval rests on the rule above alone.
tangletools · auto-approval · reason: drewstone_author · 2026-09-25T10:06:40Z
Synthesis
feat/sql-run-context@dd662902): main already carries its complete 24-test SQL kill/resume matrix through feat(durable): SQL-backed spawn journal, blob store, and run context #1381, its SQL stores, and the inotify measurement formalization recorded before docs(durability): final harden-vs-adopt verdict with the 119/119 evidence #1390. Retain those without duplicating or transplanting the implementation. Extend its per-worker exactly-once checks to the fenced-context harness: one original-key spawn and one done settlement per worker, plus unique root attempts and cursor sequences.74593a04, salvaged by feat(durability): salvage the fenced SQL run context from #1373 #1391): keep main's fenced SQL context, coordination log, provider harness, and SQL acknowledgement-loss cuts. Restore only the two retained-recovery guards from p1 that the salvage omitted. A persisted input with no admissions can enter initial admission using its original execution identity; existing admissions still require recovery of the original intent. This closes six never-dispatched recovery failures without adding another SQL implementation or changing main's subagent-session exports.ffd6ddd0): require zero replacement-key escalation and forbid the in-doubt escape hatch in both SQL fixtures. Add the missing real-process SIGSTOP → lease takeover → SIGCONT case, asserting that the stale owner cannot publish or release its live successor. Existing live-owner rejection, same-process takeover after SIGKILL, and SQL acknowledgement-loss cuts are retained rather than duplicated. The new stopped-owner test already passes against main; it closes a coverage gap, not a newly discovered fencing defect.Independent red/green evidence
[tool] Executed in GitHub Actions on Ubuntu 24.04.5, Node 22.23.2, pnpm 11.17.0, Vitest 4.1.11:
Full execution log
66d2caa4224c65e637da474a2a2867d785e0e319sql-kill-resume.test.tssql-run-context.test.tssql-run-store.test.tssql-context-stores.test.tsnode scripts/run-durability-conformance.mjs[tool] The six baseline failures are
sql:spawned-child:after,sql:execution-input:after,sql:execution-admitted-intent:{before,after}, andsql:execution-admitted-environment:{before,after}. All returnno-winnerwith retained work pending/unobservable on main. All are ordinary passing tests with the two guards restored; the sixit.failsexemptions are removed. The conformance script also now propagates a failed test report as a nonzero shell exit.Exact commands
Provenance and scope
[tool] This review found the requested synthesis branch already at
6556ebb027fe91b740bb7fddcce0381bbaf3a2d9, directly based on main66d2caa4, with the candidate fix/tests and recorded evidence. It was reviewed and reused, not overwritten or claimed as newly authored. The independent execution above tested commit8d97f9d8e6e11aec9b38adf8ff4e0fdeafdc118b, which adds only a temporary read-only CI workflow. Cleanup commitce8085289099869d29ae4af6e56e8e3c41041addremoves that workflow. GitHub comparison confirms the final tree has no file differences from the reviewed6556ebb0candidate; production code and tests are unchanged since the green run.[tool] The file-journal path remains covered by the successful conformance run. No entrant branch was edited. Nothing was merged.
[not checked] These are independent OS-process/working-directory tests using SQLite and the retained test provider, not a deployment across separate physical hosts or an end-to-end proof against every external side-effect service. The broader repository CI is separate from the completed targeted evidence above.