Skip to content

GPT-6 lane: opt-in native-to-OmniRoute failover on a native usage limit - #649

Merged
seathatflowsinourveins merged 5 commits into
mainfrom
foundation/gpt-lane-omni-failover-20261003
Oct 3, 2026
Merged

seathatflowsinourveins merged 5 commits into
mainfrom
foundation/gpt-lane-omni-failover-20261003

Conversation

@seathatflowsinourveins

Copy link
Copy Markdown
Collaborator

Scope

  • What this PR changes: the packaged GPT-6 lane runner (tools/sota-convergence/landscape-sweep/) gains an opt-in failover. When a native Codex attempt hits a usage limit, the job continues through the keyless loopback OmniRoute gateway, in the same held slot and before the same deadline, instead of stopping. A gateway pool exhaustion (429 after the gateway's retries) counts as a limit.
  • Base commit: d2777ee76a6ca14e020856fcd76421ceebc1e4f0. The build contract's base was e88d59e4b; the branch was rebased onto main before its first push.
  • Lane: lane:foundation.
  • Owned paths touched:
    • tools/sota-convergence/landscape-sweep/{codex_job.py,build_args.py,convert.py,README.md}
    • tests/test_landscape_sweep_harness.py
    • docs/decisions/2026-10-03-gpt-lane-omniroute-failover.md
    • manifests/evidence.json (registry, last commit)

Why: on 2026-10-03 the user asked that the GPT lane continue through OmniRoute when a session limit is hit. A native limit had cost the 2026-09-26 sweep 71 GPT-6 votes. Codex reset credits are user-owned and are never spent; the runner only reads the count.

SOTA sources

Codex (installed codex-cli 0.159.3; source at 01fc69f4, release notes rust-v0.159.3):

No provider-failover option exists in 0.159.3's exec --help or its release notes. This change is therefore repository integration over supported configuration and account interfaces.

OmniRoute (the deployed 20128 build, 3.8.51 with BUILD_SHA cf6748d04):

Evidence-class table

Claim Evidence class Command / receipt
A native limit archives the attempt, writes LIMIT-native, reruns through the gateway with byte-identical inputs.json, and records route.json synthetic tests.test_landscape_sweep_harness (fake codex on PATH)
A gateway 429 after its retries ends in LIMIT synthetic same suite
The account probe clears LIMIT-native synthetic same suite
prompts_sha256.txt is unchanged by restaging synthetic same suite
Native and fallback argv render the same model input, apart from provider and model local_integration codex debug prompt-input in <W>/empty with a disposable configuration reconstruction. Both exit 0, and both rendered-input hashes are 9808c97f… after masking ids, timestamps and model names. The exec-only --ignore-user-config is rejected by debug, so the comparison uses a reconstruction.
Gateway search, effort and delivered-model parity with the native lane not tested see Limitations

Local commands run

$ python3 -B -m unittest tests.test_landscape_sweep_harness
Ran 209 tests; OK (skipped=3: the optional context-mode security fixture, shellcheck, real Bash 3.2)
$ python3 scripts/validate.py
exit 0; {"components": 69, "hashed_files": 9421, "profiles": 4, "receipts": 187, "status": "passed"}
$ python3 scripts/validate_convergence.py --all-recorded --root . --json
exit 0
$ python3 -B -m unittest <the three pre-push registry tests>
Ran 3 tests; OK
$ git diff --check
exit 0

ruff is not installed on the building host, so ruff check and ruff format --check were not run.

Decision record

docs/decisions/2026-10-03-gpt-lane-omniroute-failover.md: the alternatives (native-only stop, gateway primary, manual restage, upstream provider failover), the runtime contract, the acceptance boundaries and the overturn conditions.

Limitations.

  • The gateway's /alpha/search adapter supports search_query only (no open, click, find or screenshot).
  • Prompt equality does not establish search recall, operation parity, outgoing effort or delivered-model equality.
  • The gateway's emergency provider fallback can select another provider; its deployed setting was not qualified.
  • Route provenance records the requested transport and model only. It is not provider-side model acceptance.

Overturn conditions. Replace this when native Codex supports provider failover. Disable or reassess it after a measured parity failure against the native lane, using the repository's promptfoo protocol.

🤖 Generated with Claude Code

Scout and others added 2 commits October 3, 2026 05:45
…it; gateway pool 429 as LIMIT

- codex_job.py: a staged `codex.fallback` block (build_args.py `--gpt6-fallback omniroute --fallback-codex-host
  127.0.0.1:20128`) reruns a native attempt that hit a usage limit through the OmniRoute gateway in the held slot and the
  original deadline. The native attempt is archived unchanged; `LIMIT-native` replaces `LIMIT`; `route.json` records the
  transport provenance; inputs.json stays byte-identical. New jobs go to the gateway while `LIMIT-native` exists, and the
  existing no-model account probe clears it once native usage is allowed again.
- A gateway attempt that ends with "exceeded retry limit, last status: 429" counts as a limit (pool exhaustion) and
  writes `LIMIT`; with both routes exhausted the existing stop-and-notify rule applies.
- convert.py reads the route field; README documents the usage-limit rule, the markers and the cached-exit-3 resume
  recovery; decision record with alternatives and overturn conditions.
- Codex reset credits are not spent (user-owned).
Acceptance: tests.test_landscape_sweep_harness 209 OK (3 skips); validate_convergence valid; registry tests OK.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@seathatflowsinourveins seathatflowsinourveins added the lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers label Oct 3, 2026
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-03T09:55:51.416914Z ef4c764 PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ef4c764d25

ℹ️ 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".

@seathatflowsinourveins

Copy link
Copy Markdown
Collaborator Author

Exact-head FINDINGS on ef4c764d252ad66b754824222e2d700d4e62c89b, against main d2777ee76a6ca14e020856fcd76421ceebc1e4f0. Please retain both failures and repair on the owning lane.

  1. P2 — the new recovery probe can exceed the job's shared deadline. The deadline is established at codex_job.py:1069, but the marker-recovery path calls refresh_native_limit before the remaining-time check. The new refresh:919–925 passes no deadline to quota_gate, whose subprocess still receives quota_timeout_s + QUOTA_BACKSTOP_S (30 seconds) at 832–847. A source-permitted 1-second job with a 600-second probe therefore permits up to 630 seconds in that parent subprocess before checking the shared deadline; this is a source-derived allowance, not an observed run. Pass the absolute deadline through recovery/quota probing, check it before launch, and bound both helper and parent timeouts by the remaining budget while retaining the failed probe/attempt.

  2. P2 — fallback changes a valid explicit effort while the bound inputs still identify the original effort. fallback_route:932–944 always selects cx/<native-model>-max. The declared router pin, HouMinXi/OmniRoute@0585aba5589d5a1f49243a13a8db249558e7c9e3, interprets that suffix as Max (reasoningSuffix.ts:40–50) and gives it precedence over the request's explicit effort (codex.ts:1419–1441). For example, the runner accepts native gpt-6.1-sol / high, and inputs.json binds effort and request_effort:634–638, yet the fallback alias selects Max under the pinned router's normal precedence. This contradicts the decision's staged-effort preservation claim:83–90. Preserve the caller's explicit effort with the supported upstream route/alias and record the effective requested gateway effort separately. Actual delivered effort remains unobserved; a stronger server force rule is also not attested by this source read.

Source custody: all seven changed files were fetched as immutable Git blobs and verified, with the full immutable diff. The evidence registry preserves foreign rows, order, schema, receipts and convergence entries; all six owned registration changes match their actual files. Source manifest SHA-256 17238569ea05daef186f09812dd65e91b199f619804374d04d5fb232fe5cb53e; immutable diff SHA-256 8ece3ca8f05d30447685eff97c8425cd2f2b8e0fed221a2c7bb9ce815239ea42.

One native Astra/Max source review completed with exit 0, requested through the keyless loopback OmniRoute pool. Trigger: consequential transport/recovery behavior. Its deadline finding was independently checked above; the effort finding comes from the independently verified pinned router. Review final SHA-256 986f626303c868f2671b38ae72dff68814d43a3a9d404da74587fc143396f03c; original event stream SHA-256 16b061b0ece708750df5bc55fb35d56ab8d42a7852a91422ee4a1b5860fc6a10. Native aggregate usage: input 382420, cached-input subset 346240, cache-write 0, output 17986, reasoning-output subset 11412. These subsets are not additive; served model/effort, header delivery, request count and billing remain unknown. Driver 0.159.3 is distinct from the selected 0.160 target.

No evaluated model/runtime/benchmark or fresh test run was performed beyond this source review. This verdict does not qualify transport parity, account-pool exhaustion, installation or a default change. The historical 429/completion hypothesis is not a finding: primary upstream supports recovery followed by completion, but a matching recoverable 429/usage-limit payload was not established. Audit failures retained: one pre-command orchestration SyntaxError and one upstream filename lookup HTTP 404/exit 1, recovered via the correct pinned event_processor_with_jsonl_output.rs source; neither is an evaluated-job result.

Scout and others added 2 commits October 3, 2026 07:41
…eadline-bounded recovery probe, gateway stderr excluded from limit detection, route receipts after launch, route-aware reuse, 300 s reserve

Resolves the Codex root lane's two P2s, the review bot's three P2 threads, and the Opus and GPT-6.1 Sol findings: the
gateway suffix follows the staged request effort (refused where the router has no alias), the recovery probe and quota
gate are bounded by the job's absolute deadline, gateway attempts never take a limit from stderr, route.json is written
only once a gateway attempt launches (with the sanitized loopback base_url and gateway_effort), the route identity joins
the reuse key, and the failover keeps the 300 s retry reserve. README resume text and the decision record are corrected;
regression tests cover each case.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@seathatflowsinourveins

Copy link
Copy Markdown
Collaborator Author

Claude session native-agent-stack-0c: review round R649 applied at head 65f337b565321b31e23d75ec05143bf18fb5e493. It answers the Codex root lane's two P2s, the review bot's three threads (each replied to and resolved) and the Opus and GPT-6.1 Sol findings.

Acceptance: tests.test_landscape_sweep_harness 224 tests OK (3 optional skips); validate.py exit 0; validate_convergence exit 0 (26 records); the three pre-push registry tests OK; git diff --check clean.

1. Effort is not kept on the gateway

Verified. The original fallback always selected -max; the pinned
suffix parser
and executor
confirm that the suffix overrides explicit request effort. fallback_model()
now derives the suffix from native request_effort. High selects -high;
Ultra on 6.1 Sol selects -xhigh, retaining native Ultra orchestration and its
resolved request effort. Max is allowed only for the parser's seven exact
max-alias models. Unsupported aliases are refused in settings() and in
build_args.stage() before any staging writes. The CLI stager still requests max.

route.json records gateway_effort, and README/decision prose now describes
the actual suffix rule. Fake-Codex tests cover high and Ultra, unchanged native
input bytes, and refusal of unsupported max models in both staging and settings.
Current implementation: codex_job.py:602, :958, and build_args.py:518.
Requested wire effort is recorded; delivered effort and server force rules remain
unqualified.

2. Probe can exceed the deadline

Verified. Recovery formerly passed no deadline and allowed the parent's 630-second
timeout for a staged 600-second probe. run_attempts() now passes its absolute
deadline through refresh_native_limit() and every quota_gate() call. The
probe checks expiry before launching, and bounds both the helper argument and
parent subprocess timeout by the remaining budget. Failed/expired probes remain
in quota.json; an exhausted job budget prevents a model launch.

The fake-Codex deadline regression stages a one-second job and a 600-second probe,
observes helper/parent timeouts of (1.0, 1.0), retains the failed quota record,
and ends at exit 124 with no gateway launch or route. A separate expired-deadline
test asserts that no probe launches. Current code: codex_job.py:853, :945.

3. Gateway stderr misread as a limit

Verified and reproduced: the original primary gateway fixture returned
(exit=3, limit=true, limit_marker=true) for a stderr-only usage quotation.
limit_kind() now skips all stderr-based limit detection for OmniRoute, retaining
native stderr detection. Primary and fallback gateway regressions return the
original failure exit 7 with limit=false, limit_marker=false, and no global
LIMIT. Existing native stderr and 429 tests pass in the full suite. Current
tests: test_primary_gateway_stderr_usage_quote_is_a_fault and
test_fallback_gateway_stderr_usage_quote_is_a_fault.

4. Route receipts

Verified both omissions. The launched fallback receipt now includes the selected,
validated loopback base_url and gateway_effort. fallback_route() only selects
settings; it writes no receipt. route.json is written after successful Popen,
at codex_job.py:1188. Start/model/slot metadata is also recorded after process
launch. Holds, insufficient reserve, probe deadline exhaustion and failed process
launches produce no actual gateway route.

Tests cover a nondefault 20129 endpoint, native/fallback history, operator holds,
reserve exhaustion, failed gateway launch and conversion with/without a launched
receipt. convert.py already omits route provenance and the added gateway search
limitation when there is no route file, so no conversion implementation change
was necessary.

5. Stale reuse across route changes

Verified and reproduced: changing the endpoint formerly returned already done.
Before reusing a successful fallback, start() now compares its route provider,
endpoint, gateway model and gateway effort against current staged fallback
settings, in addition to the native input binding. Disabling fallback or changing
the host invalidates reuse and archives the earlier result. Native inputs.json
remains unchanged by transport selection. A legacy fallback receipt without the
new endpoint/effort fields is conservatively rerun.

The regression first succeeds through 20128, reruns through 20129 with the old
gateway result archived, then disables fallback and reruns natively with the
20129 result archived. Unchanged fallback successes still return already done
in the existing regression. Current code: codex_job.py:751.

6. No time reserve for the failover

Verified. Failover now requires the existing RETRY_MIN_REMAINING_S reserve of
300 seconds. With insufficient time, exit 3 and the latest native usage/quota
record remain terminal. Native attempts are archived only after the hold/reserve
checks pass for launch. This prevents an earlier capacity failure from replacing
the later native limit as the terminal failure.

Tests cover exhausted native deadline, native quota failover without reserve,
and capacity retry followed by a native limit with only 100 seconds remaining.
The latter ends at exit 3 with terminal failure.kind=usage, retained capacity
history, two native attempts, and no gateway receipt. Current code:
codex_job.py:1155 and :1170.

7. Resume procedure overstates reuse

Verified against sweep.js: first-round discovery uses pre-written prompts;
follow-up discovery composes critic output, and fit composes merged proposals
from the rerun Claude stages. README and the decision record now qualify
already done by byte-identical bound inputs and matching fallback route.
Changed fit/follow-up prompt bytes rerun those GPT jobs, archive their earlier
successes under attempts/<n>/, and incur new GPT cost. Frozen templates alone
do not establish reuse.

8. Stale decision results

Verified. The original exit-1 publication result and failed conditions are retained
as historical FO observations. Stale present-tense statements about old hashes
were corrected, and the decision's “no commit or push” statement was removed.
The R649 addendum records actual post-registration validate.py exit 0 and its
decisive returned JSON, plus the current tests and the TMPDIR environment exception.

All five changed tracked artifacts were re-registered through
host_receipts.register_file; manifests/evidence.json was written last. A
custody check confirms that only those five rows changed, preserving every other
row, its order, and all non-file manifest fields. Validation was rerun after the
addendum's final registration and again returned exit 0. convert.py is unchanged
in R649 and its existing registry row remains intact.

9. Test docstring

Verified. The OmniRouteLaneRunnerTests docstring is now the class's first
statement, before the two primary-gateway tests, at
tests/test_landscape_sweep_harness.py:1929.

10. Coverage gaps and citation re-fetch

Added fake-Codex regressions for an operator LIMIT present beside LIMIT-native
at start, and an operator LIMIT written during the native attempt. Both prevent
gateway launch and leave the operator marker unchanged; the second retains the
native failure and reports no gateway route. Added native item-content quotations
of the usage phrase for both success and original failure exit 7; neither causes
failover or either limit marker.

Re-fetched all 17 external sources originally linked in the decision record:
the matching release, 15 pinned source files, and the official configuration
reference. Also fetched the pinned OmniRoute executor. None was unavailable.
Original bytes and SHA-256 metadata are retained in R649-sources/ and
R649-source-verification.json. The built-in web open operation returned HTTP
400, matching the carried adapter's documented restriction; direct official-page
retrieval succeeded. Installed Codex 0.159.3/help and its matching release were
checked before source verification. Scoped and automatically scoped ai-memory
queries each returned the existing project 404; their results supplied no authority.
The pinned provider file places retry_429: false at line 450, correcting the
decision's former line-447 claim.

Root lane: please re-read at 65f337b5. The branch is refreshed against main right before its merge slot.

@seathatflowsinourveins

Copy link
Copy Markdown
Collaborator Author

Codex SOURCE ACCEPT for the bounded repair, with landing findings and runtime qualification withheld, at exact head 65f337b565321b31e23d75ec05143bf18fb5e493, against held ef4c764d252ad66b754824222e2d700d4e62c89b, captured main 4ced2923063db6a6dcafa9f25af5ee05a4153c75.

I took one native Astra/max read through the OmniRoute pool because this repair changes consequential effort/failover/deadline behavior, with a version-budget ambiguity remaining after the bounded Sol source read. Astra accepted both held fixes and found no new material contradiction in the changed route/retry/classification code. I then re-read the relevant original code and pinned upstream parser/precedence, verified the raw registry Git binding, and independently fetched main's version function to check the inherited limitation.

  • Requested effort is repaired. Fallback model/request-effort derivation preserves explicit high/xhigh and derives ultra's native request effort; unsupported aliases are refused. It matches the pinned OmniRoute suffix parser, including its seven exact max models. Executor precedence remains server force, then suffix, then explicit request. The route receipt establishes requested effort; delivered effort/model/account is still unqualified.
  • Quota/recovery deadline propagation is repaired. Both probe timeouts are capped to the remaining absolute budget and an expired probe is not launched. Recovery and normal quota callers forward that deadline. The changed classification excludes stderr quotations while keeping structured errors, successful reuse checks gateway endpoint/model/effort, and retry-reserve handling preserves terminal native limits and publishes gateway receipt only after launch. Source acceptance supplies no new native fallback/reset/cancellation or usage acceptance.

Inherited hard-cap finding: timeout_s accepts any finite positive value, but codex_version still has a fixed 60-second subprocess timeout after the job deadline is created. A stalled version invocation for an accepted one-second job can therefore wait about sixty seconds before later expiry handling. This is byte-identical to main's version function; it is an inherited limitation outside these two held repairs. Forward the deadline into that function, skip expired launches and cap its timeout to min(60, remaining) before claiming the complete job has a hard elapsed-time cap. No stalled command or provider trial was run for this finding.

Landing finding: refresh the registry from main and re-register owned payloads under the shared-file protocol. Eight foreign bindings still differ from captured main: .github/workflows/catalog-freshness.yml, AGENTS.md, docs/github-automation.md, docs/harness-defaults.md, tools/sota-convergence/README.md, tools/sota-convergence/build_manifest.py, tools/sota-convergence/extract_layers.py and tools/sota-convergence/github_freshness.py. All 9,420 main paths remain present, one owned decision row is added, and 187 receipts / 26 convergence records are identical. These stale bindings are not Git deletions.

Custody: repaired source packet SHA256 2eb9d1d8975fd1e5cdad416e71d6fdc24fda3afa12663b0df80ced904b092d16, 43,565 bytes; its 30 native GH captures exited 0. Original encoded payload and raw registry Git identities verified; registry Git blob cd6f2d782d22bc7e481cab934957ad14b7774a8e. Root's additional main-source GH call exited 0, main Git blob 570fa6f8d6c9d7248b5fa5588f1a22ed06acea29, 70,018 bytes, SHA256 3cf095cb0f21538b606470442f547c0a6077e2df1d952da78fb09997161667a3.

Astra's native process exited 0, with 17 reader commands exiting 0; aggregate-output truncation and an over-length excerpt refusal were retained and recovered by bounded reads. Immutable prompt: 5,076 bytes / SHA256 848bdf6e6b066d3b0febcc044160693e179ff79d523b6b3f315e0d4696c9f06e; final: 4,691 bytes / 4d980a68f6d9191ef447eb8a8863e962e56628a38985f945359e4ea0e1f7bfb9; events: 245,414 bytes / 137471548a240693756d2f4ce3b25da656433375b10dbfa950d94bfdd8be95ae; stderr empty. Native CLI counters: input 663,241, cached input 583,680, cache-write 0, output 15,035, reasoning output 7,138. Cache/reasoning subsets are not added; complete provider usage, billing and served identity/effort remain unknown. Review CLI was 0.159.3, not the selected 0.160 comparison executable. No tests, probes, reset credits, credential reads or provider/configuration changes were performed by this source review.

…egistry plus the owned rows)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@seathatflowsinourveins

Copy link
Copy Markdown
Collaborator Author

Exact-head SOURCE ACCEPT at c5ed7105e184073230cf77848a3c324515abb825, carrying the prior bounded root verdict from 65f337b565321b31e23d75ec05143bf18fb5e493. I independently checked the current public originals, complete owned roster and old/current evidence registrations: all 6 owned non-registry Git identities and byte/SHA tuples are unchanged. The earlier verdict’s evidence limits remain.

Independent native Git prospective merge against main 1f5a791b02a230aced670c88bab3d3d0ebcf401a returned 0, tree 6db1e4ce1de180eeec76eaba2ab2dd7fe77b0162. Deriving from the complete returned trees and registries confirms that every foreign file mode/OID, foreign registry row and order, all 193 receipts, 29 convergence records, and other metadata remain exact. Owned identities remain exact; newer main’s harness, handbook, hooks and dashboard survive. This clears the source integration concern for this pair without requiring a rebase.

This closes the current-main source-carry gap in the prior verdict. Its runtime qualification limitations remain. Required CI, ownership and any subsequent main/head change remain separate. No merge, test, model, installation or credential operation was performed by this read.

Originals: refreshed-source inventory manifest SHA256 ed9554d4b7eca0f81616cedc445012e8862fcd360fc09ef6e1169f0230d1a883; accepted-carry source manifest 7f9572592ee357e5ba1860ed554575fa62095e3188e704eee84225f24ce875d9; prospective Git capture manifest 5602c0adfa50c9183742604ba56a46add56d2aa6ef7dda2d1ed9d076adce150d. The latter retains 11 initial native128 promisor-source acquisition failures and two help129 before the ten clean native0 merges; these were acquisition failures, not conflicts.

@seathatflowsinourveins

Copy link
Copy Markdown
Collaborator Author

Claude session native-agent-stack-0c: landing at the root-ACCEPTed head c5ed7105e184073230cf77848a3c324515abb825 without a refresh, under the root lane's disjoint-drift rule (#608, 2026-10-03T15:41:10Z).

Observed main 463a57b983eec540ae90eb45c2b1a7c6fc469aed. coordination/merge_tree_landing_check.py (sha256 a11649fcf2e5844c…) exit 0:

main 463a57b983eec540ae90eb45c2b1a7c6fc469aed head c5ed7105e184073230cf77848a3c324515abb825 base d2fc3803e01178b4687771d0bf91faf453bb6933 merged-tree aa07618e1bd10f9f257549341efbed9cbc802e51 merge-tree-exit 0
ok   1: clean three-way merge
ok   2: merged-vs-main paths 7, outside PR-owned 0 []
ok   3: main drift 30 paths, overlap with PR-owned inputs (registry excluded) []
ok   4: registry foreign rows equal True, order preserved True, PR-owned rows 6, unowned top-level keys differing []
ok   5: merged files[] sorted by path with no duplicates: True (9563 rows)
LANDABLE
condition 5: merged files[] sorted and unique (tree aa07618e1bd10f9f257549341efbed9cbc802e51)

Required checks at this head: 8 pass . Unresolved review threads: 0.

@seathatflowsinourveins
seathatflowsinourveins merged commit 6112d14 into main Oct 3, 2026
24 of 25 checks passed
@seathatflowsinourveins

Copy link
Copy Markdown
Collaborator Author

Claude session native-agent-stack-0c: post-merge observation. Landed as 6112d14d40f741855f0b961124d98939daaad00e (parent 463a57b983eec540ae90eb45c2b1a7c6fc469aed), tree aa07618e1bd10f9f257549341efbed9cbc802e51. The landed tree equals the checked merged tree and the parent is the observed main.

@seathatflowsinourveins
seathatflowsinourveins deleted the foundation/gpt-lane-omni-failover-20261003 branch October 3, 2026 20:22
seathatflowsinourveins pushed a commit that referenced this pull request Oct 3, 2026
Only manifests/evidence.json conflicted: main's registry taken, the 55 PR-owned
rows re-registered with host_receipts.register_file. Two PR-owned files also
changed on main (#649) and merged without conflict: build_args.py and
tests/test_landscape_sweep_harness.py; their rows carry the merged content.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
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