Skip to content

docs(adapters): codex adapter docs reflect the tiered install#398

Merged
plind-junior merged 3 commits into
vouchdev:testfrom
dripsmvcp:docs/codex-adapter-refresh
Jul 6, 2026
Merged

docs(adapters): codex adapter docs reflect the tiered install#398
plind-junior merged 3 commits into
vouchdev:testfrom
dripsmvcp:docs/codex-adapter-refresh

Conversation

@dripsmvcp

Copy link
Copy Markdown
Contributor

closes out the codex tracking issue's docs item: with the tier work landed, three surfaces had gone stale.

the adapters table still described codex as "config.toml snippet" — one file, one tier. the row now reads "tiered install: .codex/config.toml merge, AGENTS.md excerpt, skills, capture hook", matching what actually ships.

adapters/codex/README.md documented only the manual ~/.codex/config.toml edit. it now leads with vouch install-mcp codex, explains the project-local .codex/config.toml choice and codex's trust requirement, and summarizes each tier in a small table — mcp wire, AGENTS.md snippet, skills, capture hook — along with the merge-safety guarantees (existing config deep-merged with user-wins conflicts, fenced append, flat-noop re-runs). the T3 prompts-location decision (skills over deprecated user-global prompts, with the manual-copy escape hatch) and the T4 notify restriction (project-local hooks instead of the user-global-only notify) keep their sections, the manual-ingest commands for past sessions are shown, and the old manual edit survives as an explicit fallback section rather than the lead.

docs/getting-started.md mentioned codex once, inside the mcp add one-liner. the install section now shows the two hosts side by side (vouch install-mcp claude-code / vouch install-mcp codex) with a line on idempotence and merge safety; the quick mcp add one-liner stays for the config-free path.

no code, lowercase prose matching the existing adapter readme voice, placeholder examples only. no remaining references to the old copy-only behavior — grepped the readme, getting-started, and the adapters table.

stacks on the codex chain (#392#397); merge last so the docs never describe unlanded behavior.

closes #390

@coderabbitai

coderabbitai Bot commented Jul 6, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 73cb8cbc-3e28-4304-bb74-403579b9c6a3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added docs documentation, specs, examples, and repo guidance cli command line interface adapters agent host adapters and install manifests storage kb storage, migrations, schemas, and proposals tests tests and fixtures size: XL 1000 or more changed non-doc lines labels Jul 6, 2026
@dripsmvcp dripsmvcp force-pushed the docs/codex-adapter-refresh branch from 2b2dc4f to 3556cce Compare July 6, 2026 08:50
@github-actions github-actions Bot added the mcp mcp, jsonl, and http surfaces label Jul 6, 2026
dripsmvcp added 3 commits July 6, 2026 17:59
with `vouch capture ingest-codex` available, codex can self-capture
the way claude-code T4 does. the ticket assumed the `notify` setting
in config.toml, but codex only honours notify in user-global config —
it is a restricted key in project-local layers — and the vouchdev#179 rule
forbids touching ~/.codex. codex's hooks system is the project-local
equivalent: `.codex/hooks.json` (loaded in trusted projects) fires
Stop when a turn completes, with a payload carrying the session id and
transcript path. T4 ships that file through json_merge, so an existing
user hooks.json is deep-merged into, never overwritten, and re-runs
don't duplicate the hook.

the handler is a new --hook mode on ingest-codex: read the stop
payload from stdin, resolve the session's rollout (transcript_path
when present, else by session id in the rollout filename), ingest
idempotently, and exit 0 no matter what — the same never-break-the-
host rule capture observe follows.

stop fires per turn, not per session end, so the finalize policy the
ticket left open is resolved as idempotent re-ingest: the dedup guard
now refreshes a session's still-PENDING proposal in place when the
rollout grew (same id, updated summary, audit-logged), reports an
unchanged rollout as a no-op, and never resurrects a proposal a human
already decided. storage gains update_proposal, a pure-I/O in-place
rewrite of a pending proposal file.

wiring only — everything still lands through propose_page; nothing
touches approve().

closes vouchdev#388
tests/test_openclaw_plugin_load_real.py set the pattern: exercise the
real host cli when it's on PATH, skip cleanly where it isn't. the
codex adapter had no equivalent, so regressions in the shipped config
only surfaced when a user hit them — the old T1 silent-skip no-op is
exactly the class of bug a live gate would have caught.

the new suite installs the adapter into a temp project at T4, marks
the project trusted inside an isolated CODEX_HOME, and asserts through
`codex mcp list --json` that the vouch server is visible: next to a
pre-seeded unrelated server on the merge path, alone on the fresh
path, and absent for an untrusted project (the config must stay inert
where codex says it does). a full-tier check covers the fenced
AGENTS.md, the skills, and the Stop hook, and an isolation check pins
every written artifact under the temp project.

assertions target the observable contract — server listed, config
parses, snippet present — not codex internals, so version bumps
shouldn't break the suite. no network, no credentials, never touches
the real ~/.codex; runs in the normal pytest invocation.

closes vouchdev#389
three surfaces went stale once the codex tier work landed. the
adapters table row described codex as a one-file config.toml snippet;
it now lists the tiered install. the codex adapter readme led with the
manual ~/.codex edit; it now leads with `vouch install-mcp codex`,
explains the project-local .codex/config.toml choice and the trust
requirement, summarizes what each tier adds (mcp wire / AGENTS.md
snippet / skills / capture hook) with the merge-safety guarantees, and
keeps the manual edit as an explicit fallback section. getting-started
treated codex as a one-liner aside inside the claude instructions; the
install section now shows both hosts side by side.

the prompts-location decision from the T3 ticket and the notify
restriction from the T4 ticket stay documented in their sections. no
code; placeholder examples only.

closes vouchdev#390
@dripsmvcp dripsmvcp force-pushed the docs/codex-adapter-refresh branch from 3556cce to 4b93764 Compare July 6, 2026 09:04
@github-actions github-actions Bot added size: L 500-999 changed non-doc lines and removed mcp mcp, jsonl, and http surfaces size: XL 1000 or more changed non-doc lines labels Jul 6, 2026
@plind-junior plind-junior merged commit 2fb255a into vouchdev:test Jul 6, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

adapters agent host adapters and install manifests cli command line interface docs documentation, specs, examples, and repo guidance size: L 500-999 changed non-doc lines storage kb storage, migrations, schemas, and proposals tests tests and fixtures

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants