Skip to content

OmniRoute rebuild 2026-09-30: decision record, evidence artifacts, owner-record script, unit templates (records what runs; compression on 20128 not applied) - #530

Merged
seathatflowsinourveins merged 5 commits into
mainfrom
res-omni-rebuild-20260930
Sep 30, 2026
Merged

seathatflowsinourveins merged 5 commits into
mainfrom
res-omni-rebuild-20260930

Conversation

@seathatflowsinourveins

@seathatflowsinourveins seathatflowsinourveins commented Sep 30, 2026 •

Copy link
Copy Markdown
Collaborator

Scope

  • What this PR changes: records the 2026-09-30 rebuild of both OmniRoute gateways on the NativeStack workstation and touches no host: upstream release/v3.8.51 at 2f42a9ac1 (upstream tagged v3.8.51 later that day with the identical tree, and published [email protected] to npm at 02:54Z; the record says so) with the open upstream PR #13788 on both gateways and a local affinity patch on 20128, the announced Codex version 0.159.1 (gpt-6.1-sol answers 200 on both gateways), the token-save settings (a nine-step plan and one delta: on 20129 the master switch is on and ten of the twelve shipped engines run at upstream's per-engine settings, which is not upstream's shipped state), the read-only owner-record script for Gate A (tools/omniroute/gateway_record.py), the two values-free unit templates with a unit test, and the checks and probes behind each claim. The decision record states every departure from upstream's shipped defaults, the provenance of the operation scripts, the stored combos (the header allow-lossy selects a peer-owned combo; headroom still runs where a combo names it) and the residuals, notably that lite folds whitespace in code-bearing text and that neither the headerless lane nor the gpt6-safe-lossy header lane passes the user's condition on real Codex traffic, so compression on 20128 is not applied.
  • Not in this PR: the omniroute row of manifests/stack.json and the component pin (a shared hot file; its text change is the separate lane:shared PR Stack manifest: the omniroute row describes the 2026-09-30 builds (held for the trading lane's acknowledgement) #531, held for the trading lane's acknowledgement). Until it merges, this record and docs/foundation-stack.md are the current statement of the running builds.
  • Base commit: be91e1f8 (main, after SocratiCode 1.16.0: qualification receipt and dated decision update (the Linux pin stays 1.15.0) #523). Main has since moved to 8f7086a2 (PyJWT relock record: redis decode search (D1), timing range from the outputs (D2), honest output labels #529); a test merge of this head onto it is clean (git merge-tree, exit 0).
  • Lane: lane:foundation. It changes no path owned by the trading lane and no shared hot file's text: manifests/evidence.json is only re-registered through the hot-file protocol (last commit), which docs/lanes.md says does not by itself make a PR shared.
  • Owned paths touched: docs/decisions/, docs/foundation-stack.md, evidence/artifacts/omniroute-rebuild-20260930/, tools/omniroute/, adoption/templates/systemd/, tests/test_omniroute_gateway_unit.py, manifests/evidence.json.

SOTA sources

  • OmniRoute release/v3.8.51 at 2f42a9ac19d1a247ec9ce5473b790843724b3061 (it carries #14812 8183e9b79, #14886 7f5de7ba6, #15119, #15128, #15145 and #15147); carried: #13788 as its two upstream commits 24bbadbad and 6c7990058 (stable patch-ids equal), and the local non-upstream affinity patch 045aa81f3 (references in its commit message: CLIProxyAPI v8.0.2 4a2c818, LiteLLM v1.102.1 d09bbae, sub2api v0.2.8 fd80b08). release/v3.8.52 (a1a2dce1a) has no gpt-6.1 entry either.
  • Source read at 2f42a9ac1 for the settings claims: open-sse/services/compression/types.ts:421-443, lossyRequestPolicy.ts:19, planResolution.ts:56-57, strategySelector.ts:812-816, src/lib/db/compressionCombos.ts:33-39, docs/compression/COMPRESSION_GUIDE.md:226-239, engineCatalog.ts, lite.ts:50-53, bodyAdapter.ts:154-201, src/shared/constants/featureFlagDefinitions.ts:564-570, open-sse/config/codexClient.ts, src/app/api/providers/[id]/models/discovery/codex.ts:82.
  • Upstream's own scripts on our builds: check:pack-artifact, check:pack-boot, test:unit (unchanged upstream checks, kept apart from our integration checks in the receipt).
  • The live model catalog (cx/gpt-6.1-sol, context 872000) is the only source for gpt-6.1-sol: the static registries of both upstream branches lack it.
  • Precedent: docs/decisions/2026-09-27-omniroute-account-pool.md and its evidence package.

Evidence-class table

Claim Evidence class Command / receipt
Upstream check:pack-artifact and check:pack-boot exit 0 on both builds (20129's on its third attempt; the first two failed with causes not established) unchanged upstream checks receipt C1; qualification-extract.json builds
Upstream test:unit stage 1 fails 14 tests on the pristine tip and 18 on the 20128 build; every failure only the 20128 build shows is classified; the 41-line difference in result lines is accounted for by name (17 carry tests; 172 lines one full run did not print, attributed to --test-force-exit, identical when the 18 files run alone: 654 result lines per tree, 0 failing) unchanged upstream checks plus our integration check receipt C2; full_suite_reconciliation
Boot smoke, targeted tests (69/69 and 62/62), patch-id equality of the carries, the installed prefixes' contents (alpha/search route in both, the affinity function only in 20128), live probes after the switch (gpt-6.1-sol 200 on both gateways) our integration checks and live model calls (one synthetic payload each) receipt C3-C5; carries.installed_check
Ten settings steps applied with capture, precondition, read-back and rollback; the delta verifies; a fresh owner record equals the published one on every path but taken_utc our integration check receipt C6; checks/recorded-outputs.txt
The effective plan on 20129 is stacked [session-dedup, ccr, lite] headerless, off gives none, the header allow-lossy selects the peer combo of that name; 20128 resolves every header to off our integration check (plan resolver on the live settings, live build's modules) receipt C7; checks/effective-plan-20260930.json
lite folds whitespace in code-bearing text (shell outputs, diffs, fenced code), measured on the live build's code path our integration check with synthetic fixtures, no model call receipt C10; checks/lite-whitespace-probe-20260930.json
On eight real Codex request bodies the headerless lane changed 0 items and 0 tokens and the lossy lane saved 0.34% while losing exact strings our integration check on private real bodies, offline, counts only receipt C11; checks/real-codex-bodies-lane-probe-20260930.json
CODEX_CLIENT_VERSION semantics source review receipt C9

Local commands run

$ python3 -B -m unittest tests.test_foundation_stack_pins tests.test_omniroute_gateway_unit tests.test_adoption_contract tests.test_freeze_snapshot tests.test_catalogs tests.test_stack_lifecycle
Ran 268 tests ... OK                                                                                exit 0
$ python3 scripts/validate.py
{"components": 69, "hashed_files": 8297, "profiles": 4, "receipts": 174, "status": "passed"}        exit 0
$ python3 scripts/evidence_manifest.py --check
{"files": 8297, "status": "passed"}                                                                  exit 0
$ python3 tools/omniroute/gateway_record.py          (read-only; compared with the published record)
31 of 32 paths equal, only taken_utc differs                                                         exit 0

Head 20799c05: the three timestamps that no command printed (installed check, upstream release check, full-suite reconciliation entry) were replaced by printed ones, and both checks' outputs are published as returned (checks/installed-check-20260930.json, checks/upstream-release-check-20260930.json). The 268 tests, validate.py and evidence_manifest.py --check above were re-run on that head.

The full unittest discovery runs in CI's validate check.

Decision record

docs/decisions/2026-09-30-omniroute-rebuild.md (alternatives considered, the comparison that would overturn each choice, rollback, limitations and residuals).

Host evidence

This PR adds artifacts under evidence/artifacts/, not evidence/hosts/.

  • scripts/validate.py (exit 0 above) validates the registered artifacts.
  • Independent review: two Opus evidence-reviewers read this work in full (the first: 1 high, 5 medium, lows; the second, on the fixes: 1 high, 3 medium, 11 low); every finding is fixed here.
  • No platform_status change.

Residuals

  • Upstream released 3.8.51 after the rebuild: the tag commit c1e30b767 has the same tree (0f58d8df...) as the build base 2f42a9ac1, so no rebuild is needed for the tree; #13788 is still open upstream ([defer]), so the carry stays. The repo's component pin (npm 3.8.50) is unchanged here and is handled in Stack manifest: the omniroute row describes the 2026-09-30 builds (held for the trading lane's acknowledgement) #531.
  • The applier's SECRET_GET guard names fewer routes than session 88's read of the gateway's anonymous surface (/api/settings/cache-config, /api/sync/*, /api/cli-tools/keys); this plan never reads them (recorded as a residual; the surface itself is 88's decision with the Gate A owner).
  • The applier that ran T01-T09 is not retained, the published scripts are a stopped workflow stage's later text, and T10 ran through its unreviewed edit; the read-backs are the evidence.
  • lite folds whitespace in code-bearing text; the pi-practice session's real-traffic measurement (reported, not reproduced) and our offline probe of eight real request bodies both show the headerless lane compresses nothing on real Codex traffic, so compression on 20128 stays off and is an open user decision.
  • headroom is off in the engines map but runs in three stored combos for a caller that names them; the header allow-lossy selects a peer-owned combo. Narrowing either is a gateway write for the Gate A owner's timing and the peers' consent.
  • blockedProviders and noAuthFallbackDisabledProviders are not expressible in the apply contract (open user decision).
  • No live rollback has been run; the store copy loses everything written since. Upstream's e2e and integration suites were not run; max effort clamps to xhigh for gpt-6.1-sol.

Checklist

  • No workflows or Actions are changed.
  • No secrets are printed, logged or committed.
  • No new paid hosting, subscription or billing surface.
  • Peer-owned untracked files and worktrees were preserved.

🤖 Generated with Claude Code

@seathatflowsinourveins seathatflowsinourveins added the lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers label Sep 30, 2026
Scout and others added 4 commits September 30, 2026 00:39
…ner-record script, unit templates and foundation-stack text

Records the 2026-09-30 rebuild of both OmniRoute gateways on the NativeStack workstation (touches no host): upstream release/v3.8.51
2f42a9ac1 with #13788 on both and the local affinity patch on 20128, Codex 0.159.1 announced (gpt-6.1-sol answers 200 on both),
the token-save settings (a nine-step plan and one delta: on 20129 the master is on and ten of the twelve shipped engines run at
upstream's per-engine settings, which is not upstream's shipped state), the read-only owner-record script for Gate A, the two
values-free unit templates with a unit test, and the checks and probes behind each claim.

The decision record states every departure from upstream's shipped defaults, the provenance of the operation scripts (the applier
that ran T01-T09 is not retained; T10 ran through an unreviewed edit), the stored combos (the header allow-lossy selects a
peer-owned combo; headroom still runs where a combo names it), the full-suite reconciliation, and the residuals: lite folds
whitespace in code-bearing text, and neither the headerless lane (0 tokens on 115 real rows, 0 items changed on eight real
request bodies) nor the gpt6-safe-lossy header lane (0.36% live, 0.34% offline, with 47 path occurrences, 1 hex id and 1 error line
lost by our regex count) passes the user's condition, so compression on 20128 is not applied.

Two independent Opus reviews of this branch found 1 high, 6 medium and 25 low defects; all are fixed here. The omniroute row of
manifests/stack.json is not part of this change (shared hot file, separate lane:shared change).

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…uild (same tree as the build base); the applier's secret-route guard note

- Upstream's annotated tag v3.8.51 (tagger time 2026-09-30T01:41:23Z, commit c1e30b767 "Release v3.8.51") and npm [email protected]
  (2026-09-30T02:54:04Z, latest) came after the rebuild; the record said no tag existed. The tag commit's tree equals the tree of the
  build base 2f42a9ac1 (0f58d8df...), so the running builds are the released 3.8.51 tree plus the carries; #13788 is still open upstream
  ([defer]); the repo's component pin is unchanged by this record. Recorded in the decision (item 5), the receipt
  (upstream_release_after_rebuild) and docs/foundation-stack.md.
- Session 88's finding: the anonymous management surface serves credentials on more routes than the applier's SECRET_GET guard names
  (/api/settings/cache-config, /api/sync/*, /api/cli-tools/keys); this plan never reads them; recorded as a residual, decision theirs.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
… on main's copy (hot file, last commit)

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
seathatflowsinourveins pushed a commit that referenced this pull request Sep 30, 2026
…42a9ac1 with #13788 and the affinity patch), upstream's v3.8.51 release and the 20129 compression state

Text of one row only (upstream_sources, freshness, command_scope); the component pin stays npm 3.8.50 until the published 3.8.51 package has its own
isolated install and boot check (a separate change to this row). Shared hot file, so this is its own lane:shared change; the decision record and
evidence are in the lane:foundation PR #530 (docs/decisions/2026-09-30-omniroute-rebuild.md).

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…inted with the printed ones, keep both returned outputs

The installed-prefix check, the upstream-release check and the full-suite reconciliation entry carried times written from memory
(04:20:00Z, 04:40:00Z, 03:00:00Z). Both checks were rerun with a script that prints observed_utc at the start
(04:52:47Z and 04:53:59Z) and their outputs are published as returned; the reconciliation entry now names the printed batch
times of the reruns (02:46:02Z to 02:47:08Z and 02:50:17Z to 02:50:37Z) and says no time was printed for the comparison itself.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
seathatflowsinourveins added a commit that referenced this pull request Sep 30, 2026
…42a9ac1 with #13788 and the affinity patch), upstream's v3.8.51 release and the 20129 compression state (#531)

Text of one row only (upstream_sources, freshness, command_scope); the component pin stays npm 3.8.50 until the published 3.8.51 package has its own
isolated install and boot check (a separate change to this row). Shared hot file, so this is its own lane:shared change; the decision record and
evidence are in the lane:foundation PR #530 (docs/decisions/2026-09-30-omniroute-rebuild.md).

Co-authored-by: Scout <scout@local>
Co-authored-by: Claude Sonnet 5.5 <[email protected]>
@seathatflowsinourveins
seathatflowsinourveins merged commit b4056a3 into main Sep 30, 2026
29 of 30 checks passed
@seathatflowsinourveins
seathatflowsinourveins deleted the res-omni-rebuild-20260930 branch September 30, 2026 05:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant