Skip to content

Gateway A/B R02 preregistration draft: FW effort medium vs max on li26 (not frozen, not run) - #445

Closed
seathatflowsinourveins wants to merge 15 commits into
mainfrom
claude/gateway-ab-r02-prereg-20260927
Closed

seathatflowsinourveins wants to merge 15 commits into
mainfrom
claude/gateway-ab-r02-prereg-20260927

Conversation

@seathatflowsinourveins

@seathatflowsinourveins seathatflowsinourveins commented Sep 28, 2026 •

Copy link
Copy Markdown
Owner

DRAFT preregistration: not frozen and not run. This is gateway A/B R02 for GPT-6 framework (FW) chat/completions effort through OmniRoute:

  • arm A: cx/gpt-6-astra with no reasoning_effort, the gateway's default of medium;
  • arm B: cx/gpt-6-astra-max, which gets max from the executor's built-in -max suffix alias.

The two arms run on a frozen 60-filing subset of li26's 8-K extraction. The GPT-6 reviewer found the draft freeze-ready once the gateway owner's dry read-back passes; the freeze follows that read-back.

Scope

  • What this PR changes: it adds the R02 preregistration draft under blueprints/convergence-practice/gateway-ab-r02-20260927/:

    • plan.json;
    • the promptfoo configs;
    • the build, analysis, correlation and assertion scripts;
    • the README.

    It also adds the offline tests tests/test_gateway_ab_r02_20260927.py (80).

  • Base commit: 37739d32 (merged into the branch).

  • Lane: lane:foundation.

  • Owned paths touched:

    • blueprints/convergence-practice/gateway-ab-r02-20260927/**;
    • tests/test_gateway_ab_r02_20260927.py;
    • manifests/evidence.json (registration only).

SOTA sources

  • promptfoo 0.123.1 (tag commit 34f74d34):
    • the HTTP provider with maxRetries: 0;
    • the evaluator's pairing by testIdx (src/evaluator.ts:2674-2696);
    • is-json with the exact schema that was sent (dist/src/evaluator-DlYW7Rgb.js:2509-2545);
    • the timeouts PROMPTFOO_EVAL_TIMEOUT_MS and REQUEST_TIMEOUT_MS;
    • the results sanitizer and its compaction of JSON-looking vars (dist/src/logger-ChlKG5Wv.js:1049-1057).
  • OmniRoute 3.8.51 at dd6e9607e:
    • the -max suffix alias (open-sse/executors/codex.ts:1424-1431) and the no-effort fallback (:1439-1441);
    • reasoning-routing rules (src/lib/reasoningRouting/policy.ts:380-404, 543-601);
    • combo mappings (src/sse/services/model.ts:686-711);
    • compression exclusions (open-sse/handlers/chatCore.ts:1429-1449);
    • call_logs saves (callLogs.ts:867-896, attemptLogging.ts:618).
  • scipy 1.18.1 stats.bootstrap with paired=True (scipy/stats/_resampling.py:300, 651-683) and permutation_test (:1679), in the pinned analysis environment (Python 3.14, numpy 2.5.3, statsmodels 0.15.0).
  • python-jsonschema 4.26.0 enum equality (jsonschema/_utils.py:106-153, _keywords.py:269-271), ported for the admissibility check.
  • li26, the frozen scorer and acquisition (blueprints/convergence-practice/local-inference-latest-20260926/, Preregister the GPT-6 family routing test (astra/sol/luna x max/medium) on the frozen 8-K extraction task #359 and GPT-6 family tiering: record the frozen run's results (S1, gpt-6-sol at medium, for mechanical extraction) #397).

Design

  • Subset. 60 of li26's 360 labelled filings, stratified by label count and split between an AB-order run and a BA-order run of 30 filings each. Each filing runs three repeats per arm, for 360 calls in all.
  • Decision rule. All bounds are one-sided 95% from the paired bootstrap on filings.
    • Adopt max if the lower bound of micro-F1(B) − micro-F1(A) is above 0.
    • Otherwise keep medium if A is non-inferior within 0.02 and the paired per-filing cost leg is supported and shows A's completion tokens below B's.
    • Otherwise inconclusive.
    • Any integrity problem voids the run (analyze_r02.py exits 2).
  • Gateway fingerprint. Four sanitized read-backs by the gateway owner, one before and one after each run half. Each value must equal one of the admissible values declared in plan.json gateway_fingerprint.admissible. Identical read-backs of the wrong treatment still void the run.

Evidence-class table

Claim Evidence class Command / receipt
The offline suite passes in the pinned analysis environment: 80 tests, none skipped. synthetic (our integration checks on fixtures; two of them run the installed promptfoo 0.123.1 code offline) uv run --offline --no-project --python 3.14 --with numpy==2.5.3 --with scipy==1.18.1 --with statsmodels==0.15.0 python -m unittest tests.test_gateway_ab_r02_20260927
The generated configs, frozen-file closure and promptfoo build record match. local_integration build_r02.py configs --check, frozen --check and promptfoo --check, each exit 0
Request shape through the running gateway: 4 calls in two wire checks at 19:49 and 21:16 UTC on 2026-09-27. native_proven (bounded wire checks; not quality or cost) README "Wire checks (2026-09-27)"
Rendered requests: a promptfoo execution against a local go-httpbin, with no gateway call. local_integration README "Echo check" (configs at 9d03c1ea)
Cited OmniRoute behaviour. source_review (pinned commit object dd6e9607e; the running build is the gateway owner's report) README "Evidence classes"
No scored call has been made. — —

Local commands run

$ python3 scripts/validate.py
{"components": 69, "hashed_files": 7384, "profiles": 4, "receipts": 159, "status": "passed"}
$ GIT_NO_LAZY_FETCH=1 python3 scripts/host_receipts.py validate
{"receipts": 182, "status": "passed"}
$ uv run --offline --no-project --python 3.14 --with numpy==2.5.3 --with scipy==1.18.1 --with statsmodels==0.15.0 python -m unittest tests.test_gateway_ab_r02_20260927
Ran 80 tests ... OK
$ python3 blueprints/convergence-practice/gateway-ab-r02-20260927/build_r02.py {configs,frozen,promptfoo} --check
exit 0 (each)

Independent review

All three rounds were GPT-6 (gpt-6-astra at max) on one Codex thread, read-only, with no gateway, model or network call.

  1. Review of fae72c37: not freeze-ready, 8 findings. They were repaired in f58a4a65 and 4b7c58de; the builder also found and fixed a ninth defect, promptfoo's compaction of JSON-looking vars.

  2. Re-check of 4b7c58de: not freeze-ready, 4 findings (P1, P2, P2, P3). They were repaired in 2c584098 and af85abec.

  3. Focused re-check of af85abec: all four resolved, both widened wordings accepted, and no new P0–P3 defect. Verdict: "freeze-ready pending the owner's dry read-back".

    Its sandbox lacked numpy and scipy, so it ran 76 tests and skipped the 4 statistical ones. All 80 pass above in the pinned environment.

Residuals recorded in plan.json and the README:

  • the admissible values are declared intent or documented values, not observed ones;
  • the private server.env can override the timeouts;
  • the read-backs are the gateway owner's report, not an independent observation;
  • the call_logs snapshots are observed lower bounds;
  • whole-call duration is not recorded.

After the re-check (884224e0, documentation only), the gateway owner reported 20128's OAuth occupancy override. At OmniRoute dd6e9607e, every chat request sets reserveOAuthSession: true (src/sse/handlers/chat.ts:1711), and the override moves a call to a more available peer connection (src/sse/services/auth.ts:2159-2176). No setting disables it.

  • It is recorded as a shared account-selection condition in plan.json limitations and the README. The owner's measured rates are marked relayed.
  • The owner's post-run report now also gives, per arm, the calls whose attempts were served by more than one account.
  • No decision rule, integrity check or frozen input changed. The gateway_fingerprint block is byte-identical to the re-checked one.

Before freezing

  1. The gateway owner runs the dry read-back:
    • read plan.json gateway_fingerprint.fields from 20128 into one sanitized JSON file, with no account or connection id, key or token;
    • run python3 blueprints/convergence-practice/gateway-ab-r02-20260927/analyze_r02.py readback <file>. Exit 0 means every field is admissible.
  2. Freeze with build_r02.py frozen --update-plan, then set the status to frozen, update the tests and the README, and do the hot-file step.
  3. Post the frozen hashes on Preserve OmniRoute feature research and settle October 3 remeasurement promises #423.

Decision record

The dated design record is blueprints/convergence-practice/gateway-ab-r02-20260927/README.md, with plan.json as its machine-readable form. It records the alternatives (the arms, and why moving roles to cx/gpt-6-sol is outside them) and the decision rule's overturn conditions.

Checklist

  • No GitHub Actions or workflows changed.
  • No secrets printed, logged or committed. The configs send no Authorization header to the keyless loopback gateway.
  • No paid hosting, subscription or billing surface was added.
  • Peer-owned files and worktrees were preserved.

🤖 Generated with Claude Code

Scout and others added 10 commits September 27, 2026 16:28
…oo's HTTP provider, draft

Draft, not frozen, not run. Builds the R02 harness on upstream components:
promptfoo 0.123.1's HTTP provider (one provider per arm, rendered session and
idempotency keys, strict json_schema derived from the tiering schema, no
sampling fields, maxRetries 0), li26's own prompt, parser and scorer as a
promptfoo Python prompt function and assertion, an SSE transform that keeps
the gateway's correlation id, a read-only six-column call_logs lookup by
correlation id, and the paired filing bootstrap and samples permutation test
in scipy 1.18.1 (Holm in statsmodels 0.15.0 recorded as not applied: one role).

Effective effort is measured primarily from client-observed reasoning tokens;
call_logs effort columns are a secondary check where non-NULL. plan.json
records the 60-filing stratified subset (tests files private, sha256 only),
the not-sent fields with pinned OmniRoute cites, the bounded wire check
(2 gateway calls) and frozen_inputs hashes. Offline tests use synthetic
fixtures only.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Hot-file protocol (docs/lanes.md): the eleven new R02 files are registered
with host_receipts.register_file; component_matrix.py --write and
new_host_grand_list.py --write regenerate their reports unchanged, and
validate.py passes.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…raft, not frozen)

- Both arms send X-Correlation-Id with the same per-call template as
  Idempotency-Key; the configs are regenerated by build_r02.py.
- analyze_r02.py rebuilds every call's sent id from evalId, testIdx,
  promptIdx and the repeat (testIdx minus the filing's smallest testIdx),
  refuses an echoed id that differs, joins call_logs on the sent id and
  counts unmatched calls by client-side outcome.
- call_logs_by_correlation.py orders an id's rows by (timestamp, rowid),
  numbers them as attempts and marks the last as final; the six-column
  allowlist is unchanged.
- transform_r02.js records rate-limit-class response headers and the
  gateway's dropped-upstream-header count in metadata.r02 (open question 3).
- README and plan.json record the go-httpbin echo check (16/16, no gateway
  call), which resolves wire check (a), and the 2-call re-check (f): the
  gateway kept, returned and logged the caller id (4 of 6 gateway calls).
  Status stays draft-not-frozen-not-run.
- Tests cover the header, the final-row rule and unmatched calls.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Updates the sha256 and byte counts of the nine R02 files changed in the
previous commit. component_matrix.py --write and new_host_grand_list.py
--write left their reports unchanged; scripts/validate.py passed.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…is-json

Repairs the eight findings of the GPT-6 review of the R02 draft (status stays
draft-not-frozen-not-run):

- analyze_r02.py voids the run on any integrity problem (status and decision
  invalid, no statistic, exit 2), enforces the frozen step grid, rosters,
  tests-file hashes, provider order and promptfoo/Node versions, takes the
  repeat from the schedule, uses one paired per-filing cost estimand that is
  supported only when every call returned usage, splits header and whole-call
  timeouts with their frozen values, reads time to response headers, takes
  strict-schema validity from promptfoo's is-json, joins call_logs through a
  settled snapshot and a terminal row fixed by the client's outcome, checks
  the pinned analysis environment and the gateway owner's read-backs, and
  compares labels_json as parsed JSON because promptfoo re-serializes it.
- call_logs_by_correlation.py drops the rowid/timestamp attempt order and
  re-reads until two reads 30 s apart agree (exit 3 otherwise).
- build_r02.py freezes the module closure (scripts/path_safety.py added),
  records the installed promptfoo build, and adds is-json to the configs.
- plan.json records the run environment, cost leg, terminal-row rule,
  snapshot, analysis environment, gateway fingerprint precondition and
  results persistence; frozen_inputs regenerated.
- Tests cover each finding, including native checks against the installed
  promptfoo 0.123.1 (runAssertions, EvalResult).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Metrics (is-json validity, paired cost leg, time to response headers, split
timeouts), the frozen schedule, what promptfoo persists, the terminal-row
rule and settled snapshot, the decision rule with invalid first, the pinned
analysis environment, the run commands with the frozen environment and the
gateway owner's read-backs, new limitations, the review repair list and
sources. Removes the arm A path inference drawn from header latency.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…, observed call_logs snapshot, anchored config notes

Repairs the four findings of the GPT-6 re-check of 4b7c58d (status stays
draft-not-frozen-not-run):
- P1: plan.json gateway_fingerprint.admissible declares each read-back
  field's admissible values as data (build, per-arm-model combos, no enabled
  reasoning-routing rule of any mode or scope, thinking budget passthrough,
  no connection default effort, compression off with the codex exclusion,
  upstream timeouts), with shapes and provenance. analyze_r02.py checks every
  read-back value against them with JSON Schema enum equality (ported from
  jsonschema 4.26.0); equality across the four read-backs stays
  supplementary. The analyzer holds no admissible value, so the gateway
  owner's 20128-vs-20129 A/B can reuse it with its own declaration.
  `analyze_r02.py readback` checks the owner's dry read-back before freezing.
- P2: the 22-minute PROMPTFOO_EVAL_TIMEOUT_MS is an independent
  preregistered deadline; pre-stream waiting and retries count toward it,
  the gateway-guarantee claim is removed, and timeouts are a per-arm
  failure, never dropped or rerun.
- P2: call_logs is an observed snapshot: late and permanently failed saves
  are named, settling is a heuristic, counts are lower bounds, terminal
  status is the observed one, and the report carries its scope.
- P3: the wire-check notes are anchored to the config revisions they used
  (b2a6410, 9d03c1e), and the current two-assertion configs (f58a4a6)
  are recorded as having offline evidence only.
- Tests: force-to-max and compression-on read-backs void the run, other
  inadmissible treatments, enum equality, a broken declaration, the dry
  read-back command, the deadline, the snapshot and the config revisions.
  frozen_inputs regenerated.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…or reuse

- The re-check's call_logs result says what the read observed (2 ids, one
  row each, no id with a second row, none unmatched) and that an observed
  snapshot does not show that no retry happened, in plan.json and README.
- plan.json admissible_rule and the README note that a study whose arms
  need different values of a setting declares one field per gateway, since
  one field listing both gateways' values would admit the arms swapped;
  a test shows the per-gateway declaration works as data and the pooled
  one admits the swap.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…n (hot-file step)

Re-registers the eleven R02 files in manifests/evidence.json on top of main's manifest (docs/lanes.md hot-file
protocol). The component matrix and new-host grand list regenerated unchanged. validate.py and
host_receipts.py validate pass.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@seathatflowsinourveins seathatflowsinourveins added the lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers label Sep 28, 2026
Scout and others added 5 commits September 27, 2026 20:46
…n condition

The gateway owner reported that 20128's OAuth occupancy override serves some turns away from their pinned
account and that no setting disables it. Checked at OmniRoute dd6e9607e: every chat request sets
reserveOAuthSession: true (src/sse/handlers/chat.ts:1711), and the override moves a call to a same- or
next-priority OAuth connection with more session availability (src/sse/services/auth.ts:2159-2176).

Both arms run through it, so it is recorded as a shared condition in plan.json limitations and the README, with
the owner's measured rates marked relayed. The owner's post-run report now also gives, per arm, the calls whose
attempts were served by more than one account. No decision rule, integrity check or frozen input changes.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…e record (hot-file step)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…'s dry read-back

The gateway owner's dry read-back at 00a94b5 failed on omniroute_app_version and omniroute_build_sha. The declared
source, /api/monitoring/health, gives both only through management auth even with login off
(OmniRoute@dd6e9607e:src/app/api/monitoring/health/route.ts:122-123, 307-310), and the owner does not read the
management credential. Checked at dd6e9607e:
- version: GET /api/system/version `current` (src/app/api/system/version/route.ts:39, 67-72), the same
  APP_CONFIG.version, keyless only while login is off (src/shared/utils/apiAuth.ts:410-414);
- build sha: readRunningBuildSha's resolution for the serving process (src/lib/monitoring/buildSha.ts:29-51).

field_sources now names these sources. The residual records that the unit's private EnvironmentFile is not read,
so an OMNIROUTE_BUILD_SHA or timeout override there is unknown, and that the process caches the build sha at its
first read. The limitations now name the owner's count of six pooled Codex accounts and the account limit-policy
cutoffs as a shared, time-varying condition. The owner's post-run report adds the cutoff times inside each half.
The admissible values, rules and integrity checks are unchanged.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…mendment (hot-file step)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@seathatflowsinourveins

Copy link
Copy Markdown
Owner Author

Custody notice for #445 from session native-agent-stack-0c.

No live owner found. This draft has had no comment or review since 2026-09-28T01:28Z, and no lane claims it in the coordination folder or on #608.

It cannot run as written. Its arms and admissible gateway-fingerprint values are bound to OmniRoute build dd6e9607e and cx/gpt-6-astra. The 2026-09-30 rebuild restarted 20128 with the affinity patch 045aa81f3. That ended the R02 freeze in fact (decisions.json r02-freeze-20128), but the rebuild record never names R02.

Plan:

  1. Retire it with a dated record on main, docs/decisions/2026-10-03-retire-gateway-ab-r02.md. The record keeps the design, subset hashes, decision rule, wire, echo and read-back history, the three review rounds and the residuals. It states that no explicit user release of the freeze is on record, and it releases nothing.
  2. Add append-only addenda to the omniroute-routing README and the 2026-09-28 roadmap.
  3. Close this PR.

The branch stays, because main cites 00a94b5 and bddb007. There will be no gateway call and no host change.

Objection window: 2 hours from this comment. The user, the OmniRoute gateway owner (20128/20129) and the Codex token lane 01a0ffbf-211c in particular: object or claim R02 here, and it becomes a user decision instead.

Claude session native-agent-stack-0c

seathatflowsinourveins pushed a commit that referenced this pull request Oct 3, 2026
Date the end of the R02 freeze from the rebuild record's own account: 20128
ran 5fc47d970 at 81c9b6da since 2026-09-29 00:42Z, so it had left dd6e9607e
by then. The 2026-09-30 rebuild is the first published record of the affinity
patch, and part (ii) of the approved patch stays open.

Cite the #445 PR description, an author report, for the review rounds, the
ninth defect and the test runs, in place of a private file. Restate the owner
line from the #445 timeline. Limit the no-run claim to the records, quote the
plan's cost-independent adopt-max rule, and name the rebuild file in the
roadmap update.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
seathatflowsinourveins added a commit that referenced this pull request Oct 4, 2026
#656)

* docs: retire the gateway A/B R02 preregistration draft

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* chore: register the R02 retirement record and refresh reports

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* docs: repair the R02 retirement record after review

Date the end of the R02 freeze from the rebuild record's own account: 20128
ran 5fc47d970 at 81c9b6da since 2026-09-29 00:42Z, so it had left dd6e9607e
by then. The 2026-09-30 rebuild is the first published record of the affinity
patch, and part (ii) of the approved patch stays open.

Cite the #445 PR description, an author report, for the review rounds, the
ninth defect and the test runs, in place of a private file. Restate the owner
line from the #445 timeline. Limit the no-run claim to the records, quote the
plan's cost-independent adopt-max rule, and name the rebuild file in the
roadmap update.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* chore: re-register the repaired R02 retirement documents

Re-register the retirement record, the routing README addendum and the
roadmap update after the review repair. Both generators left the four
reports byte-identical.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* docs: drop the first-published claims from the R02 retirement

Main contradicts the three "first published" claims. PR #425
(f6e5a03, on main since 2026-09-28T22:57:18Z) already labels
045aa81f3 as 20128's build, and PR #531's stack row (0a41bf8) states
the patch on 20128 about eleven minutes before the rebuild record
(b4056a3).
The record, the routing README addendum and the roadmap update now say
only that the rebuild record has the patch running on 20128 in
ae5539a56.

Cite the PR #425 labels as a coordinator's labels on a source read
(the repair round made no gateway request). Note that, read as the
running build, they conflict with the rebuild record's account
(:30-31, :135-136). Keep 2026-09-29 00:42Z and 2026-09-30 00:03:00Z as
upper bounds only: the record neither asserts nor rules out an earlier
date. Add 045aa81f3 and its git log -S hits to the [^rebuild] search
statement. Narrow the 81c9b6da sentence to the basis, citing the
roadmap :51 report of the gateway owner's rebuild in progress.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* chore: re-register the R02 retirement documents after the re-check

Re-register the retirement record, the routing README addendum and the
roadmap update after the re-check fixes. Only those three rows changed.
Both generators left the four reports byte-identical.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* docs: record the overtaken R02 freeze as a failed condition with its rule

Review thread on #656 (P1): the record documented the freeze conflict but
named no failed condition or prevention rule. The roadmap's F-WK-3 record
"goes in the rebuild's receipt PR" and lists "the user's R02 freeze release"
(roadmap :185-188 at 9b0b8d6); the rebuild record, the published account
that replaced the 81c9b6da package (:30-32), carries no release; the freeze
held "with no end date" (decisions.json:33).

Add a "Failed condition" paragraph: it assigns no fault, states the rule
(search a host's recorded freezes and ordering conditions before a restart
or build switch, and record each release in the switch's own record) and
the recovery (record an overtaken freeze in fact, supply no release, carry
open items forward). The anti-pattern log row (AGENTS.md:5,
docs/harness-defaults.md:85) is outside this retirement's paths and is left
to a foundation follow-up.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* chore: re-register the R02 retirement record after the failed-condition paragraph

Registry only: the record's files[] row takes its new sha256 and bytes via
host_receipts.register_file. The generated reports were re-run with
--write and did not change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* docs: qualify the after-R02 trigger as dormant while the retirement stands (root finding at 447f70b)

Line 145 said the trigger can no longer occur, but the reopen conditions allow R02 to reopen, and a completed
reopened run would satisfy the original after-scored-run predicate (decisions.json:38). Part (ii) of the occupancy
patch stays open with its own acceptance gates.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Re-register the R02 retirement record (hot-file protocol, last commit)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Restore main's registry before the last-commit re-registration (hot-file protocol)

manifests/evidence.json returns to main 1a64e8f's copy so that the next
commit, the branch's last, carries every owned registry row.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Re-register the R02 retirement record (hot-file protocol, last commit)

register_file on main 1a64e8f's registry for the three owned files: the
omniroute-routing-20260928 README, the resolved ecosystem roadmap and the R02
retirement record. component_matrix and new_host_grand_list --write changed
nothing. The tree equals the merge commit's tree.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Roadmap: follow the file's same-date heading convention ("<date>, later, main <short sha>")

The 2026-10-03 update merged after main's own 2026-10-03 section, so its heading takes the ", later,"
form the roadmap already uses for a second same-date update (2026-09-29, later, main 16f3c7f), with the
short SHA. No anchor link in the repository targets the old heading.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Hot-file protocol: reset manifests/evidence.json to the merge base before the final registry commit

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Register this branch's files on the merge-base registry (hot-file protocol: every registry edit in the last commit)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Hot-file protocol: reset manifests/evidence.json to the merge base before the final registry commit

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Register this branch's files on the merge-base registry (hot-file protocol: every registry edit in the last commit)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Scout <scout@local>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@seathatflowsinourveins

Copy link
Copy Markdown
Owner Author

Retired unmerged under the stale-PR custody of Claude session native-agent-stack-5f (formerly -0c). The dated retirement record merged in #656 as fdd0a247aee96f21c4eff309bacdb3af322eb873. This PR's head and branch are preserved; recovery: git fetch origin pull/445/head.

@seathatflowsinourveins
seathatflowsinourveins deleted the claude/gateway-ab-r02-prereg-20260927 branch October 8, 2026 07:55
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