Repository navigation
PR-D: Codex worker lane: Codex's own config writer, RTK text inline with exceptions, max-effort stack-worker profile - #389
Merged
seathatflowsinourveins merged 4 commits intoSep 27, 2026
Conversation
…max-effort worker profile (WIP checkpoint) Checkpoints uncommitted work already present in this worktree before a GPT-6 verification/build pass. Scope (per docs/decisions/2026-09-26-codex-worker-lane.md): - new: tools/adoption/apply_codex_lane.py and prove_codex_lane.py (a codex app-server config/batchWrite writer with expectedVersion, hash-guarded, rollback-capable, reusing scripts/codex_quota.py's app-server client); adoption/templates/codex.AGENTS.template.md (rtk-ai/rtk v0.50.0's hooks/rtk-awareness-full.md verbatim, plus a marked exceptions block for git show REV:path, diff, git branch, git log, jq, find and shell builtins); adoption/templates/codex.stack-worker.config.toml (model_reasoning_effort "max", web_search "live", and default_tools_approval_mode/enabled_tools for ai-memory, socraticode and headroom, whose read tools carry no MCP tool annotations); tests/test_codex_worker_lane.py with fixtures (synthetic fake-codex coverage plus two NAS_CODEX_INTEGRATION=1 opt-in real-Codex tests); this decision record and its evidence under evidence/artifacts/codex-worker-lane-20260926/. - changed: one clarifying comment in adoption/templates/codex.config.template.toml; scripts/codex_quota.py (AppServer takes a caller's argv/env; ProbeError keeps the server's error object without ever printing it); recipes/README.md (the rtk-form warning plus a new "Codex worker lane" section); docs/token-session-handbook.md, docs/token-efficiency-stack.md and docs/token-practice.md (Codex-specific notes on the rtk/context-mode rows pointing at the new lane). - untouched: scripts/adoption_status.py (its existing RTK check is reused as-is); jCodeMunch's scope; every Claude-side file. Evidence classes are stated explicitly in the decision record: source review, local integration (dry run + rehearsals + opt-in test), and synthetic (fake-codex tests); host application is out of scope for this change. Co-Authored-By: Claude Sonnet 5 <[email protected]>
… evidence scope wording
Repairs 4 of 5 open findings from the adversarial GPT-6 review of
a6ed3c57 (codex-rev/review-u4-final.md, scratchpad); the 5th
(cmd_rollback's AGENTS.md handling) was already correct and is now
pinned with a regression test.
- prove_codex_lane.py, run_workers: a process group can outlive its
leader (a leader exiting on SIGTERM does not imply descendants did).
Now signals and confirms the whole group is gone via group_alive
(mirrors scripts/codex_quota.py's AppServer.close) before deciding
SIGKILL is unnecessary, instead of checking only proc.poll().
- prove_codex_lane.py, pwd_verdict/approval_verdict/rtk_verdict: all
three now reject a timed-out or nonzero-exit worker before trusting
any completed item. pwd_verdict additionally inspects the executed
ctx_execute code/language, not just its printed result, so an
echoed-not-executed pwd no longer passes. rtk_verdict now requires
the rtk-prefixed status command itself to have exited 0.
- evidence/artifacts/codex-worker-lane-20260926/README.md: narrowed
"no file under either home was changed" to the six files the
retained before/after hashes actually enumerate (verified against
live-rehearsal.json's host_files_before_and_after).
- tests/test_codex_worker_lane.py: adds synthetic adversarial cases
for all of the above (echoed-pwd spoofs, a failed rtk status
command, timed-out/nonzero-exit workers on all four verdicts, a
real SIGTERM-ignoring descendant) plus 3 new cmd_rollback regression
tests (edited-block conflict, prior-block verbatim restore, and
removed-block backup preservation). 124 -> 132 tests, 2 skipped
(opt-in real-Codex integration, unchanged).
Residual, left as-is per the review's own framing (evidence
completeness vs. event-log size/privacy trade-off): live_checks still
returns only {name, exit, timed_out, seconds, usage} per worker, not
raw events or argv, so a claim like "the directory-binding check
passed" remains checkable only through each verdict's detail string.
Verification: git diff read directly; each of the 5 items confirmed
at source with failing-first (items 1/2, 25 synthetic-case failures
reproduced against the pre-fix source, then green) or mutation
evidence (item 5's already-correct guard, disabled via a one-line
mutation to reproduce the original HIGH finding, then reverted).
rec/validate.sh FAILS=0 after re-registration. Full suite: 6388
tests, 1 failure (test_pre_commit_gate's known gitleaks per-user-lock
flake under concurrent host activity), confirmed transient by an
isolated re-run (OK). Narrow personal-path/email/UUID scan on all 4
touched files: 0 real matches (1 pre-existing example.invalid fixture
address, unchanged by this commit).
Co-Authored-By: Claude Sonnet 5 <[email protected]>
… verdicts, local-integration class, rollback root All six cross-family findings are fixed, each with a red-then-green test: - run_workers cleans every started group and handle on a launch failure or cancellation (ExitStack plus try/finally, the AppServer.close TERM/KILL sequence); - the final wait's TimeoutExpired is caught per worker and recorded, and cleanup and event collection continue; - pwd_verdict rejects any explicit cwd override; - rtk_verdict parses the executed git argv (shlex, comments stripped), so mentions in comments or quoted data no longer pass; - the runner's JSON and the decision record classify its output as local integration (host_acceptance false) and declare its retention limits; - rollback removes a run-created Headroom table root when all of its contents are the run's. 138 tests (136 OK, 2 opt-in skipped); validate FAILS=0. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Hot-file protocol after the replay onto main 0c33b37: took main's evidence.json and re-registered the 42 files this branch adds or changes (the same set the original head registered); component matrix and new-host grand list regenerated unchanged; validate passed. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
seathatflowsinourveins
force-pushed
the
claude/codex-lane-token-stack-20260926
branch
from
September 27, 2026 06:43
5725242 to
a6ef08c
Compare
seathatflowsinourveins
pushed a commit
that referenced
this pull request
Sep 27, 2026
The GPT-6 re-check of 8780d93 resolved the snapshot and search findings. It left one low finding open: after [mcp_servers.demo], an env table written as [mcp_servers.'demo'.env] or [ mcp_servers . demo . env ] was dropped silently, because the check compared server names only. - The check now compares the parsed mcp_servers table of the extraction with the whole rendered config's, nested settings included. Any difference names the servers and fails staging closed. - The header pattern accepts TOML's literal-quoted names and spaces around the dots, so those spellings are kept rather than refused. - Without tomllib (Python 3.11+), staging refuses instead of skipping the check. The failing control: both new tests fail against 8780d93's build_args.py. The real template rendered for this host still extracts all 7 servers, env tables included, equal to the full parse. The other open medium (default worker profile absent) resolves when #389 lands the profile, and #389 merges first. Tests: 166 run, OK (3 skipped); validate.py passed. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_012qwXNtFyUhY5x2dtrm7tG5
seathatflowsinourveins
deleted the
claude/codex-lane-token-stack-20260926
branch
September 27, 2026 07:05
seathatflowsinourveins
added a commit
that referenced
this pull request
Sep 27, 2026
…ith the token stack at max effort (#387) build_args.py --gpt6-provider omniroute --codex-host HOST stages a lane-local Codex home. Its config.toml holds: - the OmniRoute provider block (loopback /v1, env_key, requires_openai_auth false, wire_api responses); - max effort; - shell_snapshot off; - standalone web search on; - the host's rendered token-stack MCP servers. The worker profile is copied beside it (default: adoption/templates/codex.stack-worker.config.toml from #389). codex_job.py runs the lane with CODEX_HOME and -p stack-worker, without --ignore-user-config. It uses a keyless-loopback placeholder key unless --omniroute-require-key is given. Guards: - a loopback URL only; - no quota gate with a gateway; - the provider is recorded in inputs.json; - MCP extraction fails closed on any table difference. Review: two GPT-6 rounds. - r1: 1 high, 2 medium, 1 low. The high was the shell snapshot writing the key at 0644. - r2: the remaining low fixed in 1e81cce with a red control. The profile medium is resolved by #389. Parity on OmniRoute 3.8.51 a58000c7 + #14904 + #13788 (BUILD_SHA dd6e9607e): - stage rc 0 with the default profile; codex rc 0; - shell, MCP ctx_execute, --output-schema and usage all pass; - effort max in the rollout, and max/max in the gateway's call_logs; - web.run reaches /v1/alpha/search. Its duckduckgo-free backend returns few or no results, which the sweep records as a lane limit. Tests: 206 run, OK (5 skipped), including tests.test_codex_worker_lane. validate.py passed. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_012qwXNtFyUhY5x2dtrm7tG5
seathatflowsinourveins
added a commit
that referenced
this pull request
Sep 27, 2026
… are an allowed dispatch mode (#388) Practice gap #6: tools/adoption/install_skills.py now says what it checked. The SKILL.md sha256 matches the pin, and the lock records the tree. Practice gap #8: agent teams are an allowed dispatch mode, per the current Claude Code docs (agent-teams, context and communication). - examples/claude-native/CLAUDE.md gains one word-neutral sentence (924 words). - scripts/adoption_status.py reports agent_teams_opt_in (0 or 1) as information, not agent_teams_off as a wiring requirement. - docs/token-efficiency-stack.md is updated to match. - docs/harness-rules-convergence-20260922.md marks WH-3 superseded. GPT-6 cross-family review: accept, no findings (213 tests, OK). After main (#389, #387) was merged in: validate.py passed; tests.test_adoption_status and tests.test_landscape_sweep_harness OK; CI full suite green. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_012qwXNtFyUhY5x2dtrm7tG5
This was referenced Sep 27, 2026
seathatflowsinourveins
pushed a commit
that referenced
this pull request
Sep 29, 2026
…ks --required; move merge-guard mechanics to the decision record The round-one verifier showed the documented statusCheckRollup filter prints superseded runs, so 'none failed' could not be judged with it (merged #389, #411 and #413 each show an earlier sota-sources failure and a later success on the final head). gh pr checks --required lists only the required checks with the latest run of each; measured exit 0 (all passed), 1 (one failed, none pending) and 8 (pending). The implementation-level citations move to the decision record, the stale-approval comparison is called an analogy, and 'today' leaves the dated record. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
seathatflowsinourveins
added a commit
that referenced
this pull request
Sep 29, 2026
…uire sota-sources (#430) * docs/lanes.md: merge with the reviewed head pinned (--match-head-commit) Strict up-to-date checks stay off and this User-owned repository cannot use a merge queue (docs/decisions/2026-09-22-github-automation-closure.md), so `gh pr merge <N> --squash --match-head-commit <SHA>` is the guard against merging a head nobody reviewed (https://cli.github.com/manual/gh_pr_merge). It was practised but not written down: grep for match-head-commit across docs, recipes, adoption, examples and AGENTS.md returned nothing. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]> * Decision record: close the sota-sources ruleset drift with dated GETs The live ruleset 23739774 now requires the committed eight checks. Before-GET 21:00:04Z (seven, no sota-sources); PUT of .github/main-ruleset.json at main e82e6be at 21:00:13Z; after-GET matches the committed file. Records the open PRs affected at PUT time and the rollback. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]> * docs/lanes.md merge guard: pin the checked and reviewed head read just before merge (B1, B2) B1: <SHA> is the full 40-character headRefOid read with gh pr view <N> --json headRefOid,statusCheckRollup immediately before the merge, on which the review completed and every required check ran with none running or failed. The hot-file protocol's rebase or merge of main comes before that read; if main changed a shared hot file after <SHA>, merge main again, wait for the checks on the new head and pin it; the review carries over only if the reviewed files are byte-identical (GitHub's stale-approval rule, available-rules-for-rulesets). Sources: gh 2.101.0 'gh pr merge --help'; cli/cli v2.101.0 pkg/cmd/pr/merge/http.go L77-80 (expectedHeadOid); GraphQL MergePullRequestInput.expectedHeadOid read by schema introspection and in github/docs src/graphql/data/fpt/schema-pulls.json. B2: the flag guards the head, not the base: with strict up-to-date checks off and no merge queue, two PRs green against an older main can still break it together (GitHub docs, loose required status checks). Co-Authored-By: Claude Opus 5.5 <[email protected]> * Drift closed entry: measured live-ruleset comparison, historical labels, executable rollback (B3, B4, B5) B4: the before-GET, PUT, after-GET and PR-status claims are labelled historical, recorded by the PR author, output not retained. Measured today (2026-09-29T03:18:04Z, read-only): the recorded diff of the live ruleset 23739774 against origin/main (b0fb65b, GitHub's main tip then) exited 0 after stripping eight response-metadata keys and sorting rules by type; the rules order is the only other difference; the 57fb6d8 negative control exits 1 on the sota-sources context only; updated_at is still the recorded PUT second. packet.md L90-92 cited as historical corroboration. B3: rollback is git show 57fb6d8:.github/main-ruleset.json | gh api --method PUT .../rulesets/23739774 --input - (not run); verified 57fb6d8's file equals 7bbb021's minus sota-sources (jq -S, cmp exit 0) and main still carries 7bbb021's file. B5: a rebase is not the only way to get a sota-sources run (validate.yml L6-9 reopened/edited; docs/lanes.md merge path), GitHub starts no pull_request run while a PR conflicts, and reporting is not passing (the job reads only the description, L517-521); #205/#216 measured CONFLICTING with no sota-sources run. Co-Authored-By: Claude Opus 5.5 <[email protected]> * Hot-file step: re-register docs/lanes.md and the automation-closure record in manifests/evidence.json Registered with host_receipts.register_file; component_matrix.py --write and new_host_grand_list.py --write left the four generated reports unchanged; scripts/validate.py passed. Co-Authored-By: Claude Opus 5.5 <[email protected]> * docs/lanes.md: read the pinned head's required checks with gh pr checks --required; move merge-guard mechanics to the decision record The round-one verifier showed the documented statusCheckRollup filter prints superseded runs, so 'none failed' could not be judged with it (merged #389, #411 and #413 each show an earlier sota-sources failure and a later success on the final head). gh pr checks --required lists only the required checks with the latest run of each; measured exit 0 (all passed), 1 (one failed, none pending) and 8 (pending). The implementation-level citations move to the decision record, the stale-approval comparison is called an analogy, and 'today' leaves the dated record. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> --------- Co-authored-by: Scout <scout@local> Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>
5 tasks done
seathatflowsinourveins
added a commit
that referenced
this pull request
Oct 7, 2026
### Scope Route catalog lookup through QMD's lexical queries and bounded document retrieval; use SocratiCode for semantic catalog search at the main checkout's projectPath. Keep reranking available and prohibit qmd embed/pull. Update current maintenance recipes and native instruction carriers through the repository renderers. Existing Serena consumers read its manual before navigation, and jCodeMunch consumers obtain the current guide before a typed route with the actual caller model and execution off. Four existing Claude roles gain only Serena's manual tool. Reviewer/builder keep their no-menu boundary, and a focused read of a known path and line remains valid. This landing repair appends the preregistration's Amendment4 to bind the deliberately changed role bodies and compacts lane-authored RTK explanations within the unchanged compact and startup budgets. The entire composed pre-RTK prefix, upstream awareness, owner's blocks, exact SKILL line, seven exceptions, models and effort are preserved. Prior amendment rows, observations, seals and RUNBOOK bytes remain unchanged. The canonical code-graph rename is prepared as a separate patch and is excluded from this head under command-center ruling081016Z. Main's existing names remain in both templates, the map, fixtures and carriers. The protected lane token requires the owner's word before the rename can land. Until that follow-up, this host's Claude code-graph access is through the vendor's hook channel only; the stale MCP carrier id is a recorded limitation and is not claimed fixed. - Base commit: `c44993b379da25fae923dbbe70188978af5104aa` (verified native source; #803 already landed). - Lane: `lane:foundation`; draft. - Head: `9985e468fa4997d22630714b2fa6a76666e3cda9`. Native bytes: compact 8076 <8192, rendered 9142, three-file startup 20101 <=20103; full Claude block 4087 <=4100. These are byte gates, not token-use measurements. - Owned paths: token-lane carriers and their paired handbook text, minimal manual grants and mirrors, Codex template/rendered copies, native loader/routing/sequence tests, current recipes and generated handbook, append-only decisions/preregistration amendment, follow-up receipts and checksum/registry projections. - ROLE-CARRIER-GAPS and ROLE-GRANTS are separate future work and stay out of this change. Landing path: explicit command-center cue070358Z and fallback ruling081016Z permit one pushed rebase/content repair onto then-current main while #802/#813/#830 land. The co-op performs the new-head delta read with its CI result; the command center ACKs; 5f lands. A further pushed rebase requires the separate dated landing-conflict cue. Host configuration, cutover and fresh-session/working-day acceptance belong to their owners. ## SOTA sources - [QMD v2.8.3 lexical query](https://github.com/tobi/qmd/blob/v2.8.3/src/mcp/server.ts#L294), [typed searches/rerank](https://github.com/tobi/qmd/blob/v2.8.3/src/mcp/server.ts#L321) and [document retrieval](https://github.com/tobi/qmd/blob/v2.8.3/src/mcp/server.ts#L412): native lexical subqueries, retrieval and optional rerank. Rerank defaults true (:334-335). [README maintenance syntax:1033-1037](https://github.com/tobi/qmd/blob/v2.8.3/README.md#L1033-L1037) supplies bounded commands. - [SocratiCode v1.15.0 codebase_search](https://github.com/giancarloerra/SocratiCode/blob/v1.15.0/src/index.ts#L138): semantic search at an absolute projectPath. Owner ruling224125Z selects the routing and preserves rerank-on acceptance; this PR performs no host cutover. - [Serena c6fbd1c5 manual order](https://github.com/oraios/serena/blob/c6fbd1c5932df2494ffa0020af5a9fbe80b82143/src/serena/resources/config/prompt_templates/system_prompt.yml#L5-L6), [manual tool:28-40](https://github.com/oraios/serena/blob/c6fbd1c5932df2494ffa0020af5a9fbe80b82143/src/serena/tools/workflow_tools.py#L28-L40) and [project/session binding:44-49](https://github.com/oraios/serena/blob/c6fbd1c5932df2494ffa0020af5a9fbe80b82143/src/serena/tools/config_tools.py#L44-L49): manual first, active cwd project and returned session id for switches. - [jCodeMunch 1.108.330, 28803366, typed route:446-463](https://github.com/jgravelle/jcodemunch-mcp/blob/288033668f0425ab0547f420dd647c14bd186c7f/src/jcodemunch_mcp/server.py#L446-L463), [guide:4743-4752](https://github.com/jgravelle/jcodemunch-mcp/blob/288033668f0425ab0547f420dd647c14bd186c7f/src/jcodemunch_mcp/server.py#L4743-L4752) and [policy:101-128](https://github.com/jgravelle/jcodemunch-mcp/blob/288033668f0425ab0547f420dd647c14bd186c7f/src/jcodemunch_mcp/cli/policy.py#L101-L128): guide-first and typed task/model route. These files are unchanged at target1.108.331/d94049d0. The executable schema corrects the guide's query example; no new adaptive-tier setting or upstream rebuild. - `native-agent-stack@c44993b:tests/test_token_e2e_preregistration.py:637-663,905-909`: later dated role-pin amendment and sealed RUNBOOK contracts. Amendment4 preserves every earlier row/seal and extends the current-row selector. The command center records merge chronology at landing; this is a structural repair and authorizes no run. - [DeusData/codebase-memory-mcp v0.11.0 release](https://github.com/DeusData/codebase-memory-mcp/releases/tag/v0.11.0), the repository's pinned component, and the command center's native-client read-back identify the canonical server name. Its proposed client-key/wire-id/owner-token correction is kept in the separate patch, preserving every payload and strict fixture. Ruling081016Z explicitly keeps main's names in this publication while the owner's instruction-token decision remains open. - RTK explanation provenance: `native-agent-stack@2d849ba` (#726) and `@50b9579` (#389), `adoption/templates/codex.AGENTS.template.md` after its exceptions marker. The eight explanations shorten while all facts and protected bytes remain. Command-center064832Z accepted their class and scoped wording. - Native helpers at `native-agent-stack@c44993b`: `tools/adoption/managed_block.py:169` (`codex_block`), `tools/adoption/codex_roles.py:287` (`f4_block`), `scripts/host_receipts.py:710` (`register_file`), `docs/lanes.md:94-128`. Current generated inventory/handbook and checksum bindings use those repository tools; historical receipts and the frozen catalog passage are preserved. ### Evidence-class table | Claim | Evidence class | Command / receipt | | --- | --- | --- | | Documented native routing/manual/guide interfaces | source_review | Pinned upstream files above | | Carrier rendering, protected bytes, new body pins and tool ids | local_integration | Existing native helpers, hashes and required modules | | Permission/sequence/byte-mutant/frozen-row controls | synthetic | Existing tests with assertions preserved | | Deployed use and token savings | Pending owner evidence | No model, host apply or working-day measurement in this repair | ### Local commands run ```text $ CI=true nice -n 19 ionice -c3 python3 -B -m unittest tests.test_token_lanes_session_start tests.test_token_lanes_subagent_start tests.test_scaffold_repo tests.test_new_wsl_handbook tests.test_adoption_docs_consistency tests.test_codex_agents tests.test_codex_roles tests.test_codex_worker_lane tests.test_token_e2e_preregistration tests.test_new_wsl_client_config.RecordTests tests.test_install_claude_profile tests.test_managed_block tests.test_task_model_routing tests.test_new_wsl_client_config.MapTests tests.test_new_wsl_client_config.AgentGapTests tests.test_new_wsl_client_config.RenderTests tests.test_new_wsl_client_config.ApplyTests.test_the_first_run_writes_what_the_wired_pieces_name_and_nothing_else exit 0; Ran 595 tests in 109.929s; OK (skipped=14) $ CI=true nice -n 19 ionice -c3 python3 -B -m unittest tests.test_install_claude_profile tests.test_adoption_docs_consistency tests.test_new_wsl_client_config.RecordTests exit 0; Ran 150 tests in 16.306s; OK (skipped=2) $ CI=true nice -n 19 ionice -c3 node examples/claude-native/workflows/test-envelope.mjs exit 0; SUMMARY passed=254 failed=0 total=254 $ CI=true nice -n 19 ionice -c3 python3 -B tools/adoption/new_wsl_client_config.py --check --markdown exit 0 $ CI=true nice -n 19 ionice -c3 python3 -B scripts/build_new_wsl_handbook.py --check exit 0 ``` The passing 595-test run is retained on unchanged source/assertion inputs from the pre-window checkpoint; the 150-test run checks the concrete relocation-fixture and workflows-README changes in the new main base. Their counts overlap and are not added. The fresh Node run passes 254/254. Strict checksums in both Codex directories and the Claude hook directory, plus `git diff --check`, exit 0. All three Amendment-4 role digests were re-derived in both copies and are unchanged from the previous published head. ```text $ CI=true nice -n 19 ionice -c3 python3 -B scripts/validate.py exit 0; 69 components, 10,482 hashed files, 4 profiles, 224 receipts, status passed ``` The earlier landing composition used source `630b6ece8485a7710ea51321682d5a12e364e25c` and hot commit `5703ef1061b982078038425fada888fd35153868`; its native checks and source-critic result are retained. The authorized locator follow-up changes only `catalogs/foundation/upstream-surface-dispositions.json` and that file's registry row: the `otel.environment` citation now points to the command at `examples/codex-native/README.md:214`. Source commit `2b36cfee` is followed by registry-last commit `9985e468fa4997d22630714b2fa6a76666e3cda9`, with no further rebase. Claude/Codex instruction bytes, role hashes, historical records, namespace and byte budgets remain unchanged. The registry starts from exact main `c44993b379da25fae923dbbe70188978af5104aa`, registers the same 67 changed-file rows through the native producer, and preserves main's receipt and convergence arrays. The two-file correction passed the 114-test citation module, the two exact failing methods and a second native validator run. The worktree is clean; the shifted-citation scan found no other current target to repair. Historical before/after references remain intact. ```text $ CI=true nice -n 19 ionice -c3 python3 -B -m unittest tests.test_upstream_surface_watch exit 0; 114 tests, 6 skipped $ CI=true nice -n 19 ionice -c3 python3 -B -m unittest tests.test_upstream_surface_watch.DispositionCitationTests.test_every_cited_line_names_the_key tests.test_upstream_surface_watch.DispositionCitationTests.test_a_dotted_key_has_its_parent_near_the_citation exit 0; 2 tests $ CI=true nice -n 19 ionice -c3 python3 -B scripts/validate.py exit 0; integrity and scope passed ``` The hosted run at5703 returned two failures in11,495 tests because the documentation locator moved. A reviewed locator still gates when its repository test fails. This follow-up closes that exact contract; it adds no assertion waiver or namespace change. Read-only overlap metadata checked all 47 open PRs, including full file pagination where needed. Source overlaps: #645, #706, #709, #754, #769, #770, #775, #776, #795, #810, #821, #826, #829. Shared registry/checksum paths use the hot-file protocol; no peer branch is changed. Earlier failed CI at3ba ran11,381tests and failed six role-body-pin subcases; its complete failed log is retained privately. The failed 560-test and earlier 595-test preparation runs also remain retained. This repair uses a dated amendment, preserves the older source evidence and strict current-body comparison, and performs no full-suite or provider acceptance run. Validator results are integrity and scope evidence only. ### Decision record `docs/decisions/2026-10-06-qmd-lexical-catalog-instructions.md` and `docs/decisions/2026-10-07-serena-jcodemunch-native-navigation-wiring.md`, with appended clarifications and the new landing follow-up, explain the behavior and limits. The preregistration README gains Amendment4 only; its RUNBOOK and earlier sealed records stay byte-identical. No prior result is recast as a new run. ### Host evidence Repository-only change. No live instruction file, MCP registration, hook trust, client setting, gateway setting/key or model session changed. Source/render checks and synthetic fixtures remain distinct from the configuration owner's read-back and organic-use acceptance. ### Checklist - [x] No GitHub Actions or paid service change. - [x] No credentials, raw conversations or live client configuration committed. - [x] Models, effort, owner's blocks and historical observations preserved. - [x] Peer-owned worktrees and source preserved. - [x] Native validation passed; changed checksums/registry committed last at the final head.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR-D of the token-stack wave: the repository side of the Codex worker lane, so GPT-6 Codex workers run inside the harness with the token stack at max effort. Decision record:
docs/decisions/2026-09-26-codex-worker-lane.md. Not applied to any host yet; the workstation applies it in a quiet window.Why
Three gaps, each confirmed on the workstation (codex-cli 0.157.1) before this change:
codex mcp get context-mode --jsonshowedcwdas the plugin cache, or as the main checkout. The template already had Token tooling repairs for the GPT-6 findings on #289/#297/#300/#303: probe exit status and lifecycle, context-mode Codex binding, retained coverage evidence #333's session-bound entry; no host had it.AGENTS.mdheld only rtk's@RTK.mdline, and Codex expands no@reference (codex-rs/core/src/agents_md.rsatrust-v0.157.1).codex debug prompt-inputshowed 0 lines of RTK text and 0 of the top rule.approval_policy = "never", ai-memory'smemory_querywas refused ("MCP tool call requires approval"). ai-memory, Headroom and SocratiCode declare no MCP tool annotations, so Codex'sautomode asks for approval on every call.What
tools/adoption/apply_codex_lane.pywritesconfig.tomlthrough Codex's ownconfig/batchWriteovercodex app-server, withexpectedVersionand a read-back of every key. It uses the quota probe's app-server client (scripts/codex_quota.py). It has a dry run, a hash-gated--applyand a byte-exact rollback.adoption/templates/codex.AGENTS.template.mdputs the top rule and rtk v0.50.0'shooks/rtk-awareness-full.mdinline inAGENTS.md, verbatim, followed by a marked exceptions block (the recipe's hook exclusions, standalonejq, a completegit log, nortkbefore shell builtins). An explicitrtkprefix skipsexclude_commands(src/discover/registry.rs:1690-1693).adoption/templates/codex.stack-worker.config.tomlis thestack-workerprofile:gpt-6-astraat effortmax,web_search = "live", and read-onlyenabled_toolswithdefault_tools_approval_mode = "approve"for the three unannotated servers.codex exec -p stack-worker -m gpt-6-astra -c model_reasoning_effort="max" -c web_search="live", because a project.codex/config.tomloutranks a profile.maxsendsmax.ultrawould send the catalog'smulti_agent_reasoning_effort(xhigh) and turn on proactive delegation.tools/adoption/prove_codex_lane.pyis the post-apply prover. Its static checks cover the inline text, the context-mode binding and the profile.--liveadds worker checks.tests/test_codex_worker_lane.pywith fixtures, the retained evidence underevidence/artifacts/codex-worker-lane-20260926/, and doc updates inrecipes/README.md,docs/token-session-handbook.md,docs/token-practice.mdanddocs/token-efficiency-stack.md.Evidence (all local integration, none of it host acceptance)
-coverrides):memory_querycompletes with the profile keys and is refused without them.Review
GPT-6 (cross-family) reviewed the build and found 5 medium and 1 low. All six are fixed in one repair round, each with a red-then-green test:
run_workerscleans every started process group and handle on a launch failure or cancellation;TimeoutExpiredis caught per worker, and cleanup continues;cwdoverride;host_acceptance: false) and state its retention limits;Residuals:
ResourceWarninginApplyFlowTestsis unchanged;CodexIntegrationTestsstay opt-in (NAS_CODEX_INTEGRATION=1).Replay onto main
0c33b37adocs/token-session-handbook.md: the conflict was resolved by keeping both sides:manifests/evidence.json: took main's copy and re-registered the 42 files this branch adds or changes (the same set the original head registered). The component matrix and new-host list regenerated unchanged.validate.shgives FAILS=0. Full suite (python3 -m unittest): 6,525 tests OK (755 skipped), 661 s.SOTA sources
rust-v0.157.1(the installed codex-cli 0.157.1):app-server-protocol/src/protocol/v2/config.rs(ConfigBatchWriteParams,ConfigEdit,ConfigReadParams) andapp-server/src/config_manager_service.rs(apply_edits);cli/src/main.rsprofile_v2_for_subcommand(no--profilefor app-server);core/src/agents_md.rs(no@expansion);config/src/loader/mod.rs:286-330andconfig/src/config_layer_source.rs(profile 21, project 25, session flags 30);core/src/mcp_tool_call.rsrequires_mcp_tool_approvalandconfig/src/mcp_types.rs(default_tools_approval_mode,enabled_tools);protocol/src/openai_models/reasoning_effort.rs,core/src/client.rsbuild_reasoningandcore/src/session/multi_agents.rs(ultrasendsmulti_agent_reasoning_effort;maxsendsmax).web_searchmodes).v0.50.0(tag commit1d87b8e7):hooks/rtk-awareness-full.md, inline verbatim (sha256278274ef…);src/discover/registry.rs:1690-1693(an explicitrtkprefix skipsexclude_commands);rtkbefore shell builtins).start.mjs, with the session-bound Codex entry from this repository's template (Token tooling repairs for the GPT-6 findings on #289/#297/#300/#303: probe exit status and lifecycle, context-mode Codex binding, retained coverage evidence #333, cm-deep step 3).mcpServerStatus/list: ai-memory 2.4.1, Headroom 0.37.0 and SocratiCode 1.14.0 declare no tool annotations. Serena's and qmd's read tools declarereadOnlyHint.Order with the sweep lane
#387 (the landscape-sweep GPT-6 lane through OmniRoute) stages this PR's committed
stack-workerprofile as its default path. The order is #385 → this → #387 → parity probe → full 20-layer sweep. Routing the lane through OmniRoute is #387's scope and the preregistered three-arm comparison's; this PR keeps native sign-in.🤖 Generated with Claude Code