Skip to main content
Glama

codex-in-claude

CI License: MIT Python PyPI

Call OpenAI Codex from Claude Code — an independent second opinion, structured code review, and delegated coding tasks (cross-model review) — through a FastMCP plugin that drives the codex CLI safely.

Contents: Why · Quick start · Example · Requirements · Tools · Skills · Result envelopes · Safety · Configuration · Troubleshooting · Local development

Why

A second model is a cheap, high-value check. codex-in-claude lets a Claude Code session hand Codex a question, a diff to review, or a task to implement — and get back a structured, safe-by-default result you stay in control of.

Tier

Codex sandbox

Where edits go

Use for

consult

read-only

nothing — text/findings only

questions, second opinions

review

read-only

nothing — structured findings

reviewing your git changes

propose (the delegate tools)

workspace-write (temp git worktree + OS temp roots)

worktree diff → returns a reviewable diff, never auto-applied

delegating a coding task

Planned later milestone: an explicit opt-in apply tier for live-tree edits. It is not exposed by the current tool set.

Related MCP server: claude-code-codex-agents

Quick start

First, in a terminal, make sure the codex CLI is installed and log in (a no-op if you already are):

codex login

Then, inside a Claude Code session, add the marketplace and install the plugin:

/plugin marketplace add briandconnelly/codex-in-claude
/plugin install codex-in-claude

Then run /codex:status in Claude Code. It is free (no model call) and checks that the codex CLI is found, authenticated, and within the tested compatibility range.

For a first useful run:

  • /codex:consult is this approach sound? for a read-only second opinion.

  • /codex:review to review your current git changes.

  • /codex:delegate add focused tests for this behavior to get a proposed diff in an isolated worktree.

The MCP server is launched on demand via uvx from a pinned PyPI release, so updates are deliberate.

Example

Review your uncommitted changes from a Claude Code session:

/codex:review

Codex inspects the diff read-only and returns a structured result envelope (abridged):

{
  "ok": true,
  "tool": "codex_review_changes",
  "verdict": "concerns",
  "confidence": "high",
  "review_status": "completed",
  "coverage": { "status": "complete", "untracked_files_detected": 0, "untracked_files_omitted": 0, "omission_reasons": [], "redaction": null },
  "summary": "The retry path is correct, but the backoff delay leaks between calls and the new branch has no test coverage.",
  "findings": [
    {
      "severity": "high",
      "title": "Backoff delay is never reset after a success",
      "file": "src/app/retry.py",
      "line": 42,
      "evidence": "self._delay keeps its last value once a call succeeds",
      "risk": "A later transient failure starts from an inflated delay, adding latency.",
      "recommendation": "Reset self._delay to the base delay in the success branch."
    }
  ],
  "next_steps": ["Add a regression test asserting the delay resets after a success"],
  "meta": { "scope": "working_tree", "sandbox": "read-only", "elapsed_ms": 8137 }
}

verdict is one of pass / concerns / fail / unknown; confidence is low / medium / high; every finding carries a severity (criticalnit) plus evidence, risk, and recommendation. verdict is the safe overall conclusion: review_status tells you whether the model actually ran (a tree with nothing reviewable returns not_run/unknown, never a false pass), and coverage discloses anything the model was not shown — omitted untracked files (governed by the untracked policy), a truncated diff, or a redacted file — downgrading a pass over partial coverage to unknown. The envelope above is abridged — meta (always present, with cwd, tier, sandbox, isolation, and timing), request_id, raw_response, and other fields are trimmed for brevity; see docs/REFERENCE.md for the complete shape.

Requirements

  • macOS or Linux (POSIX). Windows is not supported natively — the async-job safety layer (file locks, process groups, signal-driven cancellation) is POSIX-only. Run it under WSL2 on Windows. See COMPATIBILITY.md for the platform contract.

  • The codex CLI on PATH, authenticated (codex login — ChatGPT or API key). Tested against codex-cli 0.152; the supported range lives in cli_contract.py, /codex:status reports whether your version is in range, and COMPATIBILITY.md explains the policy.

  • uv on PATH (Claude Code launches the MCP server with uvx).

  • Python 3.11+ available to uvx.

  • git (for review and delegate).

Tools

Active (call the model and may spend tokens):

  • codex_consult(question, …) — read-only second opinion / answer.

  • codex_review_changes(scope, base, commit, paths, …) — review working_tree / branch / commit; returns structured findings.

  • Both consult and review (sync and _async) also take developer_instructions — optional caller stance/focus text placed in Codex's developer turn behind this server's always-leading framing (max 4096 bytes; stripped, blank = omitted; refused pre-spend if it carries the server's framing markers). It grants no tools and Codex is instructed — not compelled — to keep verdicts its own; compliance with the rest of the text is best-effort for the same reason, and may be silent, so meta's fingerprint attests the request the server accepted and staged, not what the model did with it. The text rides the codex command line and the background-job record on disk, so never put secrets in it, and result meta reports only its {sha256, bytes}. Deliberately not on codex_delegate: delegate edits files, so a caller stance there would widen what an untrusted workspace can steer. Full contract: the codex://params resource.

  • codex_delegate(task, …) — implement a task in an isolated worktree; returns a reviewable diff that is not applied.

  • codex_consult_async(question, …), codex_review_changes_async(scope, base, commit, paths, …), codex_delegate_async(task, …) — detached variants of the three active tools, taking the same arguments as their synchronous forms: each returns a job_id immediately. Starting a job commits to spend (it runs to completion or its deadline); poll with codex_job_status / codex_job_result.

Free (local only):

  • codex_status — readiness, version, auth, resolved defaults, and a rate_limit block (remaining Codex quota for the shorter/rolling and longer windows, read live from the Codex app-server with no model spend; status is available/limited/exhausted/blocked/ unknown/unavailable). Advisory — informs whether to spend; unknown/unavailable mean no usable reading, not a problem, while blocked reports a backend spend control that waiting does not clear.

  • codex_transfer(transcript_path, …) — hand off the current Claude Code session to a resumable Codex thread; returns resume_command (codex resume <thread_id>) to continue that exact conversation in Codex. No model call or token spend (a local file conversion via the experimental codex app-server), but it does create a thread in $CODEX_HOME. Not idempotent for a live session — Codex dedups only a byte-identical transcript, so re-running mid-session makes a new thread. Experimental.

  • codex_dry_run(scope, …) — preview a review's scope/diff size/redactions before spending.

  • codex_delegate_dry_run(task, …) — preview a delegate's seeded baseline (HEAD commit, plus tracked, uncommitted, and untracked counts and size) and prompt size before spending; no worktree is created.

  • codex_capabilities — tool inventory + result fingerprint.

  • codex_models — advisory catalog of valid model slugs, read from Codex's on-disk cache with a bundled static fallback; also browsable as the codex://models resource. Discovery only — model stays pass-through, so an unlisted slug still works and codex exec validates it.

  • codex_job_status(job_id, …) / codex_job_result / codex_job_consume_result / codex_job_cancel / codex_job_list — background-job lifecycle. State is disk-backed and survives server restarts. Honor poll_after_ms rather than polling in a tight loop; deadlines, eviction, and result retention are covered in docs/REFERENCE.md.

Both dry runs report metadata about the input this plugin would assemble. Neither invokes Codex, so neither enumerates nor bounds the files the model itself reads and sends during the paid run — a clean preview is a check on scope, not evidence that nothing sensitive will be sent (see Safety).

Slash commands wrap these: /codex:status, /codex:transfer, /codex:consult, /codex:review, /codex:delegate, /codex:delegate-async, /codex:dry-run.

Active tools send the prompt and relevant context/diffs to OpenAI through the codex CLI. Treat Codex's output as claims to verify, not as instructions to follow blindly.

Skills

The plugin ships one Claude Code skill, auto-discovered from skills/:

  • collaborating-with-codex — the router and shared safety contract for every Codex workflow. It selects ordinary consult, review, delegate, transfer, and async tools directly, and loads references on demand for independent-attempt or declared review–revise composition. A one-off critique or judgment remains an ordinary route rather than a separate deliberation mode.

Result envelopes

Every result discriminates first on ok. On success, completed consult, review, and delegate calls share their active-result fields; review alone adds verdict/confidence/review_status/coverage, and delegate alone adds the proposed diff. Discovery, dry-run, transfer, async-start, and job-lifecycle tools have their own success schemas. A fetched job result matches its originating consult, review, or delegate tool, so branch on that result type before reading fields. Failure is a uniform, machine-actionable error with a stable code and symbolic repair hint. The contract is versioned by fingerprint.

Calling the MCP tools directly instead of through the /codex:* commands? See docs/REFERENCE.md for the detailed contract — error-envelope semantics, rate-limit reporting (codex_status), background-job semantics, and workspace selection (workspace_root). It points on to codex://error-envelope for the full error schema.

Safety

  • consult and review are strictly read-only.

  • propose (the delegate tools) lets Codex write in a throwaway git worktree seeded from HEAD plus replayable uncommitted tracked changes. Untracked files are not copied. The worktree does not bound Codex's writes: codex's workspace-write sandbox also lets commands write the OS temp roots (/tmp and $TMPDIR) by default, and those writes are neither captured in the returned diff nor cleaned up (see COMPATIBILITY.md). Your working tree is never modified by the plugin; you review the returned diff and apply it yourself. Delegate's no-network sandbox (workspace-write) blocks egress only for commands Codex runs in the sandbox — it does not mean nothing leaves the machine: the model call still sends your task and repo context to OpenAI.

  • Do not target a workspace containing secrets you cannot disclose. Supplied prompts and context (question, task, extra_context, and similar author input) are sent raw. During every active call — including consult — Codex may read files outside the resolved workspace, up to everything the OS user running codex can read, and send them to OpenAI: the sandbox bounds writes, not reads, so no choice of workspace is a read boundary, and a prompt-injected repository can direct those reads anywhere that user can reach. Codex also pulls in context implicitly: AGENTS.md is auto-loaded from the resolved workspace and — inside a repository — from every ancestor directory up to the repository root, so narrowing the workspace to a subdirectory does not exclude the repo-root file; plus a user-global $CODEX_HOME/AGENTS.override.md, else $CODEX_HOME/AGENTS.md, which loads on every call from any workspace. Skills under .agents/skills/plus your user-global Codex skills under $CODEX_HOME/skills/ (default ~/.codex/skills/) — are auto-discovered by name and description, and a skill the model then selects has its body read in as well. Either way the content can be sent to OpenAI even if your prompt never mentions it (for delegate, the versions seeded into the throwaway worktree apply there; the user-global skills are reachable regardless of workspace, since they are discovered from outside it). The plugin's isolation flags do not suppress any of this — including --ignore-user-config, which drops $CODEX_HOME/config.toml but not $CODEX_HOME/skills/. Details, the verifying probe, and the remaining unverified edge cases are in COMPATIBILITY.md.

  • Redaction is output/diff defense-in-depth, not input protection and not a guarantee. It protects gathered diffs and returned free text (summary, findings, raw_response.text): secret-looking file hunks are dropped, and inline matches are replaced with [redacted: secret value] — no affirmative sign the match stopped short, which is not the same as proof it's complete — or [redacted: possibly partial secret value] when it finds one: a trailing character the matched text's own alphabet could not have produced (the value may continue past the marker), or a leading character that could continue the same token (the match may have started mid-token). Neither marker is a guarantee either way: a free-form secret can contain almost any character, and flagging every unusual neighbor as suspect would fire on nearly every redaction and stop meaning anything.

  • Control characters are deleted from the same returned free text, before redaction runs — an escape sequence in an envelope can corrupt or spoof how it renders, and one wedged into a secret would defeat the redactor. raw_response.text and machine fields (a review verdict, a finding's file, an argument name) are deliberately left alone; see docs/REFERENCE.md.

  • The plugin never passes Codex's --dangerously-bypass-* flags.

  • Found a vulnerability? Report it privately — see SECURITY.md.

Configuration (env, CODEX_IN_CLAUDE_*)

Var

Default

Meaning

CODEX_IN_CLAUDE_MODEL

unset

Codex model override

CODEX_IN_CLAUDE_REASONING_EFFORT

unset

Codex reasoning-effort override, sent as a model_reasoning_effort config override on every paid call; an open per-model string the Codex backend validates — codex_models lists each model's advertised set (semantics and probes in COMPATIBILITY.md). The per-call reasoning_effort parameter overrides it; a backend-rejected value fails as invalid_reasoning_effort

CODEX_IN_CLAUDE_TIMEOUT_SECONDS

300

per-call timeout (clamped 10–600)

CODEX_IN_CLAUDE_ISOLATION

inherit

inherit | ignore-config | ignore-rules

CODEX_IN_CLAUDE_EXTRA_ARGS

unset

extra global codex options added to every paid exec call (consult/review/delegate), so you can select a model_provider/--profile even under ignore-config isolation (which drops config.toml, leaving -c the only lever). Allowlist only: -c/--config KEY=VALUE, -p/--profile NAME, --enable/--disable FEATURE. The plugin-owned features (remote_plugin, sleep_tool) are refused in every spelling — --enable/--disable and -c features.… — see COMPATIBILITY.md → "Operator extra-args passthrough" for the full deny list. Anything else is refused with extra_args_rejected before any spend — including -c keys under sandbox/approval_policy/shell_environment_policy (guarantee-weakening), the reserved model/model_reasoning_effort keys (use CODEX_IN_CLAUDE_MODEL/CODEX_IN_CLAUDE_REASONING_EFFORT or the per-call model/reasoning_effort parameters instead), and the instruction-bearing developer_instructions/model_instructions_file/experimental_instructions_file/instructions/model_catalog_json keys (they would place operator prose above the server's framing with no record in meta; for developer_instructions use the per-call, meta-reported parameter on consult/review instead — #556; the other four have no first-class control on purpose) — plus their case/quote lookalikes (deny rules and rationale in COMPATIBILITY.md). -c values may hold secrets, so they are never echoed in codex_status or errors. A --profile layers an on-disk TOML this server cannot inspect — an operator-trust boundary (see COMPATIBILITY.md)

CODEX_IN_CLAUDE_MAX_INPUT_BYTES

200000

byte cap on author input: gathered diffs are truncated to it, author text above it is rejected with input_too_large (consult counts question+extra_context+developer_instructions together; review sums extra_context+developer_instructions pre-spend and bounds the diff separately; delegate caps each input separately)

CODEX_IN_CLAUDE_MAX_DELEGATE_DIFF_BYTES

200000

cap on the inline diff a delegate run returns; larger diffs are truncated with meta.truncated/meta.truncation_hint (min 1000)

CODEX_IN_CLAUDE_MAX_OUTPUT_BYTES

10485760

byte cap for captured stdout (head+tail window; run not killed); stderr is bounded to a separate ~1 MiB reserve

CODEX_IN_CLAUDE_GIT_TIMEOUT_SECONDS

60

git command timeout

CODEX_IN_CLAUDE_STATE_DIR

$XDG_CACHE_HOME/codex-in-claude/jobs or ~/.cache/codex-in-claude/jobs

disk-backed background-job records

CODEX_IN_CLAUDE_JOB_TTL

86400

seconds a finished job record is kept (min 60)

CODEX_IN_CLAUDE_JOB_MAX_SECONDS

1800

background-job wall-clock cap (clamped 60–7200)

CODEX_IN_CLAUDE_JOB_MAX_COUNT

50

retained jobs per workspace (clamped 1–1000); a soft cap — only terminal records are evicted, so a busy workspace can hold more

CODEX_IN_CLAUDE_SUPPORTED_VERSIONS

built-in tested set

comma-separated codex major.minor versions to treat as supported

CODEX_IN_CLAUDE_LOG_LEVEL

WARNING

server diagnostic log level (DEBUG|INFO|WARNING|ERROR|CRITICAL); logs go to stderr (never stdout)

CODEX_IN_CLAUDE_LOG_FILE

unset

also mirror diagnostic logs to this file path

CODEX_IN_CLAUDE_ALLOW_UNSUPPORTED_PLATFORM

unset

set to 1 to downgrade the non-POSIX startup refusal to a stderr warning for knowingly consult-only, unsupported use; the async-job safety layer cannot hold, so do not run delegate/review against untrusted work (see Requirements / COMPATIBILITY.md)

CODEX_IN_CLAUDE_CODEX_BIN

unset

explicit override for which codex binary to invoke; a non-empty value is used exactly as given, with no PATH re-resolution, and must exist on disk as an executable file (execute bit set) or a readiness error results. Unset leaves resolution automatic (WSL2-aware; falls back to the bare codex on PATH — see COMPATIBILITY.md)

Two further variables, CODEX_IN_CLAUDE_TIER_DEFAULT and CODEX_IN_CLAUDE_SANDBOX_DEFAULT, exist ahead of the planned apply tier. They only change the defaults codex_status reports — every shipped tool pins its own tier and sandbox and ignores them.

Troubleshooting

Run /codex:status first — it's free (no model call) and diagnoses most setup problems.

Symptom

Cause

Fix

codex not found

CLI not installed or not on PATH

Install the codex CLI and ensure it's on PATH

Not authenticated

No Codex login

codex login (ChatGPT or API key)

Unsupported-version warning

Your codex version is outside the tested range

Update codex, or set CODEX_IN_CLAUDE_SUPPORTED_VERSIONS once you've verified it works

meta.workspace_warning in results

Server fell back to its own launch directory

Run from the target repo, or pass workspace_root (see docs/REFERENCE.md)

codex_delegate fails needing a commit

The temp worktree is seeded from HEAD

Make at least one commit first

codex_rate_limited error

Account hit a usage/rate limit

Back off for retry_after_ms, then retry

Connection closed / No such tool available: mcp__codex-in-claude__*

The stdio MCP server is down

Reconnect with the /mcp command (or restart the client), then confirm with codex_status; see the fallback note below

A stdio MCP server can't be transparently auto-restarted (the client owns the pipe and the initialize handshake), so recovery is a manual reconnect. On a fatal crash the server writes a breadcrumb to stderr (server name, version, reason, and a /mcp reconnect hint) before exiting, and logs clean disconnects (EOF / broken pipe / SIGINT / SIGTERM) as shutdown rather than crashes — so the server logs tell you whether it died or was stopped.

If the MCP server is down, you can fall back to the codex CLI directly for a read-only consult or review (prompt on stdin; set WORKSPACE to the directory Codex should work in — note it selects where Codex works, not what it can read, so approve the exposure of anything the OS user can reach, not just that tree):

WORKSPACE=/absolute/approved/path codex exec --sandbox read-only --ephemeral \
  --ignore-user-config --ignore-rules --disable remote_plugin --disable sleep_tool \
  --cd "$WORKSPACE" --skip-git-repo-check -

Keep every flag — together they apply the plugin's guarantee-bearing flags at its strictest config isolation, plus --disable sleep_tool, which is spend hygiene rather than a guarantee (it removes Codex's native sleep tool — see COMPATIBILITY.md → "Sleep tool" — and here no server deadline would cut a sleep short) — but this still bypasses the plugin's diff gathering, secret redaction, input-byte bounding, and structured envelope, so sanitize input yourself and prefer restoring the server. See the collaborating-with-codex skill for the full fallback guidance.

Local development

uv sync
uv run pytest                       # unit tests (95% coverage floor)
uv run pytest -m integration --no-cov   # live tests; needs codex installed + logged in
uv run codex-in-claude-mcp          # run the MCP server over stdio

The full pre-PR gate — lint, format, types, tests — is defined once in AGENTS.md → Tooling.

To test the plugin from a local checkout, point .mcp.json at uv run --project /path/to/codex-in-claude codex-in-claude-mcp instead of the version-pinned uvx --from codex-in-claude==<version> invocation it ships with.

See CONTRIBUTING.md for branch, commit, and PR conventions.

  • claude-in-codex — the mirror image: lets Codex call Claude Code.

  • Inspired by openai/codex-plugin-cc, rebuilt around codex exec for robustness: every paid call goes through it, and only codex_transfer touches the experimental app-server protocol.

License

MIT

Available Tools

17 tools
codex_capabilitiesList server capabilities (free)A
Read-only

List this server's tools, tiers, and the result fingerprint. Free — no model call. Clients can cache by the fingerprint.

detail="summary" (default) returns each tool's name, cost, stability, and error_codes — the facts tools/list does not already carry — plus async_lifecycle, but only for the *_async tools. detail="full" adds use_when/returns/required_params/key_optional_params, restating what you already hold. detail="contracts" omits tool_details.

Pass include_schemas to also embed the full 'error-envelope', 'result-meta', 'capabilities-result', and/or 'status-result' schema, and/or the 'parameter-contracts' document (a contract doc, not a JSON Schema) — a tool-reachable fallback to the codex:// resources for resource-blind clients. It works in any detail mode.

ParametersJSON Schema
NameRequiredDescriptionDefault
detailNoWhat to return: 'summary' (default) returns each tool's name, cost, stability, and error_codes; the *_async tools also get async_lifecycle. 'full' adds use_when, returns, and the parameter lists (which tools/list already carries). 'contracts' drops tool_details: fetch a schema, or recheck fingerprint, without re-paying for the inventory.summary
include_schemasNoOpt-in tool-reachable fallback for resource-blind clients: also embed the full 'error-envelope', 'result-meta', 'capabilities-result', and/or 'status-result' schema, and/or the 'parameter-contracts' document (a contract doc, not a JSON Schema, sourced from the codex://params resource body), in the response — the default payload omits them and points at the codex:// resources instead.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses that the call is free and makes no model call, that clients can cache by fingerprint, that async_lifecycle appears only for *_async tools, and that the default payload omits embedded schemas and points at codex:// resources. This is rich, accurate behavioral context with no annotation contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-structured: purpose, cost, and caching are front-loaded, and each subsequent paragraph maps cleanly to one parameter or one return mode. No sentence is redundant with the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only capabilities/listing tool with an output schema, the description covers cacheability, detail-mode semantics, schema-embedding fallback, and async distinctions. Nothing essential is missing for an agent to decide whether and how to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, and the description adds real decision value: it explains the summary/full/contracts trade-off, why full restates known facts, the cost advantage of contracts, and the purpose of include_schemas for resource-blind clients. It also clarifies that parameter-contracts is a contract document, not a JSON Schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb and resource: 'List this server's tools, tiers, and the result fingerprint.' It also establishes what makes this tool distinct from a standard tools/list call by noting it exposes facts tools/list does not already carry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for choosing detail modes: summary returns the non-duplicative facts, full restates what the client already holds, and contracts avoids re-paying for the inventory. It does not explicitly name sibling tools or state when not to call this capability, so it falls just short of full guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex_consultConsult Codex (paid)A

Ask Codex (a different model) for a read-only second opinion or answer.

PAID — this spends Codex quota on every new call; there is no dry-run preview for a consult, so run codex_status (free) first to confirm the CLI is installed and authenticated.

Runs codex exec in a read-only sandbox — Codex never edits files. A STATIC review, not a verify mode: the read-only sandbox blocks the writes a test/build/lint run needs, so Codex can't run your checks to confirm its claims — treat findings as unvalidated claims you verify yourself. Pass workspace_root (absolute) for a repo-grounded question; omit it for pure Q&A. Returns a result envelope.

Data egress: this sends your question, extra_context, and developer_instructions to OpenAI via the codex CLI. Codex always runs with a resolved working directory (workspace_root, your MCP roots, or the server's cwd as a fallback) — that selects where it works, not what it can read. Codex can read files outside the workspace — up to everything the OS user running it can read — and send them to OpenAI. The sandbox bounds writes, not reads, so no choice of workspace is a read boundary. Codex auto-loads the resolved workspace's AGENTS.md and, in a repository, ancestor AGENTS.md files through its root, plus a user-global $CODEX_HOME/AGENTS.override.md, else $CODEX_HOME/AGENTS.md; it discovers skills in the workspace's .agents/skills/ and user-global $CODEX_HOME/skills/ (default ~/.codex/skills/), reachable from outside the workspace. The plugin's isolation flags don't suppress any of it. A skill's name and description arrive up front; selecting one makes the model read its body, which can reach OpenAI even if your inputs never mention it. Your inputs are sent raw — secret redaction is best-effort and does not cover them (it covers gathered diffs and Codex's returned output, not what you type or what Codex reads from files).

Progress & recovery: blocks up to the resolved deadline (timeout_seconds, clamped 10-600s; when omitted, the server-configured value, built-in default 300s). If that deadline expires the run is terminated and its partial output is not recoverable or resumable, so for a high-reasoning_effort or broad repo-grounded consult that may exceed it, prefer codex_consult_async (a background job, built-in default 1800s deadline; poll codex_job_status). Coarse notifications/progress streams while it blocks when your client requests it; some MCP clients background a long call before the deadline, so timeout_seconds bounds the run, not necessarily the inline wait — either way the detached run (meta.job_id) is recoverable via codex_job_listcodex_job_statuscodex_job_result.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoOverride the Codex model slug for this call; defaults to the server/Codex default when unset. Control characters are rejected, not stripped.
detailNoResponse verbosity: 'summary' (default) omits the raw model text; 'full' includes it.summary
questionYesThe question or prompt to send Codex (a different model) for a read-only answer. Must be non-blank: empty or whitespace-only is rejected before any model call.
isolationNoCodex config isolation: 'inherit' | 'ignore-config' | 'ignore-rules'. Defaults to the server's configured value (built-in 'inherit'; `codex_status` reports the resolved one).
extra_contextNoOptional author intent/background context, added as clearly-labeled UNTRUSTED prompt data. Redaction does NOT cover it — no live secrets. Full caveats and bounds: codex://params.
workspace_rootNoAbsolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary.
idempotency_keyNoOptional dedup key scoped to THIS tool + workspace. Same key + same args replays the prior result with no new spend; different args are refused (idempotency_conflict). Sync and _async are separate tools and never share a key. Omit for none; retention is bounded. Lifecycle: codex://params.
timeout_secondsNoPer-call wall-clock timeout in seconds, clamped to 10..600 (out-of-range values are coerced, not rejected). Defaults to the server's configured timeout.
reasoning_effortNoOverride the Codex reasoning effort for this call (a model_reasoning_effort override); omit or pass null for the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) or Codex's own resolution. An open, per-model string the backend validates at run time — commonly minimal|low|medium|high|xhigh; codex_models lists each model's advertised set (advisory). Rejection and bounds detail: codex://params.
developer_instructionsNoOptional caller stance/focus text for Codex's developer turn, placed BEHIND this server's always-leading framing; omit for no developer override. UNTRUSTED — never build it from workspace content; grants no tools; Codex is instructed, not compelled — verdicts stay its own, and compliance with the rest is best-effort and may be silent. Rides the codex command line and the background-job record on disk — never put secrets here; meta reports only {sha256, bytes}. Stripped; blank = omitted; max 4096 bytes. Full contract: codex://params.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Exceeds annotation coverage dramatically. Discloses paid quota spend with no dry-run, data egress to OpenAI including which params are sent, that Codex can read files outside the workspace and the sandbox bounds writes not reads, AGENTS.md/skills auto-loading that isolation flags don't suppress, best-effort secret redaction that excludes raw inputs, and that expired runs lose partial output. The readOnlyHint:false annotation is consistent, not contradictory — the tool has real side effects (quota spend, data egress) even though the file-system sandbox is read-only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but earns its length given the paid, data-egress stakes. It is front-loaded with a one-sentence purpose and organized into clear labeled sections (paid warning, sandbox behavior, data egress, progress/recovery). Minor deduction for redundancy — the read-boundary warning is restated several times ('not a read boundary', 'sandbox bounds writes, not reads', 'no choice of workspace is a read boundary').

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter, paid, externally-egressing tool, this is about as complete as descriptions get: cost, prerequisites, sandbox limits, security boundaries, param semantics, timeout behavior, async fallback, and recovery path are all covered. An output schema exists to document return values, and the description still notes the result envelope and meta fields like job_id and workspace_warning.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed per-parameter descriptions, so the baseline is 3. The description adds genuine operational meaning beyond the schema: workspace_root 'selects where it works, not what it can read' and its cwd-fallback behavior, which params are egressed, and the semantic distinction that omitting workspace_root yields pure Q&A. It reinforces rather than merely repeats the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening line 'Ask Codex (a different model) for a read-only second opinion or answer' states a specific verb, resource, and scope. It differentiates from siblings by positioning itself as the synchronous, static consult variant, and later explicitly contrasts with codex_consult_async, making it distinguishable without opening sibling schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Extremely explicit usage guidance: run codex_status first to confirm install/auth, pass workspace_root for repo-grounded questions vs omit for Q&A, prefer codex_consult_async for long/high-reasoning-effort runs, and use the codex_job_* family for recovery of detached runs. It also says what NOT to use it for — a verify mode, since the read-only sandbox blocks test/build/lint writes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex_consult_asyncConsult Codex in background (paid)A

Ask Codex for a read-only second opinion in the background; get a job_id back immediately instead of blocking.

PAID — this spends Codex quota on every new call; there is no dry-run preview for a consult, so run codex_status (free) first to confirm the CLI is installed and authenticated.

Same read-only behavior as codex_consult (Codex never edits files), but detached — prefer it for a high-reasoning_effort or broad repo-grounded consult that can exceed the synchronous deadline (built-in default 300s), since a sync run whose deadline expires loses its partial work; this job's own deadline is separately configured (built-in default 1800s). Starting a job commits to spend (it runs to completion or its wall-clock deadline even if you never poll). Poll codex_job_status; read/consume the consult envelope with codex_job_result/codex_job_consume_result; stop with codex_job_cancel.

Data egress: same as codex_consult — sends your question, extra_context, and developer_instructions (raw, unredacted) to OpenAI via the codex CLI. Its resolved working directory (workspace_root, your MCP roots, or the server cwd) selects where Codex works, not what it can read. Codex can read files outside the workspace — up to everything the OS user running it can read — and send them to OpenAI. The sandbox bounds writes, not reads, so no choice of workspace is a read boundary. Codex auto-loads the resolved workspace's AGENTS.md and, in a repository, ancestor AGENTS.md files through its root, plus a user-global $CODEX_HOME/AGENTS.override.md, else $CODEX_HOME/AGENTS.md; it discovers skills in the workspace's .agents/skills/ and user-global $CODEX_HOME/skills/ (default ~/.codex/skills/), reachable from outside the workspace. A skill's name and description arrive up front; selecting one makes the model read its body, which can reach OpenAI even if your inputs never mention it.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoOverride the Codex model slug for this call; defaults to the server/Codex default when unset. Control characters are rejected, not stripped.
questionYesThe question or prompt to send Codex (a different model) for a read-only answer. Must be non-blank: empty or whitespace-only is rejected before any model call.
isolationNoCodex config isolation: 'inherit' | 'ignore-config' | 'ignore-rules'. Defaults to the server's configured value (built-in 'inherit'; `codex_status` reports the resolved one).
extra_contextNoOptional author intent/background context, added as clearly-labeled UNTRUSTED prompt data. Redaction does NOT cover it — no live secrets. Full caveats and bounds: codex://params.
workspace_rootNoAbsolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary.
idempotency_keyNoOptional dedup key scoped to THIS tool + workspace. Same key + same args replays the prior result with no new spend; different args are refused (idempotency_conflict). Sync and _async are separate tools and never share a key. Omit for none; retention is bounded. Lifecycle: codex://params.
reasoning_effortNoOverride the Codex reasoning effort for this call (a model_reasoning_effort override); omit or pass null for the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) or Codex's own resolution. An open, per-model string the backend validates at run time — commonly minimal|low|medium|high|xhigh; codex_models lists each model's advertised set (advisory). Rejection and bounds detail: codex://params.
developer_instructionsNoOptional caller stance/focus text for Codex's developer turn, placed BEHIND this server's always-leading framing; omit for no developer override. UNTRUSTED — never build it from workspace content; grants no tools; Codex is instructed, not compelled — verdicts stay its own, and compliance with the rest is best-effort and may be silent. Rides the codex command line and the background-job record on disk — never put secrets here; meta reports only {sha256, bytes}. Stripped; blank = omitted; max 4096 bytes. Full contract: codex://params.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes far beyond annotations: it discloses that every call spends Codex quota, there is no dry-run preview, starting a job commits to spend even if never polled, data is sent raw/unredacted to OpenAI, and Codex can read outside the workspace. It also explains AGENTS.md and skill auto-loading behavior. This is exceptional transparency for an invocation with cost and data-egress implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long, but every block earns its place: purpose is front-loaded, then cost, timeout rationale, job lifecycle, data egress, workspace read semantics, and auto-loaded config/skills. The structure uses clear paragraphs to separate concerns, and the density is justified by the tool's cost and privacy implications.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity, an output schema is present, and annotations provide basic hints, the description is fully complete for safe invocation. It covers billing, background execution, deadline behavior, cancellation/result retrieval, data egress, read-boundary caveats, and implicitly loaded context files. An agent has everything needed to decide whether and how to call it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents every parameter. The description adds extra semantic context above that baseline: it names which parameters are sent to OpenAI, clarifies that `workspace_root` is not a read boundary, and connects `reasoning_effort` to the reason for preferring async. It does not walk through every parameter, but the schema plus prose fully cover practical meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb ('Ask Codex'), resource ('read-only second opinion'), and execution mode ('background', returns a job_id immediately instead of blocking'). It clearly differentiates from the synchronous sibling `codex_consult` and the paid nature is explicit. Even without examining the schema, an agent can understand what this tool does and how it differs from nearby tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance: prefer this detached variant for high-reasoning-effort or broad repo-grounded consults that may exceed the synchronous 300s deadline. It also names the free prerequisite check (`codex_status`), names the polling/result/cancel tools, and explains the trade-off vs `codex_consult`. This is effective routing among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex_delegateDelegate a coding task (paid)A
Destructive

Delegate a coding task to Codex (a different model) in an isolated git worktree, and get back a reviewable diff that is NOT applied to your tree.

PAID — this spends Codex quota on every new call; use codex_delegate_dry_run or codex_status (both free) first if you only need to check scope or readiness.

Codex edits files with workspace-write in a throwaway worktree seeded from your current tracked state. The returned diff is Codex's changes; review it, then apply it yourself if you want it. Requires a git repo with at least one commit. Pass workspace_root (absolute).

NO NETWORK: workspace-write blocks network egress for commands Codex RUNS in the sandbox, so the task must be self-contained — it cannot git push/fetch, gh anything, curl, publish, or install dependencies (those fail inside the sandbox with a DNS/host-resolution error). Ask only for local code changes; do any network step yourself afterward. This does NOT mean nothing leaves the machine: the Codex model call still sends your task to OpenAI. The worktree does not bound Codex's writes: codex's workspace-write sandbox also lets commands write the OS temp roots (/tmp and $TMPDIR) by default. Temp-root writes are neither captured in the returned diff nor cleaned up. Codex can read files outside the workspace — up to everything the OS user running it can read — and send them to OpenAI. The sandbox bounds writes, not reads, so no choice of workspace is a read boundary. Codex auto-loads the resolved workspace's AGENTS.md and, in a repository, ancestor AGENTS.md files through its root, plus a user-global $CODEX_HOME/AGENTS.override.md, else $CODEX_HOME/AGENTS.md; it discovers skills in the workspace's .agents/skills/ and user-global $CODEX_HOME/skills/ (default ~/.codex/skills/), reachable from outside the workspace. The plugin's isolation flags don't suppress any of it. For delegate, that workspace is the worktree; scrubbing it doesn't exclude $CODEX_HOME/skills/. A skill's name and description arrive up front; selecting one makes the model read its body, which can reach OpenAI even if your inputs never mention it. Your task is sent raw — secret redaction is best-effort and does not cover it or files Codex reads itself.

Progress & recovery: blocks up to the resolved deadline (timeout_seconds, clamped 10-600s; when omitted, the server-configured value, built-in default 300s). If that deadline expires the run is terminated and its partial output is not recoverable or resumable, so for a substantial or multi-file task that may exceed it, prefer codex_delegate_async (a background job, built-in default 1800s deadline; poll codex_job_status). Coarse notifications/progress streams while it blocks when your client requests it; some MCP clients background a long call before the deadline, so timeout_seconds bounds the run, not necessarily the inline wait — either way the detached run (meta.job_id) is recoverable via codex_job_listcodex_job_statuscodex_job_result.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesThe coding task for Codex to implement inside a throwaway git worktree; the resulting diff is returned for review, not applied to your tree. Must be non-blank: empty or whitespace-only is rejected before any model call.
modelNoOverride the Codex model slug for this call; defaults to the server/Codex default when unset. Control characters are rejected, not stripped.
detailNoResponse verbosity: 'summary' (default) omits the raw model text; 'full' includes it.summary
isolationNoCodex config isolation: 'inherit' | 'ignore-config' | 'ignore-rules'. Defaults to the server's configured value (built-in 'inherit'; `codex_status` reports the resolved one).
workspace_rootNoAbsolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary.
idempotency_keyNoOptional dedup key scoped to THIS tool + workspace. Same key + same args replays the prior result with no new spend; different args are refused (idempotency_conflict). Sync and _async are separate tools and never share a key. Omit for none; retention is bounded. Lifecycle: codex://params.
timeout_secondsNoPer-call wall-clock timeout in seconds, clamped to 10..600 (out-of-range values are coerced, not rejected). Defaults to the server's configured timeout.
reasoning_effortNoOverride the Codex reasoning effort for this call (a model_reasoning_effort override); omit or pass null for the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) or Codex's own resolution. An open, per-model string the backend validates at run time — commonly minimal|low|medium|high|xhigh; codex_models lists each model's advertised set (advisory). Rejection and bounds detail: codex://params.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description is unusually thorough: notes the worktree is not applied, that network access is blocked for the model, that files read may be sent to OpenAI, and that results are not resumable after timeout. No annotations are provided, so the description carries full responsibility—and it does so comprehensively.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is lengthy but well-organized with clear sections (PAID warning, sandbox behavior, progress/recovery). It front-loads the critical info (reviewable diff not applied, paid cost) and uses formatting like em-dashes and bold to emphasize key points. Slightly verbose but justified by the complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers success semantics (diff not applied), cost implication, network restrictions, timeout behavior, recovery via async and job tools, and caveats about model reads/skills. With no output schema provided, the description fully explains what the agent can expect, making it complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides high-quality descriptions for each parameter (e.g., 'task' rejection of empty strings, 'model' control character handling, 'detail' verbosity). The description adds value by explaining timeout projection and async fallback in practical terms, though some redundancy exists. Schema coverage is high, so baseline 3, but the additional deadline and recovery context nudges it to 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description precisely states the tool's function: delegating a coding task to Codex in an isolated worktree and returning an unapplied diff. It clearly distinguishes itself from siblings like codex_delegate_dry_run and codex_delegate_async, and flags the paid nature upfront.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises when to use alternatives: use codex_delegate_dry_run first for checking, and codex_delegate_async for long tasks exceeding the timeout. It also clarifies network constraints and when not to use the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex_delegate_asyncDelegate in background (paid)A
Destructive

Delegate a coding task to Codex in the background and get a job_id back immediately (does not block on the run).

PAID — this spends Codex quota on every new call; use codex_delegate_dry_run or codex_status (both free) first if you only need to check scope or readiness.

Same propose-tier behavior as codex_delegate — Codex works in a throwaway git worktree and the result carries a reviewable diff that is NOT applied — but detached; prefer it for a substantial or multi-file implementation task that can exceed the synchronous deadline (built-in default 300s), since a sync run whose deadline expires loses its partial work (this job's own deadline is separately configured, built-in default 1800s). Starting a job commits to spend (it runs to completion or its wall-clock deadline even if you never poll). Poll codex_job_status; read/consume with codex_job_result/codex_job_consume_result; stop with codex_job_cancel. Requires a git repo with at least one commit; pass workspace_root (absolute).

NO NETWORK: like codex_delegate, this runs under workspace-write, which blocks network egress for commands Codex RUNS in the sandbox — the task must be self-contained (no push/fetch/gh/curl/publish/dependency install; those fail with a DNS/host-resolution error in the sandbox). This does NOT mean nothing leaves the machine: the Codex model call still sends your task (raw) to OpenAI. The worktree does not bound Codex's writes: codex's workspace-write sandbox also lets commands write the OS temp roots (/tmp and $TMPDIR) by default. Temp-root writes are neither captured in the returned diff nor cleaned up. Codex can read files outside the workspace — up to everything the OS user running it can read — and send them to OpenAI. The sandbox bounds writes, not reads, so no choice of workspace is a read boundary. Codex auto-loads the resolved workspace's AGENTS.md and, in a repository, ancestor AGENTS.md files through its root, plus a user-global $CODEX_HOME/AGENTS.override.md, else $CODEX_HOME/AGENTS.md; it discovers skills in the workspace's .agents/skills/ and user-global $CODEX_HOME/skills/ (default ~/.codex/skills/), reachable from outside the workspace. For delegate, that workspace is the worktree; scrubbing it doesn't exclude $CODEX_HOME/skills/. A skill's name and description arrive up front; selecting one makes the model read its body, which can reach OpenAI even if your inputs never mention it. Secret redaction is best-effort and does not cover your task or files Codex reads itself.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesThe coding task for Codex to implement inside a throwaway git worktree; the resulting diff is returned for review, not applied to your tree. Must be non-blank: empty or whitespace-only is rejected before any model call.
modelNoOverride the Codex model slug for this call; defaults to the server/Codex default when unset. Control characters are rejected, not stripped.
isolationNoCodex config isolation: 'inherit' | 'ignore-config' | 'ignore-rules'. Defaults to the server's configured value (built-in 'inherit'; `codex_status` reports the resolved one).
workspace_rootNoAbsolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary.
idempotency_keyNoOptional dedup key scoped to THIS tool + workspace. Same key + same args replays the prior result with no new spend; different args are refused (idempotency_conflict). Sync and _async are separate tools and never share a key. Omit for none; retention is bounded. Lifecycle: codex://params.
reasoning_effortNoOverride the Codex reasoning effort for this call (a model_reasoning_effort override); omit or pass null for the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) or Codex's own resolution. An open, per-model string the backend validates at run time — commonly minimal|low|medium|high|xhigh; codex_models lists each model's advertised set (advisory). Rejection and bounds detail: codex://params.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already say destructiveHint=true and openWorldHint=true, but the description goes far beyond them. It discloses quota spend, that jobs run to completion even if never polled, blocked network egress, reading of files outside the workspace, temp-root write behavior, AGENTS.md/skills auto-loading, and best-effort secret redaction. No contradiction exists between the description and the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but front-loaded with the core purpose and paid warning, and every subsequent block addresses a critical behavioral or security aspect. It is not padded with fluff, though a slightly tighter organization (e.g., bullet-like separation of the network and file-read caveats) could improve scannability. The length is justified by the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich input schema, output schema, and annotations, the description is exceptionally complete. It covers cost, deadlines, worktree behavior, sandbox network restrictions, file-read and temp-write semantics, AI context loading, secrets handling, and the full job lifecycle, leaving nothing an agent needs in order to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all six parameters. The description adds some useful context (e.g., `workspace_root` is not a read boundary, `task` must be non-blank), but it does not need to compensate for missing schema documentation. This meets the baseline for a fully covered schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb ('Delegate a coding task to Codex in the background') and the immediate return of a `job_id`, clearly distinguishing it from synchronous `codex_delegate`. It also differentiates from free siblings (`codex_delegate_dry_run`, `codex_status`) by flagging the paid nature, so an agent can select it correctly without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use this tool ('substantial or multi-file implementation task that can exceed the synchronous deadline') and when not to (use `codex_delegate_dry_run` or `codex_status` first for scope/readiness checks). It also names the full lifecycle tools (`codex_job_status`, `codex_job_result`, `codex_job_consume_result`, `codex_job_cancel`) and gives a hard prerequisite: a git repo with at least one commit and `workspace_root` passed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex_delegate_dry_runPreview a delegate (free)A
Read-only

Preview what a codex_delegate/codex_delegate_async call would do — the baseline it seeds from (HEAD commit, tracked file count/size, uncommitted and untracked counts), the prompt size that would be sent, and the resolved workspace/isolation. Free — no model call, no spend, no worktree created.

Use it before delegating to confirm scope and repo before committing to cost, exactly as codex_dry_run previews codex_review_changes. Mirrors the real delegate's zero-spend validation (workspace, isolation, task size, git repo), so a failure here is a failure the paid call would also hit. The returned tier/sandbox describe the previewed propose run, not this read-only preview; the result echoes the effective model/reasoning_effort overrides the paid call would send (unvalidated). deadline_advisory is non-null when size or reasoning effort risks the synchronous deadline and names codex_delegate_async verbatim — the async counterpart of the previewed call, not of this dry-run tool. A hint, not a refusal.

A dry run reports metadata about the input this plugin would assemble; it does not invoke Codex, and it neither enumerates nor bounds the files the model itself reads and sends during the paid call. Codex can read files outside the workspace — up to everything the OS user running it can read — and send them to OpenAI. The sandbox bounds writes, not reads, so no choice of workspace is a read boundary.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesThe coding task you want Codex to implement via a real codex_delegate call; this dry run only previews the seeded baseline and prompt size — it does NOT call Codex or return a diff. Must be non-blank: empty or whitespace-only is rejected here too, not previewed.
modelNoThe Codex model slug the previewed paid call would use; defaults to the server default (CODEX_IN_CLAUDE_MODEL) when unset, so the preview mirrors the paid call's resolution. This dry run does not call Codex or validate the model.
isolationNoCodex config isolation: 'inherit' | 'ignore-config' | 'ignore-rules'. Defaults to the server's configured value (built-in 'inherit'; `codex_status` reports the resolved one).
workspace_rootNoAbsolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary.
reasoning_effortNoThe reasoning effort the previewed paid call would send (as a `model_reasoning_effort` config override); defaults to the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) when unset, so the preview mirrors the paid call's resolution. This dry run does not call Codex or validate the value beyond the paid params' shape bounds (no control or surrogate characters, ≤128 chars).

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the readOnlyHint annotation by disclosing that no model call, no spend, and no worktree are created, that returned tier/sandbox describe the previewed run rather than this tool, and that the dry run does not bound or enumerate files the model might read. It also warns about the read-vs-write boundary, which is critical safety context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but every sentence carries necessary caveats or context. It is front-loaded with the core purpose, then layers usage guidance, output semantics, and security limitations in a logical order. The length is justified by the subtle distinctions between the dry run, the paid call, and the async counterpart.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description fully covers what the tool returns, its limitations, its relationship to sibling tools, and the important security caveat that Codex can read files outside the workspace. Since an output schema exists, the description does not need to explain return values in detail, and nothing an agent needs to call this tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all five parameters thoroughly. The description reinforces some semantics, such as workspace_root not being a read boundary and task being rejected when blank, but it does not add substantial new parameter meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Preview what a codex_delegate/codex_delegate_async call would do.' It clearly distinguishes this tool from the paid delegate tools and explicitly compares it to codex_dry_run, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use it: 'Use it before delegating to confirm scope and repo before committing to cost.' It also names the analogous codex_dry_run/codex_review_changes relationship and clarifies that a failure here predicts a failure in the paid call, giving the agent a clear decision rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex_dry_runPreview a review (free)A
Read-only

Preview what a codex_review_changes call would send — scope, diff size, redactions, truncation. Free — no model call, no spend. Use it before a review to inspect the scope and the reported redactions; redaction is best-effort, so treat the preview as a check on scope, not as confirmation that no secret remains. Pass the same extra_context and untracked policy you would give the review so the preview matches it. would_call_model reports whether the paid call would actually run the model (False on an empty diff, where prompt_bytes is 0), and coverage discloses omitted untracked files just as the review would. The result echoes the effective model/reasoning_effort overrides the paid call would send (unvalidated). deadline_advisory is non-null when size or effort risks the synchronous deadline (null whenever would_call_model is False) and names codex_review_changes_async verbatim — the async counterpart of the previewed call, not of this dry-run tool. A hint, not a refusal.

A dry run reports metadata about the input this plugin would assemble; it does not invoke Codex, and it neither enumerates nor bounds the files the model itself reads and sends during the paid call. Codex can read files outside the workspace — up to everything the OS user running it can read — and send them to OpenAI. The sandbox bounds writes, not reads, so no choice of workspace is a read boundary.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseNoBase git ref for scope='branch'; the review covers base...HEAD. Control characters are rejected, not stripped.
modelNoThe Codex model slug the previewed paid call would use; defaults to the server default (CODEX_IN_CLAUDE_MODEL) when unset, so the preview mirrors the paid call's resolution. This dry run does not call Codex or validate the model.
pathsNoRepo-relative paths to narrow the review ('/' separators, no '..'); omit to review all changes in scope.
scopeNoWhich changes to review: 'working_tree' (tracked changes vs HEAD; untracked files follow the `untracked` policy, off by default), 'branch' (needs base), or 'commit' (needs commit).working_tree
commitNoCommit SHA or ref to review for scope='commit'. Control characters are rejected, not stripped.
isolationNoCodex config isolation: 'inherit' | 'ignore-config' | 'ignore-rules'. Defaults to the server's configured value (built-in 'inherit'; `codex_status` reports the resolved one).
untrackedNoHow working_tree scope treats untracked files: 'explicit_only' (default) includes only those named in `paths`; 'include' reviews all non-ignored untracked files (SENDS their contents to OpenAI — opt-in egress); 'exclude' includes none. Omitted ones are disclosed in `coverage`. Inert for branch/commit scopes.explicit_only
extra_contextNoOptional author intent/background context, added as clearly-labeled UNTRUSTED prompt data. Redaction does NOT cover it — no live secrets. Full caveats and bounds: codex://params.
workspace_rootNoAbsolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary.
reasoning_effortNoThe reasoning effort the previewed paid call would send (as a `model_reasoning_effort` config override); defaults to the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) when unset, so the preview mirrors the paid call's resolution. This dry run does not call Codex or validate the value beyond the paid params' shape bounds (no control or surrogate characters, ≤128 chars).

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description is highly transparent about side effects and boundaries: it states it does not invoke Codex, does not enumerate or bound what the model reads, and clarifies that Codex can read files outside the workspace and send them to OpenAI. It also warns that sandbox bounds writes, not reads, and that redaction is best-effort. These disclosures exceed typical tool descriptions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is thorough but somewhat long and contains minor redundancy. The first paragraph already states 'no model call' and later the second paragraph restates 'does not invoke Codex'. The two-paragraph structure is clear, but the text could be tightened by merging related caveats. Given the complexity of the tool (safety, egress, redaction), the length is mostly justified, so it doesn't lose much.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's behavior, output fields (would_call_model, coverage, deadline_advisory), limitations (unvalidated model/effort), and related tools (codex_review_changes_async). It provides enough context for an agent to understand what the tool does and what to expect. Although the output schema isn't shown in the provided data, the context signals indicate one exists, and the description references key output fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Every parameter in the input schema has a detailed description that adds meaning beyond type/format. For example, 'scope' explains each enum value, 'untracked' warns about egress, 'extra_context' labels data as UNTRUSTED and notes redaction does not cover it, and 'workspace_root' clarifies it's not a read boundary. Coverage is 100% and each description provides actionable guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: it previews what a codex_review_changes call would send, is free, and makes no model call. It distinguishes itself from the paid review tool by noting it's a dry run, and it references the async counterpart. This is very explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use it before a review to inspect the scope and the reported redactions' and advises treating the preview as a check on scope, not as confirmation that no secret remains. It also instructs to pass the same extra_context and untracked policy to match the paid call. This gives clear when-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex_job_cancelCancel a job (free)A
Idempotent

Cancel a running background Codex job.

Asks the worker to shut down gracefully so it tears down its throwaway worktree, then force-kills it if it overstays, and marks the job cancelled (cancelled jobs cannot be resumed). If the worktree could not be removed, cleanup_warnings names the leftover path. Already-terminal jobs are returned unchanged, so cancel is idempotent — a retry after a lost response is safe. Free — no model call.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesThe job_id from an *_async call or a sync call's meta.job_id; recover lost ids with codex_job_list. Control characters are rejected, not stripped.
workspace_rootNoAbsolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description is rich in behavioral disclosures beyond annotations. It explains the graceful shutdown then force-kill sequence, mentions teardown of worktree, notes that cancelled jobs cannot be resumed, mentions cleanup_warnings for leftover paths, and explicitly states idempotence (retry after lost response is safe). While annotations include idempotentHint=true, the description adds meaningful context about what idempotence means here and how it's implemented. It also mentions 'Free — no model call', which is a cost-related behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is well-structured with clear sentences. It front-loads the action ('Cancel a running background Codex job'), then details the mechanism, then states idempotence and cost. Every sentence earns its place. It's slightly long but each sentence provides distinct value. Could argue for 5, but it's a bit verbose in the middle section.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that the tool has annotations (idempotentHint, destructiveHint=false), a full output schema, and 100% schema coverage, the description is remarkably complete. It explains behavior, failure modes, idempotence, and cost. The only thing it doesn't spell out explicitly is when to use this vs codex_job_consume_result or others, but the title and first sentence already disambiguate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema itself already provides detailed descriptions for both parameters. The description goes beyond by telling the agent what job_id is for (from *_async call or meta.job_id), how to recover lost ids, and explains that workspace_root selects where Codex works, not a read boundary. It also preemptively warns about control characters being rejected. This adds meaningful guidance on how to use the parameters correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states exactly what the tool does: cancel a running background Codex job. Uses specific verb 'Cancel' and identifies the resource (background Codex job). Distinguishes from siblings like codex_job_status (which presumably just checks status) and other job-related tools. The 'free' aspect is highlighted in the title and description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description provides clear context for when to use ('running background job') and implicitly excludes already-terminal jobs by stating they are returned unchanged. It doesn't explicitly name alternatives, but the sibling list is long and this tool's scope is clear. It also gives a hint about recovering lost ids with codex_job_list, which is a usage pointer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex_job_consume_resultFetch and delete job result (free)A

Fetch a finished background Codex job's result and delete the stored record.

Same envelope as codex_job_result (matching the job's kind — branch on tool), then removes completed job state — but only once the stored result has been read intact and validated (a success or the job's own error envelope): a stored result this release cannot read (job_result_incompatible or a corruption internal_error) is NOT deleted, so it stays inspectable via codex_job_result. Deletion precedes the response, so a response lost in transit does not restore the record; a failed removal retains the record until its TTL (codex_job_status still shows it). Use only when you no longer need to poll or re-read the job. Non-done jobs are not deleted. Free — no model call.

detail works as in codex_job_result (#56).

ParametersJSON Schema
NameRequiredDescriptionDefault
detailNoResponse verbosity: 'summary' (default) omits the raw model text; 'full' includes it.summary
job_idYesThe job_id from an *_async call or a sync call's meta.job_id; recover lost ids with codex_job_list. Control characters are rejected, not stripped.
workspace_rootNoAbsolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYestrue = success result, false = error result

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all false (not readOnly, not idempotent, not destructive), which is ambiguous—they don't say it's destructive or safe. The description compensates by explaining the deletion semantics in detail: deletion precedes response, re-instantiation on response loss doesn't restore record, TTL retention on failed removal, and incompatibility/corruption cases where record is NOT deleted. This is genuinely transparent behavioral disclosure that adds value beyond annotations. The description doesn't contradict annotations (all false is consistent with 'does not purely read' and 'not idempotent' given the delete).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-structured: it opens with the action, then explains edge cases (incompatible result, deletion order, failed removal, TTL), then usage timing. It's front-loaded with the core behavior and the deletion-before-response detail is a critical behavioral nuance. The reference to #56 and 'free' are short and useful. Every sentence earns its place; no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (delete-on-read with edge cases, non-done jobs, TTL behavior), the description covers all the important behavioral aspects an agent needs to invoke it correctly. Output schema exists, so return format is handled. The four annotations are all false, so the description carries the full burden of behavioral transparency and it delivers. An agent knows exactly when to call this vs codex_job_result, what happens to the record, and what to expect. Nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, meaning every parameter has a description in the schema. The tool description adds context that 'detail works as in codex_job_result (#56)' and explains the deletion behavior in relation to the result, but doesn't repeat parameter semantics. The description's job_id guidance ('recover lost ids with codex_job_list') adds a useful hint. Since schema already documents all three parameters fully, the description doesn't need to add much. The 'detail works as in codex_job_result' reference is a bonus that qualifies as above-baseline value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource ('Fetch a finished background Codex job's result and delete the stored record'), which clearly states action and target. It distinguishes itself from sibling codex_job_result by the delete-on-read behavior, which is front-loaded. The parenthetical '(free)' and 'no model call' further differentiate it from sibling tools that might consume a model. Purpose is unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says 'Use only when you no longer need to poll or re-read the job,' which is explicit when-to-use guidance. It also implicitly contrasts with codex_job_result (which leaves the record intact). However, it doesn't explicitly name an alternative like 'if you still need to poll, use codex_job_status instead,' so it stops short of full when-not guidance. The instruction about deletion semantics and non-done jobs partially covers exclusions ('Non-done jobs are not deleted').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex_job_listList background jobs (free)A
Read-only

List the background jobs known for this workspace, newest first.

Free — no model call. Use to recover job_ids lost across context compaction or interruption. Returns each job's id, kind, status, start time, result_available, result_ok (a done job's outcome — true/false/null; see codex_job_status), and expiry, so a stored failure is triageable without fetching each result.

Returns every retained job by default; pass limit (1-1000) or status to narrow. They narrow independently — omitting limit returns every job matching status, not every job. Only an explicit limit truncates: when more jobs match, the response sets truncated: true with a truncation_hint — the extra rows are dropped, not paged, so omit limit to get them all rather than looking for a cursor.

Read a job's result promptly — a finished record can silently drop off. This list is not permanent storage: terminal records expire after the TTL (default 24h), and a per-workspace soft cap (default 50, clamped 1-1000) evicts the oldest terminal records as new jobs start, so a finished job can disappear even before its expires_at. Running jobs are never evicted, so a busy workspace can hold more than the cap — and more than limit's 1000 ceiling. Includes sync-originated records (any sync consult/review/delegate call); the cap/TTL eviction covers both.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum jobs to return, newest first (1-1000). Omit (or pass null) to return every retained job that matches — the default; it caps nothing, and does not override `status`. Only an explicit limit truncates: then the response sets truncated=true and the extra rows are dropped.
statusNoReturn only jobs in this lifecycle state ('running', 'done', 'failed', 'cancelled', 'timeout'); omit for all states.
workspace_rootNoAbsolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description reveals the tool is free (no model call), describes retry/eviction behavior (TTL and cap), and notes workspace_root fallback with meta.workspace_warning. These details are not in annotations and add significant transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose, with three paragraphs that repeat the same ideas (e.g., 'omit limit to get them all' appears multiple times). It could be condensed to two sentences without losing essential guidance, making it less efficient for agents to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the return fields (id, kind, status, start time, result_available, result_ok, expiry) and explains edge cases like eviction, workspace fallback, and the distinction between sync and async records. It is comprehensive but redundant in places, so not a perfect score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides detailed descriptions for every parameter (limit, status, workspace_root), and the description largely repeats them without adding new meaning. It reinforces the default behavior but does not elevate understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists background jobs, newest first, and distinguishes it from siblings like codex_job_status and codex_job_result by focusing on enumeration rather than individual job details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states the primary use case—recovering job_ids lost across context compaction or interruption—and clarifies that it is free (no model call). It also explains how limit and status work, giving practical guidance on when to omit or set them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex_job_resultFetch job result (free)A
Read-only

Fetch a finished background Codex job's result WITHOUT deleting the record.

Works for any async job or sync consult/review/delegate (whose meta.job_id names its record) — codex_delegate_async (a diff), codex_consult_async (a consult answer), or codex_review_changes_async (a review with verdict). Use when codex_job_status reports result_available=true; the envelope matches the job's kind, so branch on tool. meta.job_id is set. A still-running/cancelled/timed- out/failed job returns an error envelope — as does a done job whose stored result this release cannot read (job_result_incompatible). To fetch and delete, use codex_job_consume_result. Free — no model call.

detail="summary" (default) omits the raw model text; pass detail="full" for the complete raw output and metadata (#56).

ParametersJSON Schema
NameRequiredDescriptionDefault
detailNoResponse verbosity: 'summary' (default) omits the raw model text; 'full' includes it.summary
job_idYesThe job_id from an *_async call or a sync call's meta.job_id; recover lost ids with codex_job_list. Control characters are rejected, not stripped.
workspace_rootNoAbsolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYestrue = success result, false = error result

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide `readOnlyHint=true` and `openWorldHint=false`, but the description adds substantial behavioral detail: it is free (no model call), returns error envelopes for running/cancelled/timed-out/failed jobs, and can raise `job_result_incompatible`. It also explains the effect of the `detail` parameter on output. This extra context enriches the safety and error-handling picture beyond what annotations alone convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense yet well organized: it leads with the core purpose, then scope, usage condition, error behavior, alternative, cost, and finally the parameter detail. Every sentence contributes essential information, and the structure uses paragraphs to separate concerns. The format is efficient and front-loaded, with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists, the description need not explain return values. It covers all operational aspects: when to call, what to expect on success and failure, which job kinds apply, and how to control verbosity. The presence of an output schema plus the thorough prose leaves no critical gap for an agent to execute correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed descriptions for all three parameters (`job_id`, `detail`, `workspace_root`). The description adds nuance beyond the schema: it tells how to recover lost IDs with `codex_job_list`, explains the origin of `meta.job_id`, and clarifies that `workspace_root` is not a read boundary. This is meaningful added value, though the schema is already strong, so it does not reach a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a precise verb and resource: 'Fetch a finished background Codex job's result WITHOUT deleting the record.' It distinguishes itself from the sibling `codex_job_consume_result` by explicitly noting the non-deleting behavior. It further narrows scope by enumerating which job kinds it supports, so an agent can immediately tell it apart from other result-related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a concrete trigger condition: use when `codex_job_status` reports `result_available=true`. It also states the alternative `codex_job_consume_result` for fetch-and-delete. It even specifies the envelope behavior and that it works for both async and certain sync jobs, leaving no ambiguity about when to invoke this tool versus others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex_job_statusCheck job status (free)A
Read-only

Check a background job's lifecycle state without fetching the full result.

Use after any *_async call (codex_delegate_async, codex_consult_async, codex_review_changes_async) or any sync consult/review/delegate (whose meta.job_id names its record). Returns status, elapsed time, expiry, and result_available; when it is true, call codex_job_result. result_ok reports a done job's producer-declared outcome — true (success), false (a stored error envelope), or null (running, no stored envelope, an unclassifiable payload, or a record finalized before this field) — so you can spot a stored FAILURE without fetching it. It does not guarantee the payload is still fetchable; a cross-release record may report an outcome yet fail codex_job_result with job_result_incompatible. Free — no model call.

Honor poll_after_ms between polls — for a running job it GROWS with elapsed runtime (bounded), so following it backs you off instead of tight-looping (a delegate often runs ~20s). expires_at is null while running and is set once the job finishes; results are then retained ttl_seconds past that completion.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesThe job_id from an *_async call or a sync call's meta.job_id; recover lost ids with codex_job_list. Control characters are rejected, not stripped.
workspace_rootNoAbsolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=true and openWorldHint=false, which the description respects. It goes beyond annotations by disclosing nuances: result_ok behavior (true/false/null), the possibility that payloads may not be fetchable despite an outcome, the growing poll_after_ms with backoff rationale, and expires_at being null while running. It also flags the job_result_incompatible risk and the free/no-model-call nature. This is exemplary transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-organized: it front-loads the primary purpose and usage, then clarifies result_ok and polling. Some redundancy exists with the schema (e.g., workspace_root details), but each paragraph contributes unique operational guidance. It is longer than minimal but earns its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 params, output schema present), the description covers all critical aspects: when to use, what to expect (result_ok, poll_after_ms, expires_at), and caveats (stored failure detection, fetch failure). The presence of an output schema reduces the need to document return fields, and the description complements it with lifecycle behavior. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already covers both parameters with rich descriptions (e.g., job_id's pattern and workspace_root's semantics). The description adds context on how to use job_id (from async or sync calls) and reiterates poll_after_ms behavior, but it does not add new syntax details beyond the schema. Since schema coverage is 100%, baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's verb ('Check'), resource ('a background job's lifecycle state'), and scope ('without fetching the full result'). It explicitly distinguishes itself from codex_job_result by specifying that it returns status, not the full result, and from siblings by naming the async/sync call types that produce the job_id.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit when-to-use guidance ('Use after any *_async call... or any sync consult/review/delegate'), and enumerates the exact sibling tools that produce job_id. It also directs the agent to call codex_job_result when result_available is true, and mentions codex_job_list for recovering lost ids. This is thorough and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex_modelsList Codex models (free)A
Read-only

List Codex model slugs you can pass as model, with each model's advertised reasoning-effort set for reasoning_effort. Free — no model call.

Advisory discovery only: read from Codex's on-disk cache when present, else a bundled fallback (source says which; the fallback carries no effort data). codex exec validates the real slug and the backend validates the real effort, so an unlisted value may still work and a listed one may be unavailable to your account. Same payload as the codex://models resource. Not fingerprint-stable — do not cache it by the capabilities fingerprint.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, but the description adds significant behavioral context: reads from cache with fallback, 'source' field indicates provenance, fallback lacks effort data, and backend validation may reject listed values or accept unlisted ones. It also notes the payload is the same as a resource, going far beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Each sentence adds a distinct piece of information: purpose, cost, source, validation caveats, payload equivalence, and caching instability. The description is front-loaded with the main action and is compact despite the detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only tool with an output schema, the description fully explains what the tool returns, how it obtains data, its reliability, and its relationship to other resources. There are no obvious gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters means no schema to elaborate. The description still explains the output meaning (model slugs and reasoning-effort sets) and the source field, which is helpful even though the output schema is present.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'List Codex model slugs...' with the additional clarification of the reasoning-effort data. It clearly distinguishes this from sibling tools by focusing on model discovery and the 'codex://models resource' equivalence.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use (advisory discovery) and explicitly warns against certain uses ('do not cache it by the capabilities fingerprint'). It does not name alternative tools explicitly, so it misses the full 'when not / alternatives' bar.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex_review_changesReview git changes (paid)A

Ask Codex (a different model) to review your git changes for an independent second opinion.

PAID — this spends Codex quota on every new call; use codex_dry_run or codex_status (both free) first if you only need to check scope or readiness.

scope: working_tree (tracked changes vs HEAD — untracked files follow the untracked policy and are NOT reviewed by default), branch (needs base, reviews base...HEAD), or commit (needs a commit SHA). The diff is gathered, secret- redacted, and bounded by this server; Codex reviews it read-only and returns structured findings. Pass workspace_root (absolute) for the right repo. Optional extra_context (author intent, bounded like the diff) cuts false positives.

The result's top-level review_status and coverage disclose whether the model actually ran and what it was shown: a pass over partial coverage is surfaced as unknown, and a tree with nothing reviewable returns not_run, never a pass.

STATIC review, not a verify mode: the read-only sandbox blocks the writes a test/build/lint run needs, so Codex can't run the project's checks to confirm its findings — treat them as unvalidated claims you verify yourself before acting.

Data egress: this sends the gathered diff to OpenAI via the codex CLI. The diff is secret-redacted (best-effort), but your extra_context and developer_instructions are sent raw (unredacted). Codex can read files outside the workspace — up to everything the OS user running it can read — and send them to OpenAI. The sandbox bounds writes, not reads, so no choice of workspace is a read boundary. Codex auto-loads the resolved workspace's AGENTS.md and, in a repository, ancestor AGENTS.md files through its root, plus a user-global $CODEX_HOME/AGENTS.override.md, else $CODEX_HOME/AGENTS.md; it discovers skills in the workspace's .agents/skills/ and user-global $CODEX_HOME/skills/ (default ~/.codex/skills/), reachable from outside the workspace. The plugin's isolation flags don't suppress any of it. A skill's name and description arrive up front; selecting one makes the model read its body, which can reach OpenAI even if your inputs never mention it. Redaction is not a guarantee. Do not rely on it to protect live credentials; keep them out of the reviewed tree and your supplied inputs, or do not request a review of that tree.

Progress & recovery: blocks up to the resolved deadline (timeout_seconds, clamped 10-600s; when omitted, the server-configured value, built-in default 300s). If that deadline expires the run is terminated and its partial output is not recoverable or resumable, so for a multi-file or whole-branch review that may exceed it, prefer codex_review_changes_async (a background job, built-in default 1800s deadline; poll codex_job_status). Coarse notifications/progress streams while it blocks when your client requests it; some MCP clients background a long call before the deadline, so timeout_seconds bounds the run, not necessarily the inline wait — either way the detached run (meta.job_id) is recoverable via codex_job_listcodex_job_statuscodex_job_result.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseNoBase git ref for scope='branch'; the review covers base...HEAD. Control characters are rejected, not stripped.
modelNoOverride the Codex model slug for this call; defaults to the server/Codex default when unset. Control characters are rejected, not stripped.
pathsNoRepo-relative paths to narrow the review ('/' separators, no '..'); omit to review all changes in scope.
scopeNoWhich changes to review: 'working_tree' (tracked changes vs HEAD; untracked files follow the `untracked` policy, off by default), 'branch' (needs base), or 'commit' (needs commit).working_tree
commitNoCommit SHA or ref to review for scope='commit'. Control characters are rejected, not stripped.
detailNoResponse verbosity: 'summary' (default) omits the raw model text; 'full' includes it.summary
isolationNoCodex config isolation: 'inherit' | 'ignore-config' | 'ignore-rules'. Defaults to the server's configured value (built-in 'inherit'; `codex_status` reports the resolved one).
untrackedNoHow working_tree scope treats untracked files: 'explicit_only' (default) includes only those named in `paths`; 'include' reviews all non-ignored untracked files (SENDS their contents to OpenAI — opt-in egress); 'exclude' includes none. Omitted ones are disclosed in `coverage`. Inert for branch/commit scopes.explicit_only
extra_contextNoOptional author intent/background context, added as clearly-labeled UNTRUSTED prompt data. Redaction does NOT cover it — no live secrets. Full caveats and bounds: codex://params.
workspace_rootNoAbsolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary.
idempotency_keyNoOptional dedup key scoped to THIS tool + workspace. Same key + same args replays the prior result with no new spend; different args are refused (idempotency_conflict). Sync and _async are separate tools and never share a key. Omit for none; retention is bounded. Lifecycle: codex://params.
timeout_secondsNoPer-call wall-clock timeout in seconds, clamped to 10..600 (out-of-range values are coerced, not rejected). Defaults to the server's configured timeout.
reasoning_effortNoOverride the Codex reasoning effort for this call (a model_reasoning_effort override); omit or pass null for the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) or Codex's own resolution. An open, per-model string the backend validates at run time — commonly minimal|low|medium|high|xhigh; codex_models lists each model's advertised set (advisory). Rejection and bounds detail: codex://params.
developer_instructionsNoOptional caller stance/focus text for Codex's developer turn, placed BEHIND this server's always-leading framing; omit for no developer override. UNTRUSTED — never build it from workspace content; grants no tools; Codex is instructed, not compelled — verdicts stay its own, and compliance with the rest is best-effort and may be silent. Rides the codex command line and the background-job record on disk — never put secrets here; meta reports only {sha256, bytes}. Stripped; blank = omitted; max 4096 bytes. Full contract: codex://params.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations, the description discloses quota/cost, best-effort secret redaction, raw unredacted egress for extra_context and developer_instructions, unrestricted read access outside the workspace, AGENTS.md/skills loading, non-recoverable partial output after timeout, and review_status/coverage semantics. The read-only sandbox claim does not contradict readOnlyHint=false because the tool still spends quota and sends data; the description explicitly explains the write/read boundary.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long, but it is deliberately structured with labeled sections for cost, scope, egress, and progress/recovery, and critical caveats are front-loaded. Some redundancy exists, such as repeating the workspace_root read-boundary and redaction warnings, but the length is largely justified by the tool's risk profile and parameter count.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter, paid, egress-capable tool, the description covers scope selection, cost avoidance, async fallback, result semantics, timeout/failure behavior, idempotency, and data-governance constraints. The output schema can handle return shape details, while the description supplies the operational context an agent needs to invoke the tool safely and correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds cross-parameter behavior beyond the schema: scope values map to base/commit, untracked controls whether file contents are sent to OpenAI, workspace_root is not a read boundary, timeout_seconds has clamping and recovery implications, and extra_context/developer_instructions are sent unredacted. This meaningfully helps an agent choose correct argument values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action ('Ask Codex ... to review your git changes'), the target resource (git changes), and the purpose (independent second opinion). It also differentiates from siblings by explicitly naming free alternatives and the async variant, so an agent won't confuse it with codex_dry_run, codex_status, or codex_review_changes_async.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use guidance: use codex_dry_run or codex_status first if only checking scope/readiness, and prefer codex_review_changes_async for long multi-file or whole-branch reviews. It also states clear operational prerequisites like passing an absolute workspace_root and the base/commit requirements for each scope.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex_review_changes_asyncReview git changes in background (paid)A

Review your git changes in the background; get a job_id back immediately.

PAID — this spends Codex quota on every new call; use codex_dry_run or codex_status (both free) first if you only need to check scope or readiness.

Same read-only behavior as codex_review_changes (the diff is gathered, secret- redacted, and bounded, then reviewed read-only), but detached — prefer it for a multi-file or whole-branch review that can exceed the synchronous deadline (built-in default 300s), since a sync run whose deadline expires loses its partial work; this job's own deadline is separately configured (built-in default 1800s). The diff is gathered inside the job, so a bad base/commit comes back as the same structured error with zero spend (a bad scope is rejected by MCP input validation before the job starts). Starting a job commits to spend. Poll codex_job_status; read/consume the review envelope with codex_job_result/codex_job_consume_result; stop with codex_job_cancel. Pass workspace_root (absolute).

Data egress: same as codex_review_changes — sends the secret-redacted diff plus your raw (unredacted) extra_context and developer_instructions to OpenAI via the codex CLI. Codex can read files outside the workspace — up to everything the OS user running it can read — and send them to OpenAI. The sandbox bounds writes, not reads, so no choice of workspace is a read boundary. Codex auto-loads the resolved workspace's AGENTS.md and, in a repository, ancestor AGENTS.md files through its root, plus a user-global $CODEX_HOME/AGENTS.override.md, else $CODEX_HOME/AGENTS.md; it discovers skills in the workspace's .agents/skills/ and user-global $CODEX_HOME/skills/ (default ~/.codex/skills/), reachable from outside the workspace. A skill's name and description arrive up front; selecting one makes the model read its body, which can reach OpenAI even if your inputs never mention it. Redaction is best-effort, not a guarantee.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseNoBase git ref for scope='branch'; the review covers base...HEAD. Control characters are rejected, not stripped.
modelNoOverride the Codex model slug for this call; defaults to the server/Codex default when unset. Control characters are rejected, not stripped.
pathsNoRepo-relative paths to narrow the review ('/' separators, no '..'); omit to review all changes in scope.
scopeNoWhich changes to review: 'working_tree' (tracked changes vs HEAD; untracked files follow the `untracked` policy, off by default), 'branch' (needs base), or 'commit' (needs commit).working_tree
commitNoCommit SHA or ref to review for scope='commit'. Control characters are rejected, not stripped.
isolationNoCodex config isolation: 'inherit' | 'ignore-config' | 'ignore-rules'. Defaults to the server's configured value (built-in 'inherit'; `codex_status` reports the resolved one).
untrackedNoHow working_tree scope treats untracked files: 'explicit_only' (default) includes only those named in `paths`; 'include' reviews all non-ignored untracked files (SENDS their contents to OpenAI — opt-in egress); 'exclude' includes none. Omitted ones are disclosed in `coverage`. Inert for branch/commit scopes.explicit_only
extra_contextNoOptional author intent/background context, added as clearly-labeled UNTRUSTED prompt data. Redaction does NOT cover it — no live secrets. Full caveats and bounds: codex://params.
workspace_rootNoAbsolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary.
idempotency_keyNoOptional dedup key scoped to THIS tool + workspace. Same key + same args replays the prior result with no new spend; different args are refused (idempotency_conflict). Sync and _async are separate tools and never share a key. Omit for none; retention is bounded. Lifecycle: codex://params.
reasoning_effortNoOverride the Codex reasoning effort for this call (a model_reasoning_effort override); omit or pass null for the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) or Codex's own resolution. An open, per-model string the backend validates at run time — commonly minimal|low|medium|high|xhigh; codex_models lists each model's advertised set (advisory). Rejection and bounds detail: codex://params.
developer_instructionsNoOptional caller stance/focus text for Codex's developer turn, placed BEHIND this server's always-leading framing; omit for no developer override. UNTRUSTED — never build it from workspace content; grants no tools; Codex is instructed, not compelled — verdicts stay its own, and compliance with the rest is best-effort and may be silent. Rides the codex command line and the background-job record on disk — never put secrets here; meta reports only {sha256, bytes}. Stripped; blank = omitted; max 4096 bytes. Full contract: codex://params.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes far beyond the annotations: every call spends Codex quota, bad base/commit costs zero spend, the job has its own 1800s deadline, egress includes the redacted diff plus raw extra_context and developer_instructions, and Codex can read outside the workspace. This aligns with openWorldHint=true and readOnlyHint=false. The 'same read-only behavior' phrase is scoped to repo mutation, not to the absence of side effects, so there is no genuine annotation contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is long, but it is front-loaded with purpose, cost, and sync-vs-async routing before the security/egress blocks. Minor repetition ('spends Codex quota' and 'Starting a job commits to spend') keeps it from a 5, though the structure is otherwise clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Between the schema and this description, an agent has everything needed to decide when to call, what parameters to pass, what side effects to expect, how to consume the result, and what data-egress risks exist. The output schema covers the return type, so omitting a detailed return-format description is appropriate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds valuable operational nuance: bad base/commit produces the same structured error with zero spend, bad scope is rejected before the job starts, and workspace_root should be passed as an absolute path.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb ('Review'), resource ('your git changes'), and mode ('in the background'), with the immediate outcome ('job_id back immediately'). The title adds 'paid', and the description distinguishes itself from the synchronous sibling by being 'detached'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the agent to use codex_dry_run or codex_status first when only checking scope/readiness, and to prefer this tool for multi-file or whole-branch reviews that may exceed the synchronous 300s deadline. It also names the full lifecycle: poll with codex_job_status, read with codex_job_result/codex_job_consume_result, and cancel with codex_job_cancel.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex_statusCheck Codex readiness (free)A
Read-only

Check that the codex CLI is installed, authenticated, and a supported version, and report the resolved defaults. Free — no model call. Run it before your first paid call in a session to confirm setup, and again whenever a run fails with a setup error. Also reports a rate_limit block — how much of the Codex quota windows remains, fetched LIVE from codex app-server (a read-only call with no model spend). primary is the shorter/rolling window, secondary the longer one; the account reports only the windows that currently bind it, so either may be null. Use it to decide whether to spend: available is deliberately conservative (only when every reported window is healthy); when limited/exhausted, prefer to defer non-urgent Codex calls (urgent ones may still proceed); unknown means the live read couldn't complete just now (retry) or only a stale cache was available; unavailable means this codex/account exposes no quota data — none of these means anything is wrong. blocked is different: the backend reports a SPEND control (spend_control_reached: true), so paid calls will fail and waiting for a quota reset will NOT clear it — don't defer, and surface it to the user. spend_control_reached is null when this codex/backend didn't report that state (then available covers the quota windows only, and note says so). is_stale/as_of show freshness; home_unverified flags a snapshot from a different CODEX_HOME.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only carry readOnlyHint, but the description goes deep: it discloses the live `codex app-server` fetch, the no-model-spend property, the conservative `available` semantics, the stale-cache fallback, and — most valuably — the critical distinction between benign states (`unknown`/`unavailable`/`blocked`) and the `spend_control_reached` flag that means paid calls will fail and deferral won't help. This is exactly the behavioral nuance an agent cannot infer from a schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded — purpose and cost in the first two sentences — and every sentence earns its place, since the entire quota state machine needs explaining. It loses one point because the middle section is a dense, run-on paragraph that could be restructured (e.g., enumerating the field values) for easier scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an empty schema and readOnly annotations, the description is the entire contract, and it covers everything: installation/auth/version checks, quota window semantics and nullability, failure modes (retry vs. surface), and freshness fields (is_stale/as_of/home_unverified). An agent has everything needed to invoke the tool and interpret every plausible response state.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters and 100% schema coverage, there is nothing for the description to explain, so the per-rubric baseline of 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource — "Check that the codex CLI is installed, authenticated, and a supported version, and report the resolved defaults" — and immediately flags the differentiator from its siblings: "Free — no model call." This lets an agent distinguish the tool from model-spending siblings like codex_consult or codex_delegate, which is critical on a list full of async/dry-run variants.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit timing direction — "Run it before your first paid call in a session... and again whenever a run fails with a setup error" — and then defines a decision protocol: defer non-urgent calls when limited/exhausted, retry on unknown, surface blocked to the user ("don't defer"). This effectively covers both when-to-use and when-not-to-proceed, which for a status/health tool is the behavior that matters.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex_transferTransfer session to Codex (free)A

Hand off the current Claude Code session to a resumable Codex thread.

Imports a Claude session transcript (.jsonl) into a persistent Codex thread via codex app-server and returns resume_command (codex resume <thread_id>) to continue that exact conversation in Codex (TUI or App). Free — no model call and no token spend; it is a local file conversion, typically seconds. It does create a thread in $CODEX_HOME (so it is not read-only) but never edits your working tree.

Pass transcript_path: the current session's transcript is the newest *.jsonl under ~/.claude/projects//. If that is ambiguous — for example, more than one recent transcript could be the current session — ask the user which one to transfer. Transferring a still-live session creates a NEW thread each call — Codex dedups only a byte-identical transcript — so this is not idempotent for an active session.

Identifiers the app-server reports (the imported thread id and $CODEX_HOME) are validated: a drifted, oversized, or malformed value fails as cli_contract_changed rather than producing a corrupt resume_command or importing into the wrong home. resume_command is POSIX shell syntax.

codex_status (free) can confirm Codex is installed and authenticated beforehand.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspace_rootNoAbsolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary.
transcript_pathYesAbsolute path to the Claude Code session transcript (.jsonl) to hand off to Codex. Must be an existing, non-empty .jsonl file under ~/.claude/projects. Find the current session's transcript as the newest *.jsonl under ~/.claude/projects/<cwd-slug>/. If that is ambiguous — for example, more than one recent transcript could be the current session — ask the user which one to transfer.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false and destructiveHint=false, but the description adds critical behavioral nuance: it creates a thread in $CODEX_HOME (so mutates state) but never edits the working tree, and it is free/no token spend. It discloses that a live session creates a NEW thread each call (non-idempotent), addresses validation failures via cli_contract_changed, and specifies that resume_command is POSIX shell syntax. This goes well beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Reasonably compact for the information density, with front-loaded purpose and usage. Some redundancy with the schema (e.g., transcript_path guidance repeated nearly verbatim), but the extra behavioral notes (non-idempotency, validation, free/ no-token) are valuable. Could trim the verbatim echo of schema text, but not enough to lower to 3.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (state mutation, validation, side effects) and that the output schema exists, the description covers: prerequisites (codex_status), failure modes, side effects, idempotency, and parameter resolution. The only minor gap is that it doesn't describe the exact shape of the return (though an output schema exists, so the agent can see that). Complete for a hand-off tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% — both parameters are well documented in the schema. The description adds: how to locate the current transcript (newest *.jsonl), the ambiguity fallback (ask the user), the workspace_root fallback behavior (cwd fallback + meta.workspace_warning, and that it is not a read boundary). This is above the baseline 3 because it clarifies the practical meaning and failure modes of the parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb ('hand off'), a specific resource (the Claude Code session transcript converted to a Codex thread), and the deliverable (resume_command). It distinguishes from siblings by noting this is for a resumable session transfer while codex_consult, codex_delegate, etc. cover different actions. Even without reading sibling descriptions, an agent knows this is the conversion/hand-off tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use ('to continue that exact conversation in Codex'), what to verify beforehand (codex_status confirms install/auth), and when to ask the user (ambiguous transcript path). It also notes the tool is not idempotent for an active session, which is crucial usage context. Alternatives like codex_consult/delegate are implicitly distinct by the 'hand off to a resumable thread' framing, though siblings aren't named explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 5 tool updatesv0.22.0
    • Changedcodex_capabilities1 field changed
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "active_tools": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "annotations_reading": {
        -        "type": "string"
        -      },
        -      "deprecation_policy": {
        -        "type": "string"
        -      },
        -      "error_envelope_resource": {
        -        "type": "string"
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "fingerprint_covers": {
        -        "description": "A contract-semantic change in any listed category changes the fingerprint; nothing outside them does. Release identity is excluded: serverInfo.version, version, server_version change every release WITHOUT moving the fingerprint.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "free_tools": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "name": {
        -        "type": "string"
        -      },
        -      "negative_scope": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "prerequisites": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "protocol_revision": {
        -        "type": "string"
        -      },
        -      "resource_error_carrier": {
        -        "type": "string"
        -      },
        -      "result_meta_resource": {
        -        "type": "string"
        -      },
        -      "sandboxes": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "schemas": {
        -        "anyOf": [
        -          {
        -            "additionalProperties": true,
        -            "type": "object"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "scope": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "server_version": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "stability": {
        -        "type": "string"
        -      },
        -      "tiers": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "tool_details": {
        -        "description": "Per-tool capability records; full schema at resource codex://capabilities-result",
        -        "type": "array"
        -      },
        -      "tool_error_carrier": {
        -        "type": "string"
        -      },
        -      "transport": {
        -        "type": "string"
        -      },
        -      "version": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "name",
        -      "version",
        -      "transport",
        -      "stability",
        -      "active_tools",
        -      "free_tools",
        -      "tiers",
        -      "sandboxes",
        -      "scope",
        -      "negative_scope",
        -      "prerequisites",
        -      "deprecation_policy"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "active_tools": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "annotations_reading": {
        +        "type": "string"
        +      },
        +      "deprecation_policy": {
        +        "type": "string"
        +      },
        +      "error_envelope_resource": {
        +        "type": "string"
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "fingerprint_covers": {
        +        "description": "A contract-semantic change in any listed category changes the fingerprint; nothing outside them does. Release identity is excluded: serverInfo.version, version, server_version change every release WITHOUT moving the fingerprint (incl. its server/discover _meta carrier).",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "free_tools": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "name": {
        +        "type": "string"
        +      },
        +      "negative_scope": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "prerequisites": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "protocol_revision": {
        +        "type": "string"
        +      },
        +      "resource_error_carrier": {
        +        "type": "string"
        +      },
        +      "result_meta_resource": {
        +        "type": "string"
        +      },
        +      "sandboxes": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "schemas": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": true,
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "scope": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "server_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "stability": {
        +        "type": "string"
        +      },
        +      "tiers": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "tool_details": {
        +        "description": "Per-tool capability records; full schema at resource codex://capabilities-result",
        +        "type": "array"
        +      },
        +      "tool_error_carrier": {
        +        "type": "string"
        +      },
        +      "transport": {
        +        "type": "string"
        +      },
        +      "version": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "name",
        +      "version",
        +      "transport",
        +      "stability",
        +      "active_tools",
        +      "free_tools",
        +      "tiers",
        +      "sandboxes",
        +      "scope",
        +      "negative_scope",
        +      "prerequisites",
        +      "deprecation_policy"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_consult1 field changed
      • addedInput schema / properties / developer_instructions
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional caller stance/focus text for Codex's developer turn, placed BEHIND this server's always-leading framing; omit for no developer override. UNTRUSTED — never build it from workspace content; grants no tools; Codex is instructed, not compelled — verdicts stay its own, and compliance with the rest is best-effort and may be silent. Rides the codex command line and the background-job record on disk — never put secrets here; meta reports only {sha256, bytes}. Stripped; blank = omitted; max 4096 bytes. Full contract: codex://params."
        +}
    • Changedcodex_consult_async1 field changed
      • addedInput schema / properties / developer_instructions
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional caller stance/focus text for Codex's developer turn, placed BEHIND this server's always-leading framing; omit for no developer override. UNTRUSTED — never build it from workspace content; grants no tools; Codex is instructed, not compelled — verdicts stay its own, and compliance with the rest is best-effort and may be silent. Rides the codex command line and the background-job record on disk — never put secrets here; meta reports only {sha256, bytes}. Stripped; blank = omitted; max 4096 bytes. Full contract: codex://params."
        +}
    • Changedcodex_review_changes1 field changed
      • addedInput schema / properties / developer_instructions
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional caller stance/focus text for Codex's developer turn, placed BEHIND this server's always-leading framing; omit for no developer override. UNTRUSTED — never build it from workspace content; grants no tools; Codex is instructed, not compelled — verdicts stay its own, and compliance with the rest is best-effort and may be silent. Rides the codex command line and the background-job record on disk — never put secrets here; meta reports only {sha256, bytes}. Stripped; blank = omitted; max 4096 bytes. Full contract: codex://params."
        +}
    • Changedcodex_review_changes_async1 field changed
      • addedInput schema / properties / developer_instructions
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional caller stance/focus text for Codex's developer turn, placed BEHIND this server's always-leading framing; omit for no developer override. UNTRUSTED — never build it from workspace content; grants no tools; Codex is instructed, not compelled — verdicts stay its own, and compliance with the rest is best-effort and may be silent. Rides the codex command line and the background-job record on disk — never put secrets here; meta reports only {sha256, bytes}. Stripped; blank = omitted; max 4096 bytes. Full contract: codex://params."
        +}
  2. 15 tool updatesv0.19.0
    • Changedcodex_consult3 fields changed
      • changedInput schema / properties / model / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "pattern": "^[^\\x00-\\x1F\\x7F-\\x9F]*$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / model / description
        Previous value: -"Override the Codex model slug for this call; defaults to the server/Codex default when unset."New value: +"Override the Codex model slug for this call; defaults to the server/Codex default when unset. Control characters are rejected, not stripped."
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary."
    • Changedcodex_consult_async3 fields changed
      • changedInput schema / properties / model / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "pattern": "^[^\\x00-\\x1F\\x7F-\\x9F]*$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / model / description
        Previous value: -"Override the Codex model slug for this call; defaults to the server/Codex default when unset."New value: +"Override the Codex model slug for this call; defaults to the server/Codex default when unset. Control characters are rejected, not stripped."
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary."
    • Changedcodex_delegate3 fields changed
      • changedInput schema / properties / model / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "pattern": "^[^\\x00-\\x1F\\x7F-\\x9F]*$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / model / description
        Previous value: -"Override the Codex model slug for this call; defaults to the server/Codex default when unset."New value: +"Override the Codex model slug for this call; defaults to the server/Codex default when unset. Control characters are rejected, not stripped."
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary."
    • Changedcodex_delegate_async3 fields changed
      • changedInput schema / properties / model / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "pattern": "^[^\\x00-\\x1F\\x7F-\\x9F]*$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / model / description
        Previous value: -"Override the Codex model slug for this call; defaults to the server/Codex default when unset."New value: +"Override the Codex model slug for this call; defaults to the server/Codex default when unset. Control characters are rejected, not stripped."
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary."
    • Changedcodex_delegate_dry_run2 fields changed
      • changedInput schema / properties / model / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "pattern": "^[^\\x00-\\x1F\\x7F-\\x9F]*$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary."
    • Changedcodex_dry_run6 fields changed
      • changedInput schema / properties / base / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "pattern": "^[^\\x00-\\x1F\\x7F-\\x9F]*$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / base / description
        Previous value: -"Base git ref for scope='branch'; the review covers base...HEAD."New value: +"Base git ref for scope='branch'; the review covers base...HEAD. Control characters are rejected, not stripped."
      • changedInput schema / properties / commit / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "pattern": "^[^\\x00-\\x1F\\x7F-\\x9F]*$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / commit / description
        Previous value: -"Commit SHA or ref to review for scope='commit'."New value: +"Commit SHA or ref to review for scope='commit'. Control characters are rejected, not stripped."
      • changedInput schema / properties / model / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "pattern": "^[^\\x00-\\x1F\\x7F-\\x9F]*$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary."
    • Changedcodex_job_cancel3 fields changed
      • changedInput schema / properties / job_id / description
        Previous value: -"The job_id from an *_async call or a sync call's meta.job_id; recover lost ids with codex_job_list."New value: +"The job_id from an *_async call or a sync call's meta.job_id; recover lost ids with codex_job_list. Control characters are rejected, not stripped."
      • addedInput schema / properties / job_id / pattern
        Added value: +"^[^\\x00-\\x1F\\x7F-\\x9F]*$"
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary."
    • Changedcodex_job_consume_result3 fields changed
      • changedInput schema / properties / job_id / description
        Previous value: -"The job_id from an *_async call or a sync call's meta.job_id; recover lost ids with codex_job_list."New value: +"The job_id from an *_async call or a sync call's meta.job_id; recover lost ids with codex_job_list. Control characters are rejected, not stripped."
      • addedInput schema / properties / job_id / pattern
        Added value: +"^[^\\x00-\\x1F\\x7F-\\x9F]*$"
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary."
    • Changedcodex_job_list1 field changed
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary."
    • Changedcodex_job_result3 fields changed
      • changedInput schema / properties / job_id / description
        Previous value: -"The job_id from an *_async call or a sync call's meta.job_id; recover lost ids with codex_job_list."New value: +"The job_id from an *_async call or a sync call's meta.job_id; recover lost ids with codex_job_list. Control characters are rejected, not stripped."
      • addedInput schema / properties / job_id / pattern
        Added value: +"^[^\\x00-\\x1F\\x7F-\\x9F]*$"
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary."
    • Changedcodex_job_status3 fields changed
      • changedInput schema / properties / job_id / description
        Previous value: -"The job_id from an *_async call or a sync call's meta.job_id; recover lost ids with codex_job_list."New value: +"The job_id from an *_async call or a sync call's meta.job_id; recover lost ids with codex_job_list. Control characters are rejected, not stripped."
      • addedInput schema / properties / job_id / pattern
        Added value: +"^[^\\x00-\\x1F\\x7F-\\x9F]*$"
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary."
    • Changedcodex_review_changes7 fields changed
      • changedInput schema / properties / base / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "pattern": "^[^\\x00-\\x1F\\x7F-\\x9F]*$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / base / description
        Previous value: -"Base git ref for scope='branch'; the review covers base...HEAD."New value: +"Base git ref for scope='branch'; the review covers base...HEAD. Control characters are rejected, not stripped."
      • changedInput schema / properties / commit / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "pattern": "^[^\\x00-\\x1F\\x7F-\\x9F]*$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / commit / description
        Previous value: -"Commit SHA or ref to review for scope='commit'."New value: +"Commit SHA or ref to review for scope='commit'. Control characters are rejected, not stripped."
      • changedInput schema / properties / model / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "pattern": "^[^\\x00-\\x1F\\x7F-\\x9F]*$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / model / description
        Previous value: -"Override the Codex model slug for this call; defaults to the server/Codex default when unset."New value: +"Override the Codex model slug for this call; defaults to the server/Codex default when unset. Control characters are rejected, not stripped."
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary."
    • Changedcodex_review_changes_async7 fields changed
      • changedInput schema / properties / base / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "pattern": "^[^\\x00-\\x1F\\x7F-\\x9F]*$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / base / description
        Previous value: -"Base git ref for scope='branch'; the review covers base...HEAD."New value: +"Base git ref for scope='branch'; the review covers base...HEAD. Control characters are rejected, not stripped."
      • changedInput schema / properties / commit / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "pattern": "^[^\\x00-\\x1F\\x7F-\\x9F]*$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / commit / description
        Previous value: -"Commit SHA or ref to review for scope='commit'."New value: +"Commit SHA or ref to review for scope='commit'. Control characters are rejected, not stripped."
      • changedInput schema / properties / model / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "pattern": "^[^\\x00-\\x1F\\x7F-\\x9F]*$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / model / description
        Previous value: -"Override the Codex model slug for this call; defaults to the server/Codex default when unset."New value: +"Override the Codex model slug for this call; defaults to the server/Codex default when unset. Control characters are rejected, not stripped."
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary."
    • Changedcodex_status1 field changed
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "auth_detail": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "caveat": {
        -        "type": "string"
        -      },
        -      "codex_authenticated": {
        -        "anyOf": [
        -          {
        -            "type": "boolean"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "codex_found": {
        -        "type": "boolean"
        -      },
        -      "codex_version": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "extra_args_configured": {
        -        "type": "boolean"
        -      },
        -      "extra_args_count": {
        -        "type": "integer"
        -      },
        -      "extra_args_valid": {
        -        "type": "boolean"
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "flags_warning": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "rate_limit": {
        -        "description": "Codex rate-limit snapshot; full schema at resource codex://status-result",
        -        "type": "object"
        -      },
        -      "raw_defaults": {
        -        "description": "Raw configured defaults; full schema at resource codex://status-result",
        -        "type": "object"
        -      },
        -      "readiness_detail": {
        -        "type": "string"
        -      },
        -      "ready": {
        -        "type": "boolean"
        -      },
        -      "resolved_defaults": {
        -        "description": "Resolved effective defaults; full schema at resource codex://status-result",
        -        "type": "object"
        -      },
        -      "server_version": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "version_supported": {
        -        "anyOf": [
        -          {
        -            "type": "boolean"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "version_warning": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      }
        -    },
        -    "required": [
        -      "codex_found",
        -      "readiness_detail",
        -      "raw_defaults",
        -      "resolved_defaults",
        -      "caveat"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "auth_detail": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "caveat": {
        +        "type": "string"
        +      },
        +      "codex_authenticated": {
        +        "anyOf": [
        +          {
        +            "type": "boolean"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "codex_found": {
        +        "type": "boolean"
        +      },
        +      "codex_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Display copy of `codex --version`: control characters removed, secret-looking values redacted, clipped to 200 characters with a trailing advisory `…[truncated]`; null if codex did not run or nothing printable remained. Do not parse it — `version_supported` is the verdict, and it is parsed from the raw output, which can differ from this."
        +      },
        +      "extra_args_configured": {
        +        "type": "boolean"
        +      },
        +      "extra_args_count": {
        +        "type": "integer"
        +      },
        +      "extra_args_valid": {
        +        "type": "boolean"
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "flags_warning": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "rate_limit": {
        +        "description": "Codex rate-limit snapshot; full schema at resource codex://status-result",
        +        "type": "object"
        +      },
        +      "raw_defaults": {
        +        "description": "Raw configured defaults; full schema at resource codex://status-result",
        +        "type": "object"
        +      },
        +      "readiness_detail": {
        +        "type": "string"
        +      },
        +      "ready": {
        +        "type": "boolean"
        +      },
        +      "resolved_defaults": {
        +        "description": "Resolved effective defaults; full schema at resource codex://status-result",
        +        "type": "object"
        +      },
        +      "server_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "version_supported": {
        +        "anyOf": [
        +          {
        +            "type": "boolean"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "version_warning": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      }
        +    },
        +    "required": [
        +      "codex_found",
        +      "readiness_detail",
        +      "raw_defaults",
        +      "resolved_defaults",
        +      "caveat"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_transfer2 fields changed
      • addedInput schema / properties / transcript_path / pattern
        Added value: +"^[^\\x00-\\x1F\\x7F-\\x9F]*$"
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. On an active call it selects where Codex works, not what it can read — it is not a read boundary."
  3. 15 tool updatesv0.17.0
    • Changedcodex_capabilities4 fields changed
      • addedInput schema / properties / detail
        Added value: +{
        +  "default": "summary",
        +  "description": "What to return: 'summary' (default) returns each tool's name, cost, stability, and error_codes; the *_async tools also get async_lifecycle. 'full' adds use_when, returns, and the parameter lists (which tools/list already carries). 'contracts' drops tool_details: fetch a schema, or recheck fingerprint, without re-paying for the inventory.",
        +  "enum": [
        +    "summary",
        +    "full",
        +    "contracts"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / include_schemas / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "enum": [
        -        "error-envelope",
        -        "result-meta",
        -        "capabilities-result",
        -        "status-result"
        -      ],
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "enum": [
        +        "error-envelope",
        +        "result-meta",
        +        "capabilities-result",
        +        "status-result",
        +        "parameter-contracts"
        +      ],
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / include_schemas / description
        Previous value: -"Opt-in tool-reachable fallback for resource-blind clients: also embed the full 'error-envelope', 'result-meta', 'capabilities-result', and/or 'status-result' schema in the response (the default payload omits them and points at the codex:// resources instead)."New value: +"Opt-in tool-reachable fallback for resource-blind clients: also embed the full 'error-envelope', 'result-meta', 'capabilities-result', and/or 'status-result' schema, and/or the 'parameter-contracts' document (a contract doc, not a JSON Schema, sourced from the codex://params resource body), in the response — the default payload omits them and points at the codex:// resources instead."
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "active_tools": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "deprecation_policy": {
        -        "type": "string"
        -      },
        -      "error_envelope_resource": {
        -        "type": "string"
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "fingerprint_covers": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "free_tools": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "name": {
        -        "type": "string"
        -      },
        -      "negative_scope": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "prerequisites": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "resource_error_carrier": {
        -        "type": "string"
        -      },
        -      "result_meta_resource": {
        -        "type": "string"
        -      },
        -      "sandboxes": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "schemas": {
        -        "anyOf": [
        -          {
        -            "additionalProperties": true,
        -            "type": "object"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "scope": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "server_version": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "stability": {
        -        "type": "string"
        -      },
        -      "tiers": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "tool_details": {
        -        "description": "Per-tool capability records; full schema at resource codex://capabilities-result",
        -        "type": "array"
        -      },
        -      "tool_error_carrier": {
        -        "type": "string"
        -      },
        -      "transport": {
        -        "type": "string"
        -      },
        -      "version": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "name",
        -      "version",
        -      "transport",
        -      "stability",
        -      "active_tools",
        -      "free_tools",
        -      "tiers",
        -      "sandboxes",
        -      "scope",
        -      "negative_scope",
        -      "prerequisites",
        -      "deprecation_policy"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "active_tools": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "annotations_reading": {
        +        "type": "string"
        +      },
        +      "deprecation_policy": {
        +        "type": "string"
        +      },
        +      "error_envelope_resource": {
        +        "type": "string"
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "fingerprint_covers": {
        +        "description": "A contract-semantic change in any listed category changes the fingerprint; nothing outside them does. Release identity is excluded: serverInfo.version, version, server_version change every release WITHOUT moving the fingerprint.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "free_tools": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "name": {
        +        "type": "string"
        +      },
        +      "negative_scope": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "prerequisites": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "protocol_revision": {
        +        "type": "string"
        +      },
        +      "resource_error_carrier": {
        +        "type": "string"
        +      },
        +      "result_meta_resource": {
        +        "type": "string"
        +      },
        +      "sandboxes": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "schemas": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": true,
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "scope": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "server_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "stability": {
        +        "type": "string"
        +      },
        +      "tiers": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "tool_details": {
        +        "description": "Per-tool capability records; full schema at resource codex://capabilities-result",
        +        "type": "array"
        +      },
        +      "tool_error_carrier": {
        +        "type": "string"
        +      },
        +      "transport": {
        +        "type": "string"
        +      },
        +      "version": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "name",
        +      "version",
        +      "transport",
        +      "stability",
        +      "active_tools",
        +      "free_tools",
        +      "tiers",
        +      "sandboxes",
        +      "scope",
        +      "negative_scope",
        +      "prerequisites",
        +      "deprecation_policy"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_consult6 fields changed
      • changedInput schema / properties / extra_context / description
        Previous value: -"Optional author intent / background context, added to the prompt as clearly-labeled UNTRUSTED data. Codex is instructed to treat embedded directives as data, not commands — best-effort prompt-injection mitigation, not a guarantee. Don't include live secrets: Codex can read files it's pointed at, and redaction does not cover this field."New value: +"Optional author intent/background context, added as clearly-labeled UNTRUSTED prompt data. Redaction does NOT cover it — no live secrets. Full caveats and bounds: codex://params."
      • changedInput schema / properties / idempotency_key / description
        Previous value: -"Optional client-supplied dedup key, scoped to THIS concrete tool on the same workspace. Reusing it on the same tool with the same arguments replays the existing run instead of starting — and paying for — a duplicate Codex call (a sync call reattaches to the in-flight run and returns its result; an _async call returns the same job_id). The sync and _async variants are DIFFERENT tools and never share a key's run. Reuse with different arguments — including a different timeout_seconds — is refused (idempotency_conflict); a key whose prior result was already consumed/evicted is idempotency_result_unavailable; a still-publishing reservation is idempotency_in_progress (retry). Omit it for the prior no-dedup behavior. A completed result stays replayable while its job record lives (its TTL), subject to consumption or count-eviction; the fail-closed conflict/in-progress window can last longer — up to the job's max runtime + termination grace + TTL. meta.idempotency_replayed=true marks a replayed (unpaid) response."New value: +"Optional dedup key scoped to THIS tool + workspace. Same key + same args replays the prior result with no new spend; different args are refused (idempotency_conflict). Sync and _async are separate tools and never share a key. Omit for none; retention is bounded. Lifecycle: codex://params."
      • changedInput schema / properties / isolation / description
        Previous value: -"Codex config isolation: 'inherit', 'ignore-config', or 'ignore-rules'. Defaults to the server's configured isolation (built-in default 'inherit'; `codex_status` reports the resolved value)."New value: +"Codex config isolation: 'inherit' | 'ignore-config' | 'ignore-rules'. Defaults to the server's configured value (built-in 'inherit'; `codex_status` reports the resolved one)."
      • changedInput schema / properties / question / description
        Previous value: -"The question or prompt to send Codex (a different model) for a read-only answer."New value: +"The question or prompt to send Codex (a different model) for a read-only answer. Must be non-blank: empty or whitespace-only is rejected before any model call."
      • changedInput schema / properties / reasoning_effort / description
        Previous value: -"Override the Codex reasoning effort for this call (sent as a `model_reasoning_effort` config override); omit (or pass null) for the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) or Codex's own resolution. An open per-model string the Codex backend validates at run time — commonly minimal|low|medium|high|xhigh; codex_models lists each model's advertised set (advisory). A backend-rejected value fails as invalid_reasoning_effort; an explicit empty string is sent as-is (and rejected by the backend), never treated as unset. Control characters, surrogates, and values over 128 chars are rejected as invalid_arguments."New value: +"Override the Codex reasoning effort for this call (a model_reasoning_effort override); omit or pass null for the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) or Codex's own resolution. An open, per-model string the backend validates at run time — commonly minimal|low|medium|high|xhigh; codex_models lists each model's advertised set (advisory). Rejection and bounds detail: codex://params."
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repository root. Pass it (or rely on an MCP root) so the call targets the intended repo; otherwise it falls back to the server's own cwd and meta.workspace_warning is set."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."
    • Changedcodex_consult_async7 fields changed
      • changedInput schema / properties / extra_context / description
        Previous value: -"Optional author intent / background context, added to the prompt as clearly-labeled UNTRUSTED data. Codex is instructed to treat embedded directives as data, not commands — best-effort prompt-injection mitigation, not a guarantee. Don't include live secrets: Codex can read files it's pointed at, and redaction does not cover this field."New value: +"Optional author intent/background context, added as clearly-labeled UNTRUSTED prompt data. Redaction does NOT cover it — no live secrets. Full caveats and bounds: codex://params."
      • changedInput schema / properties / idempotency_key / description
        Previous value: -"Optional client-supplied dedup key, scoped to THIS concrete tool on the same workspace. Reusing it on the same tool with the same arguments replays the existing run instead of starting — and paying for — a duplicate Codex call (a sync call reattaches to the in-flight run and returns its result; an _async call returns the same job_id). The sync and _async variants are DIFFERENT tools and never share a key's run. Reuse with different arguments — including a different timeout_seconds — is refused (idempotency_conflict); a key whose prior result was already consumed/evicted is idempotency_result_unavailable; a still-publishing reservation is idempotency_in_progress (retry). Omit it for the prior no-dedup behavior. A completed result stays replayable while its job record lives (its TTL), subject to consumption or count-eviction; the fail-closed conflict/in-progress window can last longer — up to the job's max runtime + termination grace + TTL. meta.idempotency_replayed=true marks a replayed (unpaid) response."New value: +"Optional dedup key scoped to THIS tool + workspace. Same key + same args replays the prior result with no new spend; different args are refused (idempotency_conflict). Sync and _async are separate tools and never share a key. Omit for none; retention is bounded. Lifecycle: codex://params."
      • changedInput schema / properties / isolation / description
        Previous value: -"Codex config isolation: 'inherit', 'ignore-config', or 'ignore-rules'. Defaults to the server's configured isolation (built-in default 'inherit'; `codex_status` reports the resolved value)."New value: +"Codex config isolation: 'inherit' | 'ignore-config' | 'ignore-rules'. Defaults to the server's configured value (built-in 'inherit'; `codex_status` reports the resolved one)."
      • changedInput schema / properties / question / description
        Previous value: -"The question or prompt to send Codex (a different model) for a read-only answer."New value: +"The question or prompt to send Codex (a different model) for a read-only answer. Must be non-blank: empty or whitespace-only is rejected before any model call."
      • changedInput schema / properties / reasoning_effort / description
        Previous value: -"Override the Codex reasoning effort for this call (sent as a `model_reasoning_effort` config override); omit (or pass null) for the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) or Codex's own resolution. An open per-model string the Codex backend validates at run time — commonly minimal|low|medium|high|xhigh; codex_models lists each model's advertised set (advisory). A backend-rejected value fails as invalid_reasoning_effort; an explicit empty string is sent as-is (and rejected by the backend), never treated as unset. Control characters, surrogates, and values over 128 chars are rejected as invalid_arguments."New value: +"Override the Codex reasoning effort for this call (a model_reasoning_effort override); omit or pass null for the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) or Codex's own resolution. An open, per-model string the backend validates at run time — commonly minimal|low|medium|high|xhigh; codex_models lists each model's advertised set (advisory). Rejection and bounds detail: codex://params."
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repository root. Pass it (or rely on an MCP root) so the call targets the intended repo; otherwise it falls back to the server's own cwd and meta.workspace_warning is set."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "deadline_seconds": {
        -        "type": "integer"
        -      },
        -      "expires_at": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "job_id": {
        -        "type": "string"
        -      },
        -      "kind": {
        -        "type": "string"
        -      },
        -      "meta": {
        -        "description": "Result metadata (cwd, tier, sandbox, model, timeout, usage, rate_limit, and more); full schema at resource codex://result-meta",
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "poll_after_ms": {
        -        "type": "integer"
        -      },
        -      "server_version": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "started_at": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "enum": [
        -          "running",
        -          "done",
        -          "failed",
        -          "cancelled",
        -          "timeout"
        -        ],
        -        "type": "string"
        -      },
        -      "ttl_seconds": {
        -        "type": "integer"
        -      }
        -    },
        -    "required": [
        -      "job_id",
        -      "kind",
        -      "started_at",
        -      "deadline_seconds",
        -      "ttl_seconds",
        -      "meta"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "deadline_seconds": {
        +        "type": "integer"
        +      },
        +      "expires_at": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "follow_up": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "alternative": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "arguments": {
        +            "anyOf": [
        +              {
        +                "additionalProperties": true,
        +                "type": "object"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "next_step": {
        +            "enum": [
        +              "retry_after_delay",
        +              "correct_arguments",
        +              "use_allowed_value",
        +              "reduce_input",
        +              "use_workspace_in_roots",
        +              "poll_job_status",
        +              "list_jobs",
        +              "list_resources",
        +              "start_new_job",
        +              "authenticate",
        +              "install_codex",
        +              "install_git",
        +              "init_git_repo",
        +              "update_plugin",
        +              "correct_config",
        +              "inspect_and_retry",
        +              "retry_then_report",
        +              "use_new_idempotency_key"
        +            ],
        +            "type": "string"
        +          },
        +          "tool": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "next_step"
        +        ],
        +        "type": "object"
        +      },
        +      "job_id": {
        +        "type": "string"
        +      },
        +      "kind": {
        +        "type": "string"
        +      },
        +      "meta": {
        +        "description": "Result metadata (cwd, tier, sandbox, model, timeout, usage, rate_limit, and more); full schema at resource codex://result-meta",
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "poll_after_ms": {
        +        "type": "integer"
        +      },
        +      "server_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "started_at": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "enum": [
        +          "running",
        +          "done",
        +          "failed",
        +          "cancelled",
        +          "timeout"
        +        ],
        +        "type": "string"
        +      },
        +      "ttl_seconds": {
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "job_id",
        +      "kind",
        +      "started_at",
        +      "deadline_seconds",
        +      "ttl_seconds",
        +      "meta",
        +      "follow_up"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_delegate5 fields changed
      • changedInput schema / properties / idempotency_key / description
        Previous value: -"Optional client-supplied dedup key, scoped to THIS concrete tool on the same workspace. Reusing it on the same tool with the same arguments replays the existing run instead of starting — and paying for — a duplicate Codex call (a sync call reattaches to the in-flight run and returns its result; an _async call returns the same job_id). The sync and _async variants are DIFFERENT tools and never share a key's run. Reuse with different arguments — including a different timeout_seconds — is refused (idempotency_conflict); a key whose prior result was already consumed/evicted is idempotency_result_unavailable; a still-publishing reservation is idempotency_in_progress (retry). Omit it for the prior no-dedup behavior. A completed result stays replayable while its job record lives (its TTL), subject to consumption or count-eviction; the fail-closed conflict/in-progress window can last longer — up to the job's max runtime + termination grace + TTL. meta.idempotency_replayed=true marks a replayed (unpaid) response."New value: +"Optional dedup key scoped to THIS tool + workspace. Same key + same args replays the prior result with no new spend; different args are refused (idempotency_conflict). Sync and _async are separate tools and never share a key. Omit for none; retention is bounded. Lifecycle: codex://params."
      • changedInput schema / properties / isolation / description
        Previous value: -"Codex config isolation: 'inherit', 'ignore-config', or 'ignore-rules'. Defaults to the server's configured isolation (built-in default 'inherit'; `codex_status` reports the resolved value)."New value: +"Codex config isolation: 'inherit' | 'ignore-config' | 'ignore-rules'. Defaults to the server's configured value (built-in 'inherit'; `codex_status` reports the resolved one)."
      • changedInput schema / properties / reasoning_effort / description
        Previous value: -"Override the Codex reasoning effort for this call (sent as a `model_reasoning_effort` config override); omit (or pass null) for the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) or Codex's own resolution. An open per-model string the Codex backend validates at run time — commonly minimal|low|medium|high|xhigh; codex_models lists each model's advertised set (advisory). A backend-rejected value fails as invalid_reasoning_effort; an explicit empty string is sent as-is (and rejected by the backend), never treated as unset. Control characters, surrogates, and values over 128 chars are rejected as invalid_arguments."New value: +"Override the Codex reasoning effort for this call (a model_reasoning_effort override); omit or pass null for the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) or Codex's own resolution. An open, per-model string the backend validates at run time — commonly minimal|low|medium|high|xhigh; codex_models lists each model's advertised set (advisory). Rejection and bounds detail: codex://params."
      • changedInput schema / properties / task / description
        Previous value: -"The coding task for Codex to implement inside a throwaway git worktree; the resulting diff is returned for review, not applied to your tree."New value: +"The coding task for Codex to implement inside a throwaway git worktree; the resulting diff is returned for review, not applied to your tree. Must be non-blank: empty or whitespace-only is rejected before any model call."
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repository root. Pass it (or rely on an MCP root) so the call targets the intended repo; otherwise it falls back to the server's own cwd and meta.workspace_warning is set."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."
    • Changedcodex_delegate_async6 fields changed
      • changedInput schema / properties / idempotency_key / description
        Previous value: -"Optional client-supplied dedup key, scoped to THIS concrete tool on the same workspace. Reusing it on the same tool with the same arguments replays the existing run instead of starting — and paying for — a duplicate Codex call (a sync call reattaches to the in-flight run and returns its result; an _async call returns the same job_id). The sync and _async variants are DIFFERENT tools and never share a key's run. Reuse with different arguments — including a different timeout_seconds — is refused (idempotency_conflict); a key whose prior result was already consumed/evicted is idempotency_result_unavailable; a still-publishing reservation is idempotency_in_progress (retry). Omit it for the prior no-dedup behavior. A completed result stays replayable while its job record lives (its TTL), subject to consumption or count-eviction; the fail-closed conflict/in-progress window can last longer — up to the job's max runtime + termination grace + TTL. meta.idempotency_replayed=true marks a replayed (unpaid) response."New value: +"Optional dedup key scoped to THIS tool + workspace. Same key + same args replays the prior result with no new spend; different args are refused (idempotency_conflict). Sync and _async are separate tools and never share a key. Omit for none; retention is bounded. Lifecycle: codex://params."
      • changedInput schema / properties / isolation / description
        Previous value: -"Codex config isolation: 'inherit', 'ignore-config', or 'ignore-rules'. Defaults to the server's configured isolation (built-in default 'inherit'; `codex_status` reports the resolved value)."New value: +"Codex config isolation: 'inherit' | 'ignore-config' | 'ignore-rules'. Defaults to the server's configured value (built-in 'inherit'; `codex_status` reports the resolved one)."
      • changedInput schema / properties / reasoning_effort / description
        Previous value: -"Override the Codex reasoning effort for this call (sent as a `model_reasoning_effort` config override); omit (or pass null) for the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) or Codex's own resolution. An open per-model string the Codex backend validates at run time — commonly minimal|low|medium|high|xhigh; codex_models lists each model's advertised set (advisory). A backend-rejected value fails as invalid_reasoning_effort; an explicit empty string is sent as-is (and rejected by the backend), never treated as unset. Control characters, surrogates, and values over 128 chars are rejected as invalid_arguments."New value: +"Override the Codex reasoning effort for this call (a model_reasoning_effort override); omit or pass null for the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) or Codex's own resolution. An open, per-model string the backend validates at run time — commonly minimal|low|medium|high|xhigh; codex_models lists each model's advertised set (advisory). Rejection and bounds detail: codex://params."
      • changedInput schema / properties / task / description
        Previous value: -"The coding task for Codex to implement inside a throwaway git worktree; the resulting diff is returned for review, not applied to your tree."New value: +"The coding task for Codex to implement inside a throwaway git worktree; the resulting diff is returned for review, not applied to your tree. Must be non-blank: empty or whitespace-only is rejected before any model call."
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repository root. Pass it (or rely on an MCP root) so the call targets the intended repo; otherwise it falls back to the server's own cwd and meta.workspace_warning is set."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "deadline_seconds": {
        -        "type": "integer"
        -      },
        -      "expires_at": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "job_id": {
        -        "type": "string"
        -      },
        -      "kind": {
        -        "type": "string"
        -      },
        -      "meta": {
        -        "description": "Result metadata (cwd, tier, sandbox, model, timeout, usage, rate_limit, and more); full schema at resource codex://result-meta",
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "poll_after_ms": {
        -        "type": "integer"
        -      },
        -      "server_version": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "started_at": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "enum": [
        -          "running",
        -          "done",
        -          "failed",
        -          "cancelled",
        -          "timeout"
        -        ],
        -        "type": "string"
        -      },
        -      "ttl_seconds": {
        -        "type": "integer"
        -      }
        -    },
        -    "required": [
        -      "job_id",
        -      "kind",
        -      "started_at",
        -      "deadline_seconds",
        -      "ttl_seconds",
        -      "meta"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "deadline_seconds": {
        +        "type": "integer"
        +      },
        +      "expires_at": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "follow_up": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "alternative": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "arguments": {
        +            "anyOf": [
        +              {
        +                "additionalProperties": true,
        +                "type": "object"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "next_step": {
        +            "enum": [
        +              "retry_after_delay",
        +              "correct_arguments",
        +              "use_allowed_value",
        +              "reduce_input",
        +              "use_workspace_in_roots",
        +              "poll_job_status",
        +              "list_jobs",
        +              "list_resources",
        +              "start_new_job",
        +              "authenticate",
        +              "install_codex",
        +              "install_git",
        +              "init_git_repo",
        +              "update_plugin",
        +              "correct_config",
        +              "inspect_and_retry",
        +              "retry_then_report",
        +              "use_new_idempotency_key"
        +            ],
        +            "type": "string"
        +          },
        +          "tool": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "next_step"
        +        ],
        +        "type": "object"
        +      },
        +      "job_id": {
        +        "type": "string"
        +      },
        +      "kind": {
        +        "type": "string"
        +      },
        +      "meta": {
        +        "description": "Result metadata (cwd, tier, sandbox, model, timeout, usage, rate_limit, and more); full schema at resource codex://result-meta",
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "poll_after_ms": {
        +        "type": "integer"
        +      },
        +      "server_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "started_at": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "enum": [
        +          "running",
        +          "done",
        +          "failed",
        +          "cancelled",
        +          "timeout"
        +        ],
        +        "type": "string"
        +      },
        +      "ttl_seconds": {
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "job_id",
        +      "kind",
        +      "started_at",
        +      "deadline_seconds",
        +      "ttl_seconds",
        +      "meta",
        +      "follow_up"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_delegate_dry_run4 fields changed
      • changedInput schema / properties / isolation / description
        Previous value: -"Codex config isolation: 'inherit', 'ignore-config', or 'ignore-rules'. Defaults to the server's configured isolation (built-in default 'inherit'; `codex_status` reports the resolved value)."New value: +"Codex config isolation: 'inherit' | 'ignore-config' | 'ignore-rules'. Defaults to the server's configured value (built-in 'inherit'; `codex_status` reports the resolved one)."
      • changedInput schema / properties / task / description
        Previous value: -"The coding task you want Codex to implement via a real codex_delegate call; this dry run only previews the seeded baseline and prompt size — it does NOT call Codex or return a diff."New value: +"The coding task you want Codex to implement via a real codex_delegate call; this dry run only previews the seeded baseline and prompt size — it does NOT call Codex or return a diff. Must be non-blank: empty or whitespace-only is rejected here too, not previewed."
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repository root. Pass it (or rely on an MCP root) so the call targets the intended repo; otherwise it falls back to the server's own cwd and meta.workspace_warning is set."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "cwd": {
        -        "type": "string"
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "isolation": {
        -        "enum": [
        -          "inherit",
        -          "ignore-config",
        -          "ignore-rules"
        -        ],
        -        "type": "string"
        -      },
        -      "max_input_bytes": {
        -        "type": "integer"
        -      },
        -      "model": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Model override the previewed paid call would send (per-call param or server default); null = Codex would resolve it itself. Unvalidated by the preview."
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "prompt_bytes": {
        -        "type": "integer"
        -      },
        -      "reasoning_effort": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Reasoning-effort override the previewed paid call would send (per-call param or server default); null = Codex would resolve it itself. Unvalidated by the preview."
        -      },
        -      "sandbox": {
        -        "enum": [
        -          "read-only",
        -          "workspace-write",
        -          "danger-full-access"
        -        ],
        -        "type": "string"
        -      },
        -      "server_version": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "tier": {
        -        "enum": [
        -          "consult",
        -          "propose",
        -          "apply"
        -        ],
        -        "type": "string"
        -      },
        -      "tool": {
        -        "const": "codex_delegate_dry_run",
        -        "type": "string"
        -      },
        -      "workspace_source": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "workspace_warning": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "worktree_plan": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "head_commit": {
        -            "type": "string"
        -          },
        -          "head_subject": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "note": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "tracked_bytes": {
        -            "type": "integer"
        -          },
        -          "tracked_files": {
        -            "type": "integer"
        -          },
        -          "uncommitted_tracked_files": {
        -            "type": "integer"
        -          },
        -          "untracked_files": {
        -            "type": "integer"
        -          }
        -        },
        -        "required": [
        -          "head_commit",
        -          "tracked_files",
        -          "tracked_bytes",
        -          "uncommitted_tracked_files",
        -          "untracked_files"
        -        ],
        -        "type": "object"
        -      }
        -    },
        -    "required": [
        -      "cwd",
        -      "isolation",
        -      "prompt_bytes",
        -      "max_input_bytes",
        -      "worktree_plan"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "cwd": {
        +        "type": "string"
        +      },
        +      "deadline_advisory": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Non-null when the previewed call would actually run the model AND its prompt size or reasoning effort risks the synchronous deadline; null otherwise (including whenever it would not call the model at all). Names the previewed PAID tool's own `_async` counterpart verbatim (e.g. codex_review_changes_async for a codex_dry_run preview) — never this dry-run tool's own name, which has no `_async` variant. A hint, not a refusal. codex_consult has no dry-run preview; prefer codex_consult_async for a high-effort or broad repo-grounded consult."
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "isolation": {
        +        "enum": [
        +          "inherit",
        +          "ignore-config",
        +          "ignore-rules"
        +        ],
        +        "type": "string"
        +      },
        +      "max_input_bytes": {
        +        "type": "integer"
        +      },
        +      "model": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Model override the previewed paid call would send (per-call param or server default); null = Codex would resolve it itself. Unvalidated by the preview."
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "prompt_bytes": {
        +        "type": "integer"
        +      },
        +      "reasoning_effort": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Reasoning-effort override the previewed paid call would send (per-call param or server default); null = Codex would resolve it itself. Unvalidated by the preview."
        +      },
        +      "roots_source": {
        +        "anyOf": [
        +          {
        +            "enum": [
        +              "client",
        +              "not_negotiated",
        +              "probe_failed"
        +            ],
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "sandbox": {
        +        "enum": [
        +          "read-only",
        +          "workspace-write",
        +          "danger-full-access"
        +        ],
        +        "type": "string"
        +      },
        +      "server_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "tier": {
        +        "enum": [
        +          "consult",
        +          "propose",
        +          "apply"
        +        ],
        +        "type": "string"
        +      },
        +      "tool": {
        +        "const": "codex_delegate_dry_run",
        +        "type": "string"
        +      },
        +      "workspace_source": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "workspace_warning": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "worktree_plan": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "head_commit": {
        +            "type": "string"
        +          },
        +          "head_subject": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "note": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "tracked_bytes": {
        +            "type": "integer"
        +          },
        +          "tracked_files": {
        +            "type": "integer"
        +          },
        +          "uncommitted_tracked_files": {
        +            "type": "integer"
        +          },
        +          "untracked_files": {
        +            "type": "integer"
        +          }
        +        },
        +        "required": [
        +          "head_commit",
        +          "tracked_files",
        +          "tracked_bytes",
        +          "uncommitted_tracked_files",
        +          "untracked_files"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "cwd",
        +      "isolation",
        +      "prompt_bytes",
        +      "max_input_bytes",
        +      "worktree_plan"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_dry_run4 fields changed
      • changedInput schema / properties / extra_context / description
        Previous value: -"Optional author intent / background context, added to the prompt as clearly-labeled UNTRUSTED data. Codex is instructed to treat embedded directives as data, not commands — best-effort prompt-injection mitigation, not a guarantee. Don't include live secrets: Codex can read files it's pointed at, and redaction does not cover this field."New value: +"Optional author intent/background context, added as clearly-labeled UNTRUSTED prompt data. Redaction does NOT cover it — no live secrets. Full caveats and bounds: codex://params."
      • changedInput schema / properties / isolation / description
        Previous value: -"Codex config isolation: 'inherit', 'ignore-config', or 'ignore-rules'. Defaults to the server's configured isolation (built-in default 'inherit'; `codex_status` reports the resolved value)."New value: +"Codex config isolation: 'inherit' | 'ignore-config' | 'ignore-rules'. Defaults to the server's configured value (built-in 'inherit'; `codex_status` reports the resolved one)."
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repository root. Pass it (or rely on an MCP root) so the call targets the intended repo; otherwise it falls back to the server's own cwd and meta.workspace_warning is set."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "base": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "commit": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "context_summary": {
        -        "anyOf": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "files_changed": {
        -                "type": "integer"
        -              },
        -              "lines_added": {
        -                "type": "integer"
        -              },
        -              "lines_removed": {
        -                "type": "integer"
        -              }
        -            },
        -            "type": "object"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "coverage": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "omission_reasons": {
        -            "items": {
        -              "enum": [
        -                "untracked_omitted",
        -                "truncated",
        -                "redacted"
        -              ],
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "status": {
        -            "enum": [
        -              "complete",
        -              "partial"
        -            ],
        -            "type": "string"
        -          },
        -          "untracked_files_detected": {
        -            "anyOf": [
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "untracked_files_included": {
        -            "anyOf": [
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "untracked_files_omitted": {
        -            "anyOf": [
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "required": [
        -          "status"
        -        ],
        -        "type": "object"
        -      },
        -      "cwd": {
        -        "type": "string"
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "isolation": {
        -        "enum": [
        -          "inherit",
        -          "ignore-config",
        -          "ignore-rules"
        -        ],
        -        "type": "string"
        -      },
        -      "max_input_bytes": {
        -        "type": "integer"
        -      },
        -      "model": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Model override the previewed paid call would send (per-call param or server default); null = Codex would resolve it itself. Unvalidated by the preview."
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "paths": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "prompt_bytes": {
        -        "type": "integer"
        -      },
        -      "reasoning_effort": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Reasoning-effort override the previewed paid call would send (per-call param or server default); null = Codex would resolve it itself. Unvalidated by the preview."
        -      },
        -      "redacted_paths": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "redacted_paths_count": {
        -        "type": "integer"
        -      },
        -      "sandbox": {
        -        "enum": [
        -          "read-only",
        -          "workspace-write",
        -          "danger-full-access"
        -        ],
        -        "type": "string"
        -      },
        -      "scope": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "security_warnings": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "server_version": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "tier": {
        -        "enum": [
        -          "consult",
        -          "propose",
        -          "apply"
        -        ],
        -        "type": "string"
        -      },
        -      "tool": {
        -        "const": "codex_dry_run",
        -        "type": "string"
        -      },
        -      "truncated": {
        -        "type": "boolean"
        -      },
        -      "truncation_hint": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "workspace_source": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "workspace_warning": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "would_call_model": {
        -        "type": "boolean"
        -      }
        -    },
        -    "required": [
        -      "cwd",
        -      "tier",
        -      "sandbox",
        -      "isolation",
        -      "would_call_model",
        -      "prompt_bytes",
        -      "coverage",
        -      "max_input_bytes"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "base": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "commit": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "context_summary": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "files_changed": {
        +                "type": "integer"
        +              },
        +              "lines_added": {
        +                "type": "integer"
        +              },
        +              "lines_removed": {
        +                "type": "integer"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "coverage": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "omission_reasons": {
        +            "items": {
        +              "enum": [
        +                "untracked_omitted",
        +                "tree_changed_during_gather",
        +                "truncated",
        +                "redacted"
        +              ],
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "redaction": {
        +            "anyOf": [
        +              {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "inline_masks": {
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  },
        +                  "masked_paths": {
        +                    "items": {
        +                      "type": "string"
        +                    },
        +                    "type": "array"
        +                  },
        +                  "withheld_paths": {
        +                    "items": {
        +                      "type": "string"
        +                    },
        +                    "type": "array"
        +                  }
        +                },
        +                "type": "object"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "status": {
        +            "enum": [
        +              "complete",
        +              "partial"
        +            ],
        +            "type": "string"
        +          },
        +          "untracked_files_detected": {
        +            "anyOf": [
        +              {
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "untracked_files_included": {
        +            "anyOf": [
        +              {
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "untracked_files_omitted": {
        +            "anyOf": [
        +              {
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "status"
        +        ],
        +        "type": "object"
        +      },
        +      "cwd": {
        +        "type": "string"
        +      },
        +      "deadline_advisory": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Non-null when the previewed call would actually run the model AND its prompt size or reasoning effort risks the synchronous deadline; null otherwise (including whenever it would not call the model at all). Names the previewed PAID tool's own `_async` counterpart verbatim (e.g. codex_review_changes_async for a codex_dry_run preview) — never this dry-run tool's own name, which has no `_async` variant. A hint, not a refusal. codex_consult has no dry-run preview; prefer codex_consult_async for a high-effort or broad repo-grounded consult."
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "isolation": {
        +        "enum": [
        +          "inherit",
        +          "ignore-config",
        +          "ignore-rules"
        +        ],
        +        "type": "string"
        +      },
        +      "max_input_bytes": {
        +        "type": "integer"
        +      },
        +      "model": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Model override the previewed paid call would send (per-call param or server default); null = Codex would resolve it itself. Unvalidated by the preview."
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "paths": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "prompt_bytes": {
        +        "type": "integer"
        +      },
        +      "reasoning_effort": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Reasoning-effort override the previewed paid call would send (per-call param or server default); null = Codex would resolve it itself. Unvalidated by the preview."
        +      },
        +      "redacted_paths": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "redacted_paths_count": {
        +        "type": "integer"
        +      },
        +      "roots_source": {
        +        "anyOf": [
        +          {
        +            "enum": [
        +              "client",
        +              "not_negotiated",
        +              "probe_failed"
        +            ],
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "sandbox": {
        +        "enum": [
        +          "read-only",
        +          "workspace-write",
        +          "danger-full-access"
        +        ],
        +        "type": "string"
        +      },
        +      "scope": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "security_warnings": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "server_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "tier": {
        +        "enum": [
        +          "consult",
        +          "propose",
        +          "apply"
        +        ],
        +        "type": "string"
        +      },
        +      "tool": {
        +        "const": "codex_dry_run",
        +        "type": "string"
        +      },
        +      "truncated": {
        +        "type": "boolean"
        +      },
        +      "truncation_hint": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "workspace_source": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "workspace_warning": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "would_call_model": {
        +        "type": "boolean"
        +      }
        +    },
        +    "required": [
        +      "cwd",
        +      "tier",
        +      "sandbox",
        +      "isolation",
        +      "would_call_model",
        +      "prompt_bytes",
        +      "coverage",
        +      "max_input_bytes"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_job_cancel2 fields changed
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repository root. Pass it (or rely on an MCP root) so the call targets the intended repo; otherwise it falls back to the server's own cwd and meta.workspace_warning is set."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "cleanup_warnings": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "deadline_seconds": {
        -        "type": "integer"
        -      },
        -      "detail": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "elapsed_ms": {
        -        "type": "integer"
        -      },
        -      "event_age_ms": {
        -        "anyOf": [
        -          {
        -            "type": "integer"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "events_seen": {
        -        "type": "integer"
        -      },
        -      "expires_at": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "job_id": {
        -        "type": "string"
        -      },
        -      "kind": {
        -        "type": "string"
        -      },
        -      "last_event_at": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "poll_after_ms": {
        -        "type": "integer"
        -      },
        -      "result_available": {
        -        "type": "boolean"
        -      },
        -      "server_version": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "started_at": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "enum": [
        -          "running",
        -          "done",
        -          "failed",
        -          "cancelled",
        -          "timeout"
        -        ],
        -        "type": "string"
        -      },
        -      "ttl_seconds": {
        -        "type": "integer"
        -      },
        -      "workspace": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "cwd": {
        -            "type": "string"
        -          },
        -          "workspace_source": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_warning": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "required": [
        -          "cwd"
        -        ],
        -        "type": "object"
        -      }
        -    },
        -    "required": [
        -      "job_id",
        -      "kind",
        -      "status",
        -      "started_at",
        -      "elapsed_ms",
        -      "deadline_seconds",
        -      "ttl_seconds",
        -      "workspace"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "cleanup_warnings": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "deadline_seconds": {
        +        "type": "integer"
        +      },
        +      "detail": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "elapsed_ms": {
        +        "type": "integer"
        +      },
        +      "event_age_ms": {
        +        "anyOf": [
        +          {
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "events_seen": {
        +        "type": "integer"
        +      },
        +      "expires_at": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "job_id": {
        +        "type": "string"
        +      },
        +      "kind": {
        +        "type": "string"
        +      },
        +      "last_event_at": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "poll_after_ms": {
        +        "type": "integer"
        +      },
        +      "result_available": {
        +        "type": "boolean"
        +      },
        +      "result_ok": {
        +        "anyOf": [
        +          {
        +            "type": "boolean"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "server_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "started_at": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "enum": [
        +          "running",
        +          "done",
        +          "failed",
        +          "cancelled",
        +          "timeout"
        +        ],
        +        "type": "string"
        +      },
        +      "ttl_seconds": {
        +        "type": "integer"
        +      },
        +      "workspace": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "cwd": {
        +            "type": "string"
        +          },
        +          "workspace_source": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "workspace_warning": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "cwd"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "job_id",
        +      "kind",
        +      "status",
        +      "started_at",
        +      "elapsed_ms",
        +      "deadline_seconds",
        +      "ttl_seconds",
        +      "result_ok",
        +      "workspace"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_job_consume_result1 field changed
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repository root. Pass it (or rely on an MCP root) so the call targets the intended repo; otherwise it falls back to the server's own cwd and meta.workspace_warning is set."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."
    • Changedcodex_job_list4 fields changed
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maximum": 1000,
        +      "minimum": 1,
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Maximum jobs to return, newest first (1-1000). Omit (or pass null) to return every retained job that matches — the default; it caps nothing, and does not override `status`. Only an explicit limit truncates: then the response sets truncated=true and the extra rows are dropped."
        +}
      • addedInput schema / properties / status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "running",
        +        "done",
        +        "failed",
        +        "cancelled",
        +        "timeout"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Return only jobs in this lifecycle state ('running', 'done', 'failed', 'cancelled', 'timeout'); omit for all states."
        +}
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repository root. Pass it (or rely on an MCP root) so the call targets the intended repo; otherwise it falls back to the server's own cwd and meta.workspace_warning is set."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "jobs": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "elapsed_ms": {
        -              "type": "integer"
        -            },
        -            "expires_at": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "job_id": {
        -              "type": "string"
        -            },
        -            "kind": {
        -              "type": "string"
        -            },
        -            "result_available": {
        -              "type": "boolean"
        -            },
        -            "started_at": {
        -              "type": "string"
        -            },
        -            "status": {
        -              "enum": [
        -                "running",
        -                "done",
        -                "failed",
        -                "cancelled",
        -                "timeout"
        -              ],
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "job_id",
        -            "kind",
        -            "status",
        -            "started_at",
        -            "elapsed_ms"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "server_version": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "workspace": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "cwd": {
        -            "type": "string"
        -          },
        -          "workspace_source": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_warning": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "required": [
        -          "cwd"
        -        ],
        -        "type": "object"
        -      }
        -    },
        -    "required": [
        -      "workspace"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "jobs": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "elapsed_ms": {
        +              "type": "integer"
        +            },
        +            "expires_at": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "job_id": {
        +              "type": "string"
        +            },
        +            "kind": {
        +              "type": "string"
        +            },
        +            "result_available": {
        +              "type": "boolean"
        +            },
        +            "result_ok": {
        +              "anyOf": [
        +                {
        +                  "type": "boolean"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "started_at": {
        +              "type": "string"
        +            },
        +            "status": {
        +              "enum": [
        +                "running",
        +                "done",
        +                "failed",
        +                "cancelled",
        +                "timeout"
        +              ],
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "job_id",
        +            "kind",
        +            "status",
        +            "started_at",
        +            "elapsed_ms",
        +            "result_ok"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "server_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "truncated": {
        +        "type": "boolean"
        +      },
        +      "truncation_hint": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "workspace": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "cwd": {
        +            "type": "string"
        +          },
        +          "workspace_source": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "workspace_warning": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "cwd"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "workspace"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_job_result1 field changed
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repository root. Pass it (or rely on an MCP root) so the call targets the intended repo; otherwise it falls back to the server's own cwd and meta.workspace_warning is set."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."
    • Changedcodex_job_status2 fields changed
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repository root. Pass it (or rely on an MCP root) so the call targets the intended repo; otherwise it falls back to the server's own cwd and meta.workspace_warning is set."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "cleanup_warnings": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "deadline_seconds": {
        -        "type": "integer"
        -      },
        -      "detail": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "elapsed_ms": {
        -        "type": "integer"
        -      },
        -      "event_age_ms": {
        -        "anyOf": [
        -          {
        -            "type": "integer"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "events_seen": {
        -        "type": "integer"
        -      },
        -      "expires_at": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "job_id": {
        -        "type": "string"
        -      },
        -      "kind": {
        -        "type": "string"
        -      },
        -      "last_event_at": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "poll_after_ms": {
        -        "type": "integer"
        -      },
        -      "result_available": {
        -        "type": "boolean"
        -      },
        -      "server_version": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "started_at": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "enum": [
        -          "running",
        -          "done",
        -          "failed",
        -          "cancelled",
        -          "timeout"
        -        ],
        -        "type": "string"
        -      },
        -      "ttl_seconds": {
        -        "type": "integer"
        -      },
        -      "workspace": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "cwd": {
        -            "type": "string"
        -          },
        -          "workspace_source": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_warning": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "required": [
        -          "cwd"
        -        ],
        -        "type": "object"
        -      }
        -    },
        -    "required": [
        -      "job_id",
        -      "kind",
        -      "status",
        -      "started_at",
        -      "elapsed_ms",
        -      "deadline_seconds",
        -      "ttl_seconds",
        -      "workspace"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "cleanup_warnings": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "deadline_seconds": {
        +        "type": "integer"
        +      },
        +      "detail": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "elapsed_ms": {
        +        "type": "integer"
        +      },
        +      "event_age_ms": {
        +        "anyOf": [
        +          {
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "events_seen": {
        +        "type": "integer"
        +      },
        +      "expires_at": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "job_id": {
        +        "type": "string"
        +      },
        +      "kind": {
        +        "type": "string"
        +      },
        +      "last_event_at": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "poll_after_ms": {
        +        "type": "integer"
        +      },
        +      "result_available": {
        +        "type": "boolean"
        +      },
        +      "result_ok": {
        +        "anyOf": [
        +          {
        +            "type": "boolean"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "server_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "started_at": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "enum": [
        +          "running",
        +          "done",
        +          "failed",
        +          "cancelled",
        +          "timeout"
        +        ],
        +        "type": "string"
        +      },
        +      "ttl_seconds": {
        +        "type": "integer"
        +      },
        +      "workspace": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "cwd": {
        +            "type": "string"
        +          },
        +          "workspace_source": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "workspace_warning": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "cwd"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "job_id",
        +      "kind",
        +      "status",
        +      "started_at",
        +      "elapsed_ms",
        +      "deadline_seconds",
        +      "ttl_seconds",
        +      "result_ok",
        +      "workspace"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_review_changes6 fields changed
      • changedInput schema / properties / extra_context / description
        Previous value: -"Optional author intent / background context, added to the prompt as clearly-labeled UNTRUSTED data. Codex is instructed to treat embedded directives as data, not commands — best-effort prompt-injection mitigation, not a guarantee. Don't include live secrets: Codex can read files it's pointed at, and redaction does not cover this field."New value: +"Optional author intent/background context, added as clearly-labeled UNTRUSTED prompt data. Redaction does NOT cover it — no live secrets. Full caveats and bounds: codex://params."
      • changedInput schema / properties / idempotency_key / description
        Previous value: -"Optional client-supplied dedup key, scoped to THIS concrete tool on the same workspace. Reusing it on the same tool with the same arguments replays the existing run instead of starting — and paying for — a duplicate Codex call (a sync call reattaches to the in-flight run and returns its result; an _async call returns the same job_id). The sync and _async variants are DIFFERENT tools and never share a key's run. Reuse with different arguments — including a different timeout_seconds — is refused (idempotency_conflict); a key whose prior result was already consumed/evicted is idempotency_result_unavailable; a still-publishing reservation is idempotency_in_progress (retry). Omit it for the prior no-dedup behavior. A completed result stays replayable while its job record lives (its TTL), subject to consumption or count-eviction; the fail-closed conflict/in-progress window can last longer — up to the job's max runtime + termination grace + TTL. meta.idempotency_replayed=true marks a replayed (unpaid) response."New value: +"Optional dedup key scoped to THIS tool + workspace. Same key + same args replays the prior result with no new spend; different args are refused (idempotency_conflict). Sync and _async are separate tools and never share a key. Omit for none; retention is bounded. Lifecycle: codex://params."
      • changedInput schema / properties / isolation / description
        Previous value: -"Codex config isolation: 'inherit', 'ignore-config', or 'ignore-rules'. Defaults to the server's configured isolation (built-in default 'inherit'; `codex_status` reports the resolved value)."New value: +"Codex config isolation: 'inherit' | 'ignore-config' | 'ignore-rules'. Defaults to the server's configured value (built-in 'inherit'; `codex_status` reports the resolved one)."
      • changedInput schema / properties / reasoning_effort / description
        Previous value: -"Override the Codex reasoning effort for this call (sent as a `model_reasoning_effort` config override); omit (or pass null) for the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) or Codex's own resolution. An open per-model string the Codex backend validates at run time — commonly minimal|low|medium|high|xhigh; codex_models lists each model's advertised set (advisory). A backend-rejected value fails as invalid_reasoning_effort; an explicit empty string is sent as-is (and rejected by the backend), never treated as unset. Control characters, surrogates, and values over 128 chars are rejected as invalid_arguments."New value: +"Override the Codex reasoning effort for this call (a model_reasoning_effort override); omit or pass null for the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) or Codex's own resolution. An open, per-model string the backend validates at run time — commonly minimal|low|medium|high|xhigh; codex_models lists each model's advertised set (advisory). Rejection and bounds detail: codex://params."
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repository root. Pass it (or rely on an MCP root) so the call targets the intended repo; otherwise it falls back to the server's own cwd and meta.workspace_warning is set."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "assumptions": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "confidence": {
        -        "enum": [
        -          "low",
        -          "medium",
        -          "high"
        -        ],
        -        "type": "string"
        -      },
        -      "coverage": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "omission_reasons": {
        -            "items": {
        -              "enum": [
        -                "untracked_omitted",
        -                "truncated",
        -                "redacted"
        -              ],
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "status": {
        -            "enum": [
        -              "complete",
        -              "partial"
        -            ],
        -            "type": "string"
        -          },
        -          "untracked_files_detected": {
        -            "anyOf": [
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "untracked_files_included": {
        -            "anyOf": [
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "untracked_files_omitted": {
        -            "anyOf": [
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "required": [
        -          "status"
        -        ],
        -        "type": "object"
        -      },
        -      "findings": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "evidence": {
        -              "type": "string"
        -            },
        -            "file": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "line": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "line_end": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "recommendation": {
        -              "type": "string"
        -            },
        -            "risk": {
        -              "type": "string"
        -            },
        -            "severity": {
        -              "enum": [
        -                "critical",
        -                "high",
        -                "medium",
        -                "low",
        -                "nit"
        -              ],
        -              "type": "string"
        -            },
        -            "title": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "severity",
        -            "title",
        -            "evidence",
        -            "risk",
        -            "recommendation"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "meta": {
        -        "description": "Result metadata (cwd, tier, sandbox, model, timeout, usage, rate_limit, and more); full schema at resource codex://result-meta",
        -        "type": "object"
        -      },
        -      "next_steps": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "questions": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "raw_response": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "model": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "session_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "text": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "type": "object"
        -      },
        -      "review_status": {
        -        "enum": [
        -          "completed",
        -          "not_run"
        -        ],
        -        "type": "string"
        -      },
        -      "summary": {
        -        "type": "string"
        -      },
        -      "tool": {
        -        "const": "codex_review_changes",
        -        "type": "string"
        -      },
        -      "verdict": {
        -        "enum": [
        -          "pass",
        -          "concerns",
        -          "fail",
        -          "unknown"
        -        ],
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "summary",
        -      "meta",
        -      "review_status",
        -      "coverage"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "assumptions": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "confidence": {
        +        "enum": [
        +          "low",
        +          "medium",
        +          "high"
        +        ],
        +        "type": "string"
        +      },
        +      "coverage": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "omission_reasons": {
        +            "items": {
        +              "enum": [
        +                "untracked_omitted",
        +                "tree_changed_during_gather",
        +                "truncated",
        +                "redacted"
        +              ],
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "redaction": {
        +            "anyOf": [
        +              {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "inline_masks": {
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  },
        +                  "masked_paths": {
        +                    "items": {
        +                      "type": "string"
        +                    },
        +                    "type": "array"
        +                  },
        +                  "withheld_paths": {
        +                    "items": {
        +                      "type": "string"
        +                    },
        +                    "type": "array"
        +                  }
        +                },
        +                "type": "object"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "status": {
        +            "enum": [
        +              "complete",
        +              "partial"
        +            ],
        +            "type": "string"
        +          },
        +          "untracked_files_detected": {
        +            "anyOf": [
        +              {
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "untracked_files_included": {
        +            "anyOf": [
        +              {
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "untracked_files_omitted": {
        +            "anyOf": [
        +              {
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "status"
        +        ],
        +        "type": "object"
        +      },
        +      "findings": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "evidence": {
        +              "type": "string"
        +            },
        +            "file": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "line": {
        +              "anyOf": [
        +                {
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "line_end": {
        +              "anyOf": [
        +                {
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "recommendation": {
        +              "type": "string"
        +            },
        +            "risk": {
        +              "type": "string"
        +            },
        +            "severity": {
        +              "enum": [
        +                "critical",
        +                "high",
        +                "medium",
        +                "low",
        +                "nit"
        +              ],
        +              "type": "string"
        +            },
        +            "title": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "severity",
        +            "title",
        +            "evidence",
        +            "risk",
        +            "recommendation"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "meta": {
        +        "description": "Result metadata (cwd, tier, sandbox, model, timeout, usage, rate_limit, and more); full schema at resource codex://result-meta",
        +        "type": "object"
        +      },
        +      "next_steps": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "questions": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "raw_response": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "model": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "session_id": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "text": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "review_status": {
        +        "enum": [
        +          "completed",
        +          "not_run"
        +        ],
        +        "type": "string"
        +      },
        +      "summary": {
        +        "type": "string"
        +      },
        +      "tool": {
        +        "const": "codex_review_changes",
        +        "type": "string"
        +      },
        +      "verdict": {
        +        "enum": [
        +          "pass",
        +          "concerns",
        +          "fail",
        +          "unknown"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "summary",
        +      "meta",
        +      "review_status",
        +      "coverage"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_review_changes_async6 fields changed
      • changedInput schema / properties / extra_context / description
        Previous value: -"Optional author intent / background context, added to the prompt as clearly-labeled UNTRUSTED data. Codex is instructed to treat embedded directives as data, not commands — best-effort prompt-injection mitigation, not a guarantee. Don't include live secrets: Codex can read files it's pointed at, and redaction does not cover this field."New value: +"Optional author intent/background context, added as clearly-labeled UNTRUSTED prompt data. Redaction does NOT cover it — no live secrets. Full caveats and bounds: codex://params."
      • changedInput schema / properties / idempotency_key / description
        Previous value: -"Optional client-supplied dedup key, scoped to THIS concrete tool on the same workspace. Reusing it on the same tool with the same arguments replays the existing run instead of starting — and paying for — a duplicate Codex call (a sync call reattaches to the in-flight run and returns its result; an _async call returns the same job_id). The sync and _async variants are DIFFERENT tools and never share a key's run. Reuse with different arguments — including a different timeout_seconds — is refused (idempotency_conflict); a key whose prior result was already consumed/evicted is idempotency_result_unavailable; a still-publishing reservation is idempotency_in_progress (retry). Omit it for the prior no-dedup behavior. A completed result stays replayable while its job record lives (its TTL), subject to consumption or count-eviction; the fail-closed conflict/in-progress window can last longer — up to the job's max runtime + termination grace + TTL. meta.idempotency_replayed=true marks a replayed (unpaid) response."New value: +"Optional dedup key scoped to THIS tool + workspace. Same key + same args replays the prior result with no new spend; different args are refused (idempotency_conflict). Sync and _async are separate tools and never share a key. Omit for none; retention is bounded. Lifecycle: codex://params."
      • changedInput schema / properties / isolation / description
        Previous value: -"Codex config isolation: 'inherit', 'ignore-config', or 'ignore-rules'. Defaults to the server's configured isolation (built-in default 'inherit'; `codex_status` reports the resolved value)."New value: +"Codex config isolation: 'inherit' | 'ignore-config' | 'ignore-rules'. Defaults to the server's configured value (built-in 'inherit'; `codex_status` reports the resolved one)."
      • changedInput schema / properties / reasoning_effort / description
        Previous value: -"Override the Codex reasoning effort for this call (sent as a `model_reasoning_effort` config override); omit (or pass null) for the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) or Codex's own resolution. An open per-model string the Codex backend validates at run time — commonly minimal|low|medium|high|xhigh; codex_models lists each model's advertised set (advisory). A backend-rejected value fails as invalid_reasoning_effort; an explicit empty string is sent as-is (and rejected by the backend), never treated as unset. Control characters, surrogates, and values over 128 chars are rejected as invalid_arguments."New value: +"Override the Codex reasoning effort for this call (a model_reasoning_effort override); omit or pass null for the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) or Codex's own resolution. An open, per-model string the backend validates at run time — commonly minimal|low|medium|high|xhigh; codex_models lists each model's advertised set (advisory). Rejection and bounds detail: codex://params."
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repository root. Pass it (or rely on an MCP root) so the call targets the intended repo; otherwise it falls back to the server's own cwd and meta.workspace_warning is set."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "deadline_seconds": {
        -        "type": "integer"
        -      },
        -      "expires_at": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "job_id": {
        -        "type": "string"
        -      },
        -      "kind": {
        -        "type": "string"
        -      },
        -      "meta": {
        -        "description": "Result metadata (cwd, tier, sandbox, model, timeout, usage, rate_limit, and more); full schema at resource codex://result-meta",
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "poll_after_ms": {
        -        "type": "integer"
        -      },
        -      "server_version": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "started_at": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "enum": [
        -          "running",
        -          "done",
        -          "failed",
        -          "cancelled",
        -          "timeout"
        -        ],
        -        "type": "string"
        -      },
        -      "ttl_seconds": {
        -        "type": "integer"
        -      }
        -    },
        -    "required": [
        -      "job_id",
        -      "kind",
        -      "started_at",
        -      "deadline_seconds",
        -      "ttl_seconds",
        -      "meta"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "deadline_seconds": {
        +        "type": "integer"
        +      },
        +      "expires_at": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "follow_up": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "alternative": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "arguments": {
        +            "anyOf": [
        +              {
        +                "additionalProperties": true,
        +                "type": "object"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "next_step": {
        +            "enum": [
        +              "retry_after_delay",
        +              "correct_arguments",
        +              "use_allowed_value",
        +              "reduce_input",
        +              "use_workspace_in_roots",
        +              "poll_job_status",
        +              "list_jobs",
        +              "list_resources",
        +              "start_new_job",
        +              "authenticate",
        +              "install_codex",
        +              "install_git",
        +              "init_git_repo",
        +              "update_plugin",
        +              "correct_config",
        +              "inspect_and_retry",
        +              "retry_then_report",
        +              "use_new_idempotency_key"
        +            ],
        +            "type": "string"
        +          },
        +          "tool": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "next_step"
        +        ],
        +        "type": "object"
        +      },
        +      "job_id": {
        +        "type": "string"
        +      },
        +      "kind": {
        +        "type": "string"
        +      },
        +      "meta": {
        +        "description": "Result metadata (cwd, tier, sandbox, model, timeout, usage, rate_limit, and more); full schema at resource codex://result-meta",
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "poll_after_ms": {
        +        "type": "integer"
        +      },
        +      "server_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "started_at": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "enum": [
        +          "running",
        +          "done",
        +          "failed",
        +          "cancelled",
        +          "timeout"
        +        ],
        +        "type": "string"
        +      },
        +      "ttl_seconds": {
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "job_id",
        +      "kind",
        +      "started_at",
        +      "deadline_seconds",
        +      "ttl_seconds",
        +      "meta",
        +      "follow_up"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_transfer1 field changed
      • changedInput schema / properties / workspace_root / description
        Previous value: -"Absolute path to the target repository root. Pass it (or rely on an MCP root) so the call targets the intended repo; otherwise it falls back to the server's own cwd and meta.workspace_warning is set."New value: +"Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning."
  4. 9 tool updatesv0.13.0
    • Changedcodex_consult1 field changed
      • addedInput schema / properties / reasoning_effort
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 128,
        +      "pattern": "^[^\\x00-\\x1F\\x7F-\\x9F]*$",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Override the Codex reasoning effort for this call (sent as a `model_reasoning_effort` config override); omit (or pass null) for the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) or Codex's own resolution. An open per-model string the Codex backend validates at run time — commonly minimal|low|medium|high|xhigh; codex_models lists each model's advertised set (advisory). A backend-rejected value fails as invalid_reasoning_effort; an explicit empty string is sent as-is (and rejected by the backend), never treated as unset. Control characters, surrogates, and values over 128 chars are rejected as invalid_arguments."
        +}
    • Changedcodex_consult_async1 field changed
      • addedInput schema / properties / reasoning_effort
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 128,
        +      "pattern": "^[^\\x00-\\x1F\\x7F-\\x9F]*$",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Override the Codex reasoning effort for this call (sent as a `model_reasoning_effort` config override); omit (or pass null) for the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) or Codex's own resolution. An open per-model string the Codex backend validates at run time — commonly minimal|low|medium|high|xhigh; codex_models lists each model's advertised set (advisory). A backend-rejected value fails as invalid_reasoning_effort; an explicit empty string is sent as-is (and rejected by the backend), never treated as unset. Control characters, surrogates, and values over 128 chars are rejected as invalid_arguments."
        +}
    • Changedcodex_delegate1 field changed
      • addedInput schema / properties / reasoning_effort
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 128,
        +      "pattern": "^[^\\x00-\\x1F\\x7F-\\x9F]*$",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Override the Codex reasoning effort for this call (sent as a `model_reasoning_effort` config override); omit (or pass null) for the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) or Codex's own resolution. An open per-model string the Codex backend validates at run time — commonly minimal|low|medium|high|xhigh; codex_models lists each model's advertised set (advisory). A backend-rejected value fails as invalid_reasoning_effort; an explicit empty string is sent as-is (and rejected by the backend), never treated as unset. Control characters, surrogates, and values over 128 chars are rejected as invalid_arguments."
        +}
    • Changedcodex_delegate_async1 field changed
      • addedInput schema / properties / reasoning_effort
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 128,
        +      "pattern": "^[^\\x00-\\x1F\\x7F-\\x9F]*$",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Override the Codex reasoning effort for this call (sent as a `model_reasoning_effort` config override); omit (or pass null) for the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) or Codex's own resolution. An open per-model string the Codex backend validates at run time — commonly minimal|low|medium|high|xhigh; codex_models lists each model's advertised set (advisory). A backend-rejected value fails as invalid_reasoning_effort; an explicit empty string is sent as-is (and rejected by the backend), never treated as unset. Control characters, surrogates, and values over 128 chars are rejected as invalid_arguments."
        +}
    • Changedcodex_delegate_dry_run3 fields changed
      • changedInput schema / properties / model / description
        Previous value: -"The Codex model slug the real codex_delegate call would use; this dry run does not call Codex or validate the model."New value: +"The Codex model slug the previewed paid call would use; defaults to the server default (CODEX_IN_CLAUDE_MODEL) when unset, so the preview mirrors the paid call's resolution. This dry run does not call Codex or validate the model."
      • addedInput schema / properties / reasoning_effort
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 128,
        +      "pattern": "^[^\\x00-\\x1F\\x7F-\\x9F]*$",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The reasoning effort the previewed paid call would send (as a `model_reasoning_effort` config override); defaults to the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) when unset, so the preview mirrors the paid call's resolution. This dry run does not call Codex or validate the value beyond the paid params' shape bounds (no control or surrogate characters, ≤128 chars)."
        +}
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "cwd": {
        -        "type": "string"
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "isolation": {
        -        "enum": [
        -          "inherit",
        -          "ignore-config",
        -          "ignore-rules"
        -        ],
        -        "type": "string"
        -      },
        -      "max_input_bytes": {
        -        "type": "integer"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "prompt_bytes": {
        -        "type": "integer"
        -      },
        -      "sandbox": {
        -        "enum": [
        -          "read-only",
        -          "workspace-write",
        -          "danger-full-access"
        -        ],
        -        "type": "string"
        -      },
        -      "server_version": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "tier": {
        -        "enum": [
        -          "consult",
        -          "propose",
        -          "apply"
        -        ],
        -        "type": "string"
        -      },
        -      "tool": {
        -        "const": "codex_delegate_dry_run",
        -        "type": "string"
        -      },
        -      "workspace_source": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "workspace_warning": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "worktree_plan": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "head_commit": {
        -            "type": "string"
        -          },
        -          "head_subject": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "note": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "tracked_bytes": {
        -            "type": "integer"
        -          },
        -          "tracked_files": {
        -            "type": "integer"
        -          },
        -          "uncommitted_tracked_files": {
        -            "type": "integer"
        -          },
        -          "untracked_files": {
        -            "type": "integer"
        -          }
        -        },
        -        "required": [
        -          "head_commit",
        -          "tracked_files",
        -          "tracked_bytes",
        -          "uncommitted_tracked_files",
        -          "untracked_files"
        -        ],
        -        "type": "object"
        -      }
        -    },
        -    "required": [
        -      "cwd",
        -      "isolation",
        -      "prompt_bytes",
        -      "max_input_bytes",
        -      "worktree_plan"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "cwd": {
        +        "type": "string"
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "isolation": {
        +        "enum": [
        +          "inherit",
        +          "ignore-config",
        +          "ignore-rules"
        +        ],
        +        "type": "string"
        +      },
        +      "max_input_bytes": {
        +        "type": "integer"
        +      },
        +      "model": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Model override the previewed paid call would send (per-call param or server default); null = Codex would resolve it itself. Unvalidated by the preview."
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "prompt_bytes": {
        +        "type": "integer"
        +      },
        +      "reasoning_effort": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Reasoning-effort override the previewed paid call would send (per-call param or server default); null = Codex would resolve it itself. Unvalidated by the preview."
        +      },
        +      "sandbox": {
        +        "enum": [
        +          "read-only",
        +          "workspace-write",
        +          "danger-full-access"
        +        ],
        +        "type": "string"
        +      },
        +      "server_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "tier": {
        +        "enum": [
        +          "consult",
        +          "propose",
        +          "apply"
        +        ],
        +        "type": "string"
        +      },
        +      "tool": {
        +        "const": "codex_delegate_dry_run",
        +        "type": "string"
        +      },
        +      "workspace_source": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "workspace_warning": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "worktree_plan": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "head_commit": {
        +            "type": "string"
        +          },
        +          "head_subject": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "note": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "tracked_bytes": {
        +            "type": "integer"
        +          },
        +          "tracked_files": {
        +            "type": "integer"
        +          },
        +          "uncommitted_tracked_files": {
        +            "type": "integer"
        +          },
        +          "untracked_files": {
        +            "type": "integer"
        +          }
        +        },
        +        "required": [
        +          "head_commit",
        +          "tracked_files",
        +          "tracked_bytes",
        +          "uncommitted_tracked_files",
        +          "untracked_files"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "cwd",
        +      "isolation",
        +      "prompt_bytes",
        +      "max_input_bytes",
        +      "worktree_plan"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_dry_run5 fields changed
      • addedInput schema / properties / model
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The Codex model slug the previewed paid call would use; defaults to the server default (CODEX_IN_CLAUDE_MODEL) when unset, so the preview mirrors the paid call's resolution. This dry run does not call Codex or validate the model."
        +}
      • addedInput schema / properties / reasoning_effort
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 128,
        +      "pattern": "^[^\\x00-\\x1F\\x7F-\\x9F]*$",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The reasoning effort the previewed paid call would send (as a `model_reasoning_effort` config override); defaults to the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) when unset, so the preview mirrors the paid call's resolution. This dry run does not call Codex or validate the value beyond the paid params' shape bounds (no control or surrogate characters, ≤128 chars)."
        +}
      • changedInput schema / properties / scope / description
        Previous value: -"Which changes to review: 'working_tree' (uncommitted vs HEAD), 'branch' (needs base), or 'commit' (needs commit)."New value: +"Which changes to review: 'working_tree' (tracked changes vs HEAD; untracked files follow the `untracked` policy, off by default), 'branch' (needs base), or 'commit' (needs commit)."
      • addedInput schema / properties / untracked
        Added value: +{
        +  "default": "explicit_only",
        +  "description": "How working_tree scope treats untracked files: 'explicit_only' (default) includes only those named in `paths`; 'include' reviews all non-ignored untracked files (SENDS their contents to OpenAI — opt-in egress); 'exclude' includes none. Omitted ones are disclosed in `coverage`. Inert for branch/commit scopes.",
        +  "enum": [
        +    "explicit_only",
        +    "include",
        +    "exclude"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "base": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "commit": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "context_summary": {
        -        "anyOf": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "files_changed": {
        -                "type": "integer"
        -              },
        -              "lines_added": {
        -                "type": "integer"
        -              },
        -              "lines_removed": {
        -                "type": "integer"
        -              }
        -            },
        -            "type": "object"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "cwd": {
        -        "type": "string"
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "isolation": {
        -        "enum": [
        -          "inherit",
        -          "ignore-config",
        -          "ignore-rules"
        -        ],
        -        "type": "string"
        -      },
        -      "max_input_bytes": {
        -        "type": "integer"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "paths": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "prompt_bytes": {
        -        "type": "integer"
        -      },
        -      "redacted_paths": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "redacted_paths_count": {
        -        "type": "integer"
        -      },
        -      "sandbox": {
        -        "enum": [
        -          "read-only",
        -          "workspace-write",
        -          "danger-full-access"
        -        ],
        -        "type": "string"
        -      },
        -      "scope": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "security_warnings": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "server_version": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "tier": {
        -        "enum": [
        -          "consult",
        -          "propose",
        -          "apply"
        -        ],
        -        "type": "string"
        -      },
        -      "tool": {
        -        "const": "codex_dry_run",
        -        "type": "string"
        -      },
        -      "truncated": {
        -        "type": "boolean"
        -      },
        -      "truncation_hint": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "workspace_source": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "workspace_warning": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      }
        -    },
        -    "required": [
        -      "cwd",
        -      "tier",
        -      "sandbox",
        -      "isolation",
        -      "prompt_bytes",
        -      "max_input_bytes"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "base": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "commit": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "context_summary": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "files_changed": {
        +                "type": "integer"
        +              },
        +              "lines_added": {
        +                "type": "integer"
        +              },
        +              "lines_removed": {
        +                "type": "integer"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "coverage": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "omission_reasons": {
        +            "items": {
        +              "enum": [
        +                "untracked_omitted",
        +                "truncated",
        +                "redacted"
        +              ],
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "status": {
        +            "enum": [
        +              "complete",
        +              "partial"
        +            ],
        +            "type": "string"
        +          },
        +          "untracked_files_detected": {
        +            "anyOf": [
        +              {
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "untracked_files_included": {
        +            "anyOf": [
        +              {
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "untracked_files_omitted": {
        +            "anyOf": [
        +              {
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "status"
        +        ],
        +        "type": "object"
        +      },
        +      "cwd": {
        +        "type": "string"
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "isolation": {
        +        "enum": [
        +          "inherit",
        +          "ignore-config",
        +          "ignore-rules"
        +        ],
        +        "type": "string"
        +      },
        +      "max_input_bytes": {
        +        "type": "integer"
        +      },
        +      "model": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Model override the previewed paid call would send (per-call param or server default); null = Codex would resolve it itself. Unvalidated by the preview."
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "paths": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "prompt_bytes": {
        +        "type": "integer"
        +      },
        +      "reasoning_effort": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Reasoning-effort override the previewed paid call would send (per-call param or server default); null = Codex would resolve it itself. Unvalidated by the preview."
        +      },
        +      "redacted_paths": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "redacted_paths_count": {
        +        "type": "integer"
        +      },
        +      "sandbox": {
        +        "enum": [
        +          "read-only",
        +          "workspace-write",
        +          "danger-full-access"
        +        ],
        +        "type": "string"
        +      },
        +      "scope": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "security_warnings": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "server_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "tier": {
        +        "enum": [
        +          "consult",
        +          "propose",
        +          "apply"
        +        ],
        +        "type": "string"
        +      },
        +      "tool": {
        +        "const": "codex_dry_run",
        +        "type": "string"
        +      },
        +      "truncated": {
        +        "type": "boolean"
        +      },
        +      "truncation_hint": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "workspace_source": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "workspace_warning": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "would_call_model": {
        +        "type": "boolean"
        +      }
        +    },
        +    "required": [
        +      "cwd",
        +      "tier",
        +      "sandbox",
        +      "isolation",
        +      "would_call_model",
        +      "prompt_bytes",
        +      "coverage",
        +      "max_input_bytes"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_models1 field changed
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "advisory": {
        -        "type": "string"
        -      },
        -      "cache_client_version": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "fetched_at": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "models": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "display_name": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "slug": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "slug"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "server_version": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "source": {
        -        "enum": [
        -          "cache",
        -          "static",
        -          "none"
        -        ],
        -        "type": "string"
        -      },
        -      "unavailable_reason": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      }
        -    },
        -    "required": [
        -      "source",
        -      "advisory"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "advisory": {
        +        "type": "string"
        +      },
        +      "cache_client_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "fetched_at": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "models": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "default_reasoning_effort": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ],
        +              "description": "This model's default reasoning effort as advertised by Codex's on-disk cache; advisory only. null = the cache advertised nothing usable (the static fallback never carries effort data)."
        +            },
        +            "display_name": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "slug": {
        +              "type": "string"
        +            },
        +            "supported_reasoning_efforts": {
        +              "anyOf": [
        +                {
        +                  "items": {
        +                    "type": "string"
        +                  },
        +                  "type": "array"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ],
        +              "description": "Effort tokens this model advertises in Codex's on-disk cache; advisory only — the backend's accepted set varies by account and an unlisted effort may still work. null = the cache advertised nothing usable; [] = an explicitly empty advertised set."
        +            }
        +          },
        +          "required": [
        +            "slug"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "server_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "source": {
        +        "enum": [
        +          "cache",
        +          "static",
        +          "none"
        +        ],
        +        "type": "string"
        +      },
        +      "unavailable_reason": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      }
        +    },
        +    "required": [
        +      "source",
        +      "advisory"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_review_changes4 fields changed
      • addedInput schema / properties / reasoning_effort
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 128,
        +      "pattern": "^[^\\x00-\\x1F\\x7F-\\x9F]*$",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Override the Codex reasoning effort for this call (sent as a `model_reasoning_effort` config override); omit (or pass null) for the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) or Codex's own resolution. An open per-model string the Codex backend validates at run time — commonly minimal|low|medium|high|xhigh; codex_models lists each model's advertised set (advisory). A backend-rejected value fails as invalid_reasoning_effort; an explicit empty string is sent as-is (and rejected by the backend), never treated as unset. Control characters, surrogates, and values over 128 chars are rejected as invalid_arguments."
        +}
      • changedInput schema / properties / scope / description
        Previous value: -"Which changes to review: 'working_tree' (uncommitted vs HEAD), 'branch' (needs base), or 'commit' (needs commit)."New value: +"Which changes to review: 'working_tree' (tracked changes vs HEAD; untracked files follow the `untracked` policy, off by default), 'branch' (needs base), or 'commit' (needs commit)."
      • addedInput schema / properties / untracked
        Added value: +{
        +  "default": "explicit_only",
        +  "description": "How working_tree scope treats untracked files: 'explicit_only' (default) includes only those named in `paths`; 'include' reviews all non-ignored untracked files (SENDS their contents to OpenAI — opt-in egress); 'exclude' includes none. Omitted ones are disclosed in `coverage`. Inert for branch/commit scopes.",
        +  "enum": [
        +    "explicit_only",
        +    "include",
        +    "exclude"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "assumptions": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "confidence": {
        -        "enum": [
        -          "low",
        -          "medium",
        -          "high"
        -        ],
        -        "type": "string"
        -      },
        -      "findings": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "evidence": {
        -              "type": "string"
        -            },
        -            "file": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "line": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "line_end": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "recommendation": {
        -              "type": "string"
        -            },
        -            "risk": {
        -              "type": "string"
        -            },
        -            "severity": {
        -              "enum": [
        -                "critical",
        -                "high",
        -                "medium",
        -                "low",
        -                "nit"
        -              ],
        -              "type": "string"
        -            },
        -            "title": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "severity",
        -            "title",
        -            "evidence",
        -            "risk",
        -            "recommendation"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "meta": {
        -        "description": "Result metadata (cwd, tier, sandbox, model, timeout, usage, rate_limit, and more); full schema at resource codex://result-meta",
        -        "type": "object"
        -      },
        -      "next_steps": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "questions": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "raw_response": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "model": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "session_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "text": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "type": "object"
        -      },
        -      "summary": {
        -        "type": "string"
        -      },
        -      "tool": {
        -        "const": "codex_review_changes",
        -        "type": "string"
        -      },
        -      "verdict": {
        -        "enum": [
        -          "pass",
        -          "concerns",
        -          "fail",
        -          "unknown"
        -        ],
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "summary",
        -      "meta"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "assumptions": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "confidence": {
        +        "enum": [
        +          "low",
        +          "medium",
        +          "high"
        +        ],
        +        "type": "string"
        +      },
        +      "coverage": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "omission_reasons": {
        +            "items": {
        +              "enum": [
        +                "untracked_omitted",
        +                "truncated",
        +                "redacted"
        +              ],
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "status": {
        +            "enum": [
        +              "complete",
        +              "partial"
        +            ],
        +            "type": "string"
        +          },
        +          "untracked_files_detected": {
        +            "anyOf": [
        +              {
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "untracked_files_included": {
        +            "anyOf": [
        +              {
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "untracked_files_omitted": {
        +            "anyOf": [
        +              {
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "status"
        +        ],
        +        "type": "object"
        +      },
        +      "findings": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "evidence": {
        +              "type": "string"
        +            },
        +            "file": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "line": {
        +              "anyOf": [
        +                {
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "line_end": {
        +              "anyOf": [
        +                {
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "recommendation": {
        +              "type": "string"
        +            },
        +            "risk": {
        +              "type": "string"
        +            },
        +            "severity": {
        +              "enum": [
        +                "critical",
        +                "high",
        +                "medium",
        +                "low",
        +                "nit"
        +              ],
        +              "type": "string"
        +            },
        +            "title": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "severity",
        +            "title",
        +            "evidence",
        +            "risk",
        +            "recommendation"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "meta": {
        +        "description": "Result metadata (cwd, tier, sandbox, model, timeout, usage, rate_limit, and more); full schema at resource codex://result-meta",
        +        "type": "object"
        +      },
        +      "next_steps": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "questions": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "raw_response": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "model": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "session_id": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "text": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "review_status": {
        +        "enum": [
        +          "completed",
        +          "not_run"
        +        ],
        +        "type": "string"
        +      },
        +      "summary": {
        +        "type": "string"
        +      },
        +      "tool": {
        +        "const": "codex_review_changes",
        +        "type": "string"
        +      },
        +      "verdict": {
        +        "enum": [
        +          "pass",
        +          "concerns",
        +          "fail",
        +          "unknown"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "summary",
        +      "meta",
        +      "review_status",
        +      "coverage"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_review_changes_async3 fields changed
      • addedInput schema / properties / reasoning_effort
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 128,
        +      "pattern": "^[^\\x00-\\x1F\\x7F-\\x9F]*$",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Override the Codex reasoning effort for this call (sent as a `model_reasoning_effort` config override); omit (or pass null) for the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) or Codex's own resolution. An open per-model string the Codex backend validates at run time — commonly minimal|low|medium|high|xhigh; codex_models lists each model's advertised set (advisory). A backend-rejected value fails as invalid_reasoning_effort; an explicit empty string is sent as-is (and rejected by the backend), never treated as unset. Control characters, surrogates, and values over 128 chars are rejected as invalid_arguments."
        +}
      • changedInput schema / properties / scope / description
        Previous value: -"Which changes to review: 'working_tree' (uncommitted vs HEAD), 'branch' (needs base), or 'commit' (needs commit)."New value: +"Which changes to review: 'working_tree' (tracked changes vs HEAD; untracked files follow the `untracked` policy, off by default), 'branch' (needs base), or 'commit' (needs commit)."
      • addedInput schema / properties / untracked
        Added value: +{
        +  "default": "explicit_only",
        +  "description": "How working_tree scope treats untracked files: 'explicit_only' (default) includes only those named in `paths`; 'include' reviews all non-ignored untracked files (SENDS their contents to OpenAI — opt-in egress); 'exclude' includes none. Omitted ones are disclosed in `coverage`. Inert for branch/commit scopes.",
        +  "enum": [
        +    "explicit_only",
        +    "include",
        +    "exclude"
        +  ],
        +  "type": "string"
        +}
  5. 12 tool updatesv0.11.0
    • Changedcodex_capabilities1 field changed
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "active_tools": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "deprecation_policy": {
        -        "type": "string"
        -      },
        -      "error_envelope_resource": {
        -        "type": "string"
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "fingerprint_covers": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "free_tools": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "name": {
        -        "type": "string"
        -      },
        -      "negative_scope": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "prerequisites": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "resource_error_carrier": {
        -        "type": "string"
        -      },
        -      "result_meta_resource": {
        -        "type": "string"
        -      },
        -      "sandboxes": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "schemas": {
        -        "anyOf": [
        -          {
        -            "additionalProperties": true,
        -            "type": "object"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "scope": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "stability": {
        -        "type": "string"
        -      },
        -      "tiers": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "tool_details": {
        -        "description": "Per-tool capability records; full schema at resource codex://capabilities-result",
        -        "type": "array"
        -      },
        -      "tool_error_carrier": {
        -        "type": "string"
        -      },
        -      "transport": {
        -        "type": "string"
        -      },
        -      "version": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "name",
        -      "version",
        -      "transport",
        -      "stability",
        -      "active_tools",
        -      "free_tools",
        -      "tiers",
        -      "sandboxes",
        -      "scope",
        -      "negative_scope",
        -      "prerequisites",
        -      "deprecation_policy"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "active_tools": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "deprecation_policy": {
        +        "type": "string"
        +      },
        +      "error_envelope_resource": {
        +        "type": "string"
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "fingerprint_covers": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "free_tools": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "name": {
        +        "type": "string"
        +      },
        +      "negative_scope": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "prerequisites": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "resource_error_carrier": {
        +        "type": "string"
        +      },
        +      "result_meta_resource": {
        +        "type": "string"
        +      },
        +      "sandboxes": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "schemas": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": true,
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "scope": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "server_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "stability": {
        +        "type": "string"
        +      },
        +      "tiers": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "tool_details": {
        +        "description": "Per-tool capability records; full schema at resource codex://capabilities-result",
        +        "type": "array"
        +      },
        +      "tool_error_carrier": {
        +        "type": "string"
        +      },
        +      "transport": {
        +        "type": "string"
        +      },
        +      "version": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "name",
        +      "version",
        +      "transport",
        +      "stability",
        +      "active_tools",
        +      "free_tools",
        +      "tiers",
        +      "sandboxes",
        +      "scope",
        +      "negative_scope",
        +      "prerequisites",
        +      "deprecation_policy"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_consult_async1 field changed
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "deadline_seconds": {
        -        "type": "integer"
        -      },
        -      "expires_at": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "job_id": {
        -        "type": "string"
        -      },
        -      "kind": {
        -        "type": "string"
        -      },
        -      "meta": {
        -        "description": "Result metadata (cwd, tier, sandbox, model, timeout, usage, rate_limit, and more); full schema at resource codex://result-meta",
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "poll_after_ms": {
        -        "type": "integer"
        -      },
        -      "started_at": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "enum": [
        -          "running",
        -          "done",
        -          "failed",
        -          "cancelled",
        -          "timeout"
        -        ],
        -        "type": "string"
        -      },
        -      "ttl_seconds": {
        -        "type": "integer"
        -      }
        -    },
        -    "required": [
        -      "job_id",
        -      "kind",
        -      "started_at",
        -      "deadline_seconds",
        -      "ttl_seconds",
        -      "meta"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "deadline_seconds": {
        +        "type": "integer"
        +      },
        +      "expires_at": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "job_id": {
        +        "type": "string"
        +      },
        +      "kind": {
        +        "type": "string"
        +      },
        +      "meta": {
        +        "description": "Result metadata (cwd, tier, sandbox, model, timeout, usage, rate_limit, and more); full schema at resource codex://result-meta",
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "poll_after_ms": {
        +        "type": "integer"
        +      },
        +      "server_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "started_at": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "enum": [
        +          "running",
        +          "done",
        +          "failed",
        +          "cancelled",
        +          "timeout"
        +        ],
        +        "type": "string"
        +      },
        +      "ttl_seconds": {
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "job_id",
        +      "kind",
        +      "started_at",
        +      "deadline_seconds",
        +      "ttl_seconds",
        +      "meta"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_delegate_async1 field changed
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "deadline_seconds": {
        -        "type": "integer"
        -      },
        -      "expires_at": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "job_id": {
        -        "type": "string"
        -      },
        -      "kind": {
        -        "type": "string"
        -      },
        -      "meta": {
        -        "description": "Result metadata (cwd, tier, sandbox, model, timeout, usage, rate_limit, and more); full schema at resource codex://result-meta",
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "poll_after_ms": {
        -        "type": "integer"
        -      },
        -      "started_at": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "enum": [
        -          "running",
        -          "done",
        -          "failed",
        -          "cancelled",
        -          "timeout"
        -        ],
        -        "type": "string"
        -      },
        -      "ttl_seconds": {
        -        "type": "integer"
        -      }
        -    },
        -    "required": [
        -      "job_id",
        -      "kind",
        -      "started_at",
        -      "deadline_seconds",
        -      "ttl_seconds",
        -      "meta"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "deadline_seconds": {
        +        "type": "integer"
        +      },
        +      "expires_at": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "job_id": {
        +        "type": "string"
        +      },
        +      "kind": {
        +        "type": "string"
        +      },
        +      "meta": {
        +        "description": "Result metadata (cwd, tier, sandbox, model, timeout, usage, rate_limit, and more); full schema at resource codex://result-meta",
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "poll_after_ms": {
        +        "type": "integer"
        +      },
        +      "server_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "started_at": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "enum": [
        +          "running",
        +          "done",
        +          "failed",
        +          "cancelled",
        +          "timeout"
        +        ],
        +        "type": "string"
        +      },
        +      "ttl_seconds": {
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "job_id",
        +      "kind",
        +      "started_at",
        +      "deadline_seconds",
        +      "ttl_seconds",
        +      "meta"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_delegate_dry_run1 field changed
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "cwd": {
        -        "type": "string"
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "isolation": {
        -        "enum": [
        -          "inherit",
        -          "ignore-config",
        -          "ignore-rules"
        -        ],
        -        "type": "string"
        -      },
        -      "max_input_bytes": {
        -        "type": "integer"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "prompt_bytes": {
        -        "type": "integer"
        -      },
        -      "sandbox": {
        -        "enum": [
        -          "read-only",
        -          "workspace-write",
        -          "danger-full-access"
        -        ],
        -        "type": "string"
        -      },
        -      "tier": {
        -        "enum": [
        -          "consult",
        -          "propose",
        -          "apply"
        -        ],
        -        "type": "string"
        -      },
        -      "tool": {
        -        "const": "codex_delegate_dry_run",
        -        "type": "string"
        -      },
        -      "workspace_source": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "workspace_warning": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "worktree_plan": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "head_commit": {
        -            "type": "string"
        -          },
        -          "head_subject": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "note": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "tracked_bytes": {
        -            "type": "integer"
        -          },
        -          "tracked_files": {
        -            "type": "integer"
        -          },
        -          "uncommitted_tracked_files": {
        -            "type": "integer"
        -          },
        -          "untracked_files": {
        -            "type": "integer"
        -          }
        -        },
        -        "required": [
        -          "head_commit",
        -          "tracked_files",
        -          "tracked_bytes",
        -          "uncommitted_tracked_files",
        -          "untracked_files"
        -        ],
        -        "type": "object"
        -      }
        -    },
        -    "required": [
        -      "cwd",
        -      "isolation",
        -      "prompt_bytes",
        -      "max_input_bytes",
        -      "worktree_plan"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "cwd": {
        +        "type": "string"
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "isolation": {
        +        "enum": [
        +          "inherit",
        +          "ignore-config",
        +          "ignore-rules"
        +        ],
        +        "type": "string"
        +      },
        +      "max_input_bytes": {
        +        "type": "integer"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "prompt_bytes": {
        +        "type": "integer"
        +      },
        +      "sandbox": {
        +        "enum": [
        +          "read-only",
        +          "workspace-write",
        +          "danger-full-access"
        +        ],
        +        "type": "string"
        +      },
        +      "server_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "tier": {
        +        "enum": [
        +          "consult",
        +          "propose",
        +          "apply"
        +        ],
        +        "type": "string"
        +      },
        +      "tool": {
        +        "const": "codex_delegate_dry_run",
        +        "type": "string"
        +      },
        +      "workspace_source": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "workspace_warning": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "worktree_plan": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "head_commit": {
        +            "type": "string"
        +          },
        +          "head_subject": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "note": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "tracked_bytes": {
        +            "type": "integer"
        +          },
        +          "tracked_files": {
        +            "type": "integer"
        +          },
        +          "uncommitted_tracked_files": {
        +            "type": "integer"
        +          },
        +          "untracked_files": {
        +            "type": "integer"
        +          }
        +        },
        +        "required": [
        +          "head_commit",
        +          "tracked_files",
        +          "tracked_bytes",
        +          "uncommitted_tracked_files",
        +          "untracked_files"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "cwd",
        +      "isolation",
        +      "prompt_bytes",
        +      "max_input_bytes",
        +      "worktree_plan"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_dry_run1 field changed
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "base": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "commit": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "context_summary": {
        -        "anyOf": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "files_changed": {
        -                "type": "integer"
        -              },
        -              "lines_added": {
        -                "type": "integer"
        -              },
        -              "lines_removed": {
        -                "type": "integer"
        -              }
        -            },
        -            "type": "object"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "cwd": {
        -        "type": "string"
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "isolation": {
        -        "enum": [
        -          "inherit",
        -          "ignore-config",
        -          "ignore-rules"
        -        ],
        -        "type": "string"
        -      },
        -      "max_input_bytes": {
        -        "type": "integer"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "paths": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "prompt_bytes": {
        -        "type": "integer"
        -      },
        -      "redacted_paths": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "redacted_paths_count": {
        -        "type": "integer"
        -      },
        -      "sandbox": {
        -        "enum": [
        -          "read-only",
        -          "workspace-write",
        -          "danger-full-access"
        -        ],
        -        "type": "string"
        -      },
        -      "scope": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "security_warnings": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "tier": {
        -        "enum": [
        -          "consult",
        -          "propose",
        -          "apply"
        -        ],
        -        "type": "string"
        -      },
        -      "tool": {
        -        "const": "codex_dry_run",
        -        "type": "string"
        -      },
        -      "truncated": {
        -        "type": "boolean"
        -      },
        -      "truncation_hint": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "workspace_source": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "workspace_warning": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      }
        -    },
        -    "required": [
        -      "cwd",
        -      "tier",
        -      "sandbox",
        -      "isolation",
        -      "prompt_bytes",
        -      "max_input_bytes"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "base": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "commit": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "context_summary": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "files_changed": {
        +                "type": "integer"
        +              },
        +              "lines_added": {
        +                "type": "integer"
        +              },
        +              "lines_removed": {
        +                "type": "integer"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "cwd": {
        +        "type": "string"
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "isolation": {
        +        "enum": [
        +          "inherit",
        +          "ignore-config",
        +          "ignore-rules"
        +        ],
        +        "type": "string"
        +      },
        +      "max_input_bytes": {
        +        "type": "integer"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "paths": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "prompt_bytes": {
        +        "type": "integer"
        +      },
        +      "redacted_paths": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "redacted_paths_count": {
        +        "type": "integer"
        +      },
        +      "sandbox": {
        +        "enum": [
        +          "read-only",
        +          "workspace-write",
        +          "danger-full-access"
        +        ],
        +        "type": "string"
        +      },
        +      "scope": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "security_warnings": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "server_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "tier": {
        +        "enum": [
        +          "consult",
        +          "propose",
        +          "apply"
        +        ],
        +        "type": "string"
        +      },
        +      "tool": {
        +        "const": "codex_dry_run",
        +        "type": "string"
        +      },
        +      "truncated": {
        +        "type": "boolean"
        +      },
        +      "truncation_hint": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "workspace_source": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "workspace_warning": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      }
        +    },
        +    "required": [
        +      "cwd",
        +      "tier",
        +      "sandbox",
        +      "isolation",
        +      "prompt_bytes",
        +      "max_input_bytes"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_job_cancel1 field changed
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "cleanup_warnings": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "deadline_seconds": {
        -        "type": "integer"
        -      },
        -      "detail": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "elapsed_ms": {
        -        "type": "integer"
        -      },
        -      "event_age_ms": {
        -        "anyOf": [
        -          {
        -            "type": "integer"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "events_seen": {
        -        "type": "integer"
        -      },
        -      "expires_at": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "job_id": {
        -        "type": "string"
        -      },
        -      "kind": {
        -        "type": "string"
        -      },
        -      "last_event_at": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "poll_after_ms": {
        -        "type": "integer"
        -      },
        -      "result_available": {
        -        "type": "boolean"
        -      },
        -      "started_at": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "enum": [
        -          "running",
        -          "done",
        -          "failed",
        -          "cancelled",
        -          "timeout"
        -        ],
        -        "type": "string"
        -      },
        -      "ttl_seconds": {
        -        "type": "integer"
        -      },
        -      "workspace": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "cwd": {
        -            "type": "string"
        -          },
        -          "workspace_source": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_warning": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "required": [
        -          "cwd"
        -        ],
        -        "type": "object"
        -      }
        -    },
        -    "required": [
        -      "job_id",
        -      "kind",
        -      "status",
        -      "started_at",
        -      "elapsed_ms",
        -      "deadline_seconds",
        -      "ttl_seconds",
        -      "workspace"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "cleanup_warnings": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "deadline_seconds": {
        +        "type": "integer"
        +      },
        +      "detail": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "elapsed_ms": {
        +        "type": "integer"
        +      },
        +      "event_age_ms": {
        +        "anyOf": [
        +          {
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "events_seen": {
        +        "type": "integer"
        +      },
        +      "expires_at": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "job_id": {
        +        "type": "string"
        +      },
        +      "kind": {
        +        "type": "string"
        +      },
        +      "last_event_at": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "poll_after_ms": {
        +        "type": "integer"
        +      },
        +      "result_available": {
        +        "type": "boolean"
        +      },
        +      "server_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "started_at": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "enum": [
        +          "running",
        +          "done",
        +          "failed",
        +          "cancelled",
        +          "timeout"
        +        ],
        +        "type": "string"
        +      },
        +      "ttl_seconds": {
        +        "type": "integer"
        +      },
        +      "workspace": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "cwd": {
        +            "type": "string"
        +          },
        +          "workspace_source": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "workspace_warning": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "cwd"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "job_id",
        +      "kind",
        +      "status",
        +      "started_at",
        +      "elapsed_ms",
        +      "deadline_seconds",
        +      "ttl_seconds",
        +      "workspace"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_job_list1 field changed
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "jobs": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "elapsed_ms": {
        -              "type": "integer"
        -            },
        -            "expires_at": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "job_id": {
        -              "type": "string"
        -            },
        -            "kind": {
        -              "type": "string"
        -            },
        -            "result_available": {
        -              "type": "boolean"
        -            },
        -            "started_at": {
        -              "type": "string"
        -            },
        -            "status": {
        -              "enum": [
        -                "running",
        -                "done",
        -                "failed",
        -                "cancelled",
        -                "timeout"
        -              ],
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "job_id",
        -            "kind",
        -            "status",
        -            "started_at",
        -            "elapsed_ms"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "workspace": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "cwd": {
        -            "type": "string"
        -          },
        -          "workspace_source": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_warning": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "required": [
        -          "cwd"
        -        ],
        -        "type": "object"
        -      }
        -    },
        -    "required": [
        -      "workspace"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "jobs": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "elapsed_ms": {
        +              "type": "integer"
        +            },
        +            "expires_at": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "job_id": {
        +              "type": "string"
        +            },
        +            "kind": {
        +              "type": "string"
        +            },
        +            "result_available": {
        +              "type": "boolean"
        +            },
        +            "started_at": {
        +              "type": "string"
        +            },
        +            "status": {
        +              "enum": [
        +                "running",
        +                "done",
        +                "failed",
        +                "cancelled",
        +                "timeout"
        +              ],
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "job_id",
        +            "kind",
        +            "status",
        +            "started_at",
        +            "elapsed_ms"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "server_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "workspace": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "cwd": {
        +            "type": "string"
        +          },
        +          "workspace_source": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "workspace_warning": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "cwd"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "workspace"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_job_status1 field changed
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "cleanup_warnings": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "deadline_seconds": {
        -        "type": "integer"
        -      },
        -      "detail": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "elapsed_ms": {
        -        "type": "integer"
        -      },
        -      "event_age_ms": {
        -        "anyOf": [
        -          {
        -            "type": "integer"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "events_seen": {
        -        "type": "integer"
        -      },
        -      "expires_at": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "job_id": {
        -        "type": "string"
        -      },
        -      "kind": {
        -        "type": "string"
        -      },
        -      "last_event_at": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "poll_after_ms": {
        -        "type": "integer"
        -      },
        -      "result_available": {
        -        "type": "boolean"
        -      },
        -      "started_at": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "enum": [
        -          "running",
        -          "done",
        -          "failed",
        -          "cancelled",
        -          "timeout"
        -        ],
        -        "type": "string"
        -      },
        -      "ttl_seconds": {
        -        "type": "integer"
        -      },
        -      "workspace": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "cwd": {
        -            "type": "string"
        -          },
        -          "workspace_source": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_warning": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "required": [
        -          "cwd"
        -        ],
        -        "type": "object"
        -      }
        -    },
        -    "required": [
        -      "job_id",
        -      "kind",
        -      "status",
        -      "started_at",
        -      "elapsed_ms",
        -      "deadline_seconds",
        -      "ttl_seconds",
        -      "workspace"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "cleanup_warnings": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "deadline_seconds": {
        +        "type": "integer"
        +      },
        +      "detail": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "elapsed_ms": {
        +        "type": "integer"
        +      },
        +      "event_age_ms": {
        +        "anyOf": [
        +          {
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "events_seen": {
        +        "type": "integer"
        +      },
        +      "expires_at": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "job_id": {
        +        "type": "string"
        +      },
        +      "kind": {
        +        "type": "string"
        +      },
        +      "last_event_at": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "poll_after_ms": {
        +        "type": "integer"
        +      },
        +      "result_available": {
        +        "type": "boolean"
        +      },
        +      "server_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "started_at": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "enum": [
        +          "running",
        +          "done",
        +          "failed",
        +          "cancelled",
        +          "timeout"
        +        ],
        +        "type": "string"
        +      },
        +      "ttl_seconds": {
        +        "type": "integer"
        +      },
        +      "workspace": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "cwd": {
        +            "type": "string"
        +          },
        +          "workspace_source": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "workspace_warning": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "cwd"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "job_id",
        +      "kind",
        +      "status",
        +      "started_at",
        +      "elapsed_ms",
        +      "deadline_seconds",
        +      "ttl_seconds",
        +      "workspace"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_models1 field changed
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "advisory": {
        -        "type": "string"
        -      },
        -      "cache_client_version": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "fetched_at": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "models": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "display_name": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "slug": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "slug"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "source": {
        -        "enum": [
        -          "cache",
        -          "static",
        -          "none"
        -        ],
        -        "type": "string"
        -      },
        -      "unavailable_reason": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      }
        -    },
        -    "required": [
        -      "source",
        -      "advisory"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "advisory": {
        +        "type": "string"
        +      },
        +      "cache_client_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "fetched_at": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "models": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "display_name": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "slug": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "slug"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "server_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "source": {
        +        "enum": [
        +          "cache",
        +          "static",
        +          "none"
        +        ],
        +        "type": "string"
        +      },
        +      "unavailable_reason": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      }
        +    },
        +    "required": [
        +      "source",
        +      "advisory"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_review_changes_async1 field changed
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "deadline_seconds": {
        -        "type": "integer"
        -      },
        -      "expires_at": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "job_id": {
        -        "type": "string"
        -      },
        -      "kind": {
        -        "type": "string"
        -      },
        -      "meta": {
        -        "description": "Result metadata (cwd, tier, sandbox, model, timeout, usage, rate_limit, and more); full schema at resource codex://result-meta",
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "poll_after_ms": {
        -        "type": "integer"
        -      },
        -      "started_at": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "enum": [
        -          "running",
        -          "done",
        -          "failed",
        -          "cancelled",
        -          "timeout"
        -        ],
        -        "type": "string"
        -      },
        -      "ttl_seconds": {
        -        "type": "integer"
        -      }
        -    },
        -    "required": [
        -      "job_id",
        -      "kind",
        -      "started_at",
        -      "deadline_seconds",
        -      "ttl_seconds",
        -      "meta"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "deadline_seconds": {
        +        "type": "integer"
        +      },
        +      "expires_at": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "job_id": {
        +        "type": "string"
        +      },
        +      "kind": {
        +        "type": "string"
        +      },
        +      "meta": {
        +        "description": "Result metadata (cwd, tier, sandbox, model, timeout, usage, rate_limit, and more); full schema at resource codex://result-meta",
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "poll_after_ms": {
        +        "type": "integer"
        +      },
        +      "server_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "started_at": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "enum": [
        +          "running",
        +          "done",
        +          "failed",
        +          "cancelled",
        +          "timeout"
        +        ],
        +        "type": "string"
        +      },
        +      "ttl_seconds": {
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "job_id",
        +      "kind",
        +      "started_at",
        +      "deadline_seconds",
        +      "ttl_seconds",
        +      "meta"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_status1 field changed
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "auth_detail": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "caveat": {
        -        "type": "string"
        -      },
        -      "codex_authenticated": {
        -        "anyOf": [
        -          {
        -            "type": "boolean"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "codex_found": {
        -        "type": "boolean"
        -      },
        -      "codex_version": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "extra_args_configured": {
        -        "type": "boolean"
        -      },
        -      "extra_args_count": {
        -        "type": "integer"
        -      },
        -      "extra_args_valid": {
        -        "type": "boolean"
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "flags_warning": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "rate_limit": {
        -        "description": "Codex rate-limit snapshot; full schema at resource codex://status-result",
        -        "type": "object"
        -      },
        -      "raw_defaults": {
        -        "description": "Raw configured defaults; full schema at resource codex://status-result",
        -        "type": "object"
        -      },
        -      "readiness_detail": {
        -        "type": "string"
        -      },
        -      "ready": {
        -        "type": "boolean"
        -      },
        -      "resolved_defaults": {
        -        "description": "Resolved effective defaults; full schema at resource codex://status-result",
        -        "type": "object"
        -      },
        -      "version_supported": {
        -        "anyOf": [
        -          {
        -            "type": "boolean"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "version_warning": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      }
        -    },
        -    "required": [
        -      "codex_found",
        -      "readiness_detail",
        -      "raw_defaults",
        -      "resolved_defaults",
        -      "caveat"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "auth_detail": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "caveat": {
        +        "type": "string"
        +      },
        +      "codex_authenticated": {
        +        "anyOf": [
        +          {
        +            "type": "boolean"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "codex_found": {
        +        "type": "boolean"
        +      },
        +      "codex_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "extra_args_configured": {
        +        "type": "boolean"
        +      },
        +      "extra_args_count": {
        +        "type": "integer"
        +      },
        +      "extra_args_valid": {
        +        "type": "boolean"
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "flags_warning": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "rate_limit": {
        +        "description": "Codex rate-limit snapshot; full schema at resource codex://status-result",
        +        "type": "object"
        +      },
        +      "raw_defaults": {
        +        "description": "Raw configured defaults; full schema at resource codex://status-result",
        +        "type": "object"
        +      },
        +      "readiness_detail": {
        +        "type": "string"
        +      },
        +      "ready": {
        +        "type": "boolean"
        +      },
        +      "resolved_defaults": {
        +        "description": "Resolved effective defaults; full schema at resource codex://status-result",
        +        "type": "object"
        +      },
        +      "server_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "version_supported": {
        +        "anyOf": [
        +          {
        +            "type": "boolean"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "version_warning": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      }
        +    },
        +    "required": [
        +      "codex_found",
        +      "readiness_detail",
        +      "raw_defaults",
        +      "resolved_defaults",
        +      "caveat"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_transfer1 field changed
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "meta": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "codex_home": {
        -            "type": "string"
        -          },
        -          "elapsed_ms": {
        -            "type": "integer"
        -          },
        -          "import_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "request_id": {
        -            "type": "string"
        -          },
        -          "thread_id_source": {
        -            "enum": [
        -              "import_notification",
        -              "ledger"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "codex_home",
        -          "thread_id_source",
        -          "elapsed_ms"
        -        ],
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "resume_command": {
        -        "type": "string"
        -      },
        -      "source_path": {
        -        "type": "string"
        -      },
        -      "thread_id": {
        -        "type": "string"
        -      },
        -      "tool": {
        -        "const": "codex_transfer",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "thread_id",
        -      "resume_command",
        -      "source_path",
        -      "meta"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "meta": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "codex_home": {
        +            "type": "string"
        +          },
        +          "elapsed_ms": {
        +            "type": "integer"
        +          },
        +          "import_id": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "request_id": {
        +            "type": "string"
        +          },
        +          "thread_id_source": {
        +            "enum": [
        +              "import_notification",
        +              "ledger"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "codex_home",
        +          "thread_id_source",
        +          "elapsed_ms"
        +        ],
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "resume_command": {
        +        "type": "string"
        +      },
        +      "server_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "source_path": {
        +        "type": "string"
        +      },
        +      "thread_id": {
        +        "type": "string"
        +      },
        +      "tool": {
        +        "const": "codex_transfer",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "thread_id",
        +      "resume_command",
        +      "source_path",
        +      "meta"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
  6. 3 tool updatesv0.9.0
    • Changedcodex_capabilities3 fields changed
      • changedInput schema / properties / include_schemas / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "enum": [
        -        "error-envelope",
        -        "result-meta"
        -      ],
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "enum": [
        +        "error-envelope",
        +        "result-meta",
        +        "capabilities-result",
        +        "status-result"
        +      ],
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / include_schemas / description
        Previous value: -"Opt-in tool-reachable fallback for resource-blind clients: also embed the full 'error-envelope' and/or 'result-meta' schema in the response (the default payload omits them and points at the codex:// resources instead)."New value: +"Opt-in tool-reachable fallback for resource-blind clients: also embed the full 'error-envelope', 'result-meta', 'capabilities-result', and/or 'status-result' schema in the response (the default payload omits them and points at the codex:// resources instead)."
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "active_tools": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "deprecation_policy": {
        -        "type": "string"
        -      },
        -      "error_envelope_resource": {
        -        "type": "string"
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "fingerprint_covers": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "free_tools": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "name": {
        -        "type": "string"
        -      },
        -      "negative_scope": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "prerequisites": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "resource_error_carrier": {
        -        "type": "string"
        -      },
        -      "result_meta_resource": {
        -        "type": "string"
        -      },
        -      "sandboxes": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "schemas": {
        -        "anyOf": [
        -          {
        -            "additionalProperties": true,
        -            "type": "object"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "scope": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "stability": {
        -        "type": "string"
        -      },
        -      "tiers": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "tool_details": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "async_lifecycle": {
        -              "anyOf": [
        -                {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "activity_support": {
        -                      "const": "codex_events",
        -                      "type": "string"
        -                    },
        -                    "cancel_tool": {
        -                      "type": "string"
        -                    },
        -                    "consume_tool": {
        -                      "type": "string"
        -                    },
        -                    "event_age_field": {
        -                      "type": "string"
        -                    },
        -                    "event_count_field": {
        -                      "type": "string"
        -                    },
        -                    "last_event_field": {
        -                      "type": "string"
        -                    },
        -                    "lifecycle": {
        -                      "const": "codex_job_*",
        -                      "type": "string"
        -                    },
        -                    "list_tool": {
        -                      "type": "string"
        -                    },
        -                    "native_task_support": {
        -                      "const": false,
        -                      "type": "boolean"
        -                    },
        -                    "poll_after_field": {
        -                      "type": "string"
        -                    },
        -                    "poll_tool": {
        -                      "type": "string"
        -                    },
        -                    "progress_support": {
        -                      "const": "none",
        -                      "type": "string"
        -                    },
        -                    "result_ready_field": {
        -                      "type": "string"
        -                    },
        -                    "result_tool": {
        -                      "type": "string"
        -                    },
        -                    "status_field": {
        -                      "type": "string"
        -                    }
        -                  },
        -                  "required": [
        -                    "poll_tool",
        -                    "result_tool",
        -                    "consume_tool",
        -                    "cancel_tool",
        -                    "list_tool",
        -                    "status_field",
        -                    "result_ready_field",
        -                    "poll_after_field",
        -                    "event_count_field",
        -                    "last_event_field",
        -                    "event_age_field"
        -                  ],
        -                  "type": "object"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "cost": {
        -              "enum": [
        -                "free",
        -                "active"
        -              ],
        -              "type": "string"
        -            },
        -            "error_codes": {
        -              "items": {
        -                "enum": [
        -                  "codex_not_found",
        -                  "codex_auth_required",
        -                  "unexpanded_env_placeholder",
        -                  "unsupported_tier",
        -                  "unsupported_sandbox",
        -                  "unsupported_isolation",
        -                  "unsupported_detail",
        -                  "invalid_scope",
        -                  "invalid_base",
        -                  "invalid_commit",
        -                  "invalid_paths",
        -                  "invalid_arguments",
        -                  "invalid_workspace_root",
        -                  "workspace_outside_roots",
        -                  "input_too_large",
        -                  "not_a_git_repo",
        -                  "git_unavailable",
        -                  "worktree_error",
        -                  "context_too_large",
        -                  "resource_not_found",
        -                  "timeout",
        -                  "nonzero_exit",
        -                  "invalid_json",
        -                  "schema_violation",
        -                  "internal_error",
        -                  "cli_contract_changed",
        -                  "codex_rate_limited",
        -                  "job_not_found",
        -                  "job_running",
        -                  "job_cancelled",
        -                  "job_timeout",
        -                  "job_failed",
        -                  "idempotency_conflict",
        -                  "idempotency_result_unavailable",
        -                  "idempotency_in_progress"
        -                ],
        -                "type": "string"
        -              },
        -              "type": "array"
        -            },
        -            "key_optional_params": {
        -              "items": {
        -                "type": "string"
        -              },
        -              "type": "array"
        -            },
        -            "name": {
        -              "type": "string"
        -            },
        -            "required_params": {
        -              "items": {
        -                "type": "string"
        -              },
        -              "type": "array"
        -            },
        -            "returns": {
        -              "type": "string"
        -            },
        -            "stability": {
        -              "anyOf": [
        -                {
        -                  "enum": [
        -                    "stable",
        -                    "preview",
        -                    "experimental"
        -                  ],
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "use_when": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "name",
        -            "cost",
        -            "use_when",
        -            "returns"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "tool_error_carrier": {
        -        "type": "string"
        -      },
        -      "transport": {
        -        "type": "string"
        -      },
        -      "version": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "name",
        -      "version",
        -      "transport",
        -      "stability",
        -      "active_tools",
        -      "free_tools",
        -      "tiers",
        -      "sandboxes",
        -      "scope",
        -      "negative_scope",
        -      "prerequisites",
        -      "deprecation_policy"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "active_tools": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "deprecation_policy": {
        +        "type": "string"
        +      },
        +      "error_envelope_resource": {
        +        "type": "string"
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "fingerprint_covers": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "free_tools": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "name": {
        +        "type": "string"
        +      },
        +      "negative_scope": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "prerequisites": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "resource_error_carrier": {
        +        "type": "string"
        +      },
        +      "result_meta_resource": {
        +        "type": "string"
        +      },
        +      "sandboxes": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "schemas": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": true,
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "scope": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "stability": {
        +        "type": "string"
        +      },
        +      "tiers": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "tool_details": {
        +        "description": "Per-tool capability records; full schema at resource codex://capabilities-result",
        +        "type": "array"
        +      },
        +      "tool_error_carrier": {
        +        "type": "string"
        +      },
        +      "transport": {
        +        "type": "string"
        +      },
        +      "version": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "name",
        +      "version",
        +      "transport",
        +      "stability",
        +      "active_tools",
        +      "free_tools",
        +      "tiers",
        +      "sandboxes",
        +      "scope",
        +      "negative_scope",
        +      "prerequisites",
        +      "deprecation_policy"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_status1 field changed
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "auth_detail": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "caveat": {
        -        "type": "string"
        -      },
        -      "codex_authenticated": {
        -        "anyOf": [
        -          {
        -            "type": "boolean"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "codex_found": {
        -        "type": "boolean"
        -      },
        -      "codex_version": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "flags_warning": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "rate_limit": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "age_seconds": {
        -            "anyOf": [
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "as_of": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "home_unverified": {
        -            "type": "boolean"
        -          },
        -          "is_stale": {
        -            "type": "boolean"
        -          },
        -          "limiting_window": {
        -            "anyOf": [
        -              {
        -                "enum": [
        -                  "primary",
        -                  "secondary"
        -                ],
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "note": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "plan_type": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "primary": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "remaining_percent": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "reset_passed": {
        -                    "type": "boolean"
        -                  },
        -                  "resets_at": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "seconds_until_reset": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "used_percent": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "window_minutes": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "secondary": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "remaining_percent": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "reset_passed": {
        -                    "type": "boolean"
        -                  },
        -                  "resets_at": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "seconds_until_reset": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "used_percent": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "window_minutes": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "source": {
        -            "enum": [
        -              "current_run",
        -              "plugin_cache"
        -            ],
        -            "type": "string"
        -          },
        -          "status": {
        -            "enum": [
        -              "available",
        -              "limited",
        -              "exhausted",
        -              "unknown"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "status"
        -        ],
        -        "type": "object"
        -      },
        -      "raw_defaults": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "isolation": {
        -            "type": "string"
        -          },
        -          "model": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "sandbox": {
        -            "type": "string"
        -          },
        -          "tier": {
        -            "type": "string"
        -          },
        -          "timeout_seconds": {
        -            "type": "integer"
        -          }
        -        },
        -        "required": [
        -          "tier",
        -          "sandbox",
        -          "isolation",
        -          "timeout_seconds"
        -        ],
        -        "type": "object"
        -      },
        -      "readiness_detail": {
        -        "type": "string"
        -      },
        -      "ready": {
        -        "type": "boolean"
        -      },
        -      "resolved_defaults": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "isolation": {
        -            "enum": [
        -              "inherit",
        -              "ignore-config",
        -              "ignore-rules"
        -            ],
        -            "type": "string"
        -          },
        -          "model": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "sandbox": {
        -            "enum": [
        -              "read-only",
        -              "workspace-write",
        -              "danger-full-access"
        -            ],
        -            "type": "string"
        -          },
        -          "tier": {
        -            "enum": [
        -              "consult",
        -              "propose",
        -              "apply"
        -            ],
        -            "type": "string"
        -          },
        -          "timeout_bounds": {
        -            "items": {
        -              "type": "integer"
        -            },
        -            "type": "array"
        -          },
        -          "timeout_seconds": {
        -            "type": "integer"
        -          }
        -        },
        -        "required": [
        -          "tier",
        -          "sandbox",
        -          "isolation",
        -          "timeout_seconds",
        -          "timeout_bounds"
        -        ],
        -        "type": "object"
        -      },
        -      "version_supported": {
        -        "anyOf": [
        -          {
        -            "type": "boolean"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "version_warning": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      }
        -    },
        -    "required": [
        -      "codex_found",
        -      "readiness_detail",
        -      "raw_defaults",
        -      "resolved_defaults",
        -      "caveat"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "auth_detail": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "caveat": {
        +        "type": "string"
        +      },
        +      "codex_authenticated": {
        +        "anyOf": [
        +          {
        +            "type": "boolean"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "codex_found": {
        +        "type": "boolean"
        +      },
        +      "codex_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "extra_args_configured": {
        +        "type": "boolean"
        +      },
        +      "extra_args_count": {
        +        "type": "integer"
        +      },
        +      "extra_args_valid": {
        +        "type": "boolean"
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "flags_warning": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "rate_limit": {
        +        "description": "Codex rate-limit snapshot; full schema at resource codex://status-result",
        +        "type": "object"
        +      },
        +      "raw_defaults": {
        +        "description": "Raw configured defaults; full schema at resource codex://status-result",
        +        "type": "object"
        +      },
        +      "readiness_detail": {
        +        "type": "string"
        +      },
        +      "ready": {
        +        "type": "boolean"
        +      },
        +      "resolved_defaults": {
        +        "description": "Resolved effective defaults; full schema at resource codex://status-result",
        +        "type": "object"
        +      },
        +      "version_supported": {
        +        "anyOf": [
        +          {
        +            "type": "boolean"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "version_warning": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      }
        +    },
        +    "required": [
        +      "codex_found",
        +      "readiness_detail",
        +      "raw_defaults",
        +      "resolved_defaults",
        +      "caveat"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Addedcodex_transfer
  7. 16 tool updatesv0.8.0
    • Changedcodex_capabilities3 fields changed
      • addedInput schema / properties / include_schemas
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "enum": [
        +          "error-envelope",
        +          "result-meta"
        +        ],
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Opt-in tool-reachable fallback for resource-blind clients: also embed the full 'error-envelope' and/or 'result-meta' schema in the response (the default payload omits them and points at the codex:// resources instead)."
        +}
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "active_tools": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "deprecation_policy": {
        -        "type": "string"
        -      },
        -      "error_envelope_resource": {
        -        "type": "string"
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "free_tools": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "name": {
        -        "type": "string"
        -      },
        -      "negative_scope": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "prerequisites": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "sandboxes": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "scope": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "stability": {
        -        "type": "string"
        -      },
        -      "tiers": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "tool_details": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "async_lifecycle": {
        -              "anyOf": [
        -                {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "activity_support": {
        -                      "const": "codex_events",
        -                      "type": "string"
        -                    },
        -                    "cancel_tool": {
        -                      "type": "string"
        -                    },
        -                    "consume_tool": {
        -                      "type": "string"
        -                    },
        -                    "event_age_field": {
        -                      "type": "string"
        -                    },
        -                    "event_count_field": {
        -                      "type": "string"
        -                    },
        -                    "last_event_field": {
        -                      "type": "string"
        -                    },
        -                    "lifecycle": {
        -                      "const": "codex_job_*",
        -                      "type": "string"
        -                    },
        -                    "list_tool": {
        -                      "type": "string"
        -                    },
        -                    "native_task_support": {
        -                      "const": false,
        -                      "type": "boolean"
        -                    },
        -                    "poll_after_field": {
        -                      "type": "string"
        -                    },
        -                    "poll_tool": {
        -                      "type": "string"
        -                    },
        -                    "progress_support": {
        -                      "const": "none",
        -                      "type": "string"
        -                    },
        -                    "result_ready_field": {
        -                      "type": "string"
        -                    },
        -                    "result_tool": {
        -                      "type": "string"
        -                    },
        -                    "status_field": {
        -                      "type": "string"
        -                    }
        -                  },
        -                  "required": [
        -                    "poll_tool",
        -                    "result_tool",
        -                    "consume_tool",
        -                    "cancel_tool",
        -                    "list_tool",
        -                    "status_field",
        -                    "result_ready_field",
        -                    "poll_after_field",
        -                    "event_count_field",
        -                    "last_event_field",
        -                    "event_age_field"
        -                  ],
        -                  "type": "object"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "cost": {
        -              "enum": [
        -                "free",
        -                "active"
        -              ],
        -              "type": "string"
        -            },
        -            "error_codes": {
        -              "items": {
        -                "enum": [
        -                  "codex_not_found",
        -                  "codex_auth_required",
        -                  "unexpanded_env_placeholder",
        -                  "unsupported_tier",
        -                  "unsupported_sandbox",
        -                  "unsupported_isolation",
        -                  "unsupported_detail",
        -                  "invalid_scope",
        -                  "invalid_base",
        -                  "invalid_commit",
        -                  "invalid_paths",
        -                  "invalid_arguments",
        -                  "invalid_workspace_root",
        -                  "workspace_outside_roots",
        -                  "input_too_large",
        -                  "not_a_git_repo",
        -                  "git_unavailable",
        -                  "worktree_error",
        -                  "context_too_large",
        -                  "timeout",
        -                  "nonzero_exit",
        -                  "invalid_json",
        -                  "schema_violation",
        -                  "internal_error",
        -                  "cli_contract_changed",
        -                  "codex_rate_limited",
        -                  "job_not_found",
        -                  "job_running",
        -                  "job_cancelled",
        -                  "job_timeout",
        -                  "job_failed"
        -                ],
        -                "type": "string"
        -              },
        -              "type": "array"
        -            },
        -            "key_optional_params": {
        -              "items": {
        -                "type": "string"
        -              },
        -              "type": "array"
        -            },
        -            "name": {
        -              "type": "string"
        -            },
        -            "required_params": {
        -              "items": {
        -                "type": "string"
        -              },
        -              "type": "array"
        -            },
        -            "returns": {
        -              "type": "string"
        -            },
        -            "stability": {
        -              "anyOf": [
        -                {
        -                  "enum": [
        -                    "stable",
        -                    "preview",
        -                    "experimental"
        -                  ],
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "use_when": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "name",
        -            "cost",
        -            "use_when",
        -            "returns"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "transport": {
        -        "type": "string"
        -      },
        -      "version": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "name",
        -      "version",
        -      "transport",
        -      "stability",
        -      "active_tools",
        -      "free_tools",
        -      "tiers",
        -      "sandboxes",
        -      "scope",
        -      "negative_scope",
        -      "prerequisites",
        -      "deprecation_policy"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "active_tools": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "deprecation_policy": {
        +        "type": "string"
        +      },
        +      "error_envelope_resource": {
        +        "type": "string"
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "fingerprint_covers": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "free_tools": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "name": {
        +        "type": "string"
        +      },
        +      "negative_scope": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "prerequisites": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "resource_error_carrier": {
        +        "type": "string"
        +      },
        +      "result_meta_resource": {
        +        "type": "string"
        +      },
        +      "sandboxes": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "schemas": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": true,
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "scope": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "stability": {
        +        "type": "string"
        +      },
        +      "tiers": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "tool_details": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "async_lifecycle": {
        +              "anyOf": [
        +                {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "activity_support": {
        +                      "const": "codex_events",
        +                      "type": "string"
        +                    },
        +                    "cancel_tool": {
        +                      "type": "string"
        +                    },
        +                    "consume_tool": {
        +                      "type": "string"
        +                    },
        +                    "event_age_field": {
        +                      "type": "string"
        +                    },
        +                    "event_count_field": {
        +                      "type": "string"
        +                    },
        +                    "last_event_field": {
        +                      "type": "string"
        +                    },
        +                    "lifecycle": {
        +                      "const": "codex_job_*",
        +                      "type": "string"
        +                    },
        +                    "list_tool": {
        +                      "type": "string"
        +                    },
        +                    "native_task_support": {
        +                      "const": false,
        +                      "type": "boolean"
        +                    },
        +                    "poll_after_field": {
        +                      "type": "string"
        +                    },
        +                    "poll_tool": {
        +                      "type": "string"
        +                    },
        +                    "progress_support": {
        +                      "const": "none",
        +                      "type": "string"
        +                    },
        +                    "result_ready_field": {
        +                      "type": "string"
        +                    },
        +                    "result_tool": {
        +                      "type": "string"
        +                    },
        +                    "status_field": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "poll_tool",
        +                    "result_tool",
        +                    "consume_tool",
        +                    "cancel_tool",
        +                    "list_tool",
        +                    "status_field",
        +                    "result_ready_field",
        +                    "poll_after_field",
        +                    "event_count_field",
        +                    "last_event_field",
        +                    "event_age_field"
        +                  ],
        +                  "type": "object"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "cost": {
        +              "enum": [
        +                "free",
        +                "active"
        +              ],
        +              "type": "string"
        +            },
        +            "error_codes": {
        +              "items": {
        +                "enum": [
        +                  "codex_not_found",
        +                  "codex_auth_required",
        +                  "unexpanded_env_placeholder",
        +                  "unsupported_tier",
        +                  "unsupported_sandbox",
        +                  "unsupported_isolation",
        +                  "unsupported_detail",
        +                  "invalid_scope",
        +                  "invalid_base",
        +                  "invalid_commit",
        +                  "invalid_paths",
        +                  "invalid_arguments",
        +                  "invalid_workspace_root",
        +                  "workspace_outside_roots",
        +                  "input_too_large",
        +                  "not_a_git_repo",
        +                  "git_unavailable",
        +                  "worktree_error",
        +                  "context_too_large",
        +                  "resource_not_found",
        +                  "timeout",
        +                  "nonzero_exit",
        +                  "invalid_json",
        +                  "schema_violation",
        +                  "internal_error",
        +                  "cli_contract_changed",
        +                  "codex_rate_limited",
        +                  "job_not_found",
        +                  "job_running",
        +                  "job_cancelled",
        +                  "job_timeout",
        +                  "job_failed",
        +                  "idempotency_conflict",
        +                  "idempotency_result_unavailable",
        +                  "idempotency_in_progress"
        +                ],
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "key_optional_params": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "name": {
        +              "type": "string"
        +            },
        +            "required_params": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "returns": {
        +              "type": "string"
        +            },
        +            "stability": {
        +              "anyOf": [
        +                {
        +                  "enum": [
        +                    "stable",
        +                    "preview",
        +                    "experimental"
        +                  ],
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "use_when": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "name",
        +            "cost",
        +            "use_when",
        +            "returns"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "tool_error_carrier": {
        +        "type": "string"
        +      },
        +      "transport": {
        +        "type": "string"
        +      },
        +      "version": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "name",
        +      "version",
        +      "transport",
        +      "stability",
        +      "active_tools",
        +      "free_tools",
        +      "tiers",
        +      "sandboxes",
        +      "scope",
        +      "negative_scope",
        +      "prerequisites",
        +      "deprecation_policy"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_consult4 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 200,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional client-supplied dedup key, scoped to THIS concrete tool on the same workspace. Reusing it on the same tool with the same arguments replays the existing run instead of starting — and paying for — a duplicate Codex call (a sync call reattaches to the in-flight run and returns its result; an _async call returns the same job_id). The sync and _async variants are DIFFERENT tools and never share a key's run. Reuse with different arguments — including a different timeout_seconds — is refused (idempotency_conflict); a key whose prior result was already consumed/evicted is idempotency_result_unavailable; a still-publishing reservation is idempotency_in_progress (retry). Omit it for the prior no-dedup behavior. A completed result stays replayable while its job record lives (its TTL), subject to consumption or count-eviction; the fail-closed conflict/in-progress window can last longer — up to the job's max runtime + termination grace + TTL. meta.idempotency_replayed=true marks a replayed (unpaid) response."
        +}
      • changedInput schema / properties / isolation / description
        Previous value: -"Codex config isolation: 'inherit' (default), 'ignore-config', or 'ignore-rules'."New value: +"Codex config isolation: 'inherit', 'ignore-config', or 'ignore-rules'. Defaults to the server's configured isolation (built-in default 'inherit'; `codex_status` reports the resolved value)."
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "assumptions": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "findings": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "evidence": {
        -              "type": "string"
        -            },
        -            "file": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "line": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "line_end": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "recommendation": {
        -              "type": "string"
        -            },
        -            "risk": {
        -              "type": "string"
        -            },
        -            "severity": {
        -              "enum": [
        -                "critical",
        -                "high",
        -                "medium",
        -                "low",
        -                "nit"
        -              ],
        -              "type": "string"
        -            },
        -            "title": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "severity",
        -            "title",
        -            "evidence",
        -            "risk",
        -            "recommendation"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "meta": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "base": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "command_exit_code": {
        -            "anyOf": [
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "commit": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "compat_warnings": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "context_summary": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "files_changed": {
        -                    "type": "integer"
        -                  },
        -                  "lines_added": {
        -                    "type": "integer"
        -                  },
        -                  "lines_removed": {
        -                    "type": "integer"
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "cwd": {
        -            "type": "string"
        -          },
        -          "elapsed_ms": {
        -            "type": "integer"
        -          },
        -          "fingerprint": {
        -            "type": "string"
        -          },
        -          "isolation": {
        -            "enum": [
        -              "inherit",
        -              "ignore-config",
        -              "ignore-rules"
        -            ],
        -            "type": "string"
        -          },
        -          "job_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "model": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "paths": {
        -            "anyOf": [
        -              {
        -                "items": {
        -                  "type": "string"
        -                },
        -                "type": "array"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "rate_limit": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "age_seconds": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "as_of": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "home_unverified": {
        -                    "type": "boolean"
        -                  },
        -                  "is_stale": {
        -                    "type": "boolean"
        -                  },
        -                  "limiting_window": {
        -                    "anyOf": [
        -                      {
        -                        "enum": [
        -                          "primary",
        -                          "secondary"
        -                        ],
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "note": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "plan_type": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "primary": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "remaining_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "reset_passed": {
        -                            "type": "boolean"
        -                          },
        -                          "resets_at": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "seconds_until_reset": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "used_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "window_minutes": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          }
        -                        },
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "secondary": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "remaining_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "reset_passed": {
        -                            "type": "boolean"
        -                          },
        -                          "resets_at": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "seconds_until_reset": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "used_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "window_minutes": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          }
        -                        },
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "source": {
        -                    "enum": [
        -                      "current_run",
        -                      "plugin_cache"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "status": {
        -                    "enum": [
        -                      "available",
        -                      "limited",
        -                      "exhausted",
        -                      "unknown"
        -                    ],
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "status"
        -                ],
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "redacted_paths": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "request_id": {
        -            "type": "string"
        -          },
        -          "sandbox": {
        -            "enum": [
        -              "read-only",
        -              "workspace-write",
        -              "danger-full-access"
        -            ],
        -            "type": "string"
        -          },
        -          "scope": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "security_warnings": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "session_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "tier": {
        -            "enum": [
        -              "consult",
        -              "propose",
        -              "apply"
        -            ],
        -            "type": "string"
        -          },
        -          "timeout_seconds": {
        -            "type": "integer"
        -          },
        -          "truncated": {
        -            "type": "boolean"
        -          },
        -          "truncation_hint": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "usage": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "cached_input_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "input_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "output_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "total_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_source": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_warning": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "required": [
        -          "cwd",
        -          "tier",
        -          "sandbox",
        -          "isolation",
        -          "timeout_seconds",
        -          "elapsed_ms"
        -        ],
        -        "type": "object"
        -      },
        -      "next_steps": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "questions": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "raw_response": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "model": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "session_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "text": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "type": "object"
        -      },
        -      "summary": {
        -        "type": "string"
        -      },
        -      "tool": {
        -        "const": "codex_consult",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "summary",
        -      "meta"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "assumptions": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "findings": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "evidence": {
        +              "type": "string"
        +            },
        +            "file": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "line": {
        +              "anyOf": [
        +                {
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "line_end": {
        +              "anyOf": [
        +                {
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "recommendation": {
        +              "type": "string"
        +            },
        +            "risk": {
        +              "type": "string"
        +            },
        +            "severity": {
        +              "enum": [
        +                "critical",
        +                "high",
        +                "medium",
        +                "low",
        +                "nit"
        +              ],
        +              "type": "string"
        +            },
        +            "title": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "severity",
        +            "title",
        +            "evidence",
        +            "risk",
        +            "recommendation"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "meta": {
        +        "description": "Result metadata (cwd, tier, sandbox, model, timeout, usage, rate_limit, and more); full schema at resource codex://result-meta",
        +        "type": "object"
        +      },
        +      "next_steps": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "questions": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "raw_response": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "model": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "session_id": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "text": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "summary": {
        +        "type": "string"
        +      },
        +      "tool": {
        +        "const": "codex_consult",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "summary",
        +      "meta"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_consult_async4 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 200,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional client-supplied dedup key, scoped to THIS concrete tool on the same workspace. Reusing it on the same tool with the same arguments replays the existing run instead of starting — and paying for — a duplicate Codex call (a sync call reattaches to the in-flight run and returns its result; an _async call returns the same job_id). The sync and _async variants are DIFFERENT tools and never share a key's run. Reuse with different arguments — including a different timeout_seconds — is refused (idempotency_conflict); a key whose prior result was already consumed/evicted is idempotency_result_unavailable; a still-publishing reservation is idempotency_in_progress (retry). Omit it for the prior no-dedup behavior. A completed result stays replayable while its job record lives (its TTL), subject to consumption or count-eviction; the fail-closed conflict/in-progress window can last longer — up to the job's max runtime + termination grace + TTL. meta.idempotency_replayed=true marks a replayed (unpaid) response."
        +}
      • changedInput schema / properties / isolation / description
        Previous value: -"Codex config isolation: 'inherit' (default), 'ignore-config', or 'ignore-rules'."New value: +"Codex config isolation: 'inherit', 'ignore-config', or 'ignore-rules'. Defaults to the server's configured isolation (built-in default 'inherit'; `codex_status` reports the resolved value)."
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "deadline_seconds": {
        -        "type": "integer"
        -      },
        -      "expires_at": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "job_id": {
        -        "type": "string"
        -      },
        -      "kind": {
        -        "type": "string"
        -      },
        -      "meta": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "base": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "command_exit_code": {
        -            "anyOf": [
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "commit": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "compat_warnings": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "context_summary": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "files_changed": {
        -                    "type": "integer"
        -                  },
        -                  "lines_added": {
        -                    "type": "integer"
        -                  },
        -                  "lines_removed": {
        -                    "type": "integer"
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "cwd": {
        -            "type": "string"
        -          },
        -          "elapsed_ms": {
        -            "type": "integer"
        -          },
        -          "fingerprint": {
        -            "type": "string"
        -          },
        -          "isolation": {
        -            "enum": [
        -              "inherit",
        -              "ignore-config",
        -              "ignore-rules"
        -            ],
        -            "type": "string"
        -          },
        -          "job_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "model": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "paths": {
        -            "anyOf": [
        -              {
        -                "items": {
        -                  "type": "string"
        -                },
        -                "type": "array"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "rate_limit": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "age_seconds": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "as_of": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "home_unverified": {
        -                    "type": "boolean"
        -                  },
        -                  "is_stale": {
        -                    "type": "boolean"
        -                  },
        -                  "limiting_window": {
        -                    "anyOf": [
        -                      {
        -                        "enum": [
        -                          "primary",
        -                          "secondary"
        -                        ],
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "note": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "plan_type": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "primary": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "remaining_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "reset_passed": {
        -                            "type": "boolean"
        -                          },
        -                          "resets_at": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "seconds_until_reset": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "used_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "window_minutes": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          }
        -                        },
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "secondary": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "remaining_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "reset_passed": {
        -                            "type": "boolean"
        -                          },
        -                          "resets_at": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "seconds_until_reset": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "used_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "window_minutes": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          }
        -                        },
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "source": {
        -                    "enum": [
        -                      "current_run",
        -                      "plugin_cache"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "status": {
        -                    "enum": [
        -                      "available",
        -                      "limited",
        -                      "exhausted",
        -                      "unknown"
        -                    ],
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "status"
        -                ],
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "redacted_paths": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "request_id": {
        -            "type": "string"
        -          },
        -          "sandbox": {
        -            "enum": [
        -              "read-only",
        -              "workspace-write",
        -              "danger-full-access"
        -            ],
        -            "type": "string"
        -          },
        -          "scope": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "security_warnings": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "session_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "tier": {
        -            "enum": [
        -              "consult",
        -              "propose",
        -              "apply"
        -            ],
        -            "type": "string"
        -          },
        -          "timeout_seconds": {
        -            "type": "integer"
        -          },
        -          "truncated": {
        -            "type": "boolean"
        -          },
        -          "truncation_hint": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "usage": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "cached_input_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "input_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "output_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "total_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_source": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_warning": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "required": [
        -          "cwd",
        -          "tier",
        -          "sandbox",
        -          "isolation",
        -          "timeout_seconds",
        -          "elapsed_ms"
        -        ],
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "poll_after_ms": {
        -        "type": "integer"
        -      },
        -      "started_at": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "enum": [
        -          "running",
        -          "done",
        -          "failed",
        -          "cancelled",
        -          "timeout"
        -        ],
        -        "type": "string"
        -      },
        -      "ttl_seconds": {
        -        "type": "integer"
        -      }
        -    },
        -    "required": [
        -      "job_id",
        -      "kind",
        -      "started_at",
        -      "deadline_seconds",
        -      "ttl_seconds",
        -      "meta"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "deadline_seconds": {
        +        "type": "integer"
        +      },
        +      "expires_at": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "job_id": {
        +        "type": "string"
        +      },
        +      "kind": {
        +        "type": "string"
        +      },
        +      "meta": {
        +        "description": "Result metadata (cwd, tier, sandbox, model, timeout, usage, rate_limit, and more); full schema at resource codex://result-meta",
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "poll_after_ms": {
        +        "type": "integer"
        +      },
        +      "started_at": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "enum": [
        +          "running",
        +          "done",
        +          "failed",
        +          "cancelled",
        +          "timeout"
        +        ],
        +        "type": "string"
        +      },
        +      "ttl_seconds": {
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "job_id",
        +      "kind",
        +      "started_at",
        +      "deadline_seconds",
        +      "ttl_seconds",
        +      "meta"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_delegate4 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 200,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional client-supplied dedup key, scoped to THIS concrete tool on the same workspace. Reusing it on the same tool with the same arguments replays the existing run instead of starting — and paying for — a duplicate Codex call (a sync call reattaches to the in-flight run and returns its result; an _async call returns the same job_id). The sync and _async variants are DIFFERENT tools and never share a key's run. Reuse with different arguments — including a different timeout_seconds — is refused (idempotency_conflict); a key whose prior result was already consumed/evicted is idempotency_result_unavailable; a still-publishing reservation is idempotency_in_progress (retry). Omit it for the prior no-dedup behavior. A completed result stays replayable while its job record lives (its TTL), subject to consumption or count-eviction; the fail-closed conflict/in-progress window can last longer — up to the job's max runtime + termination grace + TTL. meta.idempotency_replayed=true marks a replayed (unpaid) response."
        +}
      • changedInput schema / properties / isolation / description
        Previous value: -"Codex config isolation: 'inherit' (default), 'ignore-config', or 'ignore-rules'."New value: +"Codex config isolation: 'inherit', 'ignore-config', or 'ignore-rules'. Defaults to the server's configured isolation (built-in default 'inherit'; `codex_status` reports the resolved value)."
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "assumptions": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "diff": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "findings": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "evidence": {
        -              "type": "string"
        -            },
        -            "file": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "line": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "line_end": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "recommendation": {
        -              "type": "string"
        -            },
        -            "risk": {
        -              "type": "string"
        -            },
        -            "severity": {
        -              "enum": [
        -                "critical",
        -                "high",
        -                "medium",
        -                "low",
        -                "nit"
        -              ],
        -              "type": "string"
        -            },
        -            "title": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "severity",
        -            "title",
        -            "evidence",
        -            "risk",
        -            "recommendation"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "meta": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "base": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "command_exit_code": {
        -            "anyOf": [
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "commit": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "compat_warnings": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "context_summary": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "files_changed": {
        -                    "type": "integer"
        -                  },
        -                  "lines_added": {
        -                    "type": "integer"
        -                  },
        -                  "lines_removed": {
        -                    "type": "integer"
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "cwd": {
        -            "type": "string"
        -          },
        -          "elapsed_ms": {
        -            "type": "integer"
        -          },
        -          "fingerprint": {
        -            "type": "string"
        -          },
        -          "isolation": {
        -            "enum": [
        -              "inherit",
        -              "ignore-config",
        -              "ignore-rules"
        -            ],
        -            "type": "string"
        -          },
        -          "job_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "model": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "paths": {
        -            "anyOf": [
        -              {
        -                "items": {
        -                  "type": "string"
        -                },
        -                "type": "array"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "rate_limit": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "age_seconds": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "as_of": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "home_unverified": {
        -                    "type": "boolean"
        -                  },
        -                  "is_stale": {
        -                    "type": "boolean"
        -                  },
        -                  "limiting_window": {
        -                    "anyOf": [
        -                      {
        -                        "enum": [
        -                          "primary",
        -                          "secondary"
        -                        ],
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "note": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "plan_type": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "primary": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "remaining_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "reset_passed": {
        -                            "type": "boolean"
        -                          },
        -                          "resets_at": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "seconds_until_reset": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "used_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "window_minutes": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          }
        -                        },
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "secondary": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "remaining_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "reset_passed": {
        -                            "type": "boolean"
        -                          },
        -                          "resets_at": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "seconds_until_reset": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "used_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "window_minutes": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          }
        -                        },
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "source": {
        -                    "enum": [
        -                      "current_run",
        -                      "plugin_cache"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "status": {
        -                    "enum": [
        -                      "available",
        -                      "limited",
        -                      "exhausted",
        -                      "unknown"
        -                    ],
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "status"
        -                ],
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "redacted_paths": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "request_id": {
        -            "type": "string"
        -          },
        -          "sandbox": {
        -            "enum": [
        -              "read-only",
        -              "workspace-write",
        -              "danger-full-access"
        -            ],
        -            "type": "string"
        -          },
        -          "scope": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "security_warnings": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "session_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "tier": {
        -            "enum": [
        -              "consult",
        -              "propose",
        -              "apply"
        -            ],
        -            "type": "string"
        -          },
        -          "timeout_seconds": {
        -            "type": "integer"
        -          },
        -          "truncated": {
        -            "type": "boolean"
        -          },
        -          "truncation_hint": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "usage": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "cached_input_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "input_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "output_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "total_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_source": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_warning": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "required": [
        -          "cwd",
        -          "tier",
        -          "sandbox",
        -          "isolation",
        -          "timeout_seconds",
        -          "elapsed_ms"
        -        ],
        -        "type": "object"
        -      },
        -      "next_steps": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "questions": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "raw_response": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "model": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "session_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "text": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "type": "object"
        -      },
        -      "summary": {
        -        "type": "string"
        -      },
        -      "tool": {
        -        "const": "codex_delegate",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "summary",
        -      "meta"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "assumptions": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "diff": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "findings": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "evidence": {
        +              "type": "string"
        +            },
        +            "file": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "line": {
        +              "anyOf": [
        +                {
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "line_end": {
        +              "anyOf": [
        +                {
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "recommendation": {
        +              "type": "string"
        +            },
        +            "risk": {
        +              "type": "string"
        +            },
        +            "severity": {
        +              "enum": [
        +                "critical",
        +                "high",
        +                "medium",
        +                "low",
        +                "nit"
        +              ],
        +              "type": "string"
        +            },
        +            "title": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "severity",
        +            "title",
        +            "evidence",
        +            "risk",
        +            "recommendation"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "meta": {
        +        "description": "Result metadata (cwd, tier, sandbox, model, timeout, usage, rate_limit, and more); full schema at resource codex://result-meta",
        +        "type": "object"
        +      },
        +      "next_steps": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "questions": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "raw_response": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "model": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "session_id": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "text": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "summary": {
        +        "type": "string"
        +      },
        +      "tool": {
        +        "const": "codex_delegate",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "summary",
        +      "meta"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_delegate_async4 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 200,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional client-supplied dedup key, scoped to THIS concrete tool on the same workspace. Reusing it on the same tool with the same arguments replays the existing run instead of starting — and paying for — a duplicate Codex call (a sync call reattaches to the in-flight run and returns its result; an _async call returns the same job_id). The sync and _async variants are DIFFERENT tools and never share a key's run. Reuse with different arguments — including a different timeout_seconds — is refused (idempotency_conflict); a key whose prior result was already consumed/evicted is idempotency_result_unavailable; a still-publishing reservation is idempotency_in_progress (retry). Omit it for the prior no-dedup behavior. A completed result stays replayable while its job record lives (its TTL), subject to consumption or count-eviction; the fail-closed conflict/in-progress window can last longer — up to the job's max runtime + termination grace + TTL. meta.idempotency_replayed=true marks a replayed (unpaid) response."
        +}
      • changedInput schema / properties / isolation / description
        Previous value: -"Codex config isolation: 'inherit' (default), 'ignore-config', or 'ignore-rules'."New value: +"Codex config isolation: 'inherit', 'ignore-config', or 'ignore-rules'. Defaults to the server's configured isolation (built-in default 'inherit'; `codex_status` reports the resolved value)."
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "deadline_seconds": {
        -        "type": "integer"
        -      },
        -      "expires_at": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "job_id": {
        -        "type": "string"
        -      },
        -      "kind": {
        -        "type": "string"
        -      },
        -      "meta": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "base": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "command_exit_code": {
        -            "anyOf": [
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "commit": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "compat_warnings": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "context_summary": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "files_changed": {
        -                    "type": "integer"
        -                  },
        -                  "lines_added": {
        -                    "type": "integer"
        -                  },
        -                  "lines_removed": {
        -                    "type": "integer"
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "cwd": {
        -            "type": "string"
        -          },
        -          "elapsed_ms": {
        -            "type": "integer"
        -          },
        -          "fingerprint": {
        -            "type": "string"
        -          },
        -          "isolation": {
        -            "enum": [
        -              "inherit",
        -              "ignore-config",
        -              "ignore-rules"
        -            ],
        -            "type": "string"
        -          },
        -          "job_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "model": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "paths": {
        -            "anyOf": [
        -              {
        -                "items": {
        -                  "type": "string"
        -                },
        -                "type": "array"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "rate_limit": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "age_seconds": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "as_of": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "home_unverified": {
        -                    "type": "boolean"
        -                  },
        -                  "is_stale": {
        -                    "type": "boolean"
        -                  },
        -                  "limiting_window": {
        -                    "anyOf": [
        -                      {
        -                        "enum": [
        -                          "primary",
        -                          "secondary"
        -                        ],
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "note": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "plan_type": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "primary": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "remaining_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "reset_passed": {
        -                            "type": "boolean"
        -                          },
        -                          "resets_at": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "seconds_until_reset": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "used_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "window_minutes": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          }
        -                        },
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "secondary": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "remaining_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "reset_passed": {
        -                            "type": "boolean"
        -                          },
        -                          "resets_at": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "seconds_until_reset": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "used_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "window_minutes": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          }
        -                        },
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "source": {
        -                    "enum": [
        -                      "current_run",
        -                      "plugin_cache"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "status": {
        -                    "enum": [
        -                      "available",
        -                      "limited",
        -                      "exhausted",
        -                      "unknown"
        -                    ],
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "status"
        -                ],
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "redacted_paths": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "request_id": {
        -            "type": "string"
        -          },
        -          "sandbox": {
        -            "enum": [
        -              "read-only",
        -              "workspace-write",
        -              "danger-full-access"
        -            ],
        -            "type": "string"
        -          },
        -          "scope": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "security_warnings": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "session_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "tier": {
        -            "enum": [
        -              "consult",
        -              "propose",
        -              "apply"
        -            ],
        -            "type": "string"
        -          },
        -          "timeout_seconds": {
        -            "type": "integer"
        -          },
        -          "truncated": {
        -            "type": "boolean"
        -          },
        -          "truncation_hint": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "usage": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "cached_input_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "input_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "output_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "total_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_source": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_warning": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "required": [
        -          "cwd",
        -          "tier",
        -          "sandbox",
        -          "isolation",
        -          "timeout_seconds",
        -          "elapsed_ms"
        -        ],
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "poll_after_ms": {
        -        "type": "integer"
        -      },
        -      "started_at": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "enum": [
        -          "running",
        -          "done",
        -          "failed",
        -          "cancelled",
        -          "timeout"
        -        ],
        -        "type": "string"
        -      },
        -      "ttl_seconds": {
        -        "type": "integer"
        -      }
        -    },
        -    "required": [
        -      "job_id",
        -      "kind",
        -      "started_at",
        -      "deadline_seconds",
        -      "ttl_seconds",
        -      "meta"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "deadline_seconds": {
        +        "type": "integer"
        +      },
        +      "expires_at": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "job_id": {
        +        "type": "string"
        +      },
        +      "kind": {
        +        "type": "string"
        +      },
        +      "meta": {
        +        "description": "Result metadata (cwd, tier, sandbox, model, timeout, usage, rate_limit, and more); full schema at resource codex://result-meta",
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "poll_after_ms": {
        +        "type": "integer"
        +      },
        +      "started_at": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "enum": [
        +          "running",
        +          "done",
        +          "failed",
        +          "cancelled",
        +          "timeout"
        +        ],
        +        "type": "string"
        +      },
        +      "ttl_seconds": {
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "job_id",
        +      "kind",
        +      "started_at",
        +      "deadline_seconds",
        +      "ttl_seconds",
        +      "meta"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_delegate_dry_run2 fields changed
      • changedInput schema / properties / isolation / description
        Previous value: -"Codex config isolation: 'inherit' (default), 'ignore-config', or 'ignore-rules'."New value: +"Codex config isolation: 'inherit', 'ignore-config', or 'ignore-rules'. Defaults to the server's configured isolation (built-in default 'inherit'; `codex_status` reports the resolved value)."
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcodex_dry_run2 fields changed
      • changedInput schema / properties / isolation / description
        Previous value: -"Codex config isolation: 'inherit' (default), 'ignore-config', or 'ignore-rules'."New value: +"Codex config isolation: 'inherit', 'ignore-config', or 'ignore-rules'. Defaults to the server's configured isolation (built-in default 'inherit'; `codex_status` reports the resolved value)."
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcodex_job_cancel2 fields changed
      • changedInput schema / properties / job_id / description
        Previous value: -"The job_id returned by an *_async call (codex_*_async); recover lost ids with codex_job_list."New value: +"The job_id from an *_async call or a sync call's meta.job_id; recover lost ids with codex_job_list."
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcodex_job_consume_result4 fields changed
      • changedInput schema / properties / job_id / description
        Previous value: -"The job_id returned by an *_async call (codex_*_async); recover lost ids with codex_job_list."New value: +"The job_id from an *_async call or a sync call's meta.job_id; recover lost ids with codex_job_list."
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "assumptions": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "diff": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "findings": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "evidence": {
        -              "type": "string"
        -            },
        -            "file": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "line": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "line_end": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "recommendation": {
        -              "type": "string"
        -            },
        -            "risk": {
        -              "type": "string"
        -            },
        -            "severity": {
        -              "enum": [
        -                "critical",
        -                "high",
        -                "medium",
        -                "low",
        -                "nit"
        -              ],
        -              "type": "string"
        -            },
        -            "title": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "severity",
        -            "title",
        -            "evidence",
        -            "risk",
        -            "recommendation"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "meta": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "base": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "command_exit_code": {
        -            "anyOf": [
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "commit": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "compat_warnings": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "context_summary": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "files_changed": {
        -                    "type": "integer"
        -                  },
        -                  "lines_added": {
        -                    "type": "integer"
        -                  },
        -                  "lines_removed": {
        -                    "type": "integer"
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "cwd": {
        -            "type": "string"
        -          },
        -          "elapsed_ms": {
        -            "type": "integer"
        -          },
        -          "fingerprint": {
        -            "type": "string"
        -          },
        -          "isolation": {
        -            "enum": [
        -              "inherit",
        -              "ignore-config",
        -              "ignore-rules"
        -            ],
        -            "type": "string"
        -          },
        -          "job_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "model": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "paths": {
        -            "anyOf": [
        -              {
        -                "items": {
        -                  "type": "string"
        -                },
        -                "type": "array"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "rate_limit": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "age_seconds": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "as_of": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "home_unverified": {
        -                    "type": "boolean"
        -                  },
        -                  "is_stale": {
        -                    "type": "boolean"
        -                  },
        -                  "limiting_window": {
        -                    "anyOf": [
        -                      {
        -                        "enum": [
        -                          "primary",
        -                          "secondary"
        -                        ],
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "note": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "plan_type": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "primary": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "remaining_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "reset_passed": {
        -                            "type": "boolean"
        -                          },
        -                          "resets_at": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "seconds_until_reset": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "used_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "window_minutes": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          }
        -                        },
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "secondary": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "remaining_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "reset_passed": {
        -                            "type": "boolean"
        -                          },
        -                          "resets_at": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "seconds_until_reset": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "used_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "window_minutes": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          }
        -                        },
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "source": {
        -                    "enum": [
        -                      "current_run",
        -                      "plugin_cache"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "status": {
        -                    "enum": [
        -                      "available",
        -                      "limited",
        -                      "exhausted",
        -                      "unknown"
        -                    ],
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "status"
        -                ],
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "redacted_paths": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "request_id": {
        -            "type": "string"
        -          },
        -          "sandbox": {
        -            "enum": [
        -              "read-only",
        -              "workspace-write",
        -              "danger-full-access"
        -            ],
        -            "type": "string"
        -          },
        -          "scope": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "security_warnings": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "session_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "tier": {
        -            "enum": [
        -              "consult",
        -              "propose",
        -              "apply"
        -            ],
        -            "type": "string"
        -          },
        -          "timeout_seconds": {
        -            "type": "integer"
        -          },
        -          "truncated": {
        -            "type": "boolean"
        -          },
        -          "truncation_hint": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "usage": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "cached_input_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "input_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "output_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "total_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_source": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_warning": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "required": [
        -          "cwd",
        -          "tier",
        -          "sandbox",
        -          "isolation",
        -          "timeout_seconds",
        -          "elapsed_ms"
        -        ],
        -        "type": "object"
        -      },
        -      "next_steps": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "questions": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "raw_response": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "model": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "session_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "text": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "type": "object"
        -      },
        -      "summary": {
        -        "type": "string"
        -      },
        -      "tool": {
        -        "const": "codex_delegate",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "summary",
        -      "meta"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "assumptions": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "findings": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "evidence": {
        -              "type": "string"
        -            },
        -            "file": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "line": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "line_end": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "recommendation": {
        -              "type": "string"
        -            },
        -            "risk": {
        -              "type": "string"
        -            },
        -            "severity": {
        -              "enum": [
        -                "critical",
        -                "high",
        -                "medium",
        -                "low",
        -                "nit"
        -              ],
        -              "type": "string"
        -            },
        -            "title": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "severity",
        -            "title",
        -            "evidence",
        -            "risk",
        -            "recommendation"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "meta": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "base": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "command_exit_code": {
        -            "anyOf": [
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "commit": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "compat_warnings": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "context_summary": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "files_changed": {
        -                    "type": "integer"
        -                  },
        -                  "lines_added": {
        -                    "type": "integer"
        -                  },
        -                  "lines_removed": {
        -                    "type": "integer"
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "cwd": {
        -            "type": "string"
        -          },
        -          "elapsed_ms": {
        -            "type": "integer"
        -          },
        -          "fingerprint": {
        -            "type": "string"
        -          },
        -          "isolation": {
        -            "enum": [
        -              "inherit",
        -              "ignore-config",
        -              "ignore-rules"
        -            ],
        -            "type": "string"
        -          },
        -          "job_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "model": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "paths": {
        -            "anyOf": [
        -              {
        -                "items": {
        -                  "type": "string"
        -                },
        -                "type": "array"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "rate_limit": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "age_seconds": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "as_of": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "home_unverified": {
        -                    "type": "boolean"
        -                  },
        -                  "is_stale": {
        -                    "type": "boolean"
        -                  },
        -                  "limiting_window": {
        -                    "anyOf": [
        -                      {
        -                        "enum": [
        -                          "primary",
        -                          "secondary"
        -                        ],
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "note": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "plan_type": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "primary": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "remaining_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "reset_passed": {
        -                            "type": "boolean"
        -                          },
        -                          "resets_at": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "seconds_until_reset": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "used_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "window_minutes": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          }
        -                        },
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "secondary": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "remaining_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "reset_passed": {
        -                            "type": "boolean"
        -                          },
        -                          "resets_at": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "seconds_until_reset": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "used_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "window_minutes": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          }
        -                        },
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "source": {
        -                    "enum": [
        -                      "current_run",
        -                      "plugin_cache"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "status": {
        -                    "enum": [
        -                      "available",
        -                      "limited",
        -                      "exhausted",
        -                      "unknown"
        -                    ],
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "status"
        -                ],
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "redacted_paths": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "request_id": {
        -            "type": "string"
        -          },
        -          "sandbox": {
        -            "enum": [
        -              "read-only",
        -              "workspace-write",
        -              "danger-full-access"
        -            ],
        -            "type": "string"
        -          },
        -          "scope": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "security_warnings": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "session_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "tier": {
        -            "enum": [
        -              "consult",
        -              "propose",
        -              "apply"
        -            ],
        -            "type": "string"
        -          },
        -          "timeout_seconds": {
        -            "type": "integer"
        -          },
        -          "truncated": {
        -            "type": "boolean"
        -          },
        -          "truncation_hint": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "usage": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "cached_input_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "input_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "output_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "total_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_source": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_warning": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "required": [
        -          "cwd",
        -          "tier",
        -          "sandbox",
        -          "isolation",
        -          "timeout_seconds",
        -          "elapsed_ms"
        -        ],
        -        "type": "object"
        -      },
        -      "next_steps": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "questions": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "raw_response": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "model": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "session_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "text": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "type": "object"
        -      },
        -      "summary": {
        -        "type": "string"
        -      },
        -      "tool": {
        -        "const": "codex_consult",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "summary",
        -      "meta"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "assumptions": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "confidence": {
        -        "enum": [
        -          "low",
        -          "medium",
        -          "high"
        -        ],
        -        "type": "string"
        -      },
        -      "findings": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "evidence": {
        -              "type": "string"
        -            },
        -            "file": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "line": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "line_end": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "recommendation": {
        -              "type": "string"
        -            },
        -            "risk": {
        -              "type": "string"
        -            },
        -            "severity": {
        -              "enum": [
        -                "critical",
        -                "high",
        -                "medium",
        -                "low",
        -                "nit"
        -              ],
        -              "type": "string"
        -            },
        -            "title": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "severity",
        -            "title",
        -            "evidence",
        -            "risk",
        -            "recommendation"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "meta": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "base": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "command_exit_code": {
        -            "anyOf": [
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "commit": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "compat_warnings": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "context_summary": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "files_changed": {
        -                    "type": "integer"
        -                  },
        -                  "lines_added": {
        -                    "type": "integer"
        -                  },
        -                  "lines_removed": {
        -                    "type": "integer"
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "cwd": {
        -            "type": "string"
        -          },
        -          "elapsed_ms": {
        -            "type": "integer"
        -          },
        -          "fingerprint": {
        -            "type": "string"
        -          },
        -          "isolation": {
        -            "enum": [
        -              "inherit",
        -              "ignore-config",
        -              "ignore-rules"
        -            ],
        -            "type": "string"
        -          },
        -          "job_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "model": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "paths": {
        -            "anyOf": [
        -              {
        -                "items": {
        -                  "type": "string"
        -                },
        -                "type": "array"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "rate_limit": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "age_seconds": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "as_of": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "home_unverified": {
        -                    "type": "boolean"
        -                  },
        -                  "is_stale": {
        -                    "type": "boolean"
        -                  },
        -                  "limiting_window": {
        -                    "anyOf": [
        -                      {
        -                        "enum": [
        -                          "primary",
        -                          "secondary"
        -                        ],
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "note": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "plan_type": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "primary": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "remaining_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "reset_passed": {
        -                            "type": "boolean"
        -                          },
        -                          "resets_at": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "seconds_until_reset": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "used_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "window_minutes": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          }
        -                        },
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "secondary": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "remaining_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "reset_passed": {
        -                            "type": "boolean"
        -                          },
        -                          "resets_at": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "seconds_until_reset": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "used_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "window_minutes": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          }
        -                        },
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "source": {
        -                    "enum": [
        -                      "current_run",
        -                      "plugin_cache"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "status": {
        -                    "enum": [
        -                      "available",
        -                      "limited",
        -                      "exhausted",
        -                      "unknown"
        -                    ],
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "status"
        -                ],
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "redacted_paths": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "request_id": {
        -            "type": "string"
        -          },
        -          "sandbox": {
        -            "enum": [
        -              "read-only",
        -              "workspace-write",
        -              "danger-full-access"
        -            ],
        -            "type": "string"
        -          },
        -          "scope": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "security_warnings": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "session_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "tier": {
        -            "enum": [
        -              "consult",
        -              "propose",
        -              "apply"
        -            ],
        -            "type": "string"
        -          },
        -          "timeout_seconds": {
        -            "type": "integer"
        -          },
        -          "truncated": {
        -            "type": "boolean"
        -          },
        -          "truncation_hint": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "usage": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "cached_input_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "input_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "output_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "total_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_source": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_warning": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "required": [
        -          "cwd",
        -          "tier",
        -          "sandbox",
        -          "isolation",
        -          "timeout_seconds",
        -          "elapsed_ms"
        -        ],
        -        "type": "object"
        -      },
        -      "next_steps": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "questions": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "raw_response": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "model": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "session_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "text": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "type": "object"
        -      },
        -      "summary": {
        -        "type": "string"
        -      },
        -      "tool": {
        -        "const": "codex_review_changes",
        -        "type": "string"
        -      },
        -      "verdict": {
        -        "enum": [
        -          "pass",
        -          "concerns",
        -          "fail",
        -          "unknown"
        -        ],
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "summary",
        -      "meta"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "properties": {
        +      "ok": {
        +        "const": true
        +      },
        +      "tool": {
        +        "description": "Originating tool; the payload matches that tool's advertised outputSchema success branch — branch on this field.",
        +        "enum": [
        +          "codex_consult",
        +          "codex_review_changes",
        +          "codex_delegate"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "tool"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
      • addedOutput schema / properties / ok / description
        Added value: +"true = success result, false = error result"
    • Changedcodex_job_list1 field changed
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcodex_job_result4 fields changed
      • changedInput schema / properties / job_id / description
        Previous value: -"The job_id returned by an *_async call (codex_*_async); recover lost ids with codex_job_list."New value: +"The job_id from an *_async call or a sync call's meta.job_id; recover lost ids with codex_job_list."
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "assumptions": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "diff": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "findings": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "evidence": {
        -              "type": "string"
        -            },
        -            "file": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "line": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "line_end": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "recommendation": {
        -              "type": "string"
        -            },
        -            "risk": {
        -              "type": "string"
        -            },
        -            "severity": {
        -              "enum": [
        -                "critical",
        -                "high",
        -                "medium",
        -                "low",
        -                "nit"
        -              ],
        -              "type": "string"
        -            },
        -            "title": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "severity",
        -            "title",
        -            "evidence",
        -            "risk",
        -            "recommendation"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "meta": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "base": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "command_exit_code": {
        -            "anyOf": [
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "commit": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "compat_warnings": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "context_summary": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "files_changed": {
        -                    "type": "integer"
        -                  },
        -                  "lines_added": {
        -                    "type": "integer"
        -                  },
        -                  "lines_removed": {
        -                    "type": "integer"
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "cwd": {
        -            "type": "string"
        -          },
        -          "elapsed_ms": {
        -            "type": "integer"
        -          },
        -          "fingerprint": {
        -            "type": "string"
        -          },
        -          "isolation": {
        -            "enum": [
        -              "inherit",
        -              "ignore-config",
        -              "ignore-rules"
        -            ],
        -            "type": "string"
        -          },
        -          "job_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "model": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "paths": {
        -            "anyOf": [
        -              {
        -                "items": {
        -                  "type": "string"
        -                },
        -                "type": "array"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "rate_limit": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "age_seconds": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "as_of": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "home_unverified": {
        -                    "type": "boolean"
        -                  },
        -                  "is_stale": {
        -                    "type": "boolean"
        -                  },
        -                  "limiting_window": {
        -                    "anyOf": [
        -                      {
        -                        "enum": [
        -                          "primary",
        -                          "secondary"
        -                        ],
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "note": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "plan_type": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "primary": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "remaining_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "reset_passed": {
        -                            "type": "boolean"
        -                          },
        -                          "resets_at": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "seconds_until_reset": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "used_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "window_minutes": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          }
        -                        },
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "secondary": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "remaining_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "reset_passed": {
        -                            "type": "boolean"
        -                          },
        -                          "resets_at": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "seconds_until_reset": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "used_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "window_minutes": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          }
        -                        },
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "source": {
        -                    "enum": [
        -                      "current_run",
        -                      "plugin_cache"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "status": {
        -                    "enum": [
        -                      "available",
        -                      "limited",
        -                      "exhausted",
        -                      "unknown"
        -                    ],
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "status"
        -                ],
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "redacted_paths": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "request_id": {
        -            "type": "string"
        -          },
        -          "sandbox": {
        -            "enum": [
        -              "read-only",
        -              "workspace-write",
        -              "danger-full-access"
        -            ],
        -            "type": "string"
        -          },
        -          "scope": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "security_warnings": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "session_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "tier": {
        -            "enum": [
        -              "consult",
        -              "propose",
        -              "apply"
        -            ],
        -            "type": "string"
        -          },
        -          "timeout_seconds": {
        -            "type": "integer"
        -          },
        -          "truncated": {
        -            "type": "boolean"
        -          },
        -          "truncation_hint": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "usage": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "cached_input_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "input_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "output_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "total_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_source": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_warning": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "required": [
        -          "cwd",
        -          "tier",
        -          "sandbox",
        -          "isolation",
        -          "timeout_seconds",
        -          "elapsed_ms"
        -        ],
        -        "type": "object"
        -      },
        -      "next_steps": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "questions": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "raw_response": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "model": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "session_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "text": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "type": "object"
        -      },
        -      "summary": {
        -        "type": "string"
        -      },
        -      "tool": {
        -        "const": "codex_delegate",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "summary",
        -      "meta"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "assumptions": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "findings": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "evidence": {
        -              "type": "string"
        -            },
        -            "file": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "line": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "line_end": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "recommendation": {
        -              "type": "string"
        -            },
        -            "risk": {
        -              "type": "string"
        -            },
        -            "severity": {
        -              "enum": [
        -                "critical",
        -                "high",
        -                "medium",
        -                "low",
        -                "nit"
        -              ],
        -              "type": "string"
        -            },
        -            "title": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "severity",
        -            "title",
        -            "evidence",
        -            "risk",
        -            "recommendation"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "meta": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "base": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "command_exit_code": {
        -            "anyOf": [
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "commit": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "compat_warnings": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "context_summary": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "files_changed": {
        -                    "type": "integer"
        -                  },
        -                  "lines_added": {
        -                    "type": "integer"
        -                  },
        -                  "lines_removed": {
        -                    "type": "integer"
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "cwd": {
        -            "type": "string"
        -          },
        -          "elapsed_ms": {
        -            "type": "integer"
        -          },
        -          "fingerprint": {
        -            "type": "string"
        -          },
        -          "isolation": {
        -            "enum": [
        -              "inherit",
        -              "ignore-config",
        -              "ignore-rules"
        -            ],
        -            "type": "string"
        -          },
        -          "job_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "model": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "paths": {
        -            "anyOf": [
        -              {
        -                "items": {
        -                  "type": "string"
        -                },
        -                "type": "array"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "rate_limit": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "age_seconds": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "as_of": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "home_unverified": {
        -                    "type": "boolean"
        -                  },
        -                  "is_stale": {
        -                    "type": "boolean"
        -                  },
        -                  "limiting_window": {
        -                    "anyOf": [
        -                      {
        -                        "enum": [
        -                          "primary",
        -                          "secondary"
        -                        ],
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "note": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "plan_type": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "primary": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "remaining_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "reset_passed": {
        -                            "type": "boolean"
        -                          },
        -                          "resets_at": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "seconds_until_reset": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "used_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "window_minutes": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          }
        -                        },
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "secondary": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "remaining_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "reset_passed": {
        -                            "type": "boolean"
        -                          },
        -                          "resets_at": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "seconds_until_reset": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "used_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "window_minutes": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          }
        -                        },
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "source": {
        -                    "enum": [
        -                      "current_run",
        -                      "plugin_cache"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "status": {
        -                    "enum": [
        -                      "available",
        -                      "limited",
        -                      "exhausted",
        -                      "unknown"
        -                    ],
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "status"
        -                ],
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "redacted_paths": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "request_id": {
        -            "type": "string"
        -          },
        -          "sandbox": {
        -            "enum": [
        -              "read-only",
        -              "workspace-write",
        -              "danger-full-access"
        -            ],
        -            "type": "string"
        -          },
        -          "scope": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "security_warnings": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "session_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "tier": {
        -            "enum": [
        -              "consult",
        -              "propose",
        -              "apply"
        -            ],
        -            "type": "string"
        -          },
        -          "timeout_seconds": {
        -            "type": "integer"
        -          },
        -          "truncated": {
        -            "type": "boolean"
        -          },
        -          "truncation_hint": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "usage": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "cached_input_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "input_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "output_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "total_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_source": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_warning": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "required": [
        -          "cwd",
        -          "tier",
        -          "sandbox",
        -          "isolation",
        -          "timeout_seconds",
        -          "elapsed_ms"
        -        ],
        -        "type": "object"
        -      },
        -      "next_steps": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "questions": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "raw_response": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "model": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "session_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "text": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "type": "object"
        -      },
        -      "summary": {
        -        "type": "string"
        -      },
        -      "tool": {
        -        "const": "codex_consult",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "summary",
        -      "meta"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "assumptions": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "confidence": {
        -        "enum": [
        -          "low",
        -          "medium",
        -          "high"
        -        ],
        -        "type": "string"
        -      },
        -      "findings": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "evidence": {
        -              "type": "string"
        -            },
        -            "file": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "line": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "line_end": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "recommendation": {
        -              "type": "string"
        -            },
        -            "risk": {
        -              "type": "string"
        -            },
        -            "severity": {
        -              "enum": [
        -                "critical",
        -                "high",
        -                "medium",
        -                "low",
        -                "nit"
        -              ],
        -              "type": "string"
        -            },
        -            "title": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "severity",
        -            "title",
        -            "evidence",
        -            "risk",
        -            "recommendation"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "meta": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "base": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "command_exit_code": {
        -            "anyOf": [
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "commit": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "compat_warnings": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "context_summary": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "files_changed": {
        -                    "type": "integer"
        -                  },
        -                  "lines_added": {
        -                    "type": "integer"
        -                  },
        -                  "lines_removed": {
        -                    "type": "integer"
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "cwd": {
        -            "type": "string"
        -          },
        -          "elapsed_ms": {
        -            "type": "integer"
        -          },
        -          "fingerprint": {
        -            "type": "string"
        -          },
        -          "isolation": {
        -            "enum": [
        -              "inherit",
        -              "ignore-config",
        -              "ignore-rules"
        -            ],
        -            "type": "string"
        -          },
        -          "job_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "model": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "paths": {
        -            "anyOf": [
        -              {
        -                "items": {
        -                  "type": "string"
        -                },
        -                "type": "array"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "rate_limit": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "age_seconds": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "as_of": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "home_unverified": {
        -                    "type": "boolean"
        -                  },
        -                  "is_stale": {
        -                    "type": "boolean"
        -                  },
        -                  "limiting_window": {
        -                    "anyOf": [
        -                      {
        -                        "enum": [
        -                          "primary",
        -                          "secondary"
        -                        ],
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "note": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "plan_type": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "primary": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "remaining_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "reset_passed": {
        -                            "type": "boolean"
        -                          },
        -                          "resets_at": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "seconds_until_reset": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "used_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "window_minutes": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          }
        -                        },
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "secondary": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "remaining_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "reset_passed": {
        -                            "type": "boolean"
        -                          },
        -                          "resets_at": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "seconds_until_reset": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "used_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "window_minutes": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          }
        -                        },
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "source": {
        -                    "enum": [
        -                      "current_run",
        -                      "plugin_cache"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "status": {
        -                    "enum": [
        -                      "available",
        -                      "limited",
        -                      "exhausted",
        -                      "unknown"
        -                    ],
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "status"
        -                ],
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "redacted_paths": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "request_id": {
        -            "type": "string"
        -          },
        -          "sandbox": {
        -            "enum": [
        -              "read-only",
        -              "workspace-write",
        -              "danger-full-access"
        -            ],
        -            "type": "string"
        -          },
        -          "scope": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "security_warnings": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "session_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "tier": {
        -            "enum": [
        -              "consult",
        -              "propose",
        -              "apply"
        -            ],
        -            "type": "string"
        -          },
        -          "timeout_seconds": {
        -            "type": "integer"
        -          },
        -          "truncated": {
        -            "type": "boolean"
        -          },
        -          "truncation_hint": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "usage": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "cached_input_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "input_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "output_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "total_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_source": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_warning": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "required": [
        -          "cwd",
        -          "tier",
        -          "sandbox",
        -          "isolation",
        -          "timeout_seconds",
        -          "elapsed_ms"
        -        ],
        -        "type": "object"
        -      },
        -      "next_steps": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "questions": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "raw_response": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "model": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "session_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "text": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "type": "object"
        -      },
        -      "summary": {
        -        "type": "string"
        -      },
        -      "tool": {
        -        "const": "codex_review_changes",
        -        "type": "string"
        -      },
        -      "verdict": {
        -        "enum": [
        -          "pass",
        -          "concerns",
        -          "fail",
        -          "unknown"
        -        ],
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "summary",
        -      "meta"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "properties": {
        +      "ok": {
        +        "const": true
        +      },
        +      "tool": {
        +        "description": "Originating tool; the payload matches that tool's advertised outputSchema success branch — branch on this field.",
        +        "enum": [
        +          "codex_consult",
        +          "codex_review_changes",
        +          "codex_delegate"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "tool"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
      • addedOutput schema / properties / ok / description
        Added value: +"true = success result, false = error result"
    • Changedcodex_job_status2 fields changed
      • changedInput schema / properties / job_id / description
        Previous value: -"The job_id returned by an *_async call (codex_*_async); recover lost ids with codex_job_list."New value: +"The job_id from an *_async call or a sync call's meta.job_id; recover lost ids with codex_job_list."
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcodex_models1 field changed
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedcodex_review_changes4 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 200,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional client-supplied dedup key, scoped to THIS concrete tool on the same workspace. Reusing it on the same tool with the same arguments replays the existing run instead of starting — and paying for — a duplicate Codex call (a sync call reattaches to the in-flight run and returns its result; an _async call returns the same job_id). The sync and _async variants are DIFFERENT tools and never share a key's run. Reuse with different arguments — including a different timeout_seconds — is refused (idempotency_conflict); a key whose prior result was already consumed/evicted is idempotency_result_unavailable; a still-publishing reservation is idempotency_in_progress (retry). Omit it for the prior no-dedup behavior. A completed result stays replayable while its job record lives (its TTL), subject to consumption or count-eviction; the fail-closed conflict/in-progress window can last longer — up to the job's max runtime + termination grace + TTL. meta.idempotency_replayed=true marks a replayed (unpaid) response."
        +}
      • changedInput schema / properties / isolation / description
        Previous value: -"Codex config isolation: 'inherit' (default), 'ignore-config', or 'ignore-rules'."New value: +"Codex config isolation: 'inherit', 'ignore-config', or 'ignore-rules'. Defaults to the server's configured isolation (built-in default 'inherit'; `codex_status` reports the resolved value)."
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "assumptions": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "confidence": {
        -        "enum": [
        -          "low",
        -          "medium",
        -          "high"
        -        ],
        -        "type": "string"
        -      },
        -      "findings": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "evidence": {
        -              "type": "string"
        -            },
        -            "file": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "line": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "line_end": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "recommendation": {
        -              "type": "string"
        -            },
        -            "risk": {
        -              "type": "string"
        -            },
        -            "severity": {
        -              "enum": [
        -                "critical",
        -                "high",
        -                "medium",
        -                "low",
        -                "nit"
        -              ],
        -              "type": "string"
        -            },
        -            "title": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "severity",
        -            "title",
        -            "evidence",
        -            "risk",
        -            "recommendation"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "meta": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "base": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "command_exit_code": {
        -            "anyOf": [
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "commit": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "compat_warnings": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "context_summary": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "files_changed": {
        -                    "type": "integer"
        -                  },
        -                  "lines_added": {
        -                    "type": "integer"
        -                  },
        -                  "lines_removed": {
        -                    "type": "integer"
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "cwd": {
        -            "type": "string"
        -          },
        -          "elapsed_ms": {
        -            "type": "integer"
        -          },
        -          "fingerprint": {
        -            "type": "string"
        -          },
        -          "isolation": {
        -            "enum": [
        -              "inherit",
        -              "ignore-config",
        -              "ignore-rules"
        -            ],
        -            "type": "string"
        -          },
        -          "job_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "model": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "paths": {
        -            "anyOf": [
        -              {
        -                "items": {
        -                  "type": "string"
        -                },
        -                "type": "array"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "rate_limit": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "age_seconds": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "as_of": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "home_unverified": {
        -                    "type": "boolean"
        -                  },
        -                  "is_stale": {
        -                    "type": "boolean"
        -                  },
        -                  "limiting_window": {
        -                    "anyOf": [
        -                      {
        -                        "enum": [
        -                          "primary",
        -                          "secondary"
        -                        ],
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "note": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "plan_type": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "primary": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "remaining_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "reset_passed": {
        -                            "type": "boolean"
        -                          },
        -                          "resets_at": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "seconds_until_reset": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "used_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "window_minutes": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          }
        -                        },
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "secondary": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "remaining_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "reset_passed": {
        -                            "type": "boolean"
        -                          },
        -                          "resets_at": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "seconds_until_reset": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "used_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "window_minutes": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          }
        -                        },
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "source": {
        -                    "enum": [
        -                      "current_run",
        -                      "plugin_cache"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "status": {
        -                    "enum": [
        -                      "available",
        -                      "limited",
        -                      "exhausted",
        -                      "unknown"
        -                    ],
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "status"
        -                ],
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "redacted_paths": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "request_id": {
        -            "type": "string"
        -          },
        -          "sandbox": {
        -            "enum": [
        -              "read-only",
        -              "workspace-write",
        -              "danger-full-access"
        -            ],
        -            "type": "string"
        -          },
        -          "scope": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "security_warnings": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "session_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "tier": {
        -            "enum": [
        -              "consult",
        -              "propose",
        -              "apply"
        -            ],
        -            "type": "string"
        -          },
        -          "timeout_seconds": {
        -            "type": "integer"
        -          },
        -          "truncated": {
        -            "type": "boolean"
        -          },
        -          "truncation_hint": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "usage": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "cached_input_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "input_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "output_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "total_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_source": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_warning": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "required": [
        -          "cwd",
        -          "tier",
        -          "sandbox",
        -          "isolation",
        -          "timeout_seconds",
        -          "elapsed_ms"
        -        ],
        -        "type": "object"
        -      },
        -      "next_steps": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "questions": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "raw_response": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "model": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "session_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "text": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "type": "object"
        -      },
        -      "summary": {
        -        "type": "string"
        -      },
        -      "tool": {
        -        "const": "codex_review_changes",
        -        "type": "string"
        -      },
        -      "verdict": {
        -        "enum": [
        -          "pass",
        -          "concerns",
        -          "fail",
        -          "unknown"
        -        ],
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "summary",
        -      "meta"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "assumptions": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "confidence": {
        +        "enum": [
        +          "low",
        +          "medium",
        +          "high"
        +        ],
        +        "type": "string"
        +      },
        +      "findings": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "evidence": {
        +              "type": "string"
        +            },
        +            "file": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "line": {
        +              "anyOf": [
        +                {
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "line_end": {
        +              "anyOf": [
        +                {
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "recommendation": {
        +              "type": "string"
        +            },
        +            "risk": {
        +              "type": "string"
        +            },
        +            "severity": {
        +              "enum": [
        +                "critical",
        +                "high",
        +                "medium",
        +                "low",
        +                "nit"
        +              ],
        +              "type": "string"
        +            },
        +            "title": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "severity",
        +            "title",
        +            "evidence",
        +            "risk",
        +            "recommendation"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "meta": {
        +        "description": "Result metadata (cwd, tier, sandbox, model, timeout, usage, rate_limit, and more); full schema at resource codex://result-meta",
        +        "type": "object"
        +      },
        +      "next_steps": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "questions": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "raw_response": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "model": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "session_id": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "text": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "summary": {
        +        "type": "string"
        +      },
        +      "tool": {
        +        "const": "codex_review_changes",
        +        "type": "string"
        +      },
        +      "verdict": {
        +        "enum": [
        +          "pass",
        +          "concerns",
        +          "fail",
        +          "unknown"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "summary",
        +      "meta"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_review_changes_async4 fields changed
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 200,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional client-supplied dedup key, scoped to THIS concrete tool on the same workspace. Reusing it on the same tool with the same arguments replays the existing run instead of starting — and paying for — a duplicate Codex call (a sync call reattaches to the in-flight run and returns its result; an _async call returns the same job_id). The sync and _async variants are DIFFERENT tools and never share a key's run. Reuse with different arguments — including a different timeout_seconds — is refused (idempotency_conflict); a key whose prior result was already consumed/evicted is idempotency_result_unavailable; a still-publishing reservation is idempotency_in_progress (retry). Omit it for the prior no-dedup behavior. A completed result stays replayable while its job record lives (its TTL), subject to consumption or count-eviction; the fail-closed conflict/in-progress window can last longer — up to the job's max runtime + termination grace + TTL. meta.idempotency_replayed=true marks a replayed (unpaid) response."
        +}
      • changedInput schema / properties / isolation / description
        Previous value: -"Codex config isolation: 'inherit' (default), 'ignore-config', or 'ignore-rules'."New value: +"Codex config isolation: 'inherit', 'ignore-config', or 'ignore-rules'. Defaults to the server's configured isolation (built-in default 'inherit'; `codex_status` reports the resolved value)."
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "deadline_seconds": {
        -        "type": "integer"
        -      },
        -      "expires_at": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "job_id": {
        -        "type": "string"
        -      },
        -      "kind": {
        -        "type": "string"
        -      },
        -      "meta": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "base": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "command_exit_code": {
        -            "anyOf": [
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "commit": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "compat_warnings": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "context_summary": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "files_changed": {
        -                    "type": "integer"
        -                  },
        -                  "lines_added": {
        -                    "type": "integer"
        -                  },
        -                  "lines_removed": {
        -                    "type": "integer"
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "cwd": {
        -            "type": "string"
        -          },
        -          "elapsed_ms": {
        -            "type": "integer"
        -          },
        -          "fingerprint": {
        -            "type": "string"
        -          },
        -          "isolation": {
        -            "enum": [
        -              "inherit",
        -              "ignore-config",
        -              "ignore-rules"
        -            ],
        -            "type": "string"
        -          },
        -          "job_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "model": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "paths": {
        -            "anyOf": [
        -              {
        -                "items": {
        -                  "type": "string"
        -                },
        -                "type": "array"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "rate_limit": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "age_seconds": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "as_of": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "home_unverified": {
        -                    "type": "boolean"
        -                  },
        -                  "is_stale": {
        -                    "type": "boolean"
        -                  },
        -                  "limiting_window": {
        -                    "anyOf": [
        -                      {
        -                        "enum": [
        -                          "primary",
        -                          "secondary"
        -                        ],
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "note": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "plan_type": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "primary": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "remaining_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "reset_passed": {
        -                            "type": "boolean"
        -                          },
        -                          "resets_at": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "seconds_until_reset": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "used_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "window_minutes": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          }
        -                        },
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "secondary": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "remaining_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "reset_passed": {
        -                            "type": "boolean"
        -                          },
        -                          "resets_at": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "seconds_until_reset": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "used_percent": {
        -                            "anyOf": [
        -                              {
        -                                "type": "number"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          },
        -                          "window_minutes": {
        -                            "anyOf": [
        -                              {
        -                                "type": "integer"
        -                              },
        -                              {
        -                                "type": "null"
        -                              }
        -                            ]
        -                          }
        -                        },
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "source": {
        -                    "enum": [
        -                      "current_run",
        -                      "plugin_cache"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "status": {
        -                    "enum": [
        -                      "available",
        -                      "limited",
        -                      "exhausted",
        -                      "unknown"
        -                    ],
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "status"
        -                ],
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "redacted_paths": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "request_id": {
        -            "type": "string"
        -          },
        -          "sandbox": {
        -            "enum": [
        -              "read-only",
        -              "workspace-write",
        -              "danger-full-access"
        -            ],
        -            "type": "string"
        -          },
        -          "scope": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "security_warnings": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "session_id": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "tier": {
        -            "enum": [
        -              "consult",
        -              "propose",
        -              "apply"
        -            ],
        -            "type": "string"
        -          },
        -          "timeout_seconds": {
        -            "type": "integer"
        -          },
        -          "truncated": {
        -            "type": "boolean"
        -          },
        -          "truncation_hint": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "usage": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "cached_input_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "input_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "output_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "total_tokens": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_source": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "workspace_warning": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "required": [
        -          "cwd",
        -          "tier",
        -          "sandbox",
        -          "isolation",
        -          "timeout_seconds",
        -          "elapsed_ms"
        -        ],
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "poll_after_ms": {
        -        "type": "integer"
        -      },
        -      "started_at": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "enum": [
        -          "running",
        -          "done",
        -          "failed",
        -          "cancelled",
        -          "timeout"
        -        ],
        -        "type": "string"
        -      },
        -      "ttl_seconds": {
        -        "type": "integer"
        -      }
        -    },
        -    "required": [
        -      "job_id",
        -      "kind",
        -      "started_at",
        -      "deadline_seconds",
        -      "ttl_seconds",
        -      "meta"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "deadline_seconds": {
        +        "type": "integer"
        +      },
        +      "expires_at": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "job_id": {
        +        "type": "string"
        +      },
        +      "kind": {
        +        "type": "string"
        +      },
        +      "meta": {
        +        "description": "Result metadata (cwd, tier, sandbox, model, timeout, usage, rate_limit, and more); full schema at resource codex://result-meta",
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "poll_after_ms": {
        +        "type": "integer"
        +      },
        +      "started_at": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "enum": [
        +          "running",
        +          "done",
        +          "failed",
        +          "cancelled",
        +          "timeout"
        +        ],
        +        "type": "string"
        +      },
        +      "ttl_seconds": {
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "job_id",
        +      "kind",
        +      "started_at",
        +      "deadline_seconds",
        +      "ttl_seconds",
        +      "meta"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcodex_status2 fields changed
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "auth_detail": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "caveat": {
        -        "type": "string"
        -      },
        -      "codex_authenticated": {
        -        "anyOf": [
        -          {
        -            "type": "boolean"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "codex_found": {
        -        "type": "boolean"
        -      },
        -      "codex_version": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "fingerprint": {
        -        "type": "string"
        -      },
        -      "flags_warning": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "ok": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "rate_limit": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "age_seconds": {
        -            "anyOf": [
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "as_of": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "home_unverified": {
        -            "type": "boolean"
        -          },
        -          "is_stale": {
        -            "type": "boolean"
        -          },
        -          "limiting_window": {
        -            "anyOf": [
        -              {
        -                "enum": [
        -                  "primary",
        -                  "secondary"
        -                ],
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "note": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "plan_type": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "primary": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "remaining_percent": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "reset_passed": {
        -                    "type": "boolean"
        -                  },
        -                  "resets_at": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "seconds_until_reset": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "used_percent": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "window_minutes": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "secondary": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "remaining_percent": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "reset_passed": {
        -                    "type": "boolean"
        -                  },
        -                  "resets_at": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "seconds_until_reset": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "used_percent": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "window_minutes": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  }
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "source": {
        -            "enum": [
        -              "current_run",
        -              "plugin_cache"
        -            ],
        -            "type": "string"
        -          },
        -          "status": {
        -            "enum": [
        -              "available",
        -              "limited",
        -              "exhausted",
        -              "unknown"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "status"
        -        ],
        -        "type": "object"
        -      },
        -      "raw_defaults": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "isolation": {
        -            "type": "string"
        -          },
        -          "model": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "sandbox": {
        -            "type": "string"
        -          },
        -          "tier": {
        -            "type": "string"
        -          },
        -          "timeout_seconds": {
        -            "type": "integer"
        -          }
        -        },
        -        "required": [
        -          "tier",
        -          "sandbox",
        -          "isolation",
        -          "timeout_seconds"
        -        ],
        -        "type": "object"
        -      },
        -      "readiness_detail": {
        -        "type": "string"
        -      },
        -      "ready": {
        -        "type": "boolean"
        -      },
        -      "resolved_defaults": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "isolation": {
        -            "enum": [
        -              "inherit",
        -              "ignore-config",
        -              "ignore-rules"
        -            ],
        -            "type": "string"
        -          },
        -          "model": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "sandbox": {
        -            "enum": [
        -              "read-only",
        -              "workspace-write",
        -              "danger-full-access"
        -            ],
        -            "type": "string"
        -          },
        -          "tier": {
        -            "enum": [
        -              "consult",
        -              "propose",
        -              "apply"
        -            ],
        -            "type": "string"
        -          },
        -          "timeout_bounds": {
        -            "items": {
        -              "type": "integer"
        -            },
        -            "type": "array"
        -          },
        -          "timeout_seconds": {
        -            "type": "integer"
        -          }
        -        },
        -        "required": [
        -          "tier",
        -          "sandbox",
        -          "isolation",
        -          "timeout_seconds",
        -          "timeout_bounds"
        -        ],
        -        "type": "object"
        -      },
        -      "version_supported": {
        -        "anyOf": [
        -          {
        -            "type": "boolean"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "version_warning": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      }
        -    },
        -    "required": [
        -      "codex_found",
        -      "readiness_detail",
        -      "raw_defaults",
        -      "resolved_defaults",
        -      "caveat"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "error": {
        -        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        -        "type": "object"
        -      },
        -      "meta": {
        -        "type": "object"
        -      },
        -      "ok": {
        -        "const": false
        -      }
        -    },
        -    "required": [
        -      "ok",
        -      "error",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "auth_detail": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "caveat": {
        +        "type": "string"
        +      },
        +      "codex_authenticated": {
        +        "anyOf": [
        +          {
        +            "type": "boolean"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "codex_found": {
        +        "type": "boolean"
        +      },
        +      "codex_version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "fingerprint": {
        +        "type": "string"
        +      },
        +      "flags_warning": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "ok": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "rate_limit": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "age_seconds": {
        +            "anyOf": [
        +              {
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "as_of": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "home_unverified": {
        +            "type": "boolean"
        +          },
        +          "is_stale": {
        +            "type": "boolean"
        +          },
        +          "limiting_window": {
        +            "anyOf": [
        +              {
        +                "enum": [
        +                  "primary",
        +                  "secondary"
        +                ],
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "note": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "plan_type": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "primary": {
        +            "anyOf": [
        +              {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "remaining_percent": {
        +                    "anyOf": [
        +                      {
        +                        "type": "number"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  },
        +                  "reset_passed": {
        +                    "type": "boolean"
        +                  },
        +                  "resets_at": {
        +                    "anyOf": [
        +                      {
        +                        "type": "string"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  },
        +                  "seconds_until_reset": {
        +                    "anyOf": [
        +                      {
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  },
        +                  "used_percent": {
        +                    "anyOf": [
        +                      {
        +                        "type": "number"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  },
        +                  "window_minutes": {
        +                    "anyOf": [
        +                      {
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  }
        +                },
        +                "type": "object"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "secondary": {
        +            "anyOf": [
        +              {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "remaining_percent": {
        +                    "anyOf": [
        +                      {
        +                        "type": "number"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  },
        +                  "reset_passed": {
        +                    "type": "boolean"
        +                  },
        +                  "resets_at": {
        +                    "anyOf": [
        +                      {
        +                        "type": "string"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  },
        +                  "seconds_until_reset": {
        +                    "anyOf": [
        +                      {
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  },
        +                  "used_percent": {
        +                    "anyOf": [
        +                      {
        +                        "type": "number"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  },
        +                  "window_minutes": {
        +                    "anyOf": [
        +                      {
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  }
        +                },
        +                "type": "object"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "source": {
        +            "enum": [
        +              "current_run",
        +              "plugin_cache"
        +            ],
        +            "type": "string"
        +          },
        +          "status": {
        +            "enum": [
        +              "available",
        +              "limited",
        +              "exhausted",
        +              "unknown"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "status"
        +        ],
        +        "type": "object"
        +      },
        +      "raw_defaults": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "isolation": {
        +            "type": "string"
        +          },
        +          "model": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "sandbox": {
        +            "type": "string"
        +          },
        +          "tier": {
        +            "type": "string"
        +          },
        +          "timeout_seconds": {
        +            "type": "integer"
        +          }
        +        },
        +        "required": [
        +          "tier",
        +          "sandbox",
        +          "isolation",
        +          "timeout_seconds"
        +        ],
        +        "type": "object"
        +      },
        +      "readiness_detail": {
        +        "type": "string"
        +      },
        +      "ready": {
        +        "type": "boolean"
        +      },
        +      "resolved_defaults": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "isolation": {
        +            "enum": [
        +              "inherit",
        +              "ignore-config",
        +              "ignore-rules"
        +            ],
        +            "type": "string"
        +          },
        +          "model": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "sandbox": {
        +            "enum": [
        +              "read-only",
        +              "workspace-write",
        +              "danger-full-access"
        +            ],
        +            "type": "string"
        +          },
        +          "tier": {
        +            "enum": [
        +              "consult",
        +              "propose",
        +              "apply"
        +            ],
        +            "type": "string"
        +          },
        +          "timeout_bounds": {
        +            "items": {
        +              "type": "integer"
        +            },
        +            "type": "array"
        +          },
        +          "timeout_seconds": {
        +            "type": "integer"
        +          }
        +        },
        +        "required": [
        +          "tier",
        +          "sandbox",
        +          "isolation",
        +          "timeout_seconds",
        +          "timeout_bounds"
        +        ],
        +        "type": "object"
        +      },
        +      "version_supported": {
        +        "anyOf": [
        +          {
        +            "type": "boolean"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "version_warning": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      }
        +    },
        +    "required": [
        +      "codex_found",
        +      "readiness_detail",
        +      "raw_defaults",
        +      "resolved_defaults",
        +      "caveat"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "error": {
        +        "description": "Populated error envelope; full schema at resource codex://error-envelope",
        +        "type": "object"
        +      },
        +      "meta": {
        +        "type": "object"
        +      },
        +      "ok": {
        +        "const": false
        +      }
        +    },
        +    "required": [
        +      "ok",
        +      "error",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
  8. 5 tool updatesv0.6.0
    • Changedcodex_consult1 field changed
      • changedInput schema / properties / extra_context / description
        Previous value: -"Optional author intent / background, added to the prompt as clearly-labeled UNTRUSTED context (directives inside it are never obeyed)."New value: +"Optional author intent / background context, added to the prompt as clearly-labeled UNTRUSTED data. Codex is instructed to treat embedded directives as data, not commands — best-effort prompt-injection mitigation, not a guarantee. Don't include live secrets: Codex can read files it's pointed at, and redaction does not cover this field."
    • Changedcodex_consult_async1 field changed
      • changedInput schema / properties / extra_context / description
        Previous value: -"Optional author intent / background, added to the prompt as clearly-labeled UNTRUSTED context (directives inside it are never obeyed)."New value: +"Optional author intent / background context, added to the prompt as clearly-labeled UNTRUSTED data. Codex is instructed to treat embedded directives as data, not commands — best-effort prompt-injection mitigation, not a guarantee. Don't include live secrets: Codex can read files it's pointed at, and redaction does not cover this field."
    • Changedcodex_dry_run1 field changed
      • changedInput schema / properties / extra_context / description
        Previous value: -"Optional author intent / background, added to the prompt as clearly-labeled UNTRUSTED context (directives inside it are never obeyed)."New value: +"Optional author intent / background context, added to the prompt as clearly-labeled UNTRUSTED data. Codex is instructed to treat embedded directives as data, not commands — best-effort prompt-injection mitigation, not a guarantee. Don't include live secrets: Codex can read files it's pointed at, and redaction does not cover this field."
    • Changedcodex_review_changes1 field changed
      • changedInput schema / properties / extra_context / description
        Previous value: -"Optional author intent / background, added to the prompt as clearly-labeled UNTRUSTED context (directives inside it are never obeyed)."New value: +"Optional author intent / background context, added to the prompt as clearly-labeled UNTRUSTED data. Codex is instructed to treat embedded directives as data, not commands — best-effort prompt-injection mitigation, not a guarantee. Don't include live secrets: Codex can read files it's pointed at, and redaction does not cover this field."
    • Changedcodex_review_changes_async1 field changed
      • changedInput schema / properties / extra_context / description
        Previous value: -"Optional author intent / background, added to the prompt as clearly-labeled UNTRUSTED context (directives inside it are never obeyed)."New value: +"Optional author intent / background context, added to the prompt as clearly-labeled UNTRUSTED data. Codex is instructed to treat embedded directives as data, not commands — best-effort prompt-injection mitigation, not a guarantee. Don't include live secrets: Codex can read files it's pointed at, and redaction does not cover this field."
  9. 16 tool updatesv0.5.0
    • First observedcodex_capabilities
    • First observedcodex_consult
    • First observedcodex_consult_async
    • First observedcodex_delegate
    • First observedcodex_delegate_async
    • First observedcodex_delegate_dry_run
    • First observedcodex_dry_run
    • First observedcodex_job_cancel
    • First observedcodex_job_consume_result
    • First observedcodex_job_list
    • First observedcodex_job_result
    • First observedcodex_job_status
    • First observedcodex_models
    • First observedcodex_review_changes
    • First observedcodex_review_changes_async
    • First observedcodex_status

TDQS

A4.4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: status checks setup, transfer hands off sessions, capabilities lists tools, models lists models, consult answers questions, review_changes reviews git diffs, delegate implements in a worktree, dry runs preview, and job_* tools manage async jobs. The sync/async pairs are clearly marked with _async, and dry runs are separate tools, so an agent can reliably select the right one.

Naming Consistency4/5

All tools consistently use the codex_ prefix, and related groups follow predictable suffixes: _async for background jobs, _dry_run for previews, and job_ for lifecycle management. There is some variation in the base pattern (verb like consult, noun like status, verb_noun like review_changes), but the overall structure is logical and readable.

Tool Count4/5

At 17 tools, the set is slightly above the ideal 3-15 range, but the count is justified by the comprehensive scope: setup verification, capabilities, models, consultation, review, delegation, dry-run previews, and full async job lifecycle management. Each tool earns its place without redundancy.

Completeness5/5

The tool surface covers the full lifecycle for integrating Codex: pre-flight checks (codex_status), discovery (capabilities, models), execution (consult, review, delegate), preview (dry runs), async execution and management (async variants, job_status/result/consume/cancel/list), and session transfer. No obvious gaps in the domain are apparent.

Maintenance

ActivityActive
ResponsivenessResponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/briandconnelly/codex-in-claude'

If you have feedback or need assistance with the MCP directory API, please join our Discord server