Repository navigation
OmniRoute gateway: drain patch for the dropped call_logs and usage_history rows when a client closes right after the terminal event (canary passed on 20128; evidence) - #757
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 26c629a5a5
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
3685a41 to
7e5e2f6
Compare
…ve-acceptance protocol with same-day baselines, hardened validation/e2e/build/install/smoke scripts with controls, retained logs, value-free receipt, superseded attempts kept Record (docs/decisions/2026-10-05-omniroute-gateway-composition.md): - RC1/RC2: the patched tree id b7c68690... is pinned; the drain moves out of the "runs on 20128" table into "Candidate, not deployed" with adoption status (canary pending), tarball sha256 and BUILD_SHA; RC11: the first-hop rollback (20128 returns to the cf6748d04 prefix, kept until the acceptance passes; 2604's kept 21128 install named by its tarball sha256) - RC8/RC9: scope of the evidence (Responses and Chat Completions with a stubbed upstream, Anthropic format by code reading only), an outcome-based removal check, upstream prior art (#5491, #10608, #14342), what the patch does not close, what the drain changes for every client, the reviews paragraph and the not-yet-done list Acceptance (RC3/RC8): checks/live-acceptance-protocol.md freezes inputs, commands, repetitions and expected outcomes before the switch; per-request attribution (X-Correlation-Id / response id), two reads (12 s and 60 s), a Chat Completions client, three effort probes with the baseline's four columns; same-day baselines on the unpatched build: raw set, race set (5 of 6 lost), native astra-max (3 of 3 lost), two-request (observed) Validation (RC4/RC5): the unit test is extracted from the patch with git apply --include and its blob id checked against the patch's index line; counts and failing test names are enforced per stage; all stage logs, the 239-file list, runner summaries and the failing test's output are retained; controls: wrong tree, tampered patch, missing patch Handler e2e (P3s): five scenarios incl. Chat Completions, per-scenario rows logged before asserting, the test file sha256 pinned, 4 of 5 must fail unpatched (by name), outcome-only mode for the removal check Scripts (RC6/RC12/RC13): build-drain v2 (own tree, tree ids and clean status checked, every gate decides the exit status), install-drain v2 (pinned sha256, npm integrity, entry count, BUILD_SHA, shim hash, drain marker, checked copy, SHA256SUMS written), smoke v4 (free port, owned process group, loopback and API key required, group-selector control), each with controls and a real run Receipt (RC7): checks/show-log-dropins-receipt.txt (value-free) for the OMNIROUTE_SHOW_LOG drop-ins on both units RC10: superseded and failed attempts kept in superseded/ with an index (first-version results, validation v1-v3, smoke v1-v3, build v1, install v1, the timestamp-only repro scripts, acceptance attempt 1) Rebased over ecfa112 (#703); the patch itself is unchanged (sha256 74c0f449...). Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
7e5e2f6 to
bcb09e8
Compare
…ss, guard, identity read-back, wrapper) after the full-scope read and the round-3 ruling; protocol is a DRAFT, v2 baselines pending Pushed as a safe point before a supervised host restart (02:45Z); the canary hold is unchanged and no canary may run on this head. - Scripts (all with offline controls, v1 vs v2 on a stub gateway, no gateway traffic; checks/acceptance-controls*.txt): raw acceptance (terminal and early close required, full predicate and stable rows at both reads, exit 3 for errors before any request), native acceptance (per-turn X-OmniRoute-Session-Id = call_logs.session_tag, completeness against the client's codex exec --json usage, the tool-call turn a gate, hangs INCONCLUSIVE), gateway-identity, pre-switch-guard, run-acceptance wrapper, receipt v2 (allowlist) - checks/native-usage-calibration.txt: on the unpatched build every fully stored turn matched the client's usage exactly; 3 of 7 two-request turns lost the final request's rows - validation script v5 (the patch's blob id must parse) with its real run and four controls; install script v3 (paths overridable, shim from the repository, inputs checked before npm install) with controls and a positive run without the NativeStack prefix layout; the handler tree-check control with its exit status as a line; dates of headers corrected; unshortened raw outputs kept privately and listed in checks/logs/MANIFEST.txt - record: the reviews paragraph no longer calls the P1s fixed; 2604's kept prefix named; the live-acceptance paragraph describes version 2; the early-loss claim is qualified; the pending-request counter observation - NOT in this push: the same-day v2 baselines (running when the restart was announced), the build script v3 real run, the frozen protocol (checks/live-acceptance-protocol.md says DRAFT) Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
bcb09e8 to
9ef72e5
Compare
… baselines, guard v3, build script v4 and the pack-boot finding The patch is unchanged (sha256 74c0f449..., patched tree b7c68690...); the record, the acceptance protocol, its scripts and their evidence changed. Pre-deployment: the canary hold is unchanged and waits for the command center's lift. - raw script 2.1: effort probes judged as groups of three attempts (the gateway stores the effort columns only for a response with encrypted reasoning, so NULL is unobservable), a reasoning-eliciting probe prompt chosen by a calibration series (45 of 45 attempts observed); the baselines rerun on the unpatched build cf6748d04: raw 20, race 6, native 4, tool-call turns 8 observed (race 6 of 6 lost, early:0 2 of 2, tool-call turns 5 of 8 incomplete) - guard v3: connections classified by the owner of the client end, the 20129 gateway's poll tolerated by its unit, everything else must be idle; live trials of v3 and v2 (v2 failed on the poll at 05:13Z), control G12 reproduces that failure - session-tag handler check: X-OmniRoute-Session-Id stored as call_logs.session_tag through the real handleChat path on the unpatched composition and the patched tree (4 of 4 each), with a negative control - build script v4: check:pack-boot with the reviewed lsof shim v2 first on PATH; version 3 failed twice there (the harness's own poll is listed by the CLI's lsof -ti preflight because a connect to a never-bound closed loopback port hangs on this host); one-minute reproduction, probe, shim controls 10-12; the real run exits 0 at every gate, tarball compared entry by entry with the recorded one - wrapper frozen with the committed baseline's sha256; offline controls rerun with the final bytes (parts A, B, B2, C, D) - record: live-acceptance and build paragraphs updated, the first composition build's pack-boot failure explained; evidence README, superseded index and PR body rewritten Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
9ef72e5 to
04e505a
Compare
|
Head
|
…ve-acceptance protocol with same-day baselines, hardened validation/e2e/build/install/smoke scripts with controls, retained logs, value-free receipt, superseded attempts kept Record (docs/decisions/2026-10-05-omniroute-gateway-composition.md): - RC1/RC2: the patched tree id b7c68690... is pinned; the drain moves out of the "runs on 20128" table into "Candidate, not deployed" with adoption status (canary pending), tarball sha256 and BUILD_SHA; RC11: the first-hop rollback (20128 returns to the cf6748d04 prefix, kept until the acceptance passes; 2604's kept 21128 install named by its tarball sha256) - RC8/RC9: scope of the evidence (Responses and Chat Completions with a stubbed upstream, Anthropic format by code reading only), an outcome-based removal check, upstream prior art (#5491, #10608, #14342), what the patch does not close, what the drain changes for every client, the reviews paragraph and the not-yet-done list Acceptance (RC3/RC8): checks/live-acceptance-protocol.md freezes inputs, commands, repetitions and expected outcomes before the switch; per-request attribution (X-Correlation-Id / response id), two reads (12 s and 60 s), a Chat Completions client, three effort probes with the baseline's four columns; same-day baselines on the unpatched build: raw set, race set (5 of 6 lost), native astra-max (3 of 3 lost), two-request (observed) Validation (RC4/RC5): the unit test is extracted from the patch with git apply --include and its blob id checked against the patch's index line; counts and failing test names are enforced per stage; all stage logs, the 239-file list, runner summaries and the failing test's output are retained; controls: wrong tree, tampered patch, missing patch Handler e2e (P3s): five scenarios incl. Chat Completions, per-scenario rows logged before asserting, the test file sha256 pinned, 4 of 5 must fail unpatched (by name), outcome-only mode for the removal check Scripts (RC6/RC12/RC13): build-drain v2 (own tree, tree ids and clean status checked, every gate decides the exit status), install-drain v2 (pinned sha256, npm integrity, entry count, BUILD_SHA, shim hash, drain marker, checked copy, SHA256SUMS written), smoke v4 (free port, owned process group, loopback and API key required, group-selector control), each with controls and a real run Receipt (RC7): checks/show-log-dropins-receipt.txt (value-free) for the OMNIROUTE_SHOW_LOG drop-ins on both units RC10: superseded and failed attempts kept in superseded/ with an index (first-version results, validation v1-v3, smoke v1-v3, build v1, install v1, the timestamp-only repro scripts, acceptance attempt 1) Rebased over ecfa112 (#703); the patch itself is unchanged (sha256 74c0f449...). Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…ss, guard, identity read-back, wrapper) after the full-scope read and the round-3 ruling; protocol is a DRAFT, v2 baselines pending Pushed as a safe point before a supervised host restart (02:45Z); the canary hold is unchanged and no canary may run on this head. - Scripts (all with offline controls, v1 vs v2 on a stub gateway, no gateway traffic; checks/acceptance-controls*.txt): raw acceptance (terminal and early close required, full predicate and stable rows at both reads, exit 3 for errors before any request), native acceptance (per-turn X-OmniRoute-Session-Id = call_logs.session_tag, completeness against the client's codex exec --json usage, the tool-call turn a gate, hangs INCONCLUSIVE), gateway-identity, pre-switch-guard, run-acceptance wrapper, receipt v2 (allowlist) - checks/native-usage-calibration.txt: on the unpatched build every fully stored turn matched the client's usage exactly; 3 of 7 two-request turns lost the final request's rows - validation script v5 (the patch's blob id must parse) with its real run and four controls; install script v3 (paths overridable, shim from the repository, inputs checked before npm install) with controls and a positive run without the NativeStack prefix layout; the handler tree-check control with its exit status as a line; dates of headers corrected; unshortened raw outputs kept privately and listed in checks/logs/MANIFEST.txt - record: the reviews paragraph no longer calls the P1s fixed; 2604's kept prefix named; the live-acceptance paragraph describes version 2; the early-loss claim is qualified; the pending-request counter observation - NOT in this push: the same-day v2 baselines (running when the restart was announced), the build script v3 real run, the frozen protocol (checks/live-acceptance-protocol.md says DRAFT) Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
… baselines, guard v3, build script v4 and the pack-boot finding The patch is unchanged (sha256 74c0f449..., patched tree b7c68690...); the record, the acceptance protocol, its scripts and their evidence changed. Pre-deployment: the canary hold is unchanged and waits for the command center's lift. - raw script 2.1: effort probes judged as groups of three attempts (the gateway stores the effort columns only for a response with encrypted reasoning, so NULL is unobservable), a reasoning-eliciting probe prompt chosen by a calibration series (45 of 45 attempts observed); the baselines rerun on the unpatched build cf6748d04: raw 20, race 6, native 4, tool-call turns 8 observed (race 6 of 6 lost, early:0 2 of 2, tool-call turns 5 of 8 incomplete) - guard v3: connections classified by the owner of the client end, the 20129 gateway's poll tolerated by its unit, everything else must be idle; live trials of v3 and v2 (v2 failed on the poll at 05:13Z), control G12 reproduces that failure - session-tag handler check: X-OmniRoute-Session-Id stored as call_logs.session_tag through the real handleChat path on the unpatched composition and the patched tree (4 of 4 each), with a negative control - build script v4: check:pack-boot with the reviewed lsof shim v2 first on PATH; version 3 failed twice there (the harness's own poll is listed by the CLI's lsof -ti preflight because a connect to a never-bound closed loopback port hangs on this host); one-minute reproduction, probe, shim controls 10-12; the real run exits 0 at every gate, tarball compared entry by entry with the recorded one - wrapper frozen with the committed baseline's sha256; offline controls rerun with the final bytes (parts A, B, B2, C, D) - record: live-acceptance and build paragraphs updated, the first composition build's pack-boot failure explained; evidence README, superseded index and PR body rewritten Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…he full-scope read of 04e505a (1 P1, 8 P2, 5 P3) The patch is unchanged (sha256 74c0f449..., patched tree b7c68690...); the acceptance scripts, the wrapper, the protocol, the record and their evidence changed. Pre-deployment: the canary hold is unchanged and waits for the command center's lift. - P1 wrapper: every identity read is enforced (exit status, sentinels) and compared with the identity accepted at the start, so an unhealthy gateway, another build or a restart between runs voids the run (controls W7-W9) - P2 raw script 2.2 / native script 2.1: effort observability from reasoning_source (a dropped effort fails the group), the usage row associated by provider, account, endpoint, latency and time to first token (a foreign look-alike is INCONCLUSIVE); controls R10, N10 - P2 guard 4: only EMPTY connections of the 20129 unit are tolerated (it also forwards inference), a failing ss or pgrep fails the check; controls G13-G16 - P2 wrapper: an unreadable journal or start timestamp blocks, the pre-switch control counts only valid samples (W10-W12); the pack-boot reproduction helper sets loopback and an API key and is rerun; the record's tool-call gate statement is corrected - P3: effort probes printed three times, numeric confidence figures removed, closed-port wording narrowed, calibration numbers corrected - baselines of the unpatched build rerun with the final scripts; offline controls rerun with the final bytes (each control reproduces the earlier version's defect next to the right answer); guard 4 live trial and watch Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
04e505a to
5ffe200
Compare
|
Head
|
…sage-association probe, corrected counts and wording) No frozen script byte changed (raw 2.2, native 2.1, identity, guard 4 and the wrapper are byte-identical to the previous head); the changes are evidence and text only. - checks/usage-association-probe.txt and scripts/probe-usage-association.py.txt: a read-only probe of the live store over 2026-10-05 12:00Z to 2026-10-06 10:56Z behind the usage association's tolerances: 458 call rows, each with exactly one same-model, same-count usage row, and all 458 pairs meet every field (provider, account, endpoint, latency within 100 ms, time to first token within 1 ms; maximum differences 51 ms and 0.5 ms); the docstrings say 457, an earlier unretained count, now stated in the README and the protocol - the protocol and the README cite the probe; the controls header and the watch header say only what was observed (a worker of another lane was seen at 11:23Z; the unseen owner of one connection is not called idle) - the PR body's older table rows that described behaviour the table of the full-scope read of 04e505a replaces now say so Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
5ffe200 to
8f9d896
Compare
…ve-acceptance protocol with same-day baselines, hardened validation/e2e/build/install/smoke scripts with controls, retained logs, value-free receipt, superseded attempts kept Record (docs/decisions/2026-10-05-omniroute-gateway-composition.md): - RC1/RC2: the patched tree id b7c68690... is pinned; the drain moves out of the "runs on 20128" table into "Candidate, not deployed" with adoption status (canary pending), tarball sha256 and BUILD_SHA; RC11: the first-hop rollback (20128 returns to the cf6748d04 prefix, kept until the acceptance passes; 2604's kept 21128 install named by its tarball sha256) - RC8/RC9: scope of the evidence (Responses and Chat Completions with a stubbed upstream, Anthropic format by code reading only), an outcome-based removal check, upstream prior art (#5491, #10608, #14342), what the patch does not close, what the drain changes for every client, the reviews paragraph and the not-yet-done list Acceptance (RC3/RC8): checks/live-acceptance-protocol.md freezes inputs, commands, repetitions and expected outcomes before the switch; per-request attribution (X-Correlation-Id / response id), two reads (12 s and 60 s), a Chat Completions client, three effort probes with the baseline's four columns; same-day baselines on the unpatched build: raw set, race set (5 of 6 lost), native astra-max (3 of 3 lost), two-request (observed) Validation (RC4/RC5): the unit test is extracted from the patch with git apply --include and its blob id checked against the patch's index line; counts and failing test names are enforced per stage; all stage logs, the 239-file list, runner summaries and the failing test's output are retained; controls: wrong tree, tampered patch, missing patch Handler e2e (P3s): five scenarios incl. Chat Completions, per-scenario rows logged before asserting, the test file sha256 pinned, 4 of 5 must fail unpatched (by name), outcome-only mode for the removal check Scripts (RC6/RC12/RC13): build-drain v2 (own tree, tree ids and clean status checked, every gate decides the exit status), install-drain v2 (pinned sha256, npm integrity, entry count, BUILD_SHA, shim hash, drain marker, checked copy, SHA256SUMS written), smoke v4 (free port, owned process group, loopback and API key required, group-selector control), each with controls and a real run Receipt (RC7): checks/show-log-dropins-receipt.txt (value-free) for the OMNIROUTE_SHOW_LOG drop-ins on both units RC10: superseded and failed attempts kept in superseded/ with an index (first-version results, validation v1-v3, smoke v1-v3, build v1, install v1, the timestamp-only repro scripts, acceptance attempt 1) Rebased over ecfa112 (#703); the patch itself is unchanged (sha256 74c0f449...). Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…ss, guard, identity read-back, wrapper) after the full-scope read and the round-3 ruling; protocol is a DRAFT, v2 baselines pending Pushed as a safe point before a supervised host restart (02:45Z); the canary hold is unchanged and no canary may run on this head. - Scripts (all with offline controls, v1 vs v2 on a stub gateway, no gateway traffic; checks/acceptance-controls*.txt): raw acceptance (terminal and early close required, full predicate and stable rows at both reads, exit 3 for errors before any request), native acceptance (per-turn X-OmniRoute-Session-Id = call_logs.session_tag, completeness against the client's codex exec --json usage, the tool-call turn a gate, hangs INCONCLUSIVE), gateway-identity, pre-switch-guard, run-acceptance wrapper, receipt v2 (allowlist) - checks/native-usage-calibration.txt: on the unpatched build every fully stored turn matched the client's usage exactly; 3 of 7 two-request turns lost the final request's rows - validation script v5 (the patch's blob id must parse) with its real run and four controls; install script v3 (paths overridable, shim from the repository, inputs checked before npm install) with controls and a positive run without the NativeStack prefix layout; the handler tree-check control with its exit status as a line; dates of headers corrected; unshortened raw outputs kept privately and listed in checks/logs/MANIFEST.txt - record: the reviews paragraph no longer calls the P1s fixed; 2604's kept prefix named; the live-acceptance paragraph describes version 2; the early-loss claim is qualified; the pending-request counter observation - NOT in this push: the same-day v2 baselines (running when the restart was announced), the build script v3 real run, the frozen protocol (checks/live-acceptance-protocol.md says DRAFT) Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
… baselines, guard v3, build script v4 and the pack-boot finding The patch is unchanged (sha256 74c0f449..., patched tree b7c68690...); the record, the acceptance protocol, its scripts and their evidence changed. Pre-deployment: the canary hold is unchanged and waits for the command center's lift. - raw script 2.1: effort probes judged as groups of three attempts (the gateway stores the effort columns only for a response with encrypted reasoning, so NULL is unobservable), a reasoning-eliciting probe prompt chosen by a calibration series (45 of 45 attempts observed); the baselines rerun on the unpatched build cf6748d04: raw 20, race 6, native 4, tool-call turns 8 observed (race 6 of 6 lost, early:0 2 of 2, tool-call turns 5 of 8 incomplete) - guard v3: connections classified by the owner of the client end, the 20129 gateway's poll tolerated by its unit, everything else must be idle; live trials of v3 and v2 (v2 failed on the poll at 05:13Z), control G12 reproduces that failure - session-tag handler check: X-OmniRoute-Session-Id stored as call_logs.session_tag through the real handleChat path on the unpatched composition and the patched tree (4 of 4 each), with a negative control - build script v4: check:pack-boot with the reviewed lsof shim v2 first on PATH; version 3 failed twice there (the harness's own poll is listed by the CLI's lsof -ti preflight because a connect to a never-bound closed loopback port hangs on this host); one-minute reproduction, probe, shim controls 10-12; the real run exits 0 at every gate, tarball compared entry by entry with the recorded one - wrapper frozen with the committed baseline's sha256; offline controls rerun with the final bytes (parts A, B, B2, C, D) - record: live-acceptance and build paragraphs updated, the first composition build's pack-boot failure explained; evidence README, superseded index and PR body rewritten Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…he full-scope read of 04e505a (1 P1, 8 P2, 5 P3) The patch is unchanged (sha256 74c0f449..., patched tree b7c68690...); the acceptance scripts, the wrapper, the protocol, the record and their evidence changed. Pre-deployment: the canary hold is unchanged and waits for the command center's lift. - P1 wrapper: every identity read is enforced (exit status, sentinels) and compared with the identity accepted at the start, so an unhealthy gateway, another build or a restart between runs voids the run (controls W7-W9) - P2 raw script 2.2 / native script 2.1: effort observability from reasoning_source (a dropped effort fails the group), the usage row associated by provider, account, endpoint, latency and time to first token (a foreign look-alike is INCONCLUSIVE); controls R10, N10 - P2 guard 4: only EMPTY connections of the 20129 unit are tolerated (it also forwards inference), a failing ss or pgrep fails the check; controls G13-G16 - P2 wrapper: an unreadable journal or start timestamp blocks, the pre-switch control counts only valid samples (W10-W12); the pack-boot reproduction helper sets loopback and an API key and is rerun; the record's tool-call gate statement is corrected - P3: effort probes printed three times, numeric confidence figures removed, closed-port wording narrowed, calibration numbers corrected - baselines of the unpatched build rerun with the final scripts; offline controls rerun with the final bytes (each control reproduces the earlier version's defect next to the right answer); guard 4 live trial and watch Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…sage-association probe, corrected counts and wording) No frozen script byte changed (raw 2.2, native 2.1, identity, guard 4 and the wrapper are byte-identical to the previous head); the changes are evidence and text only. - checks/usage-association-probe.txt and scripts/probe-usage-association.py.txt: a read-only probe of the live store over 2026-10-05 12:00Z to 2026-10-06 10:56Z behind the usage association's tolerances: 458 call rows, each with exactly one same-model, same-count usage row, and all 458 pairs meet every field (provider, account, endpoint, latency within 100 ms, time to first token within 1 ms; maximum differences 51 ms and 0.5 ms); the docstrings say 457, an earlier unretained count, now stated in the README and the protocol - the protocol and the README cite the probe; the controls header and the watch header say only what was observed (a worker of another lane was seen at 11:23Z; the unseen owner of one connection is not called idle) - the PR body's older table rows that described behaviour the table of the full-scope read of 04e505a replaces now say so Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…(guard 5, row-level census, build 5, smoke 5, install 4) No frozen script byte changed: raw script 2.2, native script 2.1, the identity read-back and the wrapper keep their git blobs (f3712b6, 71215df, afcf63f, edefc1d) and the raw baseline is unchanged (the command center's option (b): no re-baseline). The patch is unchanged. - P2-1 (the scripts' usage association is exclusive per request only): a recorded residual of the frozen scripts, closed for the canary window by a NEW non-frozen census gate, scripts/window-census.py.txt: own call rows by tag only, a unique perfect matching per connected component between own call rows and usage rows (the scripts' own candidate query and association rule, byte for byte), no foreign call row, no orphan usage row, a clean guard 5 --idle-only receipt at the window's start, agreeing clocks, a zero journal count; INCONCLUSIVE otherwise. checks/census-controls.txt (84 results: replacement case, one row short, foreign call row, two candidates, orphan, unreadable store, exact match; parity with the frozen scripts; matching against a brute force and scipy's maximum_bipartite_matching), checks/census-baseline-real-data.txt (real rows), checks/census-live-trial.txt (a live quiet-window trial) - P2-2/P2-3: guard 5 parses ss strictly, keys connections by the full normalized tuple, fails closed (checks/guard5-controls.txt, checks/guard5-existing-controls.txt, checks/guard-live-trial.txt) - P2-4: build script 5 checks git status's exit status and enforces git diff --quiet (controls 13-19, a real offline run: checks/build-v5-results.txt) - P2-5: smoke script 5 separates an unavailable process-group observation from an empty group (checks/smoke-observation-control.txt) - P2-6 and the record's journal-size figure: wording and figure corrected in the decision record - P3: install script 4 (deps-hash failures are UNAVAILABLE), compare_dry_run's wording, build-v5 results wording, README inventory, the log manifest (4 superseded files, private copies rebuilt), protocol chronology and reproduction sentences; the stale 5/8 in the native script's docstring is frozen bytes and is corrected in text only (7 of 8 tool-call turns incomplete in the retained baseline) - the protocol gains the idle receipt (step 7b), the census (step 8b), the burst-timing rule and the amendments entry; superseded copies of guard 4, build 4, smoke 4, install 3 and the earlier trial are kept Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
8f9d896 to
6b734c6
Compare
|
Repair round for the command center's RULING-757-R19 after 5f's FINAL delta check r18 of
🤖 Generated with Claude Code |
|
Repair for 5f's bounded delta check r19 of
🤖 Generated with Claude Code |
|
Canary of the drain build on NativeStack's 20128 (the command center's RULING-757-CANARY-W2, at the frozen head
Evidence class 🤖 Generated with Claude Code |
… the cause of the dropped call_logs and usage_history rows, and the OMNIROUTE_SHOW_LOG drop-ins A client that closes right after response.completed (codex exec does) skipped the SSE transform's flush(), so no call_logs and no usage_history row were written: found on 2604, reproduced on 20128 with the earlier PR 15167 head. The patch reuses upstream's own drainCompletedToolHandoff for the case where the client already has the terminal event; it is tested in a scratch tree (negative control, 236 stream-related upstream test files, call-log, usage-history and chat-pipeline tests); build, reviews and deployment follow. The 09-30 record gets the dated note on the supervisor dropping the child's console output and the drop-ins on both units. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…off drain, pending entry on expiry), corrected claims, six tests with two negative controls - patch: cancel() starts the terminal drain before the tool-handoff return; the drain clears the pending-request entry when the grace period expires; six tests (unpatched: 3 fail, first version: 2 fail, patch: 6 pass); stream set of 239 files; the first version is kept as the superseded patch for the control - record: the other routes to onStreamComplete (failure paths) and the persistence chain, the 93.2% share as observed under incomplete logging, the supervisor's exceptions, line numbers checked at the pin; source-lines.txt regenerated from the pinned mirror; README build status Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…ts scratch directory, control run, build record, wording precision - scripts/drain-prototype.sh.txt: the composition and patched tree ids are compared with the expected ones and the script exits 3 before the patched test stages on a mismatch (control run with a wrong expected tree: checks/drain-prototype-tree-check-control.txt); every setup step is checked (pipefail); the script creates its own mktemp directory and deletes nothing - checks/build-results.txt, scripts/install-drain.sh.txt, scripts/smoke.sh.txt: the build of the patched tree with upstream's release scripts (all steps exit 0, both boots healthy, persistence proven, a fresh pack reproduces the tarball), its install into a new prefix and the scratch boot smoke; results re-generated from a fresh run of the final script - record and source-lines: finalizeStreamRequestLog finalizes the pending-request entry; handleComplete persists nothing; README and record updated for the finished build Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…, smoke script uses a free port and its own process group, controls for both - scripts/drain-prototype.sh.txt: the copy of the new test file is a checked step, and a missing input file or mirror stops the script with exit 2 before any directory is created (checks/drain-prototype-missing-fixture-control.txt); results regenerated from a fresh run of the final script - scripts/smoke.sh.txt: free port, child in its own process group, success needs a listener of that group, cleanup signals only that group; the superseded script falsely passed against an unrelated healthy process (checks/smoke-results.txt: three runs, with scripts/smoke-superseded.sh.txt and scripts/smoke-control.sh.txt) Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…PGID column and requires it empty, with a selector control - scripts/smoke.sh.txt: the processes left in the owned group are counted with a filter on the PGID column (ps -g selects by session, so the earlier count of 0 proved nothing), the group must be empty again after cleanup for the smoke to succeed, and the count before cleanup is printed (3 processes, 0 after) - checks/smoke-group-selector-control.txt + scripts/smoke-group-selector-control.sh.txt: the leader's pgid differs from its session, ps -g counts 0 members of a group of 2, the PGID filter counts 2 and then 0 after the group is killed; checks/smoke-results.txt regenerated from three fresh runs of the final script - README, build record and decision record updated Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…al handleChat path, stubbed upstream), with a tree-check control - scripts/handler-e2e.sh.txt + scripts/handler-e2e-terminal-close.test.ts.txt: a Responses client reads until response.completed and closes while the upstream body is open for 150 ms more; the real handleChat -> chatCore -> stream pipeline -> call-log and usage writers run with a stubbed fetch and a temporary database (upstream's chat-pipeline harness style) - checks/handler-e2e-results.txt: unpatched composition, 3 of 4 scenarios end with no call_logs and no usage_history row (a Codex-originated client; clients whose request signal aborts first), patched tree, 4 of 4 end with both rows; composition and patched tree ids checked; checks/handler-e2e-tree-check-control.txt: wrong expected tree, exit 3 before the patched stage - README and decision record updated; the patch, its tests and the validation results are unchanged Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…ve-acceptance protocol with same-day baselines, hardened validation/e2e/build/install/smoke scripts with controls, retained logs, value-free receipt, superseded attempts kept Record (docs/decisions/2026-10-05-omniroute-gateway-composition.md): - RC1/RC2: the patched tree id b7c68690... is pinned; the drain moves out of the "runs on 20128" table into "Candidate, not deployed" with adoption status (canary pending), tarball sha256 and BUILD_SHA; RC11: the first-hop rollback (20128 returns to the cf6748d04 prefix, kept until the acceptance passes; 2604's kept 21128 install named by its tarball sha256) - RC8/RC9: scope of the evidence (Responses and Chat Completions with a stubbed upstream, Anthropic format by code reading only), an outcome-based removal check, upstream prior art (#5491, #10608, #14342), what the patch does not close, what the drain changes for every client, the reviews paragraph and the not-yet-done list Acceptance (RC3/RC8): checks/live-acceptance-protocol.md freezes inputs, commands, repetitions and expected outcomes before the switch; per-request attribution (X-Correlation-Id / response id), two reads (12 s and 60 s), a Chat Completions client, three effort probes with the baseline's four columns; same-day baselines on the unpatched build: raw set, race set (5 of 6 lost), native astra-max (3 of 3 lost), two-request (observed) Validation (RC4/RC5): the unit test is extracted from the patch with git apply --include and its blob id checked against the patch's index line; counts and failing test names are enforced per stage; all stage logs, the 239-file list, runner summaries and the failing test's output are retained; controls: wrong tree, tampered patch, missing patch Handler e2e (P3s): five scenarios incl. Chat Completions, per-scenario rows logged before asserting, the test file sha256 pinned, 4 of 5 must fail unpatched (by name), outcome-only mode for the removal check Scripts (RC6/RC12/RC13): build-drain v2 (own tree, tree ids and clean status checked, every gate decides the exit status), install-drain v2 (pinned sha256, npm integrity, entry count, BUILD_SHA, shim hash, drain marker, checked copy, SHA256SUMS written), smoke v4 (free port, owned process group, loopback and API key required, group-selector control), each with controls and a real run Receipt (RC7): checks/show-log-dropins-receipt.txt (value-free) for the OMNIROUTE_SHOW_LOG drop-ins on both units RC10: superseded and failed attempts kept in superseded/ with an index (first-version results, validation v1-v3, smoke v1-v3, build v1, install v1, the timestamp-only repro scripts, acceptance attempt 1) Rebased over ecfa112 (#703); the patch itself is unchanged (sha256 74c0f449...). Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…ss, guard, identity read-back, wrapper) after the full-scope read and the round-3 ruling; protocol is a DRAFT, v2 baselines pending Pushed as a safe point before a supervised host restart (02:45Z); the canary hold is unchanged and no canary may run on this head. - Scripts (all with offline controls, v1 vs v2 on a stub gateway, no gateway traffic; checks/acceptance-controls*.txt): raw acceptance (terminal and early close required, full predicate and stable rows at both reads, exit 3 for errors before any request), native acceptance (per-turn X-OmniRoute-Session-Id = call_logs.session_tag, completeness against the client's codex exec --json usage, the tool-call turn a gate, hangs INCONCLUSIVE), gateway-identity, pre-switch-guard, run-acceptance wrapper, receipt v2 (allowlist) - checks/native-usage-calibration.txt: on the unpatched build every fully stored turn matched the client's usage exactly; 3 of 7 two-request turns lost the final request's rows - validation script v5 (the patch's blob id must parse) with its real run and four controls; install script v3 (paths overridable, shim from the repository, inputs checked before npm install) with controls and a positive run without the NativeStack prefix layout; the handler tree-check control with its exit status as a line; dates of headers corrected; unshortened raw outputs kept privately and listed in checks/logs/MANIFEST.txt - record: the reviews paragraph no longer calls the P1s fixed; 2604's kept prefix named; the live-acceptance paragraph describes version 2; the early-loss claim is qualified; the pending-request counter observation - NOT in this push: the same-day v2 baselines (running when the restart was announced), the build script v3 real run, the frozen protocol (checks/live-acceptance-protocol.md says DRAFT) Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
… baselines, guard v3, build script v4 and the pack-boot finding The patch is unchanged (sha256 74c0f449..., patched tree b7c68690...); the record, the acceptance protocol, its scripts and their evidence changed. Pre-deployment: the canary hold is unchanged and waits for the command center's lift. - raw script 2.1: effort probes judged as groups of three attempts (the gateway stores the effort columns only for a response with encrypted reasoning, so NULL is unobservable), a reasoning-eliciting probe prompt chosen by a calibration series (45 of 45 attempts observed); the baselines rerun on the unpatched build cf6748d04: raw 20, race 6, native 4, tool-call turns 8 observed (race 6 of 6 lost, early:0 2 of 2, tool-call turns 5 of 8 incomplete) - guard v3: connections classified by the owner of the client end, the 20129 gateway's poll tolerated by its unit, everything else must be idle; live trials of v3 and v2 (v2 failed on the poll at 05:13Z), control G12 reproduces that failure - session-tag handler check: X-OmniRoute-Session-Id stored as call_logs.session_tag through the real handleChat path on the unpatched composition and the patched tree (4 of 4 each), with a negative control - build script v4: check:pack-boot with the reviewed lsof shim v2 first on PATH; version 3 failed twice there (the harness's own poll is listed by the CLI's lsof -ti preflight because a connect to a never-bound closed loopback port hangs on this host); one-minute reproduction, probe, shim controls 10-12; the real run exits 0 at every gate, tarball compared entry by entry with the recorded one - wrapper frozen with the committed baseline's sha256; offline controls rerun with the final bytes (parts A, B, B2, C, D) - record: live-acceptance and build paragraphs updated, the first composition build's pack-boot failure explained; evidence README, superseded index and PR body rewritten Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…he full-scope read of 04e505a (1 P1, 8 P2, 5 P3) The patch is unchanged (sha256 74c0f449..., patched tree b7c68690...); the acceptance scripts, the wrapper, the protocol, the record and their evidence changed. Pre-deployment: the canary hold is unchanged and waits for the command center's lift. - P1 wrapper: every identity read is enforced (exit status, sentinels) and compared with the identity accepted at the start, so an unhealthy gateway, another build or a restart between runs voids the run (controls W7-W9) - P2 raw script 2.2 / native script 2.1: effort observability from reasoning_source (a dropped effort fails the group), the usage row associated by provider, account, endpoint, latency and time to first token (a foreign look-alike is INCONCLUSIVE); controls R10, N10 - P2 guard 4: only EMPTY connections of the 20129 unit are tolerated (it also forwards inference), a failing ss or pgrep fails the check; controls G13-G16 - P2 wrapper: an unreadable journal or start timestamp blocks, the pre-switch control counts only valid samples (W10-W12); the pack-boot reproduction helper sets loopback and an API key and is rerun; the record's tool-call gate statement is corrected - P3: effort probes printed three times, numeric confidence figures removed, closed-port wording narrowed, calibration numbers corrected - baselines of the unpatched build rerun with the final scripts; offline controls rerun with the final bytes (each control reproduces the earlier version's defect next to the right answer); guard 4 live trial and watch Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…sage-association probe, corrected counts and wording) No frozen script byte changed (raw 2.2, native 2.1, identity, guard 4 and the wrapper are byte-identical to the previous head); the changes are evidence and text only. - checks/usage-association-probe.txt and scripts/probe-usage-association.py.txt: a read-only probe of the live store over 2026-10-05 12:00Z to 2026-10-06 10:56Z behind the usage association's tolerances: 458 call rows, each with exactly one same-model, same-count usage row, and all 458 pairs meet every field (provider, account, endpoint, latency within 100 ms, time to first token within 1 ms; maximum differences 51 ms and 0.5 ms); the docstrings say 457, an earlier unretained count, now stated in the README and the protocol - the protocol and the README cite the probe; the controls header and the watch header say only what was observed (a worker of another lane was seen at 11:23Z; the unseen owner of one connection is not called idle) - the PR body's older table rows that described behaviour the table of the full-scope read of 04e505a replaces now say so Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…(guard 5, row-level census, build 5, smoke 5, install 4) No frozen script byte changed: raw script 2.2, native script 2.1, the identity read-back and the wrapper keep their git blobs (f3712b6, 71215df, afcf63f, edefc1d) and the raw baseline is unchanged (the command center's option (b): no re-baseline). The patch is unchanged. - P2-1 (the scripts' usage association is exclusive per request only): a recorded residual of the frozen scripts, closed for the canary window by a NEW non-frozen census gate, scripts/window-census.py.txt: own call rows by tag only, a unique perfect matching per connected component between own call rows and usage rows (the scripts' own candidate query and association rule, byte for byte), no foreign call row, no orphan usage row, a clean guard 5 --idle-only receipt at the window's start, agreeing clocks, a zero journal count; INCONCLUSIVE otherwise. checks/census-controls.txt (84 results: replacement case, one row short, foreign call row, two candidates, orphan, unreadable store, exact match; parity with the frozen scripts; matching against a brute force and scipy's maximum_bipartite_matching), checks/census-baseline-real-data.txt (real rows), checks/census-live-trial.txt (a live quiet-window trial) - P2-2/P2-3: guard 5 parses ss strictly, keys connections by the full normalized tuple, fails closed (checks/guard5-controls.txt, checks/guard5-existing-controls.txt, checks/guard-live-trial.txt) - P2-4: build script 5 checks git status's exit status and enforces git diff --quiet (controls 13-19, a real offline run: checks/build-v5-results.txt) - P2-5: smoke script 5 separates an unavailable process-group observation from an empty group (checks/smoke-observation-control.txt) - P2-6 and the record's journal-size figure: wording and figure corrected in the decision record - P3: install script 4 (deps-hash failures are UNAVAILABLE), compare_dry_run's wording, build-v5 results wording, README inventory, the log manifest (4 superseded files, private copies rebuilt), protocol chronology and reproduction sentences; the stale 5/8 in the native script's docstring is frozen bytes and is corrected in text only (7 of 8 tool-call turns incomplete in the retained baseline) - the protocol gains the idle receipt (step 7b), the census (step 8b), the burst-timing rule and the amendments entry; superseded copies of guard 4, build 4, smoke 4, install 3 and the earlier trial are kept Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
… (padded call rows, whole-table timestamp format, duplicated usage rows, arm-file hygiene), controls Y1-Y10b No frozen script byte changed (git blobs f3712b6, 71215df, afcf63f, edefc1d as before). Only the new, non-frozen census (scripts/window-census.py.txt), its controls and the texts that describe it change. An adversarial fuzz review of the census (read-only, 5,000 random worlds with ground truth and 44 hand-made attacks) found ten problems; each false PASS outside the documented residual and each silent skip is fixed and has a control: - call rows are read over the same 3 s pad as usage rows (a foreign request that finished just before the window had its usage row in the pad and could stand in for a dropped own one); - the timestamp format is checked over the whole tables (epoch text, a leading space, another offset or a BLOB no longer escape the string bounds); - a group of usage rows with identical metadata is a problem (a duplicated usage row standing in for the next identical call's dropped one); - an arm file must hold one run (a second FROZEN, SUMMARY, journal or header line, a VOID anywhere, a RESULT line the census cannot parse and an identity line without both fields are problems; the identity fields are read in any order); - NULL columns no longer lose the receipt, a stamp outside 2000-2100 is unparsable (no overflow), clean_for must be finite, an unparsable FROZEN start= is a problem and a store path with a space is read correctly; - the residual is described at its real width (a foreign usage row the association cannot tell from an own request's: same model, counts, provider, account and endpoint, latency within 100 ms, first-token time within 1 ms, within 3 s). checks/census-controls.txt: 101 results (Y1-Y10b are the reproductions); the 600-world property test and the census on the real baseline and live-trial rows were rerun with the new text (baseline 26/0/26/0 unchanged, live arm A still PASS). Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…er the full-scope reads r10 (6b734c6) and r11 (41a6716): exact competing-owner check, interval wait, canary-gate contract and frozen request counts, validated stamps, reserved records, numeric plausibility, private-namespace Part E, a narrowed residual claim No frozen script byte changed (git blobs f3712b6, 71215df, afcf63f, edefc1d as before). The census (scripts/window-census.py.txt, not frozen), its controls, the guard-5 controls and the texts that describe them change. - P2-1: besides the 3 s pad, the census refuses every call row that is not this run's and could own a usage row an own call row can claim, wherever it lies (controls Y11, Y12a-c); - P2-2: the store is read only after the declared interval (window end, 3 s usage pad, 2 s settling) has elapsed on the host clock (waits up to 30 s, a further-ahead interval is INCONCLUSIVE; controls W1-W3b in real time); - P2-3: the canary gate requires the wrapper's canary header and the identity line in every arm and the receipt, all comparisons succeeding; result line scope=canary / scope=trial (controls D1-D6); - P2-4: the idle receipt's observed interval (start to end) must be 30 s or more and cover the declared clean_for (controls G11-G11g); - P2-5: Part E of the guard-5 controls ran the guard with its default port, so its read-only /api/usage/history requests reached the live gateway; every guard run now sits in a private network namespace with a stub of that endpoint (E0, E0b); the old controls and record move to superseded/ and the statements that no gateway request was sent are corrected; - r11: whole-table timestamps validated as calendar-valid stamps (not by shape); reserved records (RESULT with a tab or a leading space, a malformed SUMMARY, an empty FROZEN start=) refused and the canary's frozen request counts per arm (17, 6, 4, 8) required; an invalid script stamp is never rescued by another; numbers that cannot be compared (NaN, a negative value, a time to first token longer than the latency) refused; the trailing boundary closed by the exact check; one read snapshot; one run per guard receipt; - r11 P2-1 (the documented substitution residual): the census now reads the gateway's own journal, which logs one inbound-request line per request when it arrives whatever happens to its rows, and requires, from 4 s before the window to its end, exactly as many lines as own call rows, each paired with a line of the same path within 3 s (controls J1-J20; on the baseline arms 43 inbound requests against 26 own rows: the 17 dropped requests); the claim is narrowed to what that supports (a foreign request the gateway did not log, a lost own line balanced by a foreign line of the same path within 3 s of it or of a neighbouring own request's line, and an unlogged persistence failure stay outside); - independent adversarial review of the census before the push: 11 findings (2 P1: non-ASCII digits in a stamp hiding a foreign row, a printed min_rows and a different arm command trusted; 7 P2; 2 P3), all fixed fail-closed with controls F1a-F11 (checks/census-adversarial-reviews.txt); - a second independent adversarial review, of the journal check: 9 findings (1 P1, 5 P2, 3 P3; three false PASSes in the canary's scope: a foreign request up to 3.1 s before the window, a null message skipped silently, a lost line chained through the pairing), all fixed fail-closed (controls J12a-J20, J13j; checks/census-adversarial-reviews.txt); - P3: the protocol's chronology and R10c/N10b framing, the README's watches and control-run descriptions, the installed-candidate wording of the dependency graph. checks/census-negative-controls.txt runs the new controls against the censuses that were read (false PASSes on the first two; the second review's J12a, J12b, J13a-J13h, J16 and J19a on the third); 214 census control results, the 600-world property test and the census on the real rows rerun. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
… of 4624137 (2 P1, 5 P2, 9 P3): journal record anchored at the end of the lifecycle with start agreement, serving-process gate, enforced runner exit status, executable-prefix guard, a receipt that never reports an unobserved state as zero, smoke cleanup from the launch, a real-run gate No frozen script byte changed (git blobs f3712b6, 71215df, afcf63f, edefc1d as before; the patch is unchanged). The census (scripts/window-census.py.txt, not frozen; the complete diff is checks/census-delta-after-r12-read.txt), its controls, the guard, the three native test runners, the smoke and install scripts, the show-log receipt script and the texts that describe them change. - r12 P1-1 (a substituted usage row still PASSed): the arrival line is logged before the policy work, the credential refresh and the duration clock (src/sse/handlers/chat.ts:637 against open-sse/handlers/chatCore.ts:571 at OmniRoute c1e30b76), so no lead is a physical bound and control J12c itself expected the false PASS; the independent record is now anchored at the END of the lifecycle (the stream controller's stream-end line, whose time is where the rows are written, with the disconnect grace as the bounded tail of a drain), a matched usage row must have the clock start of its call row, J12c is INCONCLUSIVE (J22a-J22u, J23a-J23d); - r12 P1-2 (the serving child can restart under the persistent supervisor with MainPID and its start unchanged): the census establishes the serving process itself (listener, cgroup, start, writer of the request lines, the supervisor's restart strings and the child's startup banners, the holders of the store) and the journal's own limits (J24a-J24n, J25a-J25h); - r12 P2-1: the width of the residual is stated in estimated-start terms, the arrival's delay as unbounded (J27a-J27c); - r12 P2-2: drain-prototype (6), handler-e2e (3) and handler-e2e-session-tag (2) enforce each stage's test-runner exit status (checks/runner-exit-status-controls.txt: fails on 4624137, passes here); - r12 P2-3, P3-9: the show-log receipt reports an unavailable or empty systemctl/journalctl observation as unavailable and exits 2, and applies upstream's predicate to the parsed Environment (checks/show-log-receipt-controls.txt); - r12 P2-4: the guard (version 5, new sha256) requires the entrypoint and the shim to be regular files, symlinks resolved, readable and executable (K12-K19, E7; the census pins the repaired guard for the canary and accepts the earlier one for a trial: J29a, J29b); the whole G series including G9-G13 is rerun (checks/guard5-existing-controls-poller.txt); - r12 P2-5: the smoke (6) arms its cleanup at the launch (checks/smoke-initial-ps-control.txt); - r12 P3: E6 runs in the namespace; r10 and r11 are labelled delta reads everywhere and the lift condition is a FULL-scope read; the control inventory says which controls run the earlier version next to the current one; the build receipt's header names the retained paths; the journal command is printed on failure; the property test's expected-PASS bucket is described as including the documented residual worlds; the install comment names the committed shim; the real-run gate (scripts/real-run-gate.sh.txt) rejects the wrapper's test-only variables without changing its frozen bytes; the figures that earlier texts quoted have a published command and output (scripts/census-calibration.py.txt, checks/census-calibration-measurements.txt). - a third independent adversarial review of the census before the push (1 P1, 4 P2, 4 P3): a restart of the serving child was invisible (= r12 P1-2), the residual line claimed that no control observes its worlds, reserved words were recognised only after a prefix, two crashes without a receipt (5,000 digits, a NUL), no arrival lead at the range's end, the canary gate did not pin the wrapper's verdict mode and reads, and arrival lines were timed by journald's receive stamp (J28a-J28q); - A fourth independent adversarial review of the census (read-only Opus tester: 569 receipts in twelve families, 400 mutations of the journal entries, three real reads of the store and the journal and a read of the canary tarball's code; 0 P1, 2 P2, 7 P3) found that a Responses-over-WebSocket turn (the tarball ships dist/server-ws.mjs) writes neither an arrival line nor a stream-end line and is stamped at its start in both tables, so neither journal record covers it (a window that such a call row reaches is now INCONCLUSIVE, J30a-J30l, and the residual detail names it; a turn whose call row was lost as well stays a case of items (1) and (3)), two stale statements about the arrival range and a bound that r12 had refuted, and seven smaller points (console-only matching of the restart patterns and the stream marker, systemd.time spans, a partial-read warning of journalctl, the disconnect grace read as the gateway reads it, a missing _PID, the arrival line's clock, docstrings), fixed with J31a-J35c and X4; the reviewer's own cases were rerun against the fixed census. checks/census-negative-controls.txt runs the new controls against the censuses that were read, among them the one that r12 read (superseded/window-census-r13.py.txt); 336 census control results, the 600-world property test and the census on the real rows rerun. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…the command center's GPT read: 1 P1, 2 P2, 1 P3; 5f's FULL read r13: 2 P1, 5 P2, 5 P3): the canary's census accounts for every inbound request line since the serving process's start, a fixture run is never scope=canary, a manual journal scan that checks journalctl, a gate and a receipt that refuse what they cannot establish No frozen script byte changed (git blobs f3712b6, 71215df, afcf63f, edefc1d as before; the patch is unchanged). The census (scripts/window-census.py.txt, not frozen; the complete diff is checks/census-delta-after-r13-read.txt), its controls, the real-run gate, the show-log receipt script and the texts that describe them change; scripts/journal-save-failures.sh.txt (the manual journal scan) and the two native reproductions of 5f's read (scripts/late-end-reviewer-tests/) are new. - r13 P1 (command center; 5f r13-P1-1): control J22e recorded PASS for a NON-STREAMING foreign substitution, whose arrival line precedes its duration clock by more than the counted range (the lead is unbounded: the arrival is logged before the policy work, the credential refresh and the duration clock). For the canary every inbound POST line since the serving process's start now needs its own call row of its path, whatever its lead (a maximum matching: controls X6, J36a-J37g), and the journal must reach the start (each listener pid needs a startup banner from [its start - 1 s, its start + 120 s] and no entry dated more than 1 s before its start; its own startup banners are not restart evidence: J38a-J38i, J44a-J45b). J22e is INCONCLUSIVE. - 5f r13-P1-2: a successful HTTP stream persists its rows at the transform's flush and prints its stream-end line when the downstream reader has seen the terminal event, which an unread downstream queue delays without bound (5.75 s measured natively at default queues: checks/late-end-native-reproduction.txt, 5f's two node:test reproductions rerun here). The stream-end record is a second record and not a bound (the claims said otherwise and are restated), and a late-ending foreign stream is covered by the arrival matching (J40a-J40f). - r13 P2 (command center; 5f r13-P2-1): a run on a fixture /proc root (CENSUS_PROC_ROOT) reached scope=canary. It says scope=canary-fixture (or trial-fixture) now, as does a run whose journalctl, ss, systemctl or systemd-analyze is not the system's, and the protocol accepts only scope=canary (J39a-J39d, X7). - r13 P2 (command center; 5f r13-P2-2): the manual journal scan, a pipeline into grep -c, printed 0 when journalctl failed or read nothing. scripts/journal-save-failures.sh.txt checks journalctl's exit status and stderr, an empty read and the start timestamp, and says JOURNAL-UNAVAILABLE (exit 2: no acceptance, no queueing); 17 cases and real read-only runs on the host (checks/journal-save-failures-controls.txt, checks/journal-save-failures-live-read.txt). - 5f r13-P2-3: the real-run gate accepted a failed environment listing (a stand-in that exited 42 printed clean); it refuses it now (G9a-G9d; G9a-G9c fail on the gate as it was). 5f r13-P2-4: the show-log receipt accepted a partial journal read (journalctl exit 0 with `some journal files were not opened` on stderr); it prints it as unavailable and exits 2 (d3, d4). 5f r13-P2-5: the decision record, the README and the protocol are restated in terms of estimated starts, the counted ranges, the unbounded arrival lead and the late stream-end line. - P3: delta reads are no longer called full-scope reads (census-controls.py:10, guard5-controls.py:4, superseded/README.md:33); the protocol's inventory of the controls that run an earlier version (G13-G15 and W7-W12 are paired, G16 alone is current-only) and the record's four drain-prototype controls; a journal timeout keeps its stderr (X8); journal_events names its two clocks; one primary stream-end line per controller is not an invariant (J41a-J41d and the second native reproduction). - A fifth independent adversarial review of the census (one bounded read-only agent, Opus at maximum effort, five lenses on frozen copies: 318 census runs, 20,000 matcher instances, 18 resolution scenarios and value-free reads of the live host; 0 P1, 2 P2, 7 P3, `checks/census-adversarial-reviews.txt`) found that the user manager's own `Started omniroute.service` entry (the manager's cgroup, 2.09 s before the child's start) made the cgroup set two values, so a correct canary was INCONCLUSIVE in about nine switches in ten, that a forward wall-clock step against the boot clock moved the computed start past arrival lines that were in the journal while the coverage check accepted any entry within 120 s, and seven smaller points (a stale QUERY line, dropped lines that were not counted, the startup exemption per listener, a restart explained as missing lines, the trial's exemption, the controls' wording): all fixed (J43a-J45b, J38i, J39e, the property faults manager_start_entry, clock_step and listener_line_before_start; our check of the repair before the push found that a forward step under 1 s still passed the entry check and dropped a stand-in's arrival line, closed by refusing any request line of a listener dated before its own start: J44f); its 18 case worlds, the fourth review's 173 cases and its 60 fuzz worlds rerun on the repaired census (`checks/census-review5-regression.txt`): 8 of 251 verdicts changed, each one a finding of the review (5 false PASSes now INCONCLUSIVE, 3 INCONCLUSIVE answers to clean worlds now PASS), and the 3 FALSE-PASS that remain are cases whose descriptions mark them theoretical or residual; it found no route from fabricated evidence to an accepting `scope=canary`. checks/census-negative-controls.txt runs the new controls against the censuses that were read, among them the one that the read r13 read (superseded/window-census-r20.py.txt); 386 census control results, WORLDS 600: canary-detect: 110 of 110 as expected, canary-pass: 90 of 90 as expected, trial-detect: 174 of 174 as expected, trial-pass: 226 of 226 as expected, and the census on the real rows rerun. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
… P2, 1 P3) and the command center's ruling J757-R14-FIX: the canary's census refuses (and only refuses) an incarnation in which a request left several persisted attempt rows, a call row has no correlation id or shares one, or a path has call rows without a matched arrival line, and takes its coverage from the monotonic clock (the listeners' entries by boot and pid, a Next.js or Ready banner on the journal's monotonic stamp, no banner twice, the realtime minus monotonic offset of its entries, the service manager's monotonic start stamp); the emitted 0.2 s statement is a measurement, not a bound; the runner exit-status control says INVALID RUN when a parser fails No frozen script byte changed (git blobs f3712b6, 71215df, afcf63f, edefc1d as before; the patch is unchanged). The census (scripts/window-census.py.txt, not frozen; the complete diff from the census that the read r14 read is checks/census-delta-after-r14-read.txt), its controls, the runner exit-status control and the texts that describe them change; every window that PASSes on the census now PASSed on the one that the read r14 read and on the one that the independent review of round 25 read (checks/census-negative-controls.txt, result by result; the reviewer's 251 worlds: checks/census-review5-regression.txt). - r14 P1-1: an ordinary earlier request with several persisted attempt rows (a failed attempt, then the successful one, one correlation id) supplied a spare call row for a foreign request that left none: 45 arrival lines matched 45 rows, PASS at scope=canary. The incarnation is INCONCLUSIVE when two call rows share a correlation id (whatever their paths), when a call row of a path with arrival lines has none, and when such a path has call rows without a matched arrival line (the id is read only to refuse, whatever the paths; J46a-J46e, J48c). - r14 P1-2: after a forward step of the wall clock the bounded journal read omitted the true startup and a retained foreign arrival, and a later genuine `[DB] Driver` line satisfied the banner rule. The listeners' entries are also read by boot and pid with no wall-clock lower bound; coverage is a Next.js or Ready banner within 120 s of the process's start (on `/proc`'s clock, converted to the journal's by the kernel's suspended seconds), each banner kind once per pid, the realtime minus monotonic offset of the pid's entries varying by at most 1 s, the service manager's monotonic start stamp not later than the listener's start + 1 s, and every arrival line of the bounded read also in the pid read (J38j, J47a-J47k, J48a-J48d, X9). - r14 P2-1: the NOT-EXCLUDED line says that the 0.2 s is a measurement of one host, not a bound; the retained receipts are regenerated and the record's claim is corrected. r14 P3-1: scripts/runner-exit-status-controls.sh.txt requires the 11 stages and 66 cases and says INVALID RUN when a parser fails (its tool-failure wrapper runs a failing awk, sed, grep and wc). - The four partial priors (r13 P1-1, r13 P1-2, r13 P2-5, the command center's P1) are carried by P1-1, P1-2 and P2-1. - An independent adversarial review of the census of round 25 (one bounded read-only agent, Opus at maximum effort, five lenses on frozen copies: the controls' runs against both censuses, fixtures and a property run of its own, and the census's reading of the real incarnation; 0 P1, 0 P2, 8 P3, Review 6 in `checks/census-adversarial-reviews.txt`) found that the census of round 25 broke its claim `refusals only` in one narrow case (R25-1: an arrival line of the listener's pid that carries another boot's id, dropped by the read by boot and pid, was no longer counted, so a window that the census of the read r14 refused PASSed; the read by boot and pid must now hold every arrival line that the bounded read counts: J48a, J48b), and seven smaller points, all fixed or answered: the start from /proc is converted to the journal's monotonic clock by the kernel's suspended seconds (X9), a second `[DB] Driver` line stays refused with its true reason (a second database open can replace the store), the offset of every entry of the pid is compared with no ppm allowance (two opposite steps cancelled: J48d; restart the gateway after the host's last sleep, then run the canary), `without a matched arrival line` is what is counted, a correlation id shared by rows of different paths is refused (J48c), the controls' step worlds and the regression receipt say what they model, and the runner wrapper also refuses a failing wc. The repair is checked by the controls, the property test and the fifth review's 251 worlds (none of the verdicts changed from r25, one from r24: `checks/census-review5-regression.txt`), and was not reviewed again by the agent. - A fifth independent adversarial review of the census (one bounded read-only agent, Opus at maximum effort, five lenses on frozen copies: 318 census runs, 20,000 matcher instances, 18 resolution scenarios and value-free reads of the live host; 0 P1, 2 P2, 7 P3, `checks/census-adversarial-reviews.txt`) found that the user manager's own `Started omniroute.service` entry (the manager's cgroup, 2.09 s before the child's start) made the cgroup set two values, so a correct canary was INCONCLUSIVE in about nine switches in ten, that a forward wall-clock step against the boot clock moved the computed start past arrival lines that were in the journal while the coverage check accepted any entry within 120 s, and seven smaller points (a stale QUERY line, dropped lines that were not counted, the startup exemption per listener, a restart explained as missing lines, the trial's exemption, the controls' wording): all fixed (J43a-J45b, J38i, J39e, the property faults manager_start_entry, clock_step and listener_line_before_start; our check of the repair before the push found that a forward step under 1 s still passed the entry check and dropped a stand-in's arrival line, closed by refusing any request line of a listener dated before its own start: J44f); its 18 case worlds, the fourth review's 173 cases and its 60 fuzz worlds rerun on the repaired census (`checks/census-review5-regression.txt`): 8 of 251 verdicts changed, each one a finding of the review (5 false PASSes now INCONCLUSIVE, 3 INCONCLUSIVE answers to clean worlds now PASS), and the 3 FALSE-PASS that remain are cases whose descriptions mark them theoretical or residual; it found no route from fabricated evidence to an accepting `scope=canary`, and 5f's read r14 then found two, which round 25 closes (the repair of its L1-2 and L1-3 had accepted the repeatable `[DB] Driver` line from a bounded read after a clock step). checks/census-negative-controls.txt runs the new controls against the censuses that were read, among them the one that the read r14 read (superseded/window-census-r24.py.txt) and the one that the review of round 25 read (superseded/window-census-r25.py.txt); 408 census control results, WORLDS 600: canary-detect: 107 of 107 as expected, canary-pass: 93 of 93 as expected, trial-detect: 153 of 153 as expected, trial-pass: 247 of 247 as expected, and the census on the real rows and the real incarnation rerun. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
… P2, 4 P3) and the command center's ruling J757-R15-FIX: residual item (2) is stated in the census's own words in the record, the README and the protocol, with the command center's disposition; the protocol's retry rule is a fresh complete four-arm acceptance (smaller retries are diagnostic only) and says when a fresh incarnation is needed; the runner exit-status control counts the exit status of every pipeline stage; the stub gateway's unused row_delay_s is removed; the PR description asks for FULL-scope reads; the comparison with the census of round 25 names its exception. The census adds one refusal: the idle receipt's INFO line (the gateway's pending-request counter changing during the idle observation). No frozen script byte changed (git blobs f3712b6, 71215df, afcf63f, edefc1d as before; the patch is unchanged) and the census's property test is unchanged. What changes: the census (scripts/window-census.py.txt, sha256 4229f076...: 14 lines, one refusal, checks/census-delta-after-r15-read.txt) and its controls (G17a-G17e), the texts that state the residual and the recovery procedure, the runner exit-status control with its tool-failure wrapper, the stub gateway, and the retained receipts that carry dates. - r15 P2-1: the README and the decision stated residual item (2) as a lost own line balanced by a same-path foreign line within 3 s, per link of a chain; the census also passes a lost foreign arrival whose call row balances another foreign request that left no row, anywhere in the incarnation (control J37e; reproduced by 5f: 44 lines for 44 rows). The census's own sentence (UNTESTED-BOUNDARY-DETAIL) is now quoted verbatim in the README, the decision and the protocol, with the command center's disposition of 2026-10-07: accepted as a stated residual (two independent foreign anomalies in one incarnation and no loss of the canary's own lines), on two conditions: the acceptance record names it verbatim, and a window whose idle receipt shows a foreign arrival is INCONCLUSIVE. The census did the second condition for every check that can fail the idle receipt and for the window (G4, I2, C5, C7, J37c) but read nothing of the guard's INFO line, so the refusal is added: an idle receipt whose INFO line shows that the gateway's pending-request counter changed during the observation is INCONCLUSIVE (G17a, G17c, G17d; an unchanged or unreadable counter is not: G17b, G17e). - r15 P2-2: the protocol let an INCONCLUSIVE arm be repeated as a smaller invocation with the missing count, which cannot yield an acceptance ((17, 6, 4, 1) is INCONCLUSIVE, exit 2; a concatenated output is refused): a fresh complete four-arm acceptance (a new idle receipt, the four arms, a new census) replaces an arm, smaller retries are diagnostic only, and a fresh gateway incarnation is needed after a defect of the incarnation (a retained rowless arrival, a second database open, a clock step, several attempt rows, a missing or shared correlation id). - r15 P3-1: scripts/runner-exit-status-controls.sh.txt took the stage count from a wc whose status the arithmetic overwrote, so a wc that printed the right count and exited 42 was accepted. awk, sed, grep, wc, cut, tr, tail, paste, sha256sum and basename now run through one function that records any failed status whatever the tool printed, and the verdict is INVALID RUN; scripts/runner-exit-status-controls-tool-failure.sh.txt runs the control with each of them failing, silently and after printing the right result (20 of 20 refused; the control as read at r15, superseded/runner-exit-status-controls-read-r15.sh.txt, accepts the passthrough wc). This closes r14 P3-1. - r15 P3-2: the stub gateway's row_delay_s was documented and never used; it is removed (no control set it), the description says what the code does, and checks/stub-gateway-delta-r15.txt compares the two modules (the same abstract syntax tree apart from the removed statement); the receipts of the offline controls name the stub as read (superseded/stub-gateway-read-r15.py.txt). - r15 P3-3: the PR description asked for delta reads beside the full-scope lift condition; it now says that the lift's first part is a clean FULL-scope read (5f's r15 is one: no P1, six lines closed here) and that the command center asked for a delta check of those six lines. - r15 P3-4: the claim that every PASS of the census is also a PASS of the census of round 25 contradicted the suspend conversion (a process that started after a kernel suspend: round 25 refused it, R25-2); the refusals-only statement is relative to the census that the read r14 read, and the round-25 comparison holds on the tested corpus with that exception named. Census controls: 413 results (5f ran 406 of the earlier 408 and skipped J39c and J39e on purpose because they observe the live host; the five new ones are G17a-G17e); WORLDS 600: canary-detect: 107 of 107 as expected, canary-pass: 93 of 93 as expected, trial-detect: 153 of 153 as expected, trial-pass: 247 of 247 as expected; every PASS of the census is a PASS of the census that 5f's read r15 read (checks/census-negative-controls.txt, result by result; the new worlds G17a, G17c and G17d are the ones it refuses); the retained receipts are regenerated. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
… 1 P2, 1 P3) and the command center's ruling J757-R16-FIX: the census reads the activity-bearing fields of the idle receipt's INFO and sample lines by name, in any order (pending_changed=True on its own, two unequal totals without the flag, a reordered line, an incomplete, repeated, unreadable or contradictory counter, an active connection, a process of another lane and a recent call_logs row make the window INCONCLUSIVE); the runner exit-status control no longer exempts status 141; the disposition of residual item (2) is quoted word for word from the ruling. Refusals only: every PASS of the census is a PASS of the census that the delta check read. No frozen script byte changed (git blobs f3712b6, 71215df, afcf63f, edefc1d as before; the patch is unchanged) and the census's property test is unchanged. What changes: the census (scripts/window-census.py.txt, sha256 0502cfff...: 72 lines, checks/census-delta-after-r16-read.txt) and its controls (G17f-G17q; G17e now refuses), the runner exit-status control with its tool-failure wrapper (modes passthrough141 and sigpipe), the texts that quote the disposition, and the retained receipts that carry dates. - r16 P2-1: the census's refusal for the second condition (a window whose idle receipt shows any foreign arrival is INCONCLUSIVE) matched only when pending_total_before, pending_total_after and pending_changed stood consecutively in that order, and an unmatched INFO line added no problem, so INFO pending_changed=True alone, two unequal totals without the flag and the three fields reordered passed on an otherwise clean four-arm fixture. The fields of the INFO line and of every sample line are now read by name, in any order: the pending-request counter must be complete, readable and unchanged, no connection may be active, no process of another lane may run and no call_logs row may be younger than 120 s; a repeated, missing, unreadable or contradictory field is refused. Controls G17f (only the flag), G17g (only the totals), G17h (reordered), G17j (incomplete), G17k (contradictory), G17l and G17o (an active connection on the INFO line and on a sample line), G17n (a repeated field), G17p (a recent row) and G17e (unreadable, now refused) are INCONCLUSIVE; G17i (reordered, unchanged), G17m (no activity field) and G17q (a real-format clean receipt) PASS. The disposition of item (2) in the README, the decision and the protocol is now the ruling's text word for word. - r16 P3-1: producer() in scripts/runner-exit-status-controls.sh.txt exempted status 141 for every wrapped tool, so a wc or cut that printed the right result and then exited 141, or was killed by a real SIGPIPE, was accepted. The exemption is removed, the control's one pipeline with an early-exiting consumer is written without a pipe, and scripts/runner-exit-status-controls-tool-failure.sh.txt runs each of the ten tools in four modes (silent, passthrough, passthrough141, sigpipe): 40 of 40 refused; the control as read at r16 (superseded/runner-exit-status-controls-read-r16.sh.txt) accepts the wc and cut runs of the two new modes. Census controls: 425 results (413 at the head of the delta check r16: G17e changed its answer and the twelve G17f-G17q are new); WORLDS 600: canary-detect: 107 of 107 as expected, canary-pass: 93 of 93 as expected, trial-detect: 153 of 153 as expected, trial-pass: 247 of 247 as expected; every PASS of the census is a PASS of the census that 5f's delta check r16 read (checks/census-negative-controls.txt, result by result; the worlds it refuses beyond that census are G17e, G17f, G17g, G17h, G17j, G17l, G17n, G17o, G17p); the retained receipts are regenerated. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
… 1 P2) and the command center's ruling J757-R17-FIX: the receipt parser of the window census is fail-closed, as one class fix. Every line of the guard receipt is checked first: a line that starts with INFO must be the guard's INFO line exactly and a line that starts with `sample` its sample line exactly (every field once, in the guard's order, each with a value of its own shape, nothing before or after), any other line that carries an activity field is not in the guard's grammar, every activity field is matched on its own, and a second line that carries the pending-request counter is refused. Refusals only: every PASS of the census is a PASS of the censuses that 5f's reads r15, r16 and r17 read. No frozen script byte changed (git blobs f3712b6, 71215df, afcf63f, edefc1d as before; the patch is unchanged), and the census's property test and the runner exit-status control are unchanged. What changes: the census (scripts/window-census.py.txt, sha256 bf72161c...: 56 lines, checks/census-delta-after-r17-read.txt) and its controls (G17r-G17y and G18a-G18l; G17i and G17m now refuse what r28 read by name), the texts that state the grammar, and the retained receipts that carry dates. - r17 P2-1 (a): the generic name=value pattern let an empty unrelated field swallow the next assignment (INFO hindsight_processes= pending_changed=True, INFO hindsight_processes= connections_active=1 passed) and an empty activity value counted as absent (INFO pending_changed=, INFO connections_active= passed). Now receipt_grammar_problem (scripts/window-census.py.txt:1177) runs on every line of the receipt before any line leaves the loop of parse_guard (:1258): an INFO line must be exactly GUARD_INFO_LINE (:1172), a sample line exactly GUARD_SAMPLE_LINE (:1174), any other line that carries an activity field is refused, and every activity field is matched on its own (activity_values, :1161). Controls G17r, G17s, G17t, G17u, G17x, G17y and G18a-G18l are INCONCLUSIVE. - r17 P2-1 (b): the counter was checked line by line, so two complete but contradictory summaries (0 0 False, then 1 1 False) passed. A second line that carries the pending-request counter is refused, equal or not (G17v contradictory, G17w identical); the repeated sample fields are not counted (G17q passes). Census controls: 445 results (425 at the head of the delta check r17: the 20 new ones are G17r-G17y and G18a-G18l, and G17i and G17m changed their answer); WORLDS 600: canary-detect: 107 of 107 as expected, canary-pass: 93 of 93 as expected, trial-detect: 153 of 153 as expected, trial-pass: 247 of 247 as expected; every PASS of the census is a PASS of the censuses that 5f's reads r15, r16 and r17 read (checks/census-negative-controls.txt, result by result; the worlds it refuses beyond the census of r17 are G17i, G17m, G17r-G17y, G18a-G18f, G18h-G18l); the retained receipts are regenerated. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…6b5e929 (1 P1, 1 P2, 2 P3): one push, two changes. (1) The census keeps the IDENTITY line's pending_total, the same counter that the INFO line reads before and after the observation, and reconciles the three readings: an unreadable value (None, empty) or a readable disagreement with either INFO reading is INCONCLUSIVE, equal values (92/92/92) pass; an IDENTITY line that mentions pending_total must be the guard's native IDENTITY line exactly; at canary scope the reconciliation needs the counter on that line (a receipt whose IDENTITY line gives none cannot be reconciled: INCONCLUSIVE). (2) The canary gate needs exactly one INFO line (none or several: INCONCLUSIVE; a trial is not touched). Refusals only: every PASS of the census is a PASS of the censuses that 5f's reads r15, r16, r17 and r18 read. No frozen script byte changed (git blobs f3712b6, 71215df, afcf63f, edefc1d as before; the patch is unchanged), and the census's property test, the guard and the runner exit-status control are unchanged. What changes: the census (scripts/window-census.py.txt, sha256 90d5ceeb...: 30 lines, checks/census-delta-after-r18-read.txt) and its controls (G19a-G19n; the fixtures' guard writer writes the guard's quiet INFO line by default), the texts that state the rule, and the retained receipts that carry dates. - r18 P1: IDENTITY pending_total=0 followed by INFO 1 1 False passed at scope=canary, because the census kept only MainPID and ExecMainStartTimestamp from the IDENTITY line. The first IDENTITY line's pending_total is kept (scripts/window-census.py.txt:1270), the line must be the native one when it mentions pending_total (GUARD_IDENTITY_LINE :1175), and parse_guard reconciles the three readings after its loop (:1323). Controls G19a (0 then 1 and 1, canary: INCONCLUSIVE), G19b (92/92/92, canary: PASS), G19c (1 then 0 and 0, trial: INCONCLUSIVE), G19d (3/3/3, trial: PASS), G19e (None), G19f (empty), G19g (not the native line), G19k (the INFO line changes by itself too), G19l (pending_total named twice on the line), G19m (canary, a short IDENTITY line without the counter, :1508: INCONCLUSIVE), G19n (trial, the same line: PASS). The two clean real idle receipts of the live trial (checks/guard-live-trial.txt; a replay of recorded receipts, not a new run) read identity 92 and INFO 92/92 and reconcile with no problem. - r18 P2: a receipt with no INFO line was accepted in the canary path. The canary gate needs exactly one INFO line (:1506): G19h (canary, no INFO: INCONCLUSIVE), G19i (trial, no INFO: PASS), G19j (canary, two INFO lines: INCONCLUSIVE). Census controls: 459 results (445 at the head of the final delta check r18: the 14 new ones are G19a-G19n); WORLDS 600: canary-detect: 107 of 107 as expected, canary-pass: 93 of 93 as expected, trial-detect: 153 of 153 as expected, trial-pass: 247 of 247 as expected; every PASS of the census is a PASS of the censuses that 5f's reads r15, r16, r17 and r18 read (checks/census-negative-controls.txt, result by result; the worlds it refuses beyond the census of r18 are G19a, G19c, G19e, G19f, G19g, G19h, G19l, G19m); the retained receipts are regenerated. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
… of 9db475c (1 P1, canary_ok false): the census also refuses an IDENTITY line that carries an activity field. 5f found both changes of RULING-757-R19 fixed and one break of refusals only inside that diff: the guard's native IDENTITY pattern takes non-space values (unit, ExecMainStartTimestamp, running_prefix, BUILD_SHA, health), so an IDENTITY line such as `running_prefix=workers=2` (or connections_active=1, active_so_far=2, last_call_log_age_s=0 embedded the same way) fully matched it, was returned as accepted before the scan for activity fields and was skipped by the early `continue` for IDENTITY lines: the census that 5f's FINAL delta check r18 read refused such a line, the census of round 30 PASSed it at scope=canary. ONE condition, as the ruling orders (scripts/window-census.py.txt:1194, receipt_grammar_problem): the IDENTITY line is accepted only when `activity_values(line)` finds nothing as well (pending_total is not an activity field, so the guard's native line has none). Four controls, G20a-G20d: an otherwise clean four-arm receipt at canary scope whose running_prefix value carries workers=2, connections_active=1, active_so_far=2 or last_call_log_age_s=0: INCONCLUSIVE (exit 2) on the census of r18 and on the repaired census, PASS (exit 0) on the census of round 30. No frozen script byte changed (git blobs f3712b6, 71215df, afcf63f, edefc1d as before; the patch is unchanged), the census's property test, the guard and the runner exit-status control are unchanged, and every other census line is byte for byte as 5f read it (checks/census-delta-after-r19-read.txt is the one-line diff). What changes besides: the controls (G20a-G20d), the texts that state the rule and the retained receipts that carry dates. Census controls: 463 results (459 at the head 5f read: the 4 new ones are G20a-G20d); WORLDS 600: canary-detect: 107 of 107 as expected, canary-pass: 93 of 93 as expected, trial-detect: 153 of 153 as expected, trial-pass: 247 of 247 as expected; every PASS of the census is a PASS of the censuses that 5f's reads r15, r16, r17, r18 and r19 read (checks/census-negative-controls.txt, result by result over the 437 results that carry a verdict; the worlds it refuses beyond the census of r19 are G20a, G20b, G20c, G20d); the 251 worlds of the fifth review's harness show no verdict difference between r25 and r31 on nine cuts (checks/census-review5-regression.txt); the retained receipts are regenerated. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…: the recorded results only Window 2 of the canary at the frozen head def9e67 (5f's bounded delta check r20: ACCEPT, canary_ok=true) ran the frozen protocol v2 against 20128 only: the pre-switch control on the unpatched build (race 6 of 6 lost, race_discriminating=True), the required dry run, the guard (clean) and the switch at 2026-10-07T23:41:47Z (20128 MainPID 341 cf6748d04 -> 339027 2a41147b7, identity_ok=True; 20129 untouched), the receipts before and after, the idle receipt (clean), the four arms 23:45:41Z-00:22:40Z (the wrapper exited 0: raw 20 PASS, race 6 PASS, native 4 PASS, native two-request 8 PASS), the window census (CENSUS-RESULT PASS exit=0 problems=0 scope=canary: 43 inbound lines, 43 call rows, 43 usage rows, 0 foreign, no orphan) and the journal scans at the end and 30 minutes later (both journal_failed_to_save_call_log=0, exit 0). The switch stays. This commit adds only the recorded results: the 17 files checks/live-acceptance-canary-*.txt (the four arms, the idle receipt, the census receipt, the wrapper log, the switch record, the receipts before and after, the journal scans, the pre-switch controls of window 2 and of the stood-down window 1), their rows in checks/logs/MANIFEST.txt (the unshortened text is kept in the private artifact directory), the one README row that names them (the README reverse check requires it) and one dated update section of the decision record. No script, no control and no census byte changes; the registry commit follows last. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
… to the position after the canary (review thread PRRT_kwDOUg_LrM6pM_AO) Both still said the drain patch is a candidate that runs nowhere, that its canary is pending and that 20128 runs cf6748d04, after the canary passed on 2026-10-08 and 20128 switched to 2a41147b7 at 2026-10-07T23:41:47Z. Added a dated current-state block to the decision record, marked the 2026-10-05 position as such, and updated the running build ids, the adoption status, the PR 15167 head remark, the dependency-graph remark and alternative (C); the README opening says the canary passed. No script, control, census, patch or recorded-output byte changes. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
… (hot-file protocol: registry last) Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
|
Claude session native-agent-stack-5f: landing at head Observed main Required checks at this head: 7 pass . Unresolved review threads: 0. |
|
Claude session native-agent-stack-5f: post-merge observation. Landed as |
Scope
call_logsandusage_historyrows of clients that close the connection right after the terminal event (found on 2604 by the co-op, reproduced on NativeStack's 20128), adds the drain patch that fixes it (a change inopen-sse/utils/streamHandler.tsreusing upstream's owndrainCompletedToolHandoff, plus our six-test file) as a candidate that passed its canary on NativeStack's 20128 on 2026-10-08 and runs there (checks/live-acceptance-canary-*.txt), with its validation, build, install and boot-smoke evidence, and a live-acceptance protocol (version 2) with the scripts, guards and offline controls it needs; it also adds the dated 09-30 note on the serve supervisor dropping the child's console output and theOMNIROUTE_SHOW_LOG=1drop-ins on both NativeStack units (applied 2026-10-05 20:12Z).c9e8c2917027bbee67c6a1922915bfe642ee321e(content commit67ba4eb0215221a66365225765005ec456d94169: the decision record and the evidence README brought to the position after the canary, i.e. a dated current-state block, the running build ids, the adoption status, the PR 15167 head remark, the dependency-graph remark and alternative (C), for review thread PRRT_kwDOUg_LrM6pM_AO; registry commit last; no script, control, census, patch or recorded-output byte changes) supersedes205c1cd61(the canary's evidence push, content commit089b2082c: the recorded results of the canary only, i.e. the 17 fileschecks/live-acceptance-canary-*.txt, their rows inchecks/logs/MANIFEST.txt, one README row that names them and one dated update section of the record),def9e67a7(the canary's frozen head, accepted by 5f's bounded delta check r20 with canary_ok=true),9db475cf4(bounded delta check r19: 5f's bounded delta check and the command center's RULING-757-R20),6b5e929e(final delta check r18: 5f's FINAL delta check and the command center's RULING-757-R19),e5c8a7fd(delta check r17),51e446ddf(delta check r16),1004174e3(read r15: 5f's FULL read),115b885ba(read r14),ec4b489d9(read r13),4624137290(read in FULL scope by r12),41a671681(delta read r11),6b734c6bf(delta read r10),8f9d89662,04e505a5dandbcb09e8b8before them. The patch is unchanged (sha25674c0f449b5f0d6a6f435d875c876aed335c341601c7f23a22a4e0765e1ca2161, patched treeb7c6869001ce8bdd23e2e2352f48ce3058bc13d2); no frozen script byte changed (raw script 2.2, native script 2.1, the identity read-back, the wrapper and the raw baseline are byte-identical to every earlier head). Since9db475cf4(the bounded delta check r19) the census also refuses an IDENTITY line that carries any activity field (ONE condition:checks/census-delta-after-r19-read.txt, 1 line changed) and its controls gained G20a-G20d; since6b5e929e(the final delta check r18) the census reconciles the IDENTITY line's pending_total with both INFO readings (at canary scope the counter must be on the line) and the canary gate needs exactly one INFO line (checks/census-delta-after-r18-read.txt, 30 changed lines), its controls gained G19a-G19n and the controls' fixture writer writes the guard's quiet INFO line and its IDENTITY line by default; the runner exit-status control, the guard, the census's property test, the frozen scripts and the patch are byte for byte as that check had them; the record, the protocol, the README, these texts and the retained receipts changed too; new aresuperseded/window-census-r29.py.txtandsuperseded/window-census-r30.py.txt(the censuses as those two checks had them),checks/census-delta-after-r18-read.txtandchecks/census-delta-after-r19-read.txt. Earlier deltas (r17, r16, r15, r14 and before) are in the record and in thechecks/census-delta-after-r12-read.txtto-r17-read.txtfiles (each now holds the complete census diff to this head); the other retained receipts are regenerated from the census or rerun, with new dates. Base:origin/mainffd4b8508ae2494bf5bf7ed9df1932537dbb7ecfat the push (it moved since the previous push; the branch was rebased over it, 24 commits, no conflict; the previous base was36654a8174b5, after fix: except six next 16.3.5 advisories in the frozen macOS lock only #837, the osv fix for the frozen macOS lockfile, and Rules: a landscape candidate is finalized by its vendor's clean install and the vendor's own check #833).def9e67a7, which 5f's bounded delta check r20 accepted with canary_ok=true; window 1 was stood down for the owner's client update before any switch): the drain build2a41147b7has run as NativeStack's 20128 since 2026-10-07T23:41:47Z (that unit only; 20129 untouched). The frozen acceptance protocol (version 2) gave raw set PASS 20, race set PASS 6, native single-request turns PASS 4 and native tool-call turns PASS 8 (the wrapper exited 0), the window censusCENSUS-RESULT PASS exit=0 problems=0 scope=canary(43 inbound lines, 43 call rows, 43 usage rows, 0 foreign, no orphan) and two clean journal scans (journal_failed_to_save_call_log=0at the end of the acceptance and 30 minutes later). The recorded results arechecks/live-acceptance-canary-*.txt(evidence classlocal_integration: our frozen clients and the live gateway on the real host, a real switch and real provider requests; not an upstream test); the census's untested boundary stands as stated inchecks/live-acceptance-canary-census.txt. This is the first real live PASS of the census; whether it meets the command center's condition 3 of the lift is the command center's to say. The 2604 install and the landing of this PR are the command center's to cue. All six review threads of chatgpt-codex-connector are resolved (2026-10-08T02:03Z): each carries a reply that verifies its fix atc9e8c2917, and thread PRRT_kwDOUg_LrM6pM_AO also led to updating the decision record and the README, which still described the drain patch as an undeployed candidate after the canary.What the earlier reads found (
bcb09e8b8,04e505a5d,8f9d89662), and what this head does about eachThe two reads of
bcb09e8b8(5f's full-scope read: 1 P1, 4 P2, 3 P3; the command center's round-3 ruling: 1 P1, 5 P2, 9 P3), 5f's full-scope read of04e505a5d(1 P1, 8 P2, 5 P3) and his full-scope read of8f9d89662(0 P1, 6 P2, 8 P3) were each answered with a fix or a disposition for every item, every script defect reproduced by an offline control next to the right answer of the current version (checks/acceptance-controls*.txt); the scripts that measure changed, so the same-day baselines of the unpatched build were rerun, and no frozen byte changed after8f9d89662. The tables of those rounds are in the decision record, the README of the evidence folder andchecks/census-adversarial-reviews.txt. The build script's state: build script v5 (the clean-tree gate checks the exit status ofgit statusand enforcesgit diff --quiet; its real offline run ischecks/build-v5-results.txt).What the delta reads r10 and r11 found (
6b734c6bf: 0 P1, 5 P2, 3 P3;41a671681: 0 P1, 9 P2, 4 P3), and what this head does about eachBoth reads were delta reads by 5f (GPT-6 Astra max, 2026-10-06), canary_ok false; every item was fixed or answered in the following rounds (the pad of the usage rows, the journal as the second record of the inbound requests, the calendar-valid stamps, the trailing usage pad, the substitution residual and the width of the residual). The full tables of both reads are in the record (
checks/census-adversarial-reviews.txt) and the README; they were condensed here in round 29 to keep this description under 65,000 characters. No frozen byte changed (git blobsf3712b633,71215df2f,afcf63f29,edefc1db6); the controls that those reads asked for fail on the censuses that were read (checks/census-negative-controls.txt).What the full-scope read r12 of
4624137290found (5f, GPT-6 Astra max on a fresh thread, launched 2026-10-06 22:07Z, findings 22:50Z: 2 P1, 5 P2, 9 P3, canary_ok false), and what this head does about eachr10 and r11 were delta reads (what had changed since the earlier heads), not full-scope reads; the earlier texts called them full-scope (r12-P3-2), and r12 is the first full-scope read since r9. The command center's ruling on the residual (2026-10-06 22:04Z): the canary's acceptance may rest on the stated residual only if (1) the full-scope read has no P0 or P1 and every P2 is fixed or explicitly accepted by the command center, (2) the receipt states the residual verbatim as an untested boundary together with its evidence classes, and (3) acceptance needs one real live PASS (condition 3: the controls show that a PASS is possible, not that one happened; if every live arm is INCONCLUSIVE, the canary is not accepted: report it and stop); the lift condition is therefore a clean FULL-scope read of this head (r13). No frozen script byte changed (git blobs
f3712b633,71215df2f,afcf63f29,edefc1db6) and the patch is unchanged. The scripts and controls for eight of the findings (P2-2 to P2-5, P3-1, P3-7, P3-8, P3-9) were built in isolated worktrees (one builder for the native runners, the smoke and the real-run gate, one for the guard and the show-log receipt) and read by the coordinator before they were integrated; each control fails on the text that r12 read.src/sse/handlers/chat.ts:637againstopen-sse/handlers/chatCore.ts:571at OmniRoutec1e30b76), so no lead is a physical bound[STREAM], printed bylogStreaminstreamHandler.ts, independent of whether the rows persist; one primary line per controller, grouped with its post-abort echo), whose time is where the rows are written, with the disconnect grace (10 s by default,runtimeTimeouts.ts) as the bounded tail of a drain; every own call row needs a stream-end line of its provider and model whose implied start is within 0.25 s of its estimated start, and a matched usage row must share its call row's clock start (START-AGREEMENT, 0.25 s); the arrival lines are still counted, timed by the gateway's owntimefield; J12c is INCONCLUSIVE; a non-streaming foreign request is covered by neither record, and neither is a Responses-over-WebSocket turn (the canary tarball shipsdist/server-ws.mjs; its rows are stamped at the turn's start and it writes neither journal line): a window that a WebSocket call row reaches is INCONCLUSIVE (fourth review, J30a-J30l), and the receipt says so; J22a-J22u, J23a-J23dprocessSupervisor.mjs) while MainPID and its start time stay equal, so the census could read two incarnations as one_PID,_SYSTEMD_CGROUP), the supervisor's restart strings and the child's startup banners in the journal, and the holders of the store file; a listener younger than the window, a second writer or any restart evidence is INCONCLUSIVE; the journald limits (rate limit) are read and the peak rate must stay below a tenth of the burst; J24a-J24n, J25a-J25hscripts/census-calibration.py.txt,checks/census-calibration-measurements.txt); J27a-J27cdrain-prototype.sh.txt(6),handler-e2e.sh.txt(3) andhandler-e2e-session-tag.sh.txt(2) pass each stage's expected status and refuse a run whose counters match but whose status differs (EXIT STATUS VIOLATED; drain-prototype: 1 for A, N, N2 and A2, which expect failures, 0 for P and B2; handler-e2e 1 and 0; session-tag 0, 1 and 0);checks/runner-exit-status-controls.txtfails on4624137290and passes here; the success lines are unchangedshow-log-receipt.py.txtprintsunavailablewith a sanitized diagnostic and exits 2 for a failed or emptysystemctlorjournalctlobservation;checks/show-log-receipt-controls.txtruns the earlier and the repaired script in a private network namespace (28 runs)check_prefix()requiresbin/omnirouteandshim/lsofto be regular files, symlinks resolved, readable and executable by the guard's user; the guard's sha256 changes, and the census pins the repaired guard for the canary and accepts the earlier one for a trial (J29a, J29b); K12-K19 and E7 inchecks/guard5-controls.txt, the whole G series (G9-G13 included) inchecks/guard5-existing-controls-poller.txtsmoke.sh.txt(6) arms an EXIT trap at the launch and signals only a group observed as the child's own;checks/smoke-initial-ps-control.txtruns the whole script with a failing, a wrong and no firstpsand with TERM, INT and HUP while it pollsACCEPT_TEST_N_TWO_PRE) changes the real precontrol's request count in the frozen wrapperchecks/real-run-gate-control.txt)EnvironmentassignmentsBefore the push this head had a third independent adversarial review of the census (a read-only Opus tester with the controls' builders: 261 targeted runs in nine families and 2,300 random mutations: 1 P1, 4 P2, 4 P3: a restart of the serving child invisible to the census, a residual line that said no control observes its worlds, reserved words recognised only after a prefix, two crashes without a receipt, no arrival lead at the range's end, a canary gate that did not pin the wrapper's verdict mode and reads, arrival lines timed by journald's receive stamp), fixed with controls J28a-J28q and E26. A fourth independent adversarial review of the census (read-only Opus tester: 569 receipts in twelve families, 400 mutations of the journal entries, three real reads of the store and the journal and a read of the canary tarball's code; 0 P1, 2 P2, 7 P3) found that a Responses-over-WebSocket turn (the tarball ships dist/server-ws.mjs) writes neither an arrival line nor a stream-end line and is stamped at its start in both tables, so neither journal record covers it (a window that such a call row reaches is now INCONCLUSIVE, J30a-J30l, and the residual detail names it; a turn whose call row was lost as well stays a case of items (1) and (3)), two stale statements about the arrival range and a bound that r12 had refuted, and seven smaller points (console-only matching of the restart patterns and the stream marker, systemd.time spans, a partial-read warning of journalctl, the disconnect grace read as the gateway reads it, a missing _PID, the arrival line's clock, docstrings), fixed with J31a-J35c and X4; the reviewer's own cases were rerun against the fixed census. All recorded in
checks/census-adversarial-reviews.txt.What the read r13 of
ec4b489d9found (the command center's GPT read of 2026-10-07: 1 P1, 2 P2, 1 P3, canary_ok false; 5f's FULL read r13, GPT-6 Astra max on a fresh thread: 2 P1, 5 P2, 5 P3, canary_ok false), and what this head does about eachThe command center's four findings are 5f's P1-1, P2-1, P2-2 and P3-1, found independently by both reads; 5f's record adds eight more (P1-2, P2-3, P2-4, P2-5, P3-2 to P3-5). Both reads put the prior partials (r9-P2-1, r11-P2-1 through J22e; r12-P3-2 through the three labels; r12-P1-2 subject to the fixture root) into the same fixes.
incarnation_unmatched(), checked against a brute force over all assignments and scipy'smaximum_bipartite_matching, X6; J36a-J37g, J22e INCONCLUSIVE, J22f keeps the narrowest residual); the journal must reach the serving process's start (each listener pid needs a startup banner from [its start - 1 s, its start + 120 s] and no entry dated more than 1 s before its start, which is what a forward wall-clock step looks like; its own startup banners and the supervisor's restart lines just before its start are not restart evidence: J38a-J38i, J44a-J45b); item (1) of the ruling stays: an arrival line that was not logged or not kept (J36f), and item (2): a spare call row of its path (J37e)late_end_substitution); 5f's two node:test reproductions are rerun on the scratch tree of the patched composition (5.76 s late:checks/late-end-native-reproduction.txt,scripts/late-end-reviewer-tests/)CENSUS_PROC_ROOTreplaces the process evidence andscope=canarywas still possiblehost_fixture_reasons(): a run withCENSUS_PROC_ROOTset, or with ajournalctl,ss,systemctlorsystemd-analyzethat does not resolve to/usr/bin,/usr/sbin,/binor/sbin, saysscope=canary-fixture(ortrial-fixture) and the protocol accepts onlyscope=canary(J39a-J39d, X7); the same fabricated world on the host itself cannot PASS (J39c)journalctl ... | grep -c) prints 0 when journalctl fails or reads nothingscripts/journal-save-failures.sh.txt: journalctl's output goes to a file, its exit status, its stderr (the census's alarm words), an empty read and the start timestamp are checked before anything is counted;JOURNAL-UNAVAILABLE, exit 2, prohibits acceptance and queueing; D0 reproduces the old pipeline, C1-C13b the script (17 cases, C13 and C13b fail on the scan as it was:checks/journal-save-failures-controls.txt); real read-only runs on the host:checks/journal-save-failures-live-read.txtclean)checks/real-run-gate-control.txt, three runs)some journal files were not openedon stderr)unavailablewith the sanitized stderr, exit 2 (d3 fails on the earlier text, d4 keeps a benign stderr a genuine zero:checks/show-log-receipt-controls.txt)census-controls.py:10,guard5-controls.py:4andsuperseded/README.md:33journal_eventsnamed journald's stamp as the clock of every recordtime, validated against it; documented separatelyhandleErrorcalls print several)Before the push this head had a fifth independent adversarial review of the census (one bounded read-only agent, Opus at maximum effort: five lenses one after the other, the incarnation's false PASS, the fixture scope, regression and robustness, the liveness of a real canary, and the claims against the code): A fifth independent adversarial review of the census (one bounded read-only agent, Opus at maximum effort, five lenses on frozen copies: 318 census runs, 20,000 matcher instances, 18 resolution scenarios and value-free reads of the live host; 0 P1, 2 P2, 7 P3,
checks/census-adversarial-reviews.txt) found that the user manager's ownStarted omniroute.serviceentry (the manager's cgroup, 2.09 s before the child's start) made the cgroup set two values, so a correct canary was INCONCLUSIVE in about nine switches in ten, that a forward wall-clock step against the boot clock moved the computed start past arrival lines that were in the journal while the coverage check accepted any entry within 120 s, and seven smaller points (a stale QUERY line, dropped lines that were not counted, the startup exemption per listener, a restart explained as missing lines, the trial's exemption, the controls' wording): all fixed (J43a-J45b, J38i, J39e, the property faults manager_start_entry, clock_step and listener_line_before_start; our check of the repair before the push found that a forward step under 1 s still passed the entry check and dropped a stand-in's arrival line, closed by refusing any request line of a listener dated before its own start: J44f); its 18 case worlds, the fourth review's 173 cases and its 60 fuzz worlds rerun on the repaired census (checks/census-review5-regression.txt): 8 of 251 verdicts changed, each one a finding of the review (5 false PASSes now INCONCLUSIVE, 3 INCONCLUSIVE answers to clean worlds now PASS), and the 3 FALSE-PASS that remain are cases whose descriptions mark them theoretical or residual; it found no route from fabricated evidence to an acceptingscope=canary, and 5f's read r14 then found two, which round 25 closes (the repair of its L1-2 and L1-3 had accepted the repeatable[DB] Driverline from a bounded read after a clock step).What the read r14 of
115b885bafound (5f's FULL read, GPT-6 Astra max on the packaged worker: 2 P1, 1 P2, 1 P3, canary_ok false; the command center's ruling J757-R14-FIX), and what this head does about eachTwelve of the sixteen earlier findings are fixed in that read, four partial. The ruling prefers the smaller rule, so this head adds REFUSALS only: every window that PASSes on the census now PASSed on the census that the read read (
superseded/window-census-r24.py.txt); against the census that the independent review of round 25 read (superseded/window-census-r25.py.txt) the same holds on the tested corpus, but for a process that started after a kernel suspend (R25-2, X9).checks/census-negative-controls.txtcompares the runs of the same controls result by result and shows that the rebuilt worlds J46a, J46b, J47a and J47c PASS on that census;checks/census-review5-regression.txtreruns the fifth review's 251 worlds on r21, r24, r25 and r26 (from r24 to r26 one verdict changed, PASS to INCONCLUSIVE; from r25 to r26 none; none the other way) and 5f's own world builders against this census.scope=canary, also with the foreign stream's END 1,500 s latercall_logs, read only to refuse (rows are never merged into requests; a client can choose the id: one group in the store is a client that reused one); J46a-J46e, J48c, the property faults attempt_rows, null_corr_row and surplus_row; item (2) of the untested boundary is restated (a lost arrival line beside a request that left no row, one for one: J37e)[DB] Driverline (printed at every database open) satisfied the banner rule[DB] Driverline is no banner; the protocol's coverage claim and the fifth review's completion account are corrected; J38j, J47a-J47k, J48a, J48b, J48d, X9 (the reviewer's world rebuilt with a journalctl that honours the query bounds), the property faults repeated_banner, step_backward, unit_stamp_late and boot_mismatchwithin about 0.2 s of the rows of a completed requestwithout its qualification, beside the unbounded delay of the detail line; two retained receipts carried itchecks/census-baseline-real-data.txtandchecks/census-live-trial.txtare regenerated from the census; the record's claim that the description was restated everywhere is correctedcases as required 0 of 0VERDICT: INVALID RUN(exit 1) otherwise;scripts/runner-exit-status-controls-tool-failure.sh.txtruns it with a failing awk, sed, grep and wc (checks/runner-exit-status-controls.txt)The new rules read the real, unpatched incarnation as clean (
checks/census-live-incarnation-read.txt: one Next.js, one Ready and one[DB] Driverbanner of the listener, a constant realtime minus monotonic offset, the manager's start stamp before the child's, every call row with its own correlation id; the one incarnation problem left is the unpatched build's rowless lines). A clock step since the process's birth (restart the gateway after the host's last sleep, then run the canary), a second database open (the import route), a request with several attempt rows or a client that reuses a correlation id makes a canary INCONCLUSIVE: a liveness cost, stated in the protocol. Before the push this head had one bounded independent review of the new rules: An independent adversarial review of the census of round 25 (one bounded read-only agent, Opus at maximum effort, five lenses on frozen copies: the controls' runs against both censuses, fixtures and a property run of its own, and the census's reading of the real incarnation; 0 P1, 0 P2, 8 P3, Review 6 inchecks/census-adversarial-reviews.txt) found that the census of round 25 broke its claimrefusals onlyin one narrow case (R25-1: an arrival line of the listener's pid that carries another boot's id, dropped by the read by boot and pid, was no longer counted, so a window that the census of the read r14 refused PASSed; the read by boot and pid must now hold every arrival line that the bounded read counts: J48a, J48b), and seven smaller points, all fixed or answered: the start from /proc is converted to the journal's monotonic clock by the kernel's suspended seconds (X9), a second[DB] Driverline stays refused with its true reason (a second database open can replace the store), the offset of every entry of the pid is compared with no ppm allowance (two opposite steps cancelled: J48d; restart the gateway after the host's last sleep, then run the canary),without a matched arrival lineis what is counted, a correlation id shared by rows of different paths is refused (J48c), the controls' step worlds and the regression receipt say what they model, and the runner wrapper also refuses a failing wc. The repair is checked by the controls, the property test and the fifth review's 251 worlds (none of the verdicts changed from r25, one from r24:checks/census-review5-regression.txt), and was not reviewed again by the agent.What the reads r15 and r16 found (
1004174e3: 5f's FULL read, 0 P1, 2 P2, 4 P3;51e446ddf: 5f's delta check, 0 P1, 1 P2, 1 P3), and what this head does about eachThe ruling J757-R15-FIX closed six lines and disposed of one boundary; the delta check r16 found four closed (P2-2, P3-2, P3-3, P3-4) and two not (P2-1, P3-1). P2-1 the maintained record stated residual item (2) more narrowly than the census permits: the census's own sentence (UNTESTED-BOUNDARY-DETAIL) is quoted verbatim in the README, the decision and the protocol, each followed by the command center's disposition quoted word for word (accepted as a stated residual; the acceptance record names it, and a window whose idle receipt shows any foreign arrival is INCONCLUSIVE); P2-2 the smaller retry of an INCONCLUSIVE arm cannot produce an acceptance: a fresh complete four-arm acceptance (new idle receipt, four arms, new census) replaces an arm; P3-1 (runner exit-status control) every pipeline stage's exit status counts, no status exempt since r16: the tool-failure wrapper runs each of ten tools in four modes, 40 of 40 refused (the controls as read at r15 and r16 are
superseded/runner-exit-status-controls-read-r15.sh.txtand-read-r16.sh.txt); P3-2 the stub gateway's unusedrow_delay_sis removed; P3-3 this description asks for FULL-scope reads for the lift; P3-4 the refusals-only statement names its exception (R25-2). The full text of each finding is in the record.What the delta check r17 of
e5c8a7fdfound (5f's delta check, GPT-6 Astra max on the packaged worker: 0 P1, 1 P2, canary_ok false; the command center's ruling J757-R17-FIX), and what this head does about eachr16-P3-1 is fixed in that check (no status-141 exemption anywhere); r16-P2-1 is narrowed to two gaps of the census's by-name scan of the idle receipt: (a) (
scripts/window-census.py.txt:1166) the generic name=value pattern let an empty unrelated field swallow the next assignment (INFO hindsight_processes= pending_changed=TrueandINFO hindsight_processes= connections_active=1passed) and counted an empty activity value as absent (INFO pending_changed=,INFO connections_active=); (b) (:1267) the counter was checked line by line, so two complete but contradictory summaries (0 0 False, then1 1 False) passed. The ruling returns them as ONE class fix and makes the delta check r18 the last round: with no P1 the canary is released on 5f's row and the command center's word, and any further receipt-grammar finding is recorded as a bounded residual here.The census is fail-closed now (
scripts/window-census.py.txt, sha256bf72161c...;checks/census-delta-after-r17-read.txt, 56 changed lines; every PASS is a PASS of the censuses that the reads r15, r16 and r17 read; the frozen bytes, the patch, the property test and the runner control are unchanged). The grammar isGUARD_INFO_LINE(:1172) andGUARD_SAMPLE_LINE(:1174), the classifier isreceipt_grammar_problem(:1177), andparse_guard(:1253) calls it on EVERY line of the receipt before any line leaves its loop (:1258): a line that starts with INFO must be the guard's INFO line exactly (every field once, in the guard's order, each with a value of its own shape, nothing before or after), a line that starts withsampleits sample line exactly, and any other line that carries an activity field is refused; every activity field is matched on its own (activity_values,:1161), so no assignment hides another and an empty value is unreadable; a second line that carries the pending-request counter is refused, equal or not. On a matching line the counter must be complete, readable and unchanged, no connection may be active, no other lane may run and no call_logs row may be younger than 120 s.Controls: G17r-G17y (the regressions of the check: an empty unrelated value swallowing
pending_changed=Trueorconnections_active=1, an emptypending_changedorconnections_active, two contradictory and two identical counter summaries, a key written in quotes, an empty unrelated value beside no activity field) and G18a-G18l (the grammar: a missing, unknown or malformed INFO field, a malformed sample line, an activity field on the IDENTITY, GUARD or CHECK line, garbage before INFO, a lowercase prefix, one space at either end); G17i and G17m now refuse what census r28 read by name; every control of G17 and G18 is INCONCLUSIVE except G17b and G17q.What the final delta check r18 of
6b5e929efound (5f's FINAL delta check, GPT-6 Astra max on the packaged worker: 1 P1, 1 P2, 2 P3, canary_ok false; the command center's RULING-757-R19), and what this head does about eachThe class fix of round 29 holds ((a) and (b) fixed; refusals only against the reads r15, r16 and r17; frozen, patch, property test, guard and runner control unchanged). One P1 (
scripts/window-census.py.txt:1290): the bounded residual that this description disclosed, "the IDENTITY line's pending_total is not reconciled", was not accepted: the guard prints IDENTITY, whosepending_totalis the same pending.byAccount counter, then reads the counter before and after its observation for INFO, and the census kept only MainPID and ExecMainStartTimestamp from the IDENTITY line, soIDENTITY pending_total=0thenINFO 1 1 False, a visible increase inside the receipt's interval, passed at scope=canary. One P2 (scripts/window-census.py.txt:1311): a receipt with no INFO line is accepted in the canary path (5f classifies the missing line as a bounded P2); his two P3 (a decorated activity field; sample timestamps checked by shape) are recorded below as residuals. The ruling (one push, two changes, nothing else; the delta check of that diff only is the end of the rounds): reconcile the IDENTITY counter with both INFO readings at canary scope (read fail-closed: a counter that is absent from the IDENTITY line, or on a line that is not the native one, cannot be reconciled and is refused), and require exactly one INFO line at canary scope.The census now (
scripts/window-census.py.txt, sha25690d5ceeb...;checks/census-delta-after-r18-read.txt, 30 changed lines; every PASS is a PASS of the censuses that the reads r15, r16, r17 and r18 read; the frozen bytes, the patch, the property test, the guard and the runner control are unchanged): the first IDENTITY line'spending_totalis kept (:1270); an IDENTITY line that mentions it must be the guard's native IDENTITY line exactly (GUARD_IDENTITY_LINE:1175); after the loop ofparse_guard(:1323) the three readings are reconciled: an unreadable value (None, empty) is an unknown observation and a readable disagreement with either INFO reading is INCONCLUSIVE, equal values (92/92/92) pass; at canary scope the reconciliation needs the counter on the IDENTITY line (:1508), and the canary gate needs exactly one INFO line (:1506); a trial is not touched. Replayed on the two clean real guard receipts ofchecks/guard-live-trial.txt(guard 5 before the repair of round 13; recorded receipts, not a new run) the census reads identity 92 and INFO 92/92 and reconciles with no problem (the replay is inchecks/census-delta-after-r18-read.txt). Controls G19a-G19n: the native-format identity-to-INFO cases (0 then 1 and 1: INCONCLUSIVE; equal values: PASS, at canary scope), the other direction and an equal non-zero case at trial scope, an unreadable or empty identity counter, a line that is not the native IDENTITY line (or names pending_total twice), no INFO line (canary: INCONCLUSIVE; trial: PASS), two INFO lines (canary: INCONCLUSIVE) and a short IDENTITY line without the counter (canary: INCONCLUSIVE; trial: PASS); the controls' fixture writer writes the guard's quiet INFO line and its IDENTITY line (pending_total=0) by default, so the canary-scope worlds of the controls and of the property test carry the two lines that the gate needs.Bounded residuals (the ruling's rule for anything outside the changed lines; also in the record): 5f's P3s of round 18 (ANSI-decorated or obfuscated field names are not recognised unless the line starts with INFO or
sample; the sample lines' timestamps are checked by shape only); the grammar is guard 5 asscripts/pre-switch-guard.py.txtprints it (the census accepts the receipt of that script, sha2565c8ccf3f..., and, for a trial only, of the script before the repair of round 13, sha25662dea3d2...); no census can prove who wrote a receipt.What the bounded delta check r19 of
9db475cf4found (5f's bounded delta check, GPT-6 Astra max on the packaged worker: 1 P1, canary_ok false; the command center's RULING-757-R20), and what this head does about itBoth changes of RULING-757-R19 are fixed (the reconciliation at
:1270,:1323and:1508, exactly one INFO line at:1273and:1506; 0/1/1 and 1/0/0 INCONCLUSIVE, 1/1/1 and 92/92/92 PASS at canary scope), and the frozen blobs, the property test, the guard and the runner control are unchanged. One P1 (scripts/window-census.py.txt:1187): the new IDENTITY branch ofreceipt_grammar_problemcomes before the scan for activity fields, andGUARD_IDENTITY_LINEtakes non-space values for unit, ExecMainStartTimestamp, running_prefix, BUILD_SHA and health, so an IDENTITY line withrunning_prefix=workers=2(orconnections_active=1,active_so_far=2,last_call_log_age_s=0embedded the same way) fully matched it, and the earlycontinueofparse_guardfor IDENTITY lines skippedactivity_problems: an otherwise clean four-arm receipt with only that change is exit 2 on the census of round 29 and exit 0 at scope=canary on the census of round 30, a break of refusals only (5f: a malformed producer input, which the guard never prints). The ruling (exactly one condition and four controls, then one check bounded to that condition, no further repair round without a new ruling): refuse the IDENTITY line whenactivity_values(line)finds anything.The census now (
scripts/window-census.py.txt, sha2562ec9a649...;checks/census-delta-after-r19-read.txt, ONE line changed; the cumulative diff to the census of round 29 stays 30 lines): the IDENTITY branch ofreceipt_grammar_problemaccepts a line only when it fully matchesGUARD_IDENTITY_LINE, namespending_totalonce andactivity_values(line)finds nothing (:1194;pending_totalis not an activity field, so the guard's native line has none). Controls G20a-G20d: an otherwise clean four-arm receipt at canary scope whose running_prefix value carriesworkers=2,connections_active=1,active_so_far=2orlast_call_log_age_s=0: INCONCLUSIVE (exit 2) on the census of round 29 and on this one, PASS (exit 0) on the census of round 30 (the run against the census of round 29 lists them as UNEXPECTED by expected text only: that census refuses them by its own rule for a line that carries an activity field, with another message). Refusals only: every PASS of the census is a PASS of the censuses that 5f read at r15, r16, r17, r18 and r19 (per result,checks/census-negative-controls.txt); the 251 worlds of the fifth review's harness show no verdict difference between r25 and r31 on nine cuts (checks/census-review5-regression.txt); the property test (unchanged) shows 0 disagreements in 600 worlds and in two more seeds of 900.The census control count of this description (463 results) is higher than the reviewer's 406 (it ran 406 of the earlier 408): it counts J39c and J39e, which observe the live host (read-only) and which the reviewer skipped on purpose, and the fifty-five new scenarios G17a-G17y, G18a-G18l, G19a-G19n and G20a-G20d (G17a-G17e since round 27, G17f-G17q since round 28, G17r-G18l since round 29, G19a-G19n since round 30, G20a-G20d since round 31).
SOTA sources
OmniRoute upstream, https://github.com/diegosouzapw/OmniRoute, at
0585aba5589d5a1f49243a13a8db249558e7c9e3(the composition's tree; the same files read at release/v3.8.5223a114848):open-sse/utils/streamHandler.ts(cancel()L842-852; the reference implementationdrainCompletedToolHandoffL665-688),open-sse/utils/stream.ts(flush()and the otheronCompletecall sites),open-sse/utils/streamFailureBoundary.ts,open-sse/utils/streamFailureFinalization.ts,open-sse/handlers/chatCore.ts(onStreamComplete, L3113-3114),open-sse/handlers/chatCore/attemptLogging.ts,open-sse/services/conversationTracker.ts(resolveConversationId: a client-suppliedX-OmniRoute-Session-Idis stored outright as the call log's session tag, upstream #8249),bin/cli/runtime/processSupervisor.mjs,bin/cli/commands/serve.mjs; merged prior work #5491, #10608 and #14342 (read through the GitHub API); open issues #13597 and #15030 (artifact worker only; none for this drop). Verbatim excerpts and their per-excerpt check:checks/source-lines.txt,checks/source-lines-check.txt.Codex CLI 0.159.3:
codex exec --json(itsturn.completedusage is the client-side truth the native completeness check compares with) and-c model_providers.<id>.http_headers(the per-turn header); verified by native execution against the live gateway and a stub (checks/native-usage-calibration.txt,checks/acceptance-controls.txtN1).The patch follows upstream's own pattern in the same file, for a gap demonstrated on two hosts, with a removal condition in the decision record; it is not a rebuild of anything upstream ships. Tests run with upstream's own runner flags and release scripts; the acceptance scripts, their stub and the guard are our own glue for a demonstrated gap (no upstream harness exists for gateway-store acceptance of this kind), checked by offline controls.
Independent request record: the gateway's own journal line per inbound request (the composition tree's HTTP log,
📥 POST), read with systemd 255journalctl --user -u omniroute.service -o json --all(without--all, journalctl writes a field over 4096 bytes as null: journalctl(1)) and--since/--untilwith an explicitUTCsuffix; its arrival times against the call rows' timestamps minus durations were measured on this host (416 rows: median offset 11 ms, p99 0.28 s) before the 3 s pairing width was chosen.Serving process and journal limits (r12 P1-2): the listener from
ss -Hltnp(ss(8)), the process start from/proc/<pid>/statfield 22 and/proc/uptimeand the cgroup from/proc/<pid>/cgroup(proc(5)); the journald rate limit fromsystemctl --user show -p LogRateLimitIntervalUSec -p LogRateLimitBurstandsystemd-analyze cat-config systemd/journald.conf(systemd.exec(5), journald.conf(5): defaults 30 s and 10,000 messages; the user manager cannot read the system journal's suppression notices, which is stated); the stream-end line (logStreaminopen-sse/utils/streamHandler.ts), the supervisor's restart strings (bin/cli/runtime/processSupervisor.mjs:179-207) and the disconnect grace (open-sse/config/runtimeTimeouts.ts:48) are read at OmniRoutec1e30b76, the build under test; the figures the parameters rest on are measured on this host (checks/census-calibration-measurements.txt).The by-hand journal scan (r13 P2): the pipeline status of a shell pipeline is the last command's (GNU Bash manual, Pipelines;
grep -cexits 1 for a count of 0), journalctl(1) of systemd 255 (exit status; stderr for data it skipped; an unknown unit or a start in the future prints nothing and exits 0, reproduced on this host:checks/journal-save-failures-live-read.txt), anddate -dfor the start timestamp; the script is our glue for a demonstrated gap with a control that reproduces the defect (D0).The late stream-end line (5f's r13 P1-2 and P3-5): the stream controller and transform of OmniRoute
c1e30b76(open-sse/utils/stream.tsflush,open-sse/handlers/chatCore.tsusage recording,open-sse/utils/streamHandler.tslogStream,handleErrorandhandleComplete) and upstream's own node:test runner with the flags ofscripts/drain-prototype.sh.txt; two reviewer-written tests rerun (checks/late-end-native-reproduction.txt).Hermetic controls: the guard-5 controls' Part E runs in a private network namespace made with util-linux
unshare --map-root-user --net(user_namespaces(7), network_namespaces(7): the kernel's own isolation primitive, no tool of ours), with a stub of the one endpoint the guard reads; the new census controls run against the censuses that were read (negative controls,checks/census-negative-controls.txt).Row attribution (the census gate): scipy 1.18.1
scipy.sparse.csgraph.maximum_bipartite_matching(Hopcroft-Karp; https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.csgraph.maximum_bipartite_matching.html) is the cross-check oracle inchecks/census-controls.txt(X3; run withuv run --with scipy==1.18.1 --with numpy==2.5.3); the census's own matching is the standard augmenting-path algorithm with the edge-removal test for uniqueness (a perfect matching is the only one exactly when removing any single edge of it leaves no perfect matching), checked against scipy and an exhaustive brute force. The census is our glue for the command center's ruling (no upstream harness reconstructs gateway-store request attribution); the association rule it applies is the frozen scripts' own, copied byte for byte and checked against them in the controls.Evidence-class table
cancel()stops the transform beforeflush(), the normal completion path toonComplete; the failure routes toonStreamCompleteare not taken; no code path throwssource_reviewchecks/source-lines.txt,checks/source-lines-check.txt(28 of 28 excerpt ranges identical at the tag and at0585aba55)response.completedis mostly not logged, and nativecodex execturns lose rows: the race set lost 5 of 6 requests (the gateway's pending-request counter rose by 5 across the run), the raw set'sresponses:early:0requests 2 of 2, the nativeastra-maxturns left 3 of 4 judged turns incomplete (rows missing against the client's own usage) and the native tool-call turns 7 of 8 (the final request's rows lost); the other raw modes wereresponses:eof(0 of 1 lost),responses:early:0.5(0 of 1 lost),responses:early:2(0 of 1 lost),chat:eof(0 of 1 lost),chat:early:0(0 of 2 lost).local_integration(our clients; metadata-only reads of the live store)checks/pre-patch-repro-20128.txt,checks/live-acceptance-baseline-*.txt,checks/native-usage-calibration.txtlocal_integration(our six tests on synthetic fixtures)checks/drain-prototype-results.txt,checks/drain-prototype-controls.txt,checks/logs/MANIFEST.txthandleChatpath with a stubbed upstream, a client that closes right after the terminal event ends with both rows with the patch (5 of 5 scenarios, incl. Chat Completions) and, in 4 of 5, with none without itlocal_integrationchecks/handler-e2e-results.txtand its two controlsX-OmniRoute-Session-Idstored as the row'ssession_tag) works through the realhandleChatpath with a stubbed upstream on the unpatched composition (4 of 4) and on the patched tree (4 of 4); with another header name the three tag assertions fail (the oracle discriminates)local_integrationchecks/handler-e2e-session-tag-results.txtand its logsBUILD_SHA, shim hash and drain marker (also on a host without the NativeStack layout), a scratch boot answers/api/healthon loopback with an API key requiredlocal_integration(upstream's own scripts; our scripts' checks have controls)checks/build-results.txt,checks/install-results.txt,checks/smoke-results.txtlocal_integration(synthetic fixtures; no gateway traffic)checks/acceptance-controls.txt,checks/acceptance-controls-v1-reproduction.txtmaximum_bipartite_matching; guard 5 parsesssstrictlylocal_integration(synthetic fixtures; scipy is upstream, the controls are ours)checks/census-controls.txt,checks/guard5-controls.txt,checks/guard5-existing-controls.txtlocal_integration(the controls run the earlier text next to the fixed one on fixtures and fixture logs; no gateway traffic)checks/runner-exit-status-controls.txt,checks/real-run-gate-control.txt,checks/smoke-initial-ps-control.txt,checks/guard5-controls.txt,checks/guard5-existing-controls-poller.txt,checks/show-log-receipt-controls.txtlocal_integration(our clients and tools, the live gateway's metadata)checks/census-baseline-real-data.txt,checks/census-live-trial.txt,checks/guard-live-trial.txtscope=canary)local_integration(synthetic fixtures; scipy'smaximum_bipartite_matchingand a brute force are the oracles for the matching, X6)checks/census-controls.txt(J22e, J36-J41, X6-X8),checks/census-property-test.txt,checks/census-negative-controls.txtlocal_integration(two reviewer-written node:test files rerun on the scratch tree of the patched composition with upstream's runner; a stubbed upstream, no network)checks/late-end-native-reproduction.txtlocal_integration(fakes of journalctl and systemctl: 17 cases) andnative_provenfor six read-only runs of the host's own journalctlchecks/journal-save-failures-controls.txt,checks/journal-save-failures-live-read.txtchecks/live-acceptance-canary-*.txt(added after the switch)Local commands run
python3 scripts/validate.py→ {"components": 69, "hashed_files": 10810, "profiles": 4, "receipts": 226, "status": "passed"};python3 scripts/validate_convergence.py --all-recorded→ record[31]: valid; gitleaks (pre-commit, its per-user lock retried by the commit script) → the commit succeeded; the commit script fetchedorigin/mainand, if it had moved, rebased the branch over it (ffd4b8508ae2494bf5bf7ed9df1932537dbb7ecf: 24 commits replayed, no conflict) before registering the evidence folder. A dry run of the registration and both validators in a scratch clone ran first.uv run --no-project --with scipy==1.18.1 --with numpy==2.5.3 python census-controls.py→ exit 0, 463 results (the reproductions of r12, of the third and fourth reviews, of the read r13, of the read r14, of the read r15, of the delta check r16, of the delta check r17, of the final delta check r18 and of the bounded delta check r19: J22a-J47k, J48a-J48d, G17a-G17y, G18a-G18l, G19a-G19n, G20a-G20d; the earlier Y, D, G, W, K, P, R, S, F and J scenarios), every scenario as expected (X1: parity checks against the frozen scripts' source; X2:associated()on 40,000 pairs; X3: the matching against a brute force and scipy'smaximum_bipartite_matching; X4: the span and grace parsers; X5: the census's line grammar and grouping on the real stream-end lines of the drain-patched and the unpatched tree; X6: the incarnation's matching of inbound lines to call rows against a brute force and scipy on 6,000 random instances; X7:host_fixture_reasons(); X8: a journalctl timeout keeps its stderr; every world's journal carries_BOOT_IDand__MONOTONIC_TIMESTAMPand every call row its own correlation id; J47 runs a journalctl that honours the query bounds).census-property-test.py --seed 757 --worlds 600→ WORLDS 600: canary-detect: 107 of 107 as expected, canary-pass: 93 of 93 as expected, trial-detect: 153 of 153 as expected, trial-pass: 247 of 247 as expected (the faults of the rounds after r12 and the canary's scope; since round 25 seven more canary-only faults, attempt rows, a row without or with a shared correlation id, a surplus row, a repeated banner, a backward clock step, a late unit stamp and another boot, and two more seeds of 900 worlds each with 0 disagreements: one world in three is the four arms, and its ground truth adds the incarnation: a non-streaming substitution, a late-ending successful stream, an arrival line with no call row and a journal that does not reach the start are detected there and are the documented trial residual in a trial).guard5-controls.py(K1-K19 on records captured on this host and on scratch prefixes; E0, E0b and E1-E7 with shims inside a private network namespace) → every scenario as expected, its receipt regenerated from a fresh run (the docstring saysdelta read r10);run-controls.py --only G(G1-G16 with the repaired guard under test, G9-G13 in a transient systemd scope) → none unexpected (checks/guard5-existing-controls-poller.txt).runner-exit-status-controls.sh(66 of 66 cases and 11 stages,INVALID RUNotherwise; its-tool-failure.shwrapper refuses each of awk, sed, grep, wc, cut, tr, tail, paste, sha256sum and basename failing, silently, after printing the correct result, after printing it and exiting 141 and after printing it and a real SIGPIPE: 40 of 40 runs; the stub gateway's unusedrow_delay_sis removed:checks/stub-gateway-delta-r15.txt),smoke-initial-ps-control.sh,real-run-gate-control.sh(30 cases; three runs: no gate, the repaired gate, the gate as the read r13 read it, which fails G9a-G9c),show-log-receipt-controls.py(32 runs, d3 and d4 new, plus Part R),journal-save-failures-controls.sh(17 cases; C13 and C13b fail on the scan before its empty-read rule) → each as required.JOURNAL-UNAVAILABLE, and the live unit's count ofFailed to save call logsince its start is 0 (checks/journal-save-failures-live-read.txt); 5f's two node:test reproductions rerun on the scratch tree of the patched composition (checks/late-end-native-reproduction.txt).--diagnosticover the four baseline arms of 2026-10-06 (11:50-12:22Z, unpatched build) → exit 2 as designed; the live trial of 2026-10-06 17:20:02-17:26:36Z on the quiet unpatched 20128: arm A alone and A+B+C → exit 2 (checks/census-baseline-real-data.txt,checks/census-live-trial.txt); the calibration script over 2026-10-05 22:00Z to 2026-10-06 23:30Z →checks/census-calibration-measurements.txt(read-only; the store holds 0 Responses-over-WebSocket rows).41a671681, the one before the second review, the one that r12 read, the one that the fourth review read the one that the read r13 read,superseded/window-census-r20.py.txt, the one that the fifth review read, the one that the read r14 read,superseded/window-census-r24.py.txt, and the one that the independent review of round 25 read,superseded/window-census-r25.py.txt, and the one that 5f's read r15 read,superseded/window-census-r26.py.txt, the one that 5f's delta check r16 read,superseded/window-census-r27.py.txt, and the one that 5f's delta check r17 read,superseded/window-census-r28.py.txt, and the one that 5f's FINAL delta check r18 read,superseded/window-census-r29.py.txt, and the one that 5f's bounded delta check r19 read,superseded/window-census-r30.py.txt) → the new scenarios report FALSE PASSes (and every PASS of the current census is a PASS of the census that the read r14 read: asserted per result; against the last six the same holds on that corpus, but for a process that started after a kernel suspend (round 25's census), for the idle receipt's pending-request counter (round 27, against the census that the read r15 read: G17a, G17c, G17d) and for the idle receipt's INFO and sample lines read by name (round 28, against the census that the delta check r16 read: G17e, G17f, G17g, G17h, G17j, G17l, G17n, G17o, G17p) and for the fail-closed grammar of the receipt (round 29, against the census that the delta check r17 read: G17i, G17m, G17r-G17y, G18a-G18f, G18h-G18l) and for the IDENTITY counter against the INFO readings and the canary gate's exactly-one-INFO rule (round 30, against the census that the final delta check r18 read: G19a, G19c, G19e, G19f, G19g, G19h, G19l, G19m) and for an IDENTITY line that carries an activity field in one of its values (round 31, against the census that the bounded delta check r19 read: G20a, G20b, G20c, G20d)) (checks/census-negative-controls.txt); the runs against the two censuses that pin the guard as it was before its repair carry that sha256 in their fixtures (--guard-sha).checks/census-review5-regression.txt). The census on the real incarnation (checks/census-live-incarnation-read.txt): INCARNATION-BIRTH and INCARNATION-ROWS read clean.checks/acceptance-controls*.txt, 2026-10-06) except the G series above, and the baselines (the frozen scripts are unchanged). Not run: any live trial, any request to a gateway, the canary.Decision record
docs/decisions/2026-10-05-omniroute-gateway-composition.md(the drain-patch candidate section, the evening update and the acceptance paragraph) anddocs/decisions/2026-09-30-omniroute-rebuild.md(the dated supervisor note).Host evidence
Not applicable (no files under
evidence/hosts/).Checklist
permissions: {}(no workflow changed).local-loopbackplaceholder; the store reads are metadata columns only; UUID-shaped correlation ids in committed outputs are shortened and the receipt prints an allowlist).🤖 Generated with Claude Code