Repository navigation
Codex MCP servers at user scope so every worktree inherits the token tools; --pinned-versions coverage check - #289
Conversation
…nned-versions coverage check Codex loads a project .codex/config.toml only from the project root it runs in, and the main checkout's copy is untracked, so Codex workers in fresh worktrees had none of the token-practice MCP servers (coverage check complete=false). The Codex user template now carries serena, socraticode, ai-memory, headroom, codebase-memory and qmd; the project template keeps only jcodemunch (#240); the context-mode cwd override is dropped. adoption_status.py gains an opt-in --pinned-versions that runs only a pin's declared "exec" version_probe (#251) and never an npm-metadata one. Applied on the workstation with codex mcp add and read back from a fresh worktree: complete false -> true, all six servers start. Decision: docs/decisions/2026-09-25-codex-mcp-scope.md. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
…, numeric minimum) The independent review of #289 found two bugs in the new version_output_matches: a non-numeric minimum floor (e.g. 2.0.0.dev0) raised and emptied the whole report, and exact was an unanchored substring test (2.10 matched 12.10.0). Both now follow adoption/bootstrap-linux.sh: exact is bounded by (^|[^0-9.])...([^0-9.]|$), and minimum compares numeric parts via a ported version_at_least that returns no-match on a non-numeric part. Regression tests for both, plus malformed pins files. The host coverage result is unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…, token wiring and local-model eval gates (#297) * Grand-dashboard checkpoint: memory lifecycle v2, retrieval quality v2, token wiring and local-model eval gates Adds four dated foundation gates for work that merged today (#289, #292, #293, and the #281 local-model receipts), inserted after the existing memory-lifecycle gate; no existing entry changed. States use the renderer's public metadata token alphabet. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Re-run checks with the PR body's SOTA sources section Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Scout <scout@local> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Cross-family review (Codex CLI 0.155.1, DEFECTS FOUND
|
…ecks, four real limits, and a correction to #296's QMD row (#343) * Record the token stack inside native Codex sessions, and correct #296's QMD row Codex side of #296: one native `codex exec` session per tool (codex-cli 0.155.1, gpt-6-astra, effort max) in a dedicated worktree, using RTK's standing instructions, the Context Mode plugin, the #289 user-scope MCP servers and the CLIs. 11 of 15 tools pass their answer checks; RTK +17782 saved for the run-only worktree; nine exact o200k comparisons from 28.2% to 99.8%; Codex-returned usage 7,085,015 input (6,253,312 cached) and 164,906 output over 17 sessions. The four failures are real limits: jCodeMunch is project-scoped (#240), QMD's catalog index excludes adoption/, Repomix --compress dropped a declaration, Context Hub lacks the upstream facts. #296's QMD PASS retrieved a wrong document for its question; its README now says so. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Sanitize the Codex E2E receipt after cross-family review (PR #343) Codex review (gpt-6-astra, read-only) confirmed every number and evidence class and asked for three fixes: replace the live-clone path, the session-derived codebase-memory project id and the SocratiCode collection id with placeholders, and state the QMD document count per attempt (121, then 122 as the live index grew). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Scout <scout@local> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Scope
adoption/templates/codex.config.template.toml): serena, socraticode and ai-memory, plus headroom, codebase-memory and qmd, which mirror the Claude user-scope set the token-efficiency owner (session 8c) registered today. The project template (project.codex.config.template.toml) keeps only jcodemunch, per Register jCodeMunch per project instead of at user scope in the new-PC Claude profile #240, and drops the context-modecwdoverride.scripts/adoption_status.py --pinned-versions(Token-efficiency coverage check: adoption profile plus value-free --client-wiring for every host #264's stated residual): per profile, it runs only a pin's declaredexecversion_probefromadoption/pins-<os>-<arch>.json(Bootstraps: declared, bounded version probes instead of --version on every bin entry #251), located onPATH, with stdin from/dev/nulland the pin's timeout. It never runs annpm-metadataprobe. It reports booleans, counts and version strings. 54 unit tests.docs/token-efficiency-stack.mdcoverage-check section, and a dated decision record with overturn conditions,docs/decisions/2026-09-25-codex-mcp-scope.md.0074a0c3(origin/main, after thev2026.09.25.2re-pin Point new machines at the attested release v2026.09.25.2 #286). Hot filemanifests/evidence.jsonre-registers the five changed tracked files.lane:foundationRoot cause (primary sources)
.codex/config.tomlonly by walking from the project root to the current directory (developers.openai.com/codex, config-advanced). A git worktree is its own project root, and this repo's.codex/is excluded through.git/info/exclude.codex mcp addhas no scope flag and always writesCODEX_HOME(codex mcp add --help, codex-cli 0.155.1)./tmpworktrees got none of the servers.Applied on the workstation and read back (native, not only templates)
origin/maincodex mcp list --jsoncontext-mode(plugin) onlyai-memory, codebase-memory, context-mode, headroom, qmd, serena, socraticodeadoption_status.py --profile token-efficiency --client-wiring→client_wiring.completelist --stdio)/healthz200--pinned-versionsnpm-metadata); repomix, headroom, toon, ccusage, serena and socraticode have no Linux pin entryOn this host the six servers were added with the native
codex mcp add, because the host has noadoption/hosts/<host>.jsonforrender_config.py. SocratiCode keeps its pinned, versioneddist/index.jspath, because its recipe creates nobin/link, so a pin move updates the template and the host together.Repair round (after the independent review)
The read-only review found two bugs in the new
version_output_matches, both in code new to this PR and neither reachable by any pin checked in today:minimumfloor. A floor such as2.0.0.dev0raised and emptied the whole report.exactmatch. It was a substring test, so2.10matched12.10.0.Commit
698958a4ports the bootstrap's own rules exactly:exactis bounded by(^|[^0-9.])…([^0-9.]|$);minimumuses a portedversion_at_leastthat returns no-match for a non-numeric part.It adds regression tests for both, and for six malformed pins-file shapes. The unit suite goes from 54 to 57 tests, all passing. The host coverage result is unchanged (
complete: true; the same matched and mismatched sets).Local commands run
Residuals
npm-metadata). Completingadoption/pins-linux-x86_64.jsonandbootstrap-linux.shfor them is the next PR; it makes new hosts install the whole token-efficiency profile..ai-memory.tomlis untracked) is unchanged. Agents pass them per call./hookstrust step.🤖 Generated with Claude Code