Skip to main content
Glama

sol-luna-orchestrator

npm npm downloads M8ven Verified Node License: MIT

Give Codex a team of workers for substantial tasks, with clear scopes and independently checked results.

Sol plans the work and reviews the outcome. Luna workers handle bounded tasks, with parallel work isolated in separate Git worktrees. The orchestrator checks what actually changed, reruns verification, and returns evidence for the parent to review. Workers cannot delegate further.

Use one worker for a focused task, sequential workers for dependent steps, or parallel workers for independent work. Codex can also stay solo when delegation would add more overhead than value.

Quick start

You need Node.js 22.12 or newer and a logged-in OpenAI Codex CLI.

npm install -g sol-luna-orchestrator
sol-luna-orchestrator init
sol-luna-orchestrator doctor

Start a fresh Codex session and work normally. Codex can discover the orchestrator and choose when to delegate; you do not need to select workers or call MCP tools yourself.

Watch task progress in another terminal:

sol-luna-orchestrator activity --watch

Use status to inspect setup and doctor to diagnose problems. For clone installs, model settings, and advanced options, see Configuration.

Related MCP server: Codex Gemini Delegator V2

How it works

Codex parent
    |
    +--> stay solo
    +--> optional read-only explore or routing preflight
    +--> bounded contract: scope + intent + acceptance + verification
              |
              +--> one Luna worker
              +--> sequential workers sharing workspace state
              +--> parallel workers in isolated worktrees
                            |
                            v
               observed edits + authoritative verification
                            |
                            v
             thin verified handoff, evidence, or next action

The parent chooses the execution shape. A user-owned compute policy bounds the worker model, effort, count, and concurrency; adaptive routing may recommend solo, single, sequential, or parallel execution but never widens that policy. The orchestrator reconciles worker claims with observed changes and reruns the declared checks, including a final deduplicated batch check after integration. See discovery and adaptive routing for the fresh-session setup and routing guidance.

Any compatible parent model may supervise. You can pin a worker model or opt into automatic Luna selection, which freezes the chosen model for each server session. See model selection for defaults, configuration, and availability limits.

Features

Capability

What it provides

Adaptive orchestration

Choose solo, single, sequential, or parallel work within your model, effort, and concurrency limits.

Isolated parallel execution

Give independent workers separate worktrees, then check scopes and conflicts before integration.

Authoritative verification

Check observed edits and rerun declared checks, including final batch verification after integration.

Bounded repair and recovery

Allow an eligible repair or recovery attempt without uncontrolled retry chains.

Continuations and next actions

Resume eligible work under its original contract and single-use execution authority.

Context lifecycle management

Keep routine handoffs compact while preserving evidence and execution history for review.

Read-only exploration and portable context

Investigate an admitted scope and carry informational history across sessions.

Observability and diagnostics

Inspect progress, results, and setup without exposing task prompts in the activity stream.

MCP surface

The normal parent process registers exactly five MCP tools:

  • delegate_task - run one bounded task.

  • delegate_tasks - run sequential or parallel task batches.

  • continue_task - resume an eligible task with an explicit follow-up.

  • routing_preflight - after cheap bounded structural inspection, classify concrete candidate leaves and ask for advisory routing guidance.

  • explore - investigate an admitted scope without changing it.

Worker processes register no MCP tools and cannot recurse into delegation. The workflow coordinator and cross-session handoff helpers are programmatic APIs, not additional MCP tools. Cross-session handoff data is informational: it does not grant authority, retry permission, continuation rights, or a wider compute policy.

Safety

Delegated work runs under server-enforced compute policy and declared-scope controls; parallel workers use isolated worktrees, and the runtime detects and reports scope or integration conflicts. These are guardrails, not an absolute sandbox: workers write real files, and some execution runs with the operator's permissions. Read Security for the threat model and limitations.

Documentation

Contributing

Bug reports and pull requests are welcome. Start with Contributing.

License

MIT, see LICENSE.

Available Tools

5 tools
continue_taskContinue an eligible Luna taskA

Continue ONE eligible task once in the same Luna Codex thread with an opaque single-use continuationReference and one bounded instruction. The original objective, allowedFiles, forbiddenFiles, changeIntent, acceptance, and verification contract remain immutable; no widening fields exist. Luna cannot delegate, and continuation never starts automatic repair. Verification, scope checks, and evidence reconciliation run again. handoff is default; compact/full are compatibility modes. While pending with no meaningful new state, remain silent; do not narrate waiting or polling. Report only a result, error, cancellation, timeout, or actionable state change.

ParametersJSON Schema
NameRequiredDescriptionDefault
instructionYes
resultDetailNohandoff
continuationReferenceYes

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full behavioral burden and does so thoroughly. It discloses immutability of the original contract, no widening fields, no delegation, no automatic repair, re-running of verification/scope/evidence checks, resultDetail mode semantics, silence while pending, and the allowed report outcomes. This is exceptional transparency.

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 every clause earns its place, covering action, constraints, mutation semantics, verification behavior, output modes, and communication protocol. The primary action is front-loaded in the first sentence, and the rest provides necessary behavioral guardrails without 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 no annotations, no output schema, and the subtle semantics of continuation, the description is remarkably complete. It explains eligibility constraints, single-use token behavior, immutability, what will not happen, what checks rerun, mode defaults, and when to stay silent versus report. There is little an agent would need to infer on its own.

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 0%, so the description must compensate. It adds real semantics for the key parameters: 'opaque single-use continuationReference', 'one bounded instruction', and 'handoff is default; compact/full are compatibility modes' for resultDetail. It does not provide exhaustive per-parameter descriptions, but what it adds is meaningful and sufficient for invocation.

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 verb ('Continue'), a specific resource ('ONE eligible task'), and critical constraints ('once in the same Luna Codex thread', 'opaque single-use continuationReference'). It is clearly distinguished from siblings by explicitly noting 'Luna cannot delegate', so an agent can tell it apart from delegate_task/delegate_tasks.

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 clearly states the context for use: continuing an existing task in the same thread with a continuation reference. It provides exclusions such as 'Luna cannot delegate' and 'continuation never starts automatic repair', which helps differentiate from delegation and repair workflows. It does not name the exact alternative tool names, but the usage context is strong.

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

delegate_taskDelegate a bounded task to a Luna workerA

Delegate ONE substantial, bounded executable seam to gpt-5.6-luna; no second seam is required. Keep small, simple, or tightly coupled work solo. Tasks may be implementation, tests, bug fixing, refactoring, investigation, or chores. The parent owns architecture, decomposition, unresolved design, sequencing, interfaces, scope, acceptance, and final judgement. Luna owns scoped exploration, implementation, verification, and bounded repair; it cannot see the conversation or delegate.

Provide a self-contained objective, effortReason, acceptanceCriteria, verificationCommands, changeIntent, and honest scopes; add a concise activityLabel when safe and only repository-unavailable context. automaticRepair permits at most one conservative same-thread repair. Results include one evidence-derived failureDecision; parent owns nonautomatic actions. resultDetail=handoff is the default.

The runtime reruns declared checks and reconciles observed edits. A clean PASS returns a text-only VERIFIED_COMPLETE handoff: finish without rereading worker-owned files or rerunning passed checks unless a listed risk changes architecture. FAILED/BLOCKED, untrustworthy, discrepant, scope-violating, refused/skipped, or runtime-error results expand with evidence. Worker claims are not authoritative.

Delegate only when ownership, isolation, context, verification, latency, coordination risk, quality, and current parent-conditional credit economics beat fixed overhead; raw tokens are not credit cost and no saving is guaranteed. While pending with no meaningful new state, remain silent; do not narrate waiting or polling. Report only a result, error, cancellation, timeout, or actionable state change.

ParametersJSON Schema
NameRequiredDescriptionDefault
effortNohigh
contextNo
objectiveYes
allowedFilesNo
changeIntentNorequired
effortReasonYes
resultDetailNohandoff
taskCategoryNo
activityLabelNo
computePolicyNoOptional per-call compute envelope. Narrows this installation's operator-owned baseline only and can never widen it. Omit to use the baseline.
contextCapsuleNo
forbiddenFilesNo
timeoutSecondsNo
automaticRepairNo
handoffReferenceNo
previousAttemptsNo
routingPreflightNoOptional advisory routing declaration. Solo advice never blocks execution; declarations gate: every surface refuses empty seams, parallel also refuses mutable sharedState, shared-core coreOverlap, or tasks > seams. "unknown" biases advice solo, never refuses.
workingDirectoryNo
acceptanceCriteriaYes
verificationCommandsNo

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations provided, the description carries the full behavioral disclosure burden and does so thoroughly. It reveals that the worker cannot see the conversation or delegate, automaticRepair allows at most one conservative same-thread repair, the runtime reruns declared checks and reconciles edits, PASS returns a text-only VERIFIED_COMPLETE handoff, and failure/blocked results expand with evidence. It also states worker claims are not authoritative and the parent owns nonautomatic actions.

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 earns its place for a 20-parameter delegation tool. It is front-loaded with the core contract, then proceeds through submission requirements, runtime behavior, and agent etiquette. There is no filler and no repetition of schema enums.

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?

For a tool with no output schema, the description explains result types, handoff behavior, failure expansion, and verification semantics well. It covers when to delegate and what the worker can and cannot do. It is slightly less complete on explicit routing among sibling tools and on a few top-level parameters, but overall it gives an agent enough to invoke the tool 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 description coverage is only 10%, but the description compensates for the most important parameters: it tells the agent to provide a self-contained objective, effortReason, acceptanceCriteria, verificationCommands, changeIntent, and honest scopes; it clarifies activityLabel should be concise and only for repository-unavailable context; and it explains the behavior of automaticRepair and the default resultDetail=handoff. Some parameters such as contextCapsule, previousAttempts, and timeoutSeconds are left to schema inference, which keeps this from 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 states a specific verb and resource: 'Delegate ONE substantial, bounded executable seam to gpt-5.6-luna.' It also distinguishes itself from sibling tools by emphasizing this is a single-seam delegation, not a multi-seam or parallel operation, and lists allowed task categories. The parent/worker ownership split further clarifies what this tool is for.

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 and when-not-to-use guidance: 'Keep small, simple, or tightly coupled work solo' and 'Delegate only when ownership, isolation, context, verification, latency, coordination risk, quality, and current parent-conditional credit economics beat fixed overhead.' It also tells the agent to remain silent while pending and to report only meaningful state changes. This is strong operational guidance, even though it does not name sibling tools explicitly.

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

delegate_tasksDelegate several tasks to Luna workersA

Delegate a batch intended for two or more owned seams to gpt-5.6-luna; one task remains accepted for compatibility, but prefer delegate_task when no scheduling is needed. Use sequential for dependencies/shared workspace state and parallel only for genuinely independent disjoint declared scopes. Do not create artificial seams. At most 12 tasks are accepted and at most 3 run concurrently; the rest queue. Each task needs a self-contained contract and a concise activityLabel when a safe label exists. The parent owns architecture/interfaces and exceptional judgement; Luna owns exploration, implementation, verification, and repair. automaticRepair is one bounded task-local turn.

Parallel same-file edits prevent automatic integration. allowOverlappingScopes:true only accepts the declared overlap; it is not a write sandbox and does not permit same-file integration. integrate=false skips copying and retention follows operator policy. Partial outcomes remain visible. automaticRecovery defaults true: at most one evidence-eligible timeout continuation or exact process-exit retry; a counter alone never authorizes retry. Repair precedes recovery and neither nests. Successes, cancellation, scope/security/evidence failures, refused checks, discrepancies, and conflicts are never retried. Successful streams survive sibling failure.

After integration, deterministic code reruns the deduplicated union of declared checks in the final workspace. completionState=verified-complete means all seams, integration, and final checks passed; the default text-only handoff then tells the parent to finish without rereading files or rerunning checks. Any failure/refusal/conflict returns rich evidence for targeted diagnosis. resultDetail is one batch-level compatibility choice. More workers are not automatically cheaper; raw tokens are not credit cost and savings depend on the parent and task mix. While pending with no meaningful new state, remain silent; do not narrate waiting or polling. Report only a result, error, cancellation, timeout, or actionable state change.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
tasksYes
integrateNo
resultDetailNohandoff
computePolicyNoOptional per-call compute envelope. Narrows this installation's operator-owned baseline only and can never widen it. Omit to use the baseline.
routingPreflightNoOptional advisory routing declaration. Solo advice never blocks execution; declarations gate: every surface refuses empty seams, parallel also refuses mutable sharedState, shared-core coreOverlap, or tasks > seams. "unknown" biases advice solo, never refuses.
workingDirectoryNo
automaticRecoveryNo
allowOverlappingScopesNo

TDQS

A4.9/5.0
Behavior5/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It goes far beyond a basic summary by specifying concurrency limits, queueing, retry rules, automaticRecovery defaults, repair scope, integration behavior, completionState semantics, and reporting etiquette. This is exceptional transparency for a complex tool.

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 and dense, but the tool is genuinely complex and nearly every sentence adds an operational constraint or decision rule. It is grouped into thematic paragraphs and front-loaded with the primary purpose, but it is still a wall of text rather than a structured, skimmable format.

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, absence of annotations, and absence of output schema, this description is remarkably complete. It covers selection criteria, operational limits, concurrency and queueing, integration and overlap semantics, retry and recovery behavior, failure handling, result semantics, and even reporting etiquette. An agent has enough context to decide when to call it and how to configure a valid batch.

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 description coverage is only 22%, so the description must compensate, and it does. It explains the behavioral meaning of allowOverlappingScopes:true, integrate=false, resultDetail, automaticRepair, automaticRecovery, and sequential/parallel mode, which the bare schema enums do not provide. It also gives practical guidance like requiring self-contained contracts and concise activityLabels.

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: delegate a batch to Luna workers. It also differentiates from the sibling tool delegate_task by explaining that a single task is accepted for compatibility but delegate_task is preferred when no scheduling is needed.

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 prefer delegate_task, and gives clear rules for choosing sequential vs parallel: sequential for dependencies/shared state, parallel only for independent disjoint scopes. It also forbids artificial seams, leaving no ambiguity about when this tool is appropriate.

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

exploreExplore repository, API, or documentation with LunaA

Explicitly explore an admitted repository, API, or documentation scope with gpt-5.6-luna; fixed read-only disposable execution returns provenance-marked worker claims, runtime facts, inferences, and unknowns. Implements nothing, cannot delegate, and is never automatic.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeYes
effortNohigh
targetYes
contextNo
questionsNo
effortReasonYes
resultDetailNohandoff
activityLabelNo
computePolicyNoOptional per-call compute envelope. Narrows this installation's operator-owned baseline only and can never widen it. Omit to use the baseline.
contextCapsuleNo
forbiddenFilesNo
timeoutSecondsNo
workingDirectoryNo

TDQS

A4.1/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so unusually well. It discloses that execution is 'fixed read-only disposable,' that it returns 'provenance-marked worker claims, runtime facts, inferences, and unknowns,' and that it 'implements nothing, cannot delegate, and is never automatic.' This gives an agent a clear safety and side-effect profile.

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 two efficient sentences with zero filler. Purpose and scope are front-loaded, followed immediately by behavioral disclosures and exclusions. Every clause adds information.

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

Completeness2/5

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

This is a complex tool — 13 parameters, nested objects, no output schema, and no annotations — so the description alone is insufficient for correct invocation. It explains the high-level behavior well but does not clarify target vs scope, effortReason requirements, resultDetail choices, computePolicy, or output structure. An agent could select the tool but would struggle to call it correctly.

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

Parameters2/5

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

Schema description coverage is only 8%, and the description barely compensates: 'repository, API, or documentation scope' hints at target/scope, but the 13 parameters — including required effortReason — receive no meaningful explanation. The schema itself has no descriptions for most properties, so an agent lacks essential parameter semantics.

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 uses a specific verb and object phrase: 'Explicitly explore an admitted repository, API, or documentation scope' — so an agent knows exactly what the tool acts on. It also differentiates from siblings by adding 'Implements nothing, cannot delegate, and is never automatic,' which separates it from delegate_task and routing_preflight. This goes beyond a generic restatement.

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 opening clause gives clear usage context: use this for explicit exploration of an admitted scope. The additonal exclusions — 'cannot delegate' and 'never automatic' — tell an agent when not to expect delegation or autonimous routing. Alternatives are not explicitly named, but the behavior boundaries are strong enough to guide tool selection.

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

routing_preflightCheck cheaply whether delegating is worth itA

Cheap deterministic check of whether delegating is worthwhile. First use cheap, bounded repository/test inspection to identify candidate delegated leaves; describe those leaves, not the whole objective, and defer broad exploration. The parent may retain shared contracts and final integration. "unknown" biases advice solo but never refuses. Creates no worker, batch, worktree, or thread, refuses nothing, and returns route (solo | either | delegation-plausible), matched rule, explicit/defaulted provenance, signals, and structural parallel eligibility. Advisory only and never required: the parent owns sequential vs parallel, worker count, effort, and final decision; choosing zero workers is normal. either means fixed delegation overhead needs explicit justification, otherwise stay solo.

ParametersJSON Schema
NameRequiredDescriptionDefault
seamsYes
seamSizeNounknown
coreOverlapNounknown
integrationNounknown
sharedStateNounknown
verificationNounknown

TDQS

A4/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it enumerates what the tool does NOT do (no worker, batch, worktree, or thread; refuses nothing), states the return shape (route solo|either|delegation-plausible, matched rule, provenance, signals, parallel eligibility), and explains the ambiguous return value ('either' means overhead needs justification). It also discloses the 'unknown' bias toward solo, which an agent could not infer otherwise.

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

Conciseness3/5

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

Purpose and the negative-behavior list are front-loaded, which is good, but the prose is clause-stacked and repetitive: 'refuses nothing' is restated as 'never refuses', and the advisory/never-required point appears twice. The density obscures rather than compresses, and some of the space spent on repetition could have documented the enum parameters.

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

Completeness3/5

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

Because there is no output schema, the description's explanation of the returned route, rule, provenance, and signals is genuinely necessary and present. However, for a six-parameter tool with zero schema documentation, the complete absence of input-parameter meaning is a material gap that leaves the actual invocation under-specified.

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

Parameters2/5

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

Schema description coverage is 0% across six parameters (five of them enums), so the description must compensate and largely does not. It never explains what a 'seam', 'seamSize', 'coreOverlap', 'integration', 'sharedState', or 'verification' value means for routing; only the incidental mention of 'shared contracts' and 'unknown biases advice solo' gestures at the semantics. An agent must guess which enum values push the route toward delegation.

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?

Opens with a specific verb+resource: 'Cheap deterministic check of whether delegating is worthwhile.' That is unambiguous and clearly distinct from the action siblings (delegate_task, delegate_tasks, continue_task) and from explore, since it produces advice rather than action. An agent can classify it without opening the schema.

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?

Gives real usage context: inspect cheaply and bounded first, describe candidate leaves rather than the whole objective, defer broad exploration, and treat the result as advisory ('never required', 'choosing zero workers is normal'). It does not name a sibling or give an explicit 'call this before delegate_task' ordering, so it stops short of a 5.

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.

  1. 4 tool updatesv0.11.0
    • Changedcontinue_task1 field changed
      • addedInput schema / properties / continuationReference / maxLength
        Added value: +128
    • Changeddelegate_task1 field changed
      • addedInput schema / properties / handoffReference
        Added value: +{
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "type": "string"
        +}
    • Changeddelegate_tasks1 field changed
      • addedInput schema / properties / tasks / items / properties / handoffReference
        Added value: +{
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "type": "string"
        +}
    • Addedexplore
  2. 4 tool updatesv0.10.0
    • Changedcontinue_task4 fields changed
      • removedInput schema / properties / continuationReference / description
        Removed value: -"Opaque server-lifetime reference returned on an eligible delegated result. Do not send a raw Codex thread id."
      • removedInput schema / properties / instruction / description
        Removed value: -"One concise follow-up instruction for the same bounded task. The original objective, allowedFiles, forbiddenFiles, changeIntent, acceptance criteria, and verification commands remain fixed and are not accepted here."
      • addedInput schema / properties / resultDetail
        Added value: +{
        +  "default": "handoff",
        +  "enum": [
        +    "handoff",
        +    "compact",
        +    "full"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / (root)
        Previous value: -{
        -  "$schema": "http://json-schema.org/draft-07/schema#",
        -  "additionalProperties": false,
        -  "properties": {
        -    "attempt": {
        -      "description": "Attempt number for this objective, from `previousAttempts`.",
        -      "type": "number"
        -    },
        -    "changeIntent": {
        -      "description": "Selected change intent carried into the review evidence.",
        -      "enum": [
        -        "forbidden",
        -        "optional",
        -        "required"
        -      ],
        -      "type": "string"
        -    },
        -    "continuationReference": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "description": "Opaque, single-use, server-lifetime reference for one explicit continuation; null when this result cannot be continued or the bound was consumed."
        -    },
        -    "discrepancies": {
        -      "description": "Concrete mismatches between claims and observed evidence. Non-empty means do not accept the result as-is.",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "durationSeconds": {
        -      "type": "number"
        -    },
        -    "effort": {
        -      "type": "string"
        -    },
        -    "effortReason": {
        -      "type": "string"
        -    },
        -    "errors": {
        -      "description": "Runtime errors surfaced during the turn.",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "escalationAdvice": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "description": "When the task did not pass, what to change before retrying — including whether raising effort is actually justified."
        -    },
        -    "filesChanged": {
        -      "description": "Union of runtime-observed and worker-claimed edits. observed: false means the runtime recorded no matching patch.",
        -      "items": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "kind": {
        -            "type": "string"
        -          },
        -          "observed": {
        -            "description": "True if the Codex runtime itself recorded this edit.",
        -            "type": "boolean"
        -          },
        -          "path": {
        -            "type": "string"
        -          },
        -          "why": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "path",
        -          "kind",
        -          "why",
        -          "observed"
        -        ],
        -        "type": "object"
        -      },
        -      "type": "array"
        -    },
        -    "followUps": {
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "model": {
        -      "type": "string"
        -    },
        -    "notes": {
        -      "type": "string"
        -    },
        -    "repair": {
        -      "anyOf": [
        -        {
        -          "additionalProperties": false,
        -          "properties": {
        -            "attempted": {
        -              "type": "boolean"
        -            },
        -            "classification": {
        -              "enum": [
        -                "not-requested",
        -                "not-needed",
        -                "local-verification",
        -                "read-only",
        -                "contract-or-requirement",
        -                "scope-or-conflict",
        -                "environment-or-tooling",
        -                "security-or-trust-boundary",
        -                "wider-scope"
        -              ],
        -              "type": "string"
        -            },
        -            "failureEvidence": {
        -              "items": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "command": {
        -                    "type": "string"
        -                  },
        -                  "execution": {
        -                    "enum": [
        -                      "argv",
        -                      "shell"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "exitCode": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "output": {
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "command",
        -                  "execution",
        -                  "exitCode",
        -                  "output"
        -                ],
        -                "type": "object"
        -              },
        -              "type": "array"
        -            },
        -            "reason": {
        -              "type": "string"
        -            },
        -            "requested": {
        -              "type": "boolean"
        -            }
        -          },
        -          "required": [
        -            "requested",
        -            "attempted",
        -            "classification",
        -            "reason",
        -            "failureEvidence"
        -          ],
        -          "type": "object"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "description": "Bounded automatic-repair decision and the concise authoritative failure evidence supplied to the resumed worker. Null or omitted when not requested."
        -    },
        -    "reviewChecklist": {
        -      "description": "Risk-based checks the parent orchestrator must still make before accepting.",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "scopeViolations": {
        -      "description": "Observed edits outside allowedFiles, matching forbiddenFiles, or escaping the workspace. Non-empty requires deeper review.",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "summary": {
        -      "description": "Worker's summary of what it did.",
        -      "type": "string"
        -    },
        -    "trustworthy": {
        -      "description": "False when claims conflict with observed evidence or runtime errors occurred; scrutinize the result before accepting.",
        -      "type": "boolean"
        -    },
        -    "usage": {
        -      "anyOf": [
        -        {
        -          "additionalProperties": false,
        -          "properties": {
        -            "cacheWriteInputTokens": {
        -              "type": "number"
        -            },
        -            "cachedInputTokens": {
        -              "type": "number"
        -            },
        -            "inputTokens": {
        -              "type": "number"
        -            },
        -            "outputTokens": {
        -              "type": "number"
        -            },
        -            "reasoningOutputTokens": {
        -              "type": "number"
        -            }
        -          },
        -          "required": [
        -            "inputTokens",
        -            "cachedInputTokens",
        -            "outputTokens",
        -            "reasoningOutputTokens"
        -          ],
        -          "type": "object"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "verdict": {
        -      "description": "Orchestrator verdict from observed scope and configured verification; not copied from the worker's claim.",
        -      "enum": [
        -        "PASS",
        -        "BLOCKED",
        -        "FAILED"
        -      ],
        -      "type": "string"
        -    },
        -    "verification": {
        -      "description": "Verification outcomes with provenance and execution status; use orchestrator rows to determine what actually ran.",
        -      "items": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "command": {
        -            "type": "string"
        -          },
        -          "execution": {
        -            "description": "argv or shell = executed here; rejected = refused; skipped = disabled; reported = worker-only. Only successful executed rows prove a command.",
        -            "enum": [
        -              "argv",
        -              "shell",
        -              "rejected",
        -              "skipped",
        -              "reported"
        -            ],
        -            "type": "string"
        -          },
        -          "exitCode": {
        -            "anyOf": [
        -              {
        -                "type": "number"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "output": {
        -            "type": "string"
        -          },
        -          "passed": {
        -            "type": "boolean"
        -          },
        -          "source": {
        -            "description": "Result provenance. Orchestrator rows authoritatively record execution, refusal, or skipping; worker rows are self-reported.",
        -            "enum": [
        -              "orchestrator",
        -              "worker"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "command",
        -          "source",
        -          "execution",
        -          "exitCode",
        -          "passed",
        -          "output"
        -        ],
        -        "type": "object"
        -      },
        -      "type": "array"
        -    },
        -    "verificationMode": {
        -      "description": "Execution policy in force: allowlist, off, or shell.",
        -      "type": "string"
        -    },
        -    "workerClaimedFailureCauses": {
        -      "description": "Normalized worker-declared failure causes. This is claim evidence, not an orchestrator repair or retry classification. Current results always include it; the field is optional only for backwards-compatible consumers.",
        -      "items": {
        -        "enum": [
        -          "verification",
        -          "requirements",
        -          "implementation",
        -          "environment-tooling",
        -          "timeout",
        -          "blocked",
        -          "unclassified"
        -        ],
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "workerClaimedStatus": {
        -      "description": "What the worker reported. Compare against `verdict`.",
        -      "enum": [
        -        "PASS",
        -        "BLOCKED",
        -        "FAILED"
        -      ],
        -      "type": "string"
        -    },
        -    "workerThreadId": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "description": "Codex thread id of the worker, for inspection; continuation uses an opaque reference."
        -    }
        -  },
        -  "required": [
        -    "changeIntent",
        -    "verdict",
        -    "workerClaimedStatus",
        -    "trustworthy",
        -    "workerThreadId",
        -    "continuationReference",
        -    "model",
        -    "effort",
        -    "effortReason",
        -    "attempt",
        -    "summary",
        -    "notes",
        -    "followUps",
        -    "filesChanged",
        -    "verification",
        -    "verificationMode",
        -    "scopeViolations",
        -    "discrepancies",
        -    "reviewChecklist",
        -    "escalationAdvice",
        -    "durationSeconds",
        -    "usage",
        -    "errors"
        -  ],
        -  "type": "object"
        -}New value: +null
    • Changeddelegate_task29 fields changed
      • removedInput schema / properties / acceptanceCriteria / description
        Removed value: -"Observable conditions that define done and can be judged from evidence."
      • removedInput schema / properties / activityLabel / description
        Removed value: -"Optional concise, non-sensitive label for local activity views; parents should provide one for each batch task when a safe label is available (for example, 'Update auth retries'). It is persisted locally and may reveal this brief work description; omit it when that is not appropriate. Never derive it from the objective text."
      • removedInput schema / properties / allowedFiles / description
        Removed value: -"Declared workspace-relative glob scope, checked against observed edits after the run. Empty declares no in-workspace allowlist and does not declare read-only intent; workspace confinement remains."
      • removedInput schema / properties / automaticRepair / description
        Removed value: -"Opt in to at most one automatic repair turn when the initial result is conservatively classified as a local verification defect. The same worker thread and immutable task contract are reused. Omitted defaults to false."
      • removedInput schema / properties / changeIntent / description
        Removed value: -"Explicit file-change expectation: forbidden means read-only and any runtime-observed edit violates the contract; optional means edits may be useful but are not required; required means the task is expected to produce an edit. Omitted defaults to required for compatibility. This is independent of allowedFiles and taskCategory."
      • addedInput schema / properties / computePolicy
        Added value: +{
        +  "description": "Optional per-call compute envelope. Narrows this installation's operator-owned baseline only and can never widen it. Omit to use the baseline.",
        +  "properties": {
        +    "allowEffortEscalation": {
        +      "type": "boolean"
        +    },
        +    "allowStrongerFallback": {
        +      "type": "boolean"
        +    },
        +    "maxConcurrency": {
        +      "maximum": 8,
        +      "minimum": 1,
        +      "type": "integer"
        +    },
        +    "maxWorkersPerBatch": {
        +      "maximum": 12,
        +      "minimum": 1,
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
      • removedInput schema / properties / context / description
        Removed value: -"Legacy plain-text task background. If contextCapsule is also supplied, both are sent; avoid duplication."
      • removedInput schema / properties / contextCapsule / description
        Removed value: -"Optional structured task background the worker cannot infer. It supplements the contract and legacy context; include only useful fields, omit empty fields, never copy the parent transcript, and do not duplicate other fields."
      • removedInput schema / properties / contextCapsule / properties / dependencies / description
        Removed value: -"Services, libraries, or internal modules the task depends on."
      • removedInput schema / properties / contextCapsule / properties / interfaces / description
        Removed value: -"Signatures, contracts, or boundaries that must remain stable."
      • removedInput schema / properties / contextCapsule / properties / invariants / description
        Removed value: -"Rules that must remain true."
      • removedInput schema / properties / contextCapsule / properties / knownPitfalls / description
        Removed value: -"Task-specific mistakes or failed approaches to avoid."
      • removedInput schema / properties / contextCapsule / properties / relevantContext / description
        Removed value: -"Task background the worker cannot infer from the repository."
      • removedInput schema / properties / contextCapsule / properties / upstreamDecisions / description
        Removed value: -"Architecture or design decisions already settled by the parent orchestrator."
      • removedInput schema / properties / effort / description
        Removed value: -"Worker reasoning effort: medium = mechanical; high = bounded work needing judgement (routine default); xhigh = subtle, cross-cutting, or unclear cause; max = genuinely hard. Rate this task's difficulty, not project importance."
      • removedInput schema / properties / effortReason / description
        Removed value: -"One sentence justifying the effort from this task's difficulty."
      • removedInput schema / properties / forbiddenFiles / description
        Removed value: -"Workspace-relative globs observed edits must not match. Checked after the run and takes precedence over allowedFiles."
      • removedInput schema / properties / objective / description
        Removed value: -"One bounded executable task. Make the what, why, and expected outcome self-contained because the worker cannot see the conversation."
      • removedInput schema / properties / previousAttempts / description
        Removed value: -"Prior FAILED or BLOCKED attempts at this objective, so a retry can avoid repeating them and the result can report its attempt number."
      • removedInput schema / properties / previousAttempts / items / properties / whatWentWrong / description
        Removed value: -"Why the earlier attempt did not succeed, in one sentence."
      • changedInput schema / properties / resultDetail / default
        Previous value: -"full"New value: +"handoff"
      • removedInput schema / properties / resultDetail / description
        Removed value: -"Choose compact routinely; it removes only successful verification output. Use full when that output is needed. The schema default remains full for backwards compatibility; failed, refused, and skipped output is retained."
      • changedInput schema / properties / resultDetail / enum
        Previous value: -[
        -  "full",
        -  "compact"
        -]New value: +[
        +  "handoff",
        +  "compact",
        +  "full"
        +]
      • addedInput schema / properties / routingPreflight
        Added value: +{
        +  "description": "Optional advisory routing declaration. Solo advice never blocks execution; declarations gate: every surface refuses empty seams, parallel also refuses mutable sharedState, shared-core coreOverlap, or tasks > seams. \"unknown\" biases advice solo, never refuses.",
        +  "properties": {
        +    "coreOverlap": {
        +      "default": "unknown",
        +      "enum": [
        +        "disjoint",
        +        "shared-core",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    "integration": {
        +      "default": "unknown",
        +      "enum": [
        +        "mechanical",
        +        "architectural",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    "seamSize": {
        +      "default": "unknown",
        +      "enum": [
        +        "small",
        +        "substantial",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    "seams": {
        +      "items": {
        +        "maxLength": 48,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "maxItems": 12,
        +      "type": "array"
        +    },
        +    "sharedState": {
        +      "default": "unknown",
        +      "enum": [
        +        "none",
        +        "read-only",
        +        "mutable",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    "verification": {
        +      "default": "unknown",
        +      "enum": [
        +        "per-seam",
        +        "shared-only",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "seams"
        +  ],
        +  "type": "object"
        +}
      • removedInput schema / properties / taskCategory / description
        Removed value: -"Kind of executable work; it does not determine effort."
      • removedInput schema / properties / timeoutSeconds / description
        Removed value: -"Optional per-turn wall-clock budget; otherwise uses the configured default (normally 1800 seconds)."
      • removedInput schema / properties / verificationCommands / description
        Removed value: -"Targeted deterministic checks that prove the bounded task; use a full suite only when the task genuinely requires it. The worker runs and reports them, and the orchestrator independently processes each under the configured policy. Executed orchestrator rows are authoritative, while refused or skipped rows prove nothing. Default allowlist mode refuses shell syntax."
      • removedInput schema / properties / workingDirectory / description
        Removed value: -"Absolute worker directory; defaults to the orchestrator's current directory."
      • changedOutput schema / (root)
        Previous value: -{
        -  "$schema": "http://json-schema.org/draft-07/schema#",
        -  "additionalProperties": false,
        -  "properties": {
        -    "attempt": {
        -      "description": "Attempt number for this objective, from `previousAttempts`.",
        -      "type": "number"
        -    },
        -    "changeIntent": {
        -      "description": "Selected change intent carried into the review evidence.",
        -      "enum": [
        -        "forbidden",
        -        "optional",
        -        "required"
        -      ],
        -      "type": "string"
        -    },
        -    "continuationReference": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "description": "Opaque, single-use, server-lifetime reference for one explicit continuation; null when this result cannot be continued or the bound was consumed."
        -    },
        -    "discrepancies": {
        -      "description": "Concrete mismatches between claims and observed evidence. Non-empty means do not accept the result as-is.",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "durationSeconds": {
        -      "type": "number"
        -    },
        -    "effort": {
        -      "type": "string"
        -    },
        -    "effortReason": {
        -      "type": "string"
        -    },
        -    "errors": {
        -      "description": "Runtime errors surfaced during the turn.",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "escalationAdvice": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "description": "When the task did not pass, what to change before retrying — including whether raising effort is actually justified."
        -    },
        -    "filesChanged": {
        -      "description": "Union of runtime-observed and worker-claimed edits. observed: false means the runtime recorded no matching patch.",
        -      "items": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "kind": {
        -            "type": "string"
        -          },
        -          "observed": {
        -            "description": "True if the Codex runtime itself recorded this edit.",
        -            "type": "boolean"
        -          },
        -          "path": {
        -            "type": "string"
        -          },
        -          "why": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "path",
        -          "kind",
        -          "why",
        -          "observed"
        -        ],
        -        "type": "object"
        -      },
        -      "type": "array"
        -    },
        -    "followUps": {
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "model": {
        -      "type": "string"
        -    },
        -    "notes": {
        -      "type": "string"
        -    },
        -    "repair": {
        -      "anyOf": [
        -        {
        -          "additionalProperties": false,
        -          "properties": {
        -            "attempted": {
        -              "type": "boolean"
        -            },
        -            "classification": {
        -              "enum": [
        -                "not-requested",
        -                "not-needed",
        -                "local-verification",
        -                "read-only",
        -                "contract-or-requirement",
        -                "scope-or-conflict",
        -                "environment-or-tooling",
        -                "security-or-trust-boundary",
        -                "wider-scope"
        -              ],
        -              "type": "string"
        -            },
        -            "failureEvidence": {
        -              "items": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "command": {
        -                    "type": "string"
        -                  },
        -                  "execution": {
        -                    "enum": [
        -                      "argv",
        -                      "shell"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "exitCode": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "output": {
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "command",
        -                  "execution",
        -                  "exitCode",
        -                  "output"
        -                ],
        -                "type": "object"
        -              },
        -              "type": "array"
        -            },
        -            "reason": {
        -              "type": "string"
        -            },
        -            "requested": {
        -              "type": "boolean"
        -            }
        -          },
        -          "required": [
        -            "requested",
        -            "attempted",
        -            "classification",
        -            "reason",
        -            "failureEvidence"
        -          ],
        -          "type": "object"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "description": "Bounded automatic-repair decision and the concise authoritative failure evidence supplied to the resumed worker. Null or omitted when not requested."
        -    },
        -    "reviewChecklist": {
        -      "description": "Risk-based checks the parent orchestrator must still make before accepting.",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "scopeViolations": {
        -      "description": "Observed edits outside allowedFiles, matching forbiddenFiles, or escaping the workspace. Non-empty requires deeper review.",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "summary": {
        -      "description": "Worker's summary of what it did.",
        -      "type": "string"
        -    },
        -    "trustworthy": {
        -      "description": "False when claims conflict with observed evidence or runtime errors occurred; scrutinize the result before accepting.",
        -      "type": "boolean"
        -    },
        -    "usage": {
        -      "anyOf": [
        -        {
        -          "additionalProperties": false,
        -          "properties": {
        -            "cacheWriteInputTokens": {
        -              "type": "number"
        -            },
        -            "cachedInputTokens": {
        -              "type": "number"
        -            },
        -            "inputTokens": {
        -              "type": "number"
        -            },
        -            "outputTokens": {
        -              "type": "number"
        -            },
        -            "reasoningOutputTokens": {
        -              "type": "number"
        -            }
        -          },
        -          "required": [
        -            "inputTokens",
        -            "cachedInputTokens",
        -            "outputTokens",
        -            "reasoningOutputTokens"
        -          ],
        -          "type": "object"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "verdict": {
        -      "description": "Orchestrator verdict from observed scope and configured verification; not copied from the worker's claim.",
        -      "enum": [
        -        "PASS",
        -        "BLOCKED",
        -        "FAILED"
        -      ],
        -      "type": "string"
        -    },
        -    "verification": {
        -      "description": "Verification outcomes with provenance and execution status; use orchestrator rows to determine what actually ran.",
        -      "items": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "command": {
        -            "type": "string"
        -          },
        -          "execution": {
        -            "description": "argv or shell = executed here; rejected = refused; skipped = disabled; reported = worker-only. Only successful executed rows prove a command.",
        -            "enum": [
        -              "argv",
        -              "shell",
        -              "rejected",
        -              "skipped",
        -              "reported"
        -            ],
        -            "type": "string"
        -          },
        -          "exitCode": {
        -            "anyOf": [
        -              {
        -                "type": "number"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "output": {
        -            "type": "string"
        -          },
        -          "passed": {
        -            "type": "boolean"
        -          },
        -          "source": {
        -            "description": "Result provenance. Orchestrator rows authoritatively record execution, refusal, or skipping; worker rows are self-reported.",
        -            "enum": [
        -              "orchestrator",
        -              "worker"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "command",
        -          "source",
        -          "execution",
        -          "exitCode",
        -          "passed",
        -          "output"
        -        ],
        -        "type": "object"
        -      },
        -      "type": "array"
        -    },
        -    "verificationMode": {
        -      "description": "Execution policy in force: allowlist, off, or shell.",
        -      "type": "string"
        -    },
        -    "workerClaimedFailureCauses": {
        -      "description": "Normalized worker-declared failure causes. This is claim evidence, not an orchestrator repair or retry classification. Current results always include it; the field is optional only for backwards-compatible consumers.",
        -      "items": {
        -        "enum": [
        -          "verification",
        -          "requirements",
        -          "implementation",
        -          "environment-tooling",
        -          "timeout",
        -          "blocked",
        -          "unclassified"
        -        ],
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "workerClaimedStatus": {
        -      "description": "What the worker reported. Compare against `verdict`.",
        -      "enum": [
        -        "PASS",
        -        "BLOCKED",
        -        "FAILED"
        -      ],
        -      "type": "string"
        -    },
        -    "workerThreadId": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "description": "Codex thread id of the worker, for inspection; continuation uses an opaque reference."
        -    }
        -  },
        -  "required": [
        -    "changeIntent",
        -    "verdict",
        -    "workerClaimedStatus",
        -    "trustworthy",
        -    "workerThreadId",
        -    "continuationReference",
        -    "model",
        -    "effort",
        -    "effortReason",
        -    "attempt",
        -    "summary",
        -    "notes",
        -    "followUps",
        -    "filesChanged",
        -    "verification",
        -    "verificationMode",
        -    "scopeViolations",
        -    "discrepancies",
        -    "reviewChecklist",
        -    "escalationAdvice",
        -    "durationSeconds",
        -    "usage",
        -    "errors"
        -  ],
        -  "type": "object"
        -}New value: +null
    • Changeddelegate_tasks34 fields changed
      • removedInput schema / properties / allowOverlappingScopes / description
        Removed value: -"Parallel only: this call-level escape hatch permits potentially overlapping declared scopes. Actual same-file edits still prevent automatic integration."
      • addedInput schema / properties / automaticRecovery
        Added value: +{
        +  "default": true,
        +  "type": "boolean"
        +}
      • addedInput schema / properties / computePolicy
        Added value: +{
        +  "description": "Optional per-call compute envelope. Narrows this installation's operator-owned baseline only and can never widen it. Omit to use the baseline.",
        +  "properties": {
        +    "allowEffortEscalation": {
        +      "type": "boolean"
        +    },
        +    "allowStrongerFallback": {
        +      "type": "boolean"
        +    },
        +    "maxConcurrency": {
        +      "maximum": 8,
        +      "minimum": 1,
        +      "type": "integer"
        +    },
        +    "maxWorkersPerBatch": {
        +      "maximum": 12,
        +      "minimum": 1,
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
      • removedInput schema / properties / integrate / description
        Removed value: -"Parallel only: copy completed worker edits back when observed changed files do not collide. Set false to leave changes in worktrees for review."
      • removedInput schema / properties / mode / description
        Removed value: -"sequential = dependent or shared-workspace tasks run in order; parallel = independent tasks run in isolated git worktrees and may be copied back only when integration is enabled and observed changed files do not collide."
      • changedInput schema / properties / resultDetail / default
        Previous value: -"full"New value: +"handoff"
      • removedInput schema / properties / resultDetail / description
        Removed value: -"Batch-level result detail applied uniformly to every returned task result; it is not a per-task field. Compact removes only successful verification output, while the schema default remains full for backwards compatibility."
      • changedInput schema / properties / resultDetail / enum
        Previous value: -[
        -  "full",
        -  "compact"
        -]New value: +[
        +  "handoff",
        +  "compact",
        +  "full"
        +]
      • addedInput schema / properties / routingPreflight
        Added value: +{
        +  "description": "Optional advisory routing declaration. Solo advice never blocks execution; declarations gate: every surface refuses empty seams, parallel also refuses mutable sharedState, shared-core coreOverlap, or tasks > seams. \"unknown\" biases advice solo, never refuses.",
        +  "properties": {
        +    "coreOverlap": {
        +      "default": "unknown",
        +      "enum": [
        +        "disjoint",
        +        "shared-core",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    "integration": {
        +      "default": "unknown",
        +      "enum": [
        +        "mechanical",
        +        "architectural",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    "seamSize": {
        +      "default": "unknown",
        +      "enum": [
        +        "small",
        +        "substantial",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    "seams": {
        +      "items": {
        +        "maxLength": 48,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "maxItems": 12,
        +      "type": "array"
        +    },
        +    "sharedState": {
        +      "default": "unknown",
        +      "enum": [
        +        "none",
        +        "read-only",
        +        "mutable",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    "verification": {
        +      "default": "unknown",
        +      "enum": [
        +        "per-seam",
        +        "shared-only",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "seams"
        +  ],
        +  "type": "object"
        +}
      • removedInput schema / properties / tasks / description
        Removed value: -"Task contracts; this API is intended for multiple meaningful tasks but accepts one or more and at most 12 tasks. A one-task batch remains accepted for compatibility; prefer delegate_task for a single task. Batch size is not concurrency: sequential mode runs one at a time, while parallel mode runs at most 3 workers at once and queues the rest. Parallel tasks need disjoint scopes unless this call sets allowOverlappingScopes:true; actual same-file edits still prevent automatic integration. Provide each task an optional concise, non-sensitive activityLabel when one is safe; labels are explicit only and never derived from objective text."
      • removedInput schema / properties / tasks / items / properties / acceptanceCriteria / description
        Removed value: -"Observable conditions that define done and can be judged from evidence."
      • removedInput schema / properties / tasks / items / properties / activityLabel / description
        Removed value: -"Optional concise, non-sensitive label for local activity views; parents should provide one for each batch task when a safe label is available (for example, 'Update auth retries'). It is persisted locally and may reveal this brief work description; omit it when that is not appropriate. Never derive it from the objective text."
      • removedInput schema / properties / tasks / items / properties / allowedFiles / description
        Removed value: -"Declared workspace-relative glob scope, checked against observed edits after the run. Empty declares no in-workspace allowlist and does not declare read-only intent; workspace confinement remains."
      • removedInput schema / properties / tasks / items / properties / automaticRepair / description
        Removed value: -"Opt in to at most one automatic repair turn when the initial result is conservatively classified as a local verification defect. The same worker thread and immutable task contract are reused. Omitted defaults to false."
      • removedInput schema / properties / tasks / items / properties / changeIntent / description
        Removed value: -"Explicit file-change expectation: forbidden means read-only and any runtime-observed edit violates the contract; optional means edits may be useful but are not required; required means the task is expected to produce an edit. Omitted defaults to required for compatibility. This is independent of allowedFiles and taskCategory."
      • removedInput schema / properties / tasks / items / properties / context / description
        Removed value: -"Legacy plain-text task background. If contextCapsule is also supplied, both are sent; avoid duplication."
      • removedInput schema / properties / tasks / items / properties / contextCapsule / description
        Removed value: -"Optional structured task background the worker cannot infer. It supplements the contract and legacy context; include only useful fields, omit empty fields, never copy the parent transcript, and do not duplicate other fields."
      • removedInput schema / properties / tasks / items / properties / contextCapsule / properties / dependencies / description
        Removed value: -"Services, libraries, or internal modules the task depends on."
      • removedInput schema / properties / tasks / items / properties / contextCapsule / properties / interfaces / description
        Removed value: -"Signatures, contracts, or boundaries that must remain stable."
      • removedInput schema / properties / tasks / items / properties / contextCapsule / properties / invariants / description
        Removed value: -"Rules that must remain true."
      • removedInput schema / properties / tasks / items / properties / contextCapsule / properties / knownPitfalls / description
        Removed value: -"Task-specific mistakes or failed approaches to avoid."
      • removedInput schema / properties / tasks / items / properties / contextCapsule / properties / relevantContext / description
        Removed value: -"Task background the worker cannot infer from the repository."
      • removedInput schema / properties / tasks / items / properties / contextCapsule / properties / upstreamDecisions / description
        Removed value: -"Architecture or design decisions already settled by the parent orchestrator."
      • removedInput schema / properties / tasks / items / properties / effort / description
        Removed value: -"Worker reasoning effort: medium = mechanical; high = bounded work needing judgement (routine default); xhigh = subtle, cross-cutting, or unclear cause; max = genuinely hard. Rate this task's difficulty, not project importance."
      • removedInput schema / properties / tasks / items / properties / effortReason / description
        Removed value: -"One sentence justifying the effort from this task's difficulty."
      • removedInput schema / properties / tasks / items / properties / forbiddenFiles / description
        Removed value: -"Workspace-relative globs observed edits must not match. Checked after the run and takes precedence over allowedFiles."
      • removedInput schema / properties / tasks / items / properties / objective / description
        Removed value: -"One bounded executable task. Make the what, why, and expected outcome self-contained because the worker cannot see the conversation."
      • removedInput schema / properties / tasks / items / properties / previousAttempts / description
        Removed value: -"Prior FAILED or BLOCKED attempts at this objective, so a retry can avoid repeating them and the result can report its attempt number."
      • removedInput schema / properties / tasks / items / properties / previousAttempts / items / properties / whatWentWrong / description
        Removed value: -"Why the earlier attempt did not succeed, in one sentence."
      • removedInput schema / properties / tasks / items / properties / taskCategory / description
        Removed value: -"Kind of executable work; it does not determine effort."
      • removedInput schema / properties / tasks / items / properties / timeoutSeconds / description
        Removed value: -"Optional per-turn wall-clock budget; otherwise uses the configured default (normally 1800 seconds)."
      • removedInput schema / properties / tasks / items / properties / verificationCommands / description
        Removed value: -"Targeted deterministic checks that prove the bounded task; use a full suite only when the task genuinely requires it. The worker runs and reports them, and the orchestrator independently processes each under the configured policy. Executed orchestrator rows are authoritative, while refused or skipped rows prove nothing. Default allowlist mode refuses shell syntax."
      • removedInput schema / properties / workingDirectory / description
        Removed value: -"Absolute path. Defaults to the orchestrator's working directory."
      • changedOutput schema / (root)
        Previous value: -{
        -  "$schema": "http://json-schema.org/draft-07/schema#",
        -  "additionalProperties": false,
        -  "properties": {
        -    "batchId": {
        -      "type": "string"
        -    },
        -    "durationSeconds": {
        -      "type": "number"
        -    },
        -    "failed": {
        -      "type": "number"
        -    },
        -    "integrated": {
        -      "description": "Whether completed worker edits are now present in the requested workspace.",
        -      "type": "boolean"
        -    },
        -    "integrationConflicts": {
        -      "description": "Parallel integration only: files more than one worker actually changed. Non-empty means nothing was integrated and you must merge them yourself. Sequential shared-workspace batches return an empty array.",
        -      "items": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "path": {
        -            "type": "string"
        -          },
        -          "tasks": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          }
        -        },
        -        "required": [
        -          "path",
        -          "tasks"
        -        ],
        -        "type": "object"
        -      },
        -      "type": "array"
        -    },
        -    "integrationSummary": {
        -      "type": "string"
        -    },
        -    "maxParallel": {
        -      "type": "number"
        -    },
        -    "mode": {
        -      "enum": [
        -        "parallel",
        -        "sequential"
        -      ],
        -      "type": "string"
        -    },
        -    "passed": {
        -      "type": "number"
        -    },
        -    "reviewChecklist": {
        -      "description": "Batch-level integration and risk checks the parent orchestrator must still make.",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "scopeConflicts": {
        -      "description": "Declared scopes that could match the same files.",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "taskCount": {
        -      "type": "number"
        -    },
        -    "tasks": {
        -      "items": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "changedFiles": {
        -            "description": "Workspace-relative paths this task changed.",
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "diff": {
        -            "description": "Unified diff from the task's worktree.",
        -            "type": "string"
        -          },
        -          "effort": {
        -            "type": "string"
        -          },
        -          "effortReason": {
        -            "type": "string"
        -          },
        -          "error": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "objective": {
        -            "type": "string"
        -          },
        -          "result": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "attempt": {
        -                    "description": "Attempt number for this objective, from `previousAttempts`.",
        -                    "type": "number"
        -                  },
        -                  "changeIntent": {
        -                    "description": "Selected change intent carried into the review evidence.",
        -                    "enum": [
        -                      "forbidden",
        -                      "optional",
        -                      "required"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "continuationReference": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "Opaque, single-use, server-lifetime reference for one explicit continuation; null when this result cannot be continued or the bound was consumed."
        -                  },
        -                  "discrepancies": {
        -                    "description": "Concrete mismatches between claims and observed evidence. Non-empty means do not accept the result as-is.",
        -                    "items": {
        -                      "type": "string"
        -                    },
        -                    "type": "array"
        -                  },
        -                  "durationSeconds": {
        -                    "type": "number"
        -                  },
        -                  "effort": {
        -                    "type": "string"
        -                  },
        -                  "effortReason": {
        -                    "type": "string"
        -                  },
        -                  "errors": {
        -                    "description": "Runtime errors surfaced during the turn.",
        -                    "items": {
        -                      "type": "string"
        -                    },
        -                    "type": "array"
        -                  },
        -                  "escalationAdvice": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "When the task did not pass, what to change before retrying — including whether raising effort is actually justified."
        -                  },
        -                  "filesChanged": {
        -                    "description": "Union of runtime-observed and worker-claimed edits. observed: false means the runtime recorded no matching patch.",
        -                    "items": {
        -                      "additionalProperties": false,
        -                      "properties": {
        -                        "kind": {
        -                          "type": "string"
        -                        },
        -                        "observed": {
        -                          "description": "True if the Codex runtime itself recorded this edit.",
        -                          "type": "boolean"
        -                        },
        -                        "path": {
        -                          "type": "string"
        -                        },
        -                        "why": {
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "path",
        -                        "kind",
        -                        "why",
        -                        "observed"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    "type": "array"
        -                  },
        -                  "followUps": {
        -                    "items": {
        -                      "type": "string"
        -                    },
        -                    "type": "array"
        -                  },
        -                  "model": {
        -                    "type": "string"
        -                  },
        -                  "notes": {
        -                    "type": "string"
        -                  },
        -                  "repair": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "attempted": {
        -                            "type": "boolean"
        -                          },
        -                          "classification": {
        -                            "enum": [
        -                              "not-requested",
        -                              "not-needed",
        -                              "local-verification",
        -                              "read-only",
        -                              "contract-or-requirement",
        -                              "scope-or-conflict",
        -                              "environment-or-tooling",
        -                              "security-or-trust-boundary",
        -                              "wider-scope"
        -                            ],
        -                            "type": "string"
        -                          },
        -                          "failureEvidence": {
        -                            "items": {
        -                              "additionalProperties": false,
        -                              "properties": {
        -                                "command": {
        -                                  "type": "string"
        -                                },
        -                                "execution": {
        -                                  "enum": [
        -                                    "argv",
        -                                    "shell"
        -                                  ],
        -                                  "type": "string"
        -                                },
        -                                "exitCode": {
        -                                  "anyOf": [
        -                                    {
        -                                      "type": "number"
        -                                    },
        -                                    {
        -                                      "type": "null"
        -                                    }
        -                                  ]
        -                                },
        -                                "output": {
        -                                  "type": "string"
        -                                }
        -                              },
        -                              "required": [
        -                                "command",
        -                                "execution",
        -                                "exitCode",
        -                                "output"
        -                              ],
        -                              "type": "object"
        -                            },
        -                            "type": "array"
        -                          },
        -                          "reason": {
        -                            "type": "string"
        -                          },
        -                          "requested": {
        -                            "type": "boolean"
        -                          }
        -                        },
        -                        "required": [
        -                          "requested",
        -                          "attempted",
        -                          "classification",
        -                          "reason",
        -                          "failureEvidence"
        -                        ],
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "Bounded automatic-repair decision and the concise authoritative failure evidence supplied to the resumed worker. Null or omitted when not requested."
        -                  },
        -                  "reviewChecklist": {
        -                    "description": "Risk-based checks the parent orchestrator must still make before accepting.",
        -                    "items": {
        -                      "type": "string"
        -                    },
        -                    "type": "array"
        -                  },
        -                  "scopeViolations": {
        -                    "description": "Observed edits outside allowedFiles, matching forbiddenFiles, or escaping the workspace. Non-empty requires deeper review.",
        -                    "items": {
        -                      "type": "string"
        -                    },
        -                    "type": "array"
        -                  },
        -                  "summary": {
        -                    "description": "Worker's summary of what it did.",
        -                    "type": "string"
        -                  },
        -                  "trustworthy": {
        -                    "description": "False when claims conflict with observed evidence or runtime errors occurred; scrutinize the result before accepting.",
        -                    "type": "boolean"
        -                  },
        -                  "usage": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "cacheWriteInputTokens": {
        -                            "type": "number"
        -                          },
        -                          "cachedInputTokens": {
        -                            "type": "number"
        -                          },
        -                          "inputTokens": {
        -                            "type": "number"
        -                          },
        -                          "outputTokens": {
        -                            "type": "number"
        -                          },
        -                          "reasoningOutputTokens": {
        -                            "type": "number"
        -                          }
        -                        },
        -                        "required": [
        -                          "inputTokens",
        -                          "cachedInputTokens",
        -                          "outputTokens",
        -                          "reasoningOutputTokens"
        -                        ],
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "verdict": {
        -                    "description": "Orchestrator verdict from observed scope and configured verification; not copied from the worker's claim.",
        -                    "enum": [
        -                      "PASS",
        -                      "BLOCKED",
        -                      "FAILED"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "verification": {
        -                    "description": "Verification outcomes with provenance and execution status; use orchestrator rows to determine what actually ran.",
        -                    "items": {
        -                      "additionalProperties": false,
        -                      "properties": {
        -                        "command": {
        -                          "type": "string"
        -                        },
        -                        "execution": {
        -                          "description": "argv or shell = executed here; rejected = refused; skipped = disabled; reported = worker-only. Only successful executed rows prove a command.",
        -                          "enum": [
        -                            "argv",
        -                            "shell",
        -                            "rejected",
        -                            "skipped",
        -                            "reported"
        -                          ],
        -                          "type": "string"
        -                        },
        -                        "exitCode": {
        -                          "anyOf": [
        -                            {
        -                              "type": "number"
        -                            },
        -                            {
        -                              "type": "null"
        -                            }
        -                          ]
        -                        },
        -                        "output": {
        -                          "type": "string"
        -                        },
        -                        "passed": {
        -                          "type": "boolean"
        -                        },
        -                        "source": {
        -                          "description": "Result provenance. Orchestrator rows authoritatively record execution, refusal, or skipping; worker rows are self-reported.",
        -                          "enum": [
        -                            "orchestrator",
        -                            "worker"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "command",
        -                        "source",
        -                        "execution",
        -                        "exitCode",
        -                        "passed",
        -                        "output"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    "type": "array"
        -                  },
        -                  "verificationMode": {
        -                    "description": "Execution policy in force: allowlist, off, or shell.",
        -                    "type": "string"
        -                  },
        -                  "workerClaimedFailureCauses": {
        -                    "description": "Normalized worker-declared failure causes. This is claim evidence, not an orchestrator repair or retry classification. Current results always include it; the field is optional only for backwards-compatible consumers.",
        -                    "items": {
        -                      "enum": [
        -                        "verification",
        -                        "requirements",
        -                        "implementation",
        -                        "environment-tooling",
        -                        "timeout",
        -                        "blocked",
        -                        "unclassified"
        -                      ],
        -                      "type": "string"
        -                    },
        -                    "type": "array"
        -                  },
        -                  "workerClaimedStatus": {
        -                    "description": "What the worker reported. Compare against `verdict`.",
        -                    "enum": [
        -                      "PASS",
        -                      "BLOCKED",
        -                      "FAILED"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "workerThreadId": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "Codex thread id of the worker, for inspection; continuation uses an opaque reference."
        -                  }
        -                },
        -                "required": [
        -                  "changeIntent",
        -                  "verdict",
        -                  "workerClaimedStatus",
        -                  "trustworthy",
        -                  "workerThreadId",
        -                  "continuationReference",
        -                  "model",
        -                  "effort",
        -                  "effortReason",
        -                  "attempt",
        -                  "summary",
        -                  "notes",
        -                  "followUps",
        -                  "filesChanged",
        -                  "verification",
        -                  "verificationMode",
        -                  "scopeViolations",
        -                  "discrepancies",
        -                  "reviewChecklist",
        -                  "escalationAdvice",
        -                  "durationSeconds",
        -                  "usage",
        -                  "errors"
        -                ],
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ],
        -            "description": "Single-task result at the batch's requested resultDetail, or null if the task never ran."
        -          },
        -          "state": {
        -            "enum": [
        -              "queued",
        -              "running",
        -              "completed",
        -              "failed",
        -              "timedOut",
        -              "cancelled"
        -            ],
        -            "type": "string"
        -          },
        -          "taskId": {
        -            "description": "Identifier used in logs, worktree paths, and conflicts.",
        -            "type": "string"
        -          },
        -          "warnings": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "worktreePath": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ],
        -            "description": "Set when the worktree was kept for inspection; null when cleaned up."
        -          }
        -        },
        -        "required": [
        -          "taskId",
        -          "state",
        -          "objective",
        -          "effort",
        -          "effortReason",
        -          "result",
        -          "changedFiles",
        -          "worktreePath",
        -          "error",
        -          "warnings"
        -        ],
        -        "type": "object"
        -      },
        -      "type": "array"
        -    },
        -    "warnings": {
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    }
        -  },
        -  "required": [
        -    "batchId",
        -    "mode",
        -    "maxParallel",
        -    "taskCount",
        -    "passed",
        -    "failed",
        -    "durationSeconds",
        -    "tasks",
        -    "scopeConflicts",
        -    "integrationConflicts",
        -    "integrated",
        -    "integrationSummary",
        -    "warnings",
        -    "reviewChecklist"
        -  ],
        -  "type": "object"
        -}New value: +null
    • Addedrouting_preflight
  3. 3 tool updatesv0.9.0
    • Addedcontinue_task
    • Changeddelegate_task11 fields changed
      • changedInput schema / properties / activityLabel / description
        Previous value: -"Optional concise label for local activity views; keep it short and useful (for example, 'Update auth retries'). It is persisted locally and may reveal this brief work description; omit it when that is not appropriate."New value: +"Optional concise, non-sensitive label for local activity views; parents should provide one for each batch task when a safe label is available (for example, 'Update auth retries'). It is persisted locally and may reveal this brief work description; omit it when that is not appropriate. Never derive it from the objective text."
      • changedInput schema / properties / allowedFiles / description
        Previous value: -"Declared workspace-relative glob scope, checked against observed edits after the run. Empty declares no in-workspace allowlist; workspace confinement remains."New value: +"Declared workspace-relative glob scope, checked against observed edits after the run. Empty declares no in-workspace allowlist and does not declare read-only intent; workspace confinement remains."
      • addedInput schema / properties / automaticRepair
        Added value: +{
        +  "default": false,
        +  "description": "Opt in to at most one automatic repair turn when the initial result is conservatively classified as a local verification defect. The same worker thread and immutable task contract are reused. Omitted defaults to false.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / changeIntent
        Added value: +{
        +  "default": "required",
        +  "description": "Explicit file-change expectation: forbidden means read-only and any runtime-observed edit violates the contract; optional means edits may be useful but are not required; required means the task is expected to produce an edit. Omitted defaults to required for compatibility. This is independent of allowedFiles and taskCategory.",
        +  "enum": [
        +    "forbidden",
        +    "optional",
        +    "required"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / changeIntent
        Added value: +{
        +  "description": "Selected change intent carried into the review evidence.",
        +  "enum": [
        +    "forbidden",
        +    "optional",
        +    "required"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / continuationReference
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Opaque, single-use, server-lifetime reference for one explicit continuation; null when this result cannot be continued or the bound was consumed."
        +}
      • addedOutput schema / properties / repair
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "attempted": {
        +          "type": "boolean"
        +        },
        +        "classification": {
        +          "enum": [
        +            "not-requested",
        +            "not-needed",
        +            "local-verification",
        +            "read-only",
        +            "contract-or-requirement",
        +            "scope-or-conflict",
        +            "environment-or-tooling",
        +            "security-or-trust-boundary",
        +            "wider-scope"
        +          ],
        +          "type": "string"
        +        },
        +        "failureEvidence": {
        +          "items": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "command": {
        +                "type": "string"
        +              },
        +              "execution": {
        +                "enum": [
        +                  "argv",
        +                  "shell"
        +                ],
        +                "type": "string"
        +              },
        +              "exitCode": {
        +                "anyOf": [
        +                  {
        +                    "type": "number"
        +                  },
        +                  {
        +                    "type": "null"
        +                  }
        +                ]
        +              },
        +              "output": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "command",
        +              "execution",
        +              "exitCode",
        +              "output"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "reason": {
        +          "type": "string"
        +        },
        +        "requested": {
        +          "type": "boolean"
        +        }
        +      },
        +      "required": [
        +        "requested",
        +        "attempted",
        +        "classification",
        +        "reason",
        +        "failureEvidence"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Bounded automatic-repair decision and the concise authoritative failure evidence supplied to the resumed worker. Null or omitted when not requested."
        +}
      • changedOutput schema / properties / usage / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "cachedInputTokens": {
        -        "type": "number"
        -      },
        -      "inputTokens": {
        -        "type": "number"
        -      },
        -      "outputTokens": {
        -        "type": "number"
        -      },
        -      "reasoningOutputTokens": {
        -        "type": "number"
        -      }
        -    },
        -    "required": [
        -      "inputTokens",
        -      "cachedInputTokens",
        -      "outputTokens",
        -      "reasoningOutputTokens"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "cacheWriteInputTokens": {
        +        "type": "number"
        +      },
        +      "cachedInputTokens": {
        +        "type": "number"
        +      },
        +      "inputTokens": {
        +        "type": "number"
        +      },
        +      "outputTokens": {
        +        "type": "number"
        +      },
        +      "reasoningOutputTokens": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "inputTokens",
        +      "cachedInputTokens",
        +      "outputTokens",
        +      "reasoningOutputTokens"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / properties / workerClaimedFailureCauses
        Added value: +{
        +  "description": "Normalized worker-declared failure causes. This is claim evidence, not an orchestrator repair or retry classification. Current results always include it; the field is optional only for backwards-compatible consumers.",
        +  "items": {
        +    "enum": [
        +      "verification",
        +      "requirements",
        +      "implementation",
        +      "environment-tooling",
        +      "timeout",
        +      "blocked",
        +      "unclassified"
        +    ],
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • changedOutput schema / properties / workerThreadId / description
        Previous value: -"Codex thread id of the worker, for inspecting or resuming it."New value: +"Codex thread id of the worker, for inspection; continuation uses an opaque reference."
      • changedOutput schema / required
        Previous value: -[
        -  "verdict",
        -  "workerClaimedStatus",
        -  "trustworthy",
        -  "workerThreadId",
        -  "model",
        -  "effort",
        -  "effortReason",
        -  "attempt",
        -  "summary",
        -  "notes",
        -  "followUps",
        -  "filesChanged",
        -  "verification",
        -  "verificationMode",
        -  "scopeViolations",
        -  "discrepancies",
        -  "reviewChecklist",
        -  "escalationAdvice",
        -  "durationSeconds",
        -  "usage",
        -  "errors"
        -]New value: +[
        +  "changeIntent",
        +  "verdict",
        +  "workerClaimedStatus",
        +  "trustworthy",
        +  "workerThreadId",
        +  "continuationReference",
        +  "model",
        +  "effort",
        +  "effortReason",
        +  "attempt",
        +  "summary",
        +  "notes",
        +  "followUps",
        +  "filesChanged",
        +  "verification",
        +  "verificationMode",
        +  "scopeViolations",
        +  "discrepancies",
        +  "reviewChecklist",
        +  "escalationAdvice",
        +  "durationSeconds",
        +  "usage",
        +  "errors"
        +]
    • Changeddelegate_tasks10 fields changed
      • changedInput schema / properties / allowOverlappingScopes / description
        Previous value: -"Parallel only: permit potentially overlapping declared scopes. Actual same-file edits still prevent automatic integration."New value: +"Parallel only: this call-level escape hatch permits potentially overlapping declared scopes. Actual same-file edits still prevent automatic integration."
      • changedInput schema / properties / resultDetail / description
        Previous value: -"Choose compact routinely; it removes only successful verification output. Use full when that output is needed. The schema default remains full for backwards compatibility; failed, refused, and skipped output is retained."New value: +"Batch-level result detail applied uniformly to every returned task result; it is not a per-task field. Compact removes only successful verification output, while the schema default remains full for backwards compatibility."
      • changedInput schema / properties / tasks / description
        Previous value: -"Task contracts; a batch accepts at most 12 tasks. Batch size is not concurrency: sequential mode runs one at a time, while parallel mode runs at most 3 workers at once and queues the rest. Parallel tasks need disjoint scopes unless overlap is explicitly allowed."New value: +"Task contracts; this API is intended for multiple meaningful tasks but accepts one or more and at most 12 tasks. A one-task batch remains accepted for compatibility; prefer delegate_task for a single task. Batch size is not concurrency: sequential mode runs one at a time, while parallel mode runs at most 3 workers at once and queues the rest. Parallel tasks need disjoint scopes unless this call sets allowOverlappingScopes:true; actual same-file edits still prevent automatic integration. Provide each task an optional concise, non-sensitive activityLabel when one is safe; labels are explicit only and never derived from objective text."
      • changedInput schema / properties / tasks / items / properties / activityLabel / description
        Previous value: -"Optional concise label for local activity views; keep it short and useful (for example, 'Update auth retries'). It is persisted locally and may reveal this brief work description; omit it when that is not appropriate."New value: +"Optional concise, non-sensitive label for local activity views; parents should provide one for each batch task when a safe label is available (for example, 'Update auth retries'). It is persisted locally and may reveal this brief work description; omit it when that is not appropriate. Never derive it from the objective text."
      • changedInput schema / properties / tasks / items / properties / allowedFiles / description
        Previous value: -"Declared workspace-relative glob scope, checked against observed edits after the run. Empty declares no in-workspace allowlist; workspace confinement remains."New value: +"Declared workspace-relative glob scope, checked against observed edits after the run. Empty declares no in-workspace allowlist and does not declare read-only intent; workspace confinement remains."
      • addedInput schema / properties / tasks / items / properties / automaticRepair
        Added value: +{
        +  "default": false,
        +  "description": "Opt in to at most one automatic repair turn when the initial result is conservatively classified as a local verification defect. The same worker thread and immutable task contract are reused. Omitted defaults to false.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / tasks / items / properties / changeIntent
        Added value: +{
        +  "default": "required",
        +  "description": "Explicit file-change expectation: forbidden means read-only and any runtime-observed edit violates the contract; optional means edits may be useful but are not required; required means the task is expected to produce an edit. Omitted defaults to required for compatibility. This is independent of allowedFiles and taskCategory.",
        +  "enum": [
        +    "forbidden",
        +    "optional",
        +    "required"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / properties / integrationConflicts / description
        Previous value: -"Files more than one worker actually changed. Non-empty means nothing was integrated and you must merge them yourself."New value: +"Parallel integration only: files more than one worker actually changed. Non-empty means nothing was integrated and you must merge them yourself. Sequential shared-workspace batches return an empty array."
      • changedOutput schema / properties / tasks / items / properties / result / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "attempt": {
        -        "description": "Attempt number for this objective, from `previousAttempts`.",
        -        "type": "number"
        -      },
        -      "discrepancies": {
        -        "description": "Concrete mismatches between claims and observed evidence. Non-empty means do not accept the result as-is.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "durationSeconds": {
        -        "type": "number"
        -      },
        -      "effort": {
        -        "type": "string"
        -      },
        -      "effortReason": {
        -        "type": "string"
        -      },
        -      "errors": {
        -        "description": "Runtime errors surfaced during the turn.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "escalationAdvice": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "When the task did not pass, what to change before retrying — including whether raising effort is actually justified."
        -      },
        -      "filesChanged": {
        -        "description": "Union of runtime-observed and worker-claimed edits. observed: false means the runtime recorded no matching patch.",
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "kind": {
        -              "type": "string"
        -            },
        -            "observed": {
        -              "description": "True if the Codex runtime itself recorded this edit.",
        -              "type": "boolean"
        -            },
        -            "path": {
        -              "type": "string"
        -            },
        -            "why": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "path",
        -            "kind",
        -            "why",
        -            "observed"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "followUps": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "model": {
        -        "type": "string"
        -      },
        -      "notes": {
        -        "type": "string"
        -      },
        -      "reviewChecklist": {
        -        "description": "Risk-based checks the parent orchestrator must still make before accepting.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "scopeViolations": {
        -        "description": "Observed edits outside allowedFiles, matching forbiddenFiles, or escaping the workspace. Non-empty requires deeper review.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "summary": {
        -        "description": "Worker's summary of what it did.",
        -        "type": "string"
        -      },
        -      "trustworthy": {
        -        "description": "False when claims conflict with observed evidence or runtime errors occurred; scrutinize the result before accepting.",
        -        "type": "boolean"
        -      },
        -      "usage": {
        -        "anyOf": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "cachedInputTokens": {
        -                "type": "number"
        -              },
        -              "inputTokens": {
        -                "type": "number"
        -              },
        -              "outputTokens": {
        -                "type": "number"
        -              },
        -              "reasoningOutputTokens": {
        -                "type": "number"
        -              }
        -            },
        -            "required": [
        -              "inputTokens",
        -              "cachedInputTokens",
        -              "outputTokens",
        -              "reasoningOutputTokens"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "verdict": {
        -        "description": "Orchestrator verdict from observed scope and configured verification; not copied from the worker's claim.",
        -        "enum": [
        -          "PASS",
        -          "BLOCKED",
        -          "FAILED"
        -        ],
        -        "type": "string"
        -      },
        -      "verification": {
        -        "description": "Verification outcomes with provenance and execution status; use orchestrator rows to determine what actually ran.",
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "command": {
        -              "type": "string"
        -            },
        -            "execution": {
        -              "description": "argv or shell = executed here; rejected = refused; skipped = disabled; reported = worker-only. Only successful executed rows prove a command.",
        -              "enum": [
        -                "argv",
        -                "shell",
        -                "rejected",
        -                "skipped",
        -                "reported"
        -              ],
        -              "type": "string"
        -            },
        -            "exitCode": {
        -              "anyOf": [
        -                {
        -                  "type": "number"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "output": {
        -              "type": "string"
        -            },
        -            "passed": {
        -              "type": "boolean"
        -            },
        -            "source": {
        -              "description": "Result provenance. Orchestrator rows authoritatively record execution, refusal, or skipping; worker rows are self-reported.",
        -              "enum": [
        -                "orchestrator",
        -                "worker"
        -              ],
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "command",
        -            "source",
        -            "execution",
        -            "exitCode",
        -            "passed",
        -            "output"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "verificationMode": {
        -        "description": "Execution policy in force: allowlist, off, or shell.",
        -        "type": "string"
        -      },
        -      "workerClaimedStatus": {
        -        "description": "What the worker reported. Compare against `verdict`.",
        -        "enum": [
        -          "PASS",
        -          "BLOCKED",
        -          "FAILED"
        -        ],
        -        "type": "string"
        -      },
        -      "workerThreadId": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Codex thread id of the worker, for inspecting or resuming it."
        -      }
        -    },
        -    "required": [
        -      "verdict",
        -      "workerClaimedStatus",
        -      "trustworthy",
        -      "workerThreadId",
        -      "model",
        -      "effort",
        -      "effortReason",
        -      "attempt",
        -      "summary",
        -      "notes",
        -      "followUps",
        -      "filesChanged",
        -      "verification",
        -      "verificationMode",
        -      "scopeViolations",
        -      "discrepancies",
        -      "reviewChecklist",
        -      "escalationAdvice",
        -      "durationSeconds",
        -      "usage",
        -      "errors"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "attempt": {
        +        "description": "Attempt number for this objective, from `previousAttempts`.",
        +        "type": "number"
        +      },
        +      "changeIntent": {
        +        "description": "Selected change intent carried into the review evidence.",
        +        "enum": [
        +          "forbidden",
        +          "optional",
        +          "required"
        +        ],
        +        "type": "string"
        +      },
        +      "continuationReference": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Opaque, single-use, server-lifetime reference for one explicit continuation; null when this result cannot be continued or the bound was consumed."
        +      },
        +      "discrepancies": {
        +        "description": "Concrete mismatches between claims and observed evidence. Non-empty means do not accept the result as-is.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "durationSeconds": {
        +        "type": "number"
        +      },
        +      "effort": {
        +        "type": "string"
        +      },
        +      "effortReason": {
        +        "type": "string"
        +      },
        +      "errors": {
        +        "description": "Runtime errors surfaced during the turn.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "escalationAdvice": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "When the task did not pass, what to change before retrying — including whether raising effort is actually justified."
        +      },
        +      "filesChanged": {
        +        "description": "Union of runtime-observed and worker-claimed edits. observed: false means the runtime recorded no matching patch.",
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "kind": {
        +              "type": "string"
        +            },
        +            "observed": {
        +              "description": "True if the Codex runtime itself recorded this edit.",
        +              "type": "boolean"
        +            },
        +            "path": {
        +              "type": "string"
        +            },
        +            "why": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "path",
        +            "kind",
        +            "why",
        +            "observed"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "followUps": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "model": {
        +        "type": "string"
        +      },
        +      "notes": {
        +        "type": "string"
        +      },
        +      "repair": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "attempted": {
        +                "type": "boolean"
        +              },
        +              "classification": {
        +                "enum": [
        +                  "not-requested",
        +                  "not-needed",
        +                  "local-verification",
        +                  "read-only",
        +                  "contract-or-requirement",
        +                  "scope-or-conflict",
        +                  "environment-or-tooling",
        +                  "security-or-trust-boundary",
        +                  "wider-scope"
        +                ],
        +                "type": "string"
        +              },
        +              "failureEvidence": {
        +                "items": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "command": {
        +                      "type": "string"
        +                    },
        +                    "execution": {
        +                      "enum": [
        +                        "argv",
        +                        "shell"
        +                      ],
        +                      "type": "string"
        +                    },
        +                    "exitCode": {
        +                      "anyOf": [
        +                        {
        +                          "type": "number"
        +                        },
        +                        {
        +                          "type": "null"
        +                        }
        +                      ]
        +                    },
        +                    "output": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "command",
        +                    "execution",
        +                    "exitCode",
        +                    "output"
        +                  ],
        +                  "type": "object"
        +                },
        +                "type": "array"
        +              },
        +              "reason": {
        +                "type": "string"
        +              },
        +              "requested": {
        +                "type": "boolean"
        +              }
        +            },
        +            "required": [
        +              "requested",
        +              "attempted",
        +              "classification",
        +              "reason",
        +              "failureEvidence"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Bounded automatic-repair decision and the concise authoritative failure evidence supplied to the resumed worker. Null or omitted when not requested."
        +      },
        +      "reviewChecklist": {
        +        "description": "Risk-based checks the parent orchestrator must still make before accepting.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "scopeViolations": {
        +        "description": "Observed edits outside allowedFiles, matching forbiddenFiles, or escaping the workspace. Non-empty requires deeper review.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "summary": {
        +        "description": "Worker's summary of what it did.",
        +        "type": "string"
        +      },
        +      "trustworthy": {
        +        "description": "False when claims conflict with observed evidence or runtime errors occurred; scrutinize the result before accepting.",
        +        "type": "boolean"
        +      },
        +      "usage": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "cacheWriteInputTokens": {
        +                "type": "number"
        +              },
        +              "cachedInputTokens": {
        +                "type": "number"
        +              },
        +              "inputTokens": {
        +                "type": "number"
        +              },
        +              "outputTokens": {
        +                "type": "number"
        +              },
        +              "reasoningOutputTokens": {
        +                "type": "number"
        +              }
        +            },
        +            "required": [
        +              "inputTokens",
        +              "cachedInputTokens",
        +              "outputTokens",
        +              "reasoningOutputTokens"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "verdict": {
        +        "description": "Orchestrator verdict from observed scope and configured verification; not copied from the worker's claim.",
        +        "enum": [
        +          "PASS",
        +          "BLOCKED",
        +          "FAILED"
        +        ],
        +        "type": "string"
        +      },
        +      "verification": {
        +        "description": "Verification outcomes with provenance and execution status; use orchestrator rows to determine what actually ran.",
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "command": {
        +              "type": "string"
        +            },
        +            "execution": {
        +              "description": "argv or shell = executed here; rejected = refused; skipped = disabled; reported = worker-only. Only successful executed rows prove a command.",
        +              "enum": [
        +                "argv",
        +                "shell",
        +                "rejected",
        +                "skipped",
        +                "reported"
        +              ],
        +              "type": "string"
        +            },
        +            "exitCode": {
        +              "anyOf": [
        +                {
        +                  "type": "number"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "output": {
        +              "type": "string"
        +            },
        +            "passed": {
        +              "type": "boolean"
        +            },
        +            "source": {
        +              "description": "Result provenance. Orchestrator rows authoritatively record execution, refusal, or skipping; worker rows are self-reported.",
        +              "enum": [
        +                "orchestrator",
        +                "worker"
        +              ],
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "command",
        +            "source",
        +            "execution",
        +            "exitCode",
        +            "passed",
        +            "output"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "verificationMode": {
        +        "description": "Execution policy in force: allowlist, off, or shell.",
        +        "type": "string"
        +      },
        +      "workerClaimedFailureCauses": {
        +        "description": "Normalized worker-declared failure causes. This is claim evidence, not an orchestrator repair or retry classification. Current results always include it; the field is optional only for backwards-compatible consumers.",
        +        "items": {
        +          "enum": [
        +            "verification",
        +            "requirements",
        +            "implementation",
        +            "environment-tooling",
        +            "timeout",
        +            "blocked",
        +            "unclassified"
        +          ],
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "workerClaimedStatus": {
        +        "description": "What the worker reported. Compare against `verdict`.",
        +        "enum": [
        +          "PASS",
        +          "BLOCKED",
        +          "FAILED"
        +        ],
        +        "type": "string"
        +      },
        +      "workerThreadId": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Codex thread id of the worker, for inspection; continuation uses an opaque reference."
        +      }
        +    },
        +    "required": [
        +      "changeIntent",
        +      "verdict",
        +      "workerClaimedStatus",
        +      "trustworthy",
        +      "workerThreadId",
        +      "continuationReference",
        +      "model",
        +      "effort",
        +      "effortReason",
        +      "attempt",
        +      "summary",
        +      "notes",
        +      "followUps",
        +      "filesChanged",
        +      "verification",
        +      "verificationMode",
        +      "scopeViolations",
        +      "discrepancies",
        +      "reviewChecklist",
        +      "escalationAdvice",
        +      "durationSeconds",
        +      "usage",
        +      "errors"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedOutput schema / properties / tasks / items / properties / result / description
        Previous value: -"Single-task result at the requested resultDetail, or null if the task never ran."New value: +"Single-task result at the batch's requested resultDetail, or null if the task never ran."
  4. 2 tool updatesv0.8.0
    • Changeddelegate_task24 fields changed
      • changedInput schema / properties / acceptanceCriteria / description
        Previous value: -"Observable, checkable conditions that define done — something you can confirm by reading the diff or running a command."New value: +"Observable conditions that define done and can be judged from evidence."
      • addedInput schema / properties / activityLabel
        Added value: +{
        +  "description": "Optional concise label for local activity views; keep it short and useful (for example, 'Update auth retries'). It is persisted locally and may reveal this brief work description; omit it when that is not appropriate.",
        +  "maxLength": 80,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • changedInput schema / properties / allowedFiles / description
        Previous value: -"Glob patterns the worker may create or modify (e.g. 'src/auth/**'). Empty means unrestricted, which is discouraged. Enforced after the run."New value: +"Declared workspace-relative glob scope, checked against observed edits after the run. Empty declares no in-workspace allowlist; workspace confinement remains."
      • changedInput schema / properties / context / description
        Previous value: -"Background the worker cannot infer from the repo: prior decisions, constraints, gotchas, relevant files."New value: +"Legacy plain-text task background. If contextCapsule is also supplied, both are sent; avoid duplication."
      • addedInput schema / properties / contextCapsule
        Added value: +{
        +  "description": "Optional structured task background the worker cannot infer. It supplements the contract and legacy context; include only useful fields, omit empty fields, never copy the parent transcript, and do not duplicate other fields.",
        +  "properties": {
        +    "dependencies": {
        +      "description": "Services, libraries, or internal modules the task depends on.",
        +      "type": "string"
        +    },
        +    "interfaces": {
        +      "description": "Signatures, contracts, or boundaries that must remain stable.",
        +      "type": "string"
        +    },
        +    "invariants": {
        +      "description": "Rules that must remain true.",
        +      "type": "string"
        +    },
        +    "knownPitfalls": {
        +      "description": "Task-specific mistakes or failed approaches to avoid.",
        +      "type": "string"
        +    },
        +    "relevantContext": {
        +      "description": "Task background the worker cannot infer from the repository.",
        +      "type": "string"
        +    },
        +    "upstreamDecisions": {
        +      "description": "Architecture or design decisions already settled by the parent orchestrator.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
      • changedInput schema / properties / effort / description
        Previous value: -"Reasoning effort for the worker. medium = mechanical, high = default for real implementation work, xhigh = subtle or cross-cutting, max = genuinely hard problems only. Rate the DELEGATED TASK's own difficulty, never the parent project's importance."New value: +"Worker reasoning effort: medium = mechanical; high = bounded work needing judgement (routine default); xhigh = subtle, cross-cutting, or unclear cause; max = genuinely hard. Rate this task's difficulty, not project importance."
      • changedInput schema / properties / effortReason / description
        Previous value: -"One sentence justifying the effort in terms of this task's difficulty. Required so effort selection stays deliberate."New value: +"One sentence justifying the effort from this task's difficulty."
      • changedInput schema / properties / forbiddenFiles / description
        Previous value: -"Glob patterns the worker must not touch (e.g. 'package.json'). Takes precedence over allowedFiles. Forbid the test files when tests are the verification."New value: +"Workspace-relative globs observed edits must not match. Checked after the run and takes precedence over allowedFiles."
      • changedInput schema / properties / objective / description
        Previous value: -"Single bounded implementation task, written so a worker with no access to your conversation can execute it. State the what and the why."New value: +"One bounded executable task. Make the what, why, and expected outcome self-contained because the worker cannot see the conversation."
      • changedInput schema / properties / previousAttempts / description
        Previous value: -"Escalation history for this same objective. Supply it when re-delegating after a FAILED or BLOCKED result: the worker sees what already failed, and the orchestrator reports the attempt number back to you."New value: +"Prior FAILED or BLOCKED attempts at this objective, so a retry can avoid repeating them and the result can report its attempt number."
      • addedInput schema / properties / resultDetail
        Added value: +{
        +  "default": "full",
        +  "description": "Choose compact routinely; it removes only successful verification output. Use full when that output is needed. The schema default remains full for backwards compatibility; failed, refused, and skipped output is retained.",
        +  "enum": [
        +    "full",
        +    "compact"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / taskCategory / description
        Previous value: -"Shape of the work. 'investigation' and 'bugfix' more often justify xhigh; 'chore' and 'tests' rarely do."New value: +"Kind of executable work; it does not determine effort."
      • changedInput schema / properties / timeoutSeconds / description
        Previous value: -"Wall-clock budget for the worker turn. Defaults to 1800."New value: +"Optional per-turn wall-clock budget; otherwise uses the configured default (normally 1800 seconds)."
      • changedInput schema / properties / verificationCommands / description
        Previous value: -"Shell-free commands proving the work (e.g. 'npm test', 'pytest -q'). The worker runs them AND the orchestrator independently re-runs them after the worker exits; the orchestrator's exit codes are authoritative. Only allowlisted executables run, and pipes/redirects/&&/; are refused."New value: +"Targeted deterministic checks that prove the bounded task; use a full suite only when the task genuinely requires it. The worker runs and reports them, and the orchestrator independently processes each under the configured policy. Executed orchestrator rows are authoritative, while refused or skipped rows prove nothing. Default allowlist mode refuses shell syntax."
      • changedInput schema / properties / workingDirectory / description
        Previous value: -"Absolute path the worker operates in. Defaults to the orchestrator's current working directory."New value: +"Absolute worker directory; defaults to the orchestrator's current directory."
      • changedOutput schema / properties / discrepancies / description
        Previous value: -"Concrete mismatches between the worker's claims and observed reality. Non-empty means do not accept the result as-is."New value: +"Concrete mismatches between claims and observed evidence. Non-empty means do not accept the result as-is."
      • changedOutput schema / properties / filesChanged / description
        Previous value: -"Union of edits observed by the Codex runtime and edits the worker claimed. `observed: false` means the runtime saw no such patch."New value: +"Union of runtime-observed and worker-claimed edits. observed: false means the runtime recorded no matching patch."
      • changedOutput schema / properties / reviewChecklist / description
        Previous value: -"What you, Sol, must still check yourself before accepting."New value: +"Risk-based checks the parent orchestrator must still make before accepting."
      • changedOutput schema / properties / scopeViolations / description
        Previous value: -"Files touched outside allowedFiles, inside forbiddenFiles, or outside the workspace."New value: +"Observed edits outside allowedFiles, matching forbiddenFiles, or escaping the workspace. Non-empty requires deeper review."
      • changedOutput schema / properties / trustworthy / description
        Previous value: -"False when the worker's claim conflicts with observed evidence. False demands a careful diff review before accepting anything."New value: +"False when claims conflict with observed evidence or runtime errors occurred; scrutinize the result before accepting."
      • changedOutput schema / properties / verdict / description
        Previous value: -"Orchestrator's verdict, derived from independently re-run verification and scope checks — NOT copied from the worker's claim."New value: +"Orchestrator verdict from observed scope and configured verification; not copied from the worker's claim."
      • changedOutput schema / properties / verification / description
        Previous value: -"Verification outcomes. Prefer `source: orchestrator` rows."New value: +"Verification outcomes with provenance and execution status; use orchestrator rows to determine what actually ran."
      • changedOutput schema / properties / verification / items / properties / execution / description
        Previous value: -"How the orchestrator ran it. `argv` = no shell (normal). `rejected` = refused by policy and NOT run. `skipped` = verification disabled. `reported` = the worker's own claim, not executed here. Only argv/shell rows prove anything."New value: +"argv or shell = executed here; rejected = refused; skipped = disabled; reported = worker-only. Only successful executed rows prove a command."
      • changedOutput schema / properties / verification / items / properties / source / description
        Previous value: -"`orchestrator` results are ground truth."New value: +"Result provenance. Orchestrator rows authoritatively record execution, refusal, or skipping; worker rows are self-reported."
    • Changeddelegate_tasks23 fields changed
      • changedInput schema / properties / allowOverlappingScopes / description
        Previous value: -"Run in parallel even when two tasks could touch the same files. Off by default because the result then depends on which worker finishes last."New value: +"Parallel only: permit potentially overlapping declared scopes. Actual same-file edits still prevent automatic integration."
      • changedInput schema / properties / integrate / description
        Previous value: -"Parallel mode only. Copy each worker's changes back into the workspace when no two workers touched the same file. Set false to review the worktrees yourself before anything moves."New value: +"Parallel only: copy completed worker edits back when observed changed files do not collide. Set false to leave changes in worktrees for review."
      • changedInput schema / properties / mode / description
        Previous value: -"parallel = tasks are independent; each runs in its own git worktree and results are integrated afterwards. sequential = tasks may depend on each other; they share the workspace and run one at a time, so a later task sees the earlier one's changes."New value: +"sequential = dependent or shared-workspace tasks run in order; parallel = independent tasks run in isolated git worktrees and may be copied back only when integration is enabled and observed changed files do not collide."
      • addedInput schema / properties / resultDetail
        Added value: +{
        +  "default": "full",
        +  "description": "Choose compact routinely; it removes only successful verification output. Use full when that output is needed. The schema default remains full for backwards compatibility; failed, refused, and skipped output is retained.",
        +  "enum": [
        +    "full",
        +    "compact"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / tasks / description
        Previous value: -"Task contracts. For parallel mode give each a disjoint allowedFiles scope; overlapping scopes are rejected unless you opt in."New value: +"Task contracts; a batch accepts at most 12 tasks. Batch size is not concurrency: sequential mode runs one at a time, while parallel mode runs at most 3 workers at once and queues the rest. Parallel tasks need disjoint scopes unless overlap is explicitly allowed."
      • changedInput schema / properties / tasks / items / properties / acceptanceCriteria / description
        Previous value: -"Observable, checkable conditions that define done — something you can confirm by reading the diff or running a command."New value: +"Observable conditions that define done and can be judged from evidence."
      • addedInput schema / properties / tasks / items / properties / activityLabel
        Added value: +{
        +  "description": "Optional concise label for local activity views; keep it short and useful (for example, 'Update auth retries'). It is persisted locally and may reveal this brief work description; omit it when that is not appropriate.",
        +  "maxLength": 80,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • changedInput schema / properties / tasks / items / properties / allowedFiles / description
        Previous value: -"Glob patterns the worker may create or modify (e.g. 'src/auth/**'). Empty means unrestricted, which is discouraged. Enforced after the run."New value: +"Declared workspace-relative glob scope, checked against observed edits after the run. Empty declares no in-workspace allowlist; workspace confinement remains."
      • changedInput schema / properties / tasks / items / properties / context / description
        Previous value: -"Background the worker cannot infer from the repo: prior decisions, constraints, gotchas, relevant files."New value: +"Legacy plain-text task background. If contextCapsule is also supplied, both are sent; avoid duplication."
      • addedInput schema / properties / tasks / items / properties / contextCapsule
        Added value: +{
        +  "description": "Optional structured task background the worker cannot infer. It supplements the contract and legacy context; include only useful fields, omit empty fields, never copy the parent transcript, and do not duplicate other fields.",
        +  "properties": {
        +    "dependencies": {
        +      "description": "Services, libraries, or internal modules the task depends on.",
        +      "type": "string"
        +    },
        +    "interfaces": {
        +      "description": "Signatures, contracts, or boundaries that must remain stable.",
        +      "type": "string"
        +    },
        +    "invariants": {
        +      "description": "Rules that must remain true.",
        +      "type": "string"
        +    },
        +    "knownPitfalls": {
        +      "description": "Task-specific mistakes or failed approaches to avoid.",
        +      "type": "string"
        +    },
        +    "relevantContext": {
        +      "description": "Task background the worker cannot infer from the repository.",
        +      "type": "string"
        +    },
        +    "upstreamDecisions": {
        +      "description": "Architecture or design decisions already settled by the parent orchestrator.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
      • changedInput schema / properties / tasks / items / properties / effort / description
        Previous value: -"Reasoning effort for the worker. medium = mechanical, high = default for real implementation work, xhigh = subtle or cross-cutting, max = genuinely hard problems only. Rate the DELEGATED TASK's own difficulty, never the parent project's importance."New value: +"Worker reasoning effort: medium = mechanical; high = bounded work needing judgement (routine default); xhigh = subtle, cross-cutting, or unclear cause; max = genuinely hard. Rate this task's difficulty, not project importance."
      • changedInput schema / properties / tasks / items / properties / effortReason / description
        Previous value: -"One sentence justifying the effort in terms of this task's difficulty. Required so effort selection stays deliberate."New value: +"One sentence justifying the effort from this task's difficulty."
      • changedInput schema / properties / tasks / items / properties / forbiddenFiles / description
        Previous value: -"Glob patterns the worker must not touch (e.g. 'package.json'). Takes precedence over allowedFiles. Forbid the test files when tests are the verification."New value: +"Workspace-relative globs observed edits must not match. Checked after the run and takes precedence over allowedFiles."
      • changedInput schema / properties / tasks / items / properties / objective / description
        Previous value: -"Single bounded implementation task, written so a worker with no access to your conversation can execute it. State the what and the why."New value: +"One bounded executable task. Make the what, why, and expected outcome self-contained because the worker cannot see the conversation."
      • changedInput schema / properties / tasks / items / properties / previousAttempts / description
        Previous value: -"Escalation history for this same objective. Supply it when re-delegating after a FAILED or BLOCKED result: the worker sees what already failed, and the orchestrator reports the attempt number back to you."New value: +"Prior FAILED or BLOCKED attempts at this objective, so a retry can avoid repeating them and the result can report its attempt number."
      • changedInput schema / properties / tasks / items / properties / taskCategory / description
        Previous value: -"Shape of the work. 'investigation' and 'bugfix' more often justify xhigh; 'chore' and 'tests' rarely do."New value: +"Kind of executable work; it does not determine effort."
      • changedInput schema / properties / tasks / items / properties / timeoutSeconds / description
        Previous value: -"Wall-clock budget for the worker turn. Defaults to 1800."New value: +"Optional per-turn wall-clock budget; otherwise uses the configured default (normally 1800 seconds)."
      • changedInput schema / properties / tasks / items / properties / verificationCommands / description
        Previous value: -"Shell-free commands proving the work (e.g. 'npm test', 'pytest -q'). The worker runs them AND the orchestrator independently re-runs them after the worker exits; the orchestrator's exit codes are authoritative. Only allowlisted executables run, and pipes/redirects/&&/; are refused."New value: +"Targeted deterministic checks that prove the bounded task; use a full suite only when the task genuinely requires it. The worker runs and reports them, and the orchestrator independently processes each under the configured policy. Executed orchestrator rows are authoritative, while refused or skipped rows prove nothing. Default allowlist mode refuses shell syntax."
      • addedInput schema / properties / tasks / maxItems
        Added value: +12
      • changedOutput schema / properties / integrated / description
        Previous value: -"Whether worker changes are now present in the workspace."New value: +"Whether completed worker edits are now present in the requested workspace."
      • addedOutput schema / properties / reviewChecklist / description
        Added value: +"Batch-level integration and risk checks the parent orchestrator must still make."
      • changedOutput schema / properties / tasks / items / properties / result / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "attempt": {
        -        "description": "Attempt number for this objective, from `previousAttempts`.",
        -        "type": "number"
        -      },
        -      "discrepancies": {
        -        "description": "Concrete mismatches between the worker's claims and observed reality. Non-empty means do not accept the result as-is.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "durationSeconds": {
        -        "type": "number"
        -      },
        -      "effort": {
        -        "type": "string"
        -      },
        -      "effortReason": {
        -        "type": "string"
        -      },
        -      "errors": {
        -        "description": "Runtime errors surfaced during the turn.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "escalationAdvice": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "When the task did not pass, what to change before retrying — including whether raising effort is actually justified."
        -      },
        -      "filesChanged": {
        -        "description": "Union of edits observed by the Codex runtime and edits the worker claimed. `observed: false` means the runtime saw no such patch.",
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "kind": {
        -              "type": "string"
        -            },
        -            "observed": {
        -              "description": "True if the Codex runtime itself recorded this edit.",
        -              "type": "boolean"
        -            },
        -            "path": {
        -              "type": "string"
        -            },
        -            "why": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "path",
        -            "kind",
        -            "why",
        -            "observed"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "followUps": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "model": {
        -        "type": "string"
        -      },
        -      "notes": {
        -        "type": "string"
        -      },
        -      "reviewChecklist": {
        -        "description": "What you, Sol, must still check yourself before accepting.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "scopeViolations": {
        -        "description": "Files touched outside allowedFiles, inside forbiddenFiles, or outside the workspace.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "summary": {
        -        "description": "Worker's summary of what it did.",
        -        "type": "string"
        -      },
        -      "trustworthy": {
        -        "description": "False when the worker's claim conflicts with observed evidence. False demands a careful diff review before accepting anything.",
        -        "type": "boolean"
        -      },
        -      "usage": {
        -        "anyOf": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "cachedInputTokens": {
        -                "type": "number"
        -              },
        -              "inputTokens": {
        -                "type": "number"
        -              },
        -              "outputTokens": {
        -                "type": "number"
        -              },
        -              "reasoningOutputTokens": {
        -                "type": "number"
        -              }
        -            },
        -            "required": [
        -              "inputTokens",
        -              "cachedInputTokens",
        -              "outputTokens",
        -              "reasoningOutputTokens"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "verdict": {
        -        "description": "Orchestrator's verdict, derived from independently re-run verification and scope checks — NOT copied from the worker's claim.",
        -        "enum": [
        -          "PASS",
        -          "BLOCKED",
        -          "FAILED"
        -        ],
        -        "type": "string"
        -      },
        -      "verification": {
        -        "description": "Verification outcomes. Prefer `source: orchestrator` rows.",
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "command": {
        -              "type": "string"
        -            },
        -            "execution": {
        -              "description": "How the orchestrator ran it. `argv` = no shell (normal). `rejected` = refused by policy and NOT run. `skipped` = verification disabled. `reported` = the worker's own claim, not executed here. Only argv/shell rows prove anything.",
        -              "enum": [
        -                "argv",
        -                "shell",
        -                "rejected",
        -                "skipped",
        -                "reported"
        -              ],
        -              "type": "string"
        -            },
        -            "exitCode": {
        -              "anyOf": [
        -                {
        -                  "type": "number"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "output": {
        -              "type": "string"
        -            },
        -            "passed": {
        -              "type": "boolean"
        -            },
        -            "source": {
        -              "description": "`orchestrator` results are ground truth.",
        -              "enum": [
        -                "orchestrator",
        -                "worker"
        -              ],
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "command",
        -            "source",
        -            "execution",
        -            "exitCode",
        -            "passed",
        -            "output"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "verificationMode": {
        -        "description": "Execution policy in force: allowlist, off, or shell.",
        -        "type": "string"
        -      },
        -      "workerClaimedStatus": {
        -        "description": "What the worker reported. Compare against `verdict`.",
        -        "enum": [
        -          "PASS",
        -          "BLOCKED",
        -          "FAILED"
        -        ],
        -        "type": "string"
        -      },
        -      "workerThreadId": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Codex thread id of the worker, for inspecting or resuming it."
        -      }
        -    },
        -    "required": [
        -      "verdict",
        -      "workerClaimedStatus",
        -      "trustworthy",
        -      "workerThreadId",
        -      "model",
        -      "effort",
        -      "effortReason",
        -      "attempt",
        -      "summary",
        -      "notes",
        -      "followUps",
        -      "filesChanged",
        -      "verification",
        -      "verificationMode",
        -      "scopeViolations",
        -      "discrepancies",
        -      "reviewChecklist",
        -      "escalationAdvice",
        -      "durationSeconds",
        -      "usage",
        -      "errors"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "attempt": {
        +        "description": "Attempt number for this objective, from `previousAttempts`.",
        +        "type": "number"
        +      },
        +      "discrepancies": {
        +        "description": "Concrete mismatches between claims and observed evidence. Non-empty means do not accept the result as-is.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "durationSeconds": {
        +        "type": "number"
        +      },
        +      "effort": {
        +        "type": "string"
        +      },
        +      "effortReason": {
        +        "type": "string"
        +      },
        +      "errors": {
        +        "description": "Runtime errors surfaced during the turn.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "escalationAdvice": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "When the task did not pass, what to change before retrying — including whether raising effort is actually justified."
        +      },
        +      "filesChanged": {
        +        "description": "Union of runtime-observed and worker-claimed edits. observed: false means the runtime recorded no matching patch.",
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "kind": {
        +              "type": "string"
        +            },
        +            "observed": {
        +              "description": "True if the Codex runtime itself recorded this edit.",
        +              "type": "boolean"
        +            },
        +            "path": {
        +              "type": "string"
        +            },
        +            "why": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "path",
        +            "kind",
        +            "why",
        +            "observed"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "followUps": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "model": {
        +        "type": "string"
        +      },
        +      "notes": {
        +        "type": "string"
        +      },
        +      "reviewChecklist": {
        +        "description": "Risk-based checks the parent orchestrator must still make before accepting.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "scopeViolations": {
        +        "description": "Observed edits outside allowedFiles, matching forbiddenFiles, or escaping the workspace. Non-empty requires deeper review.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "summary": {
        +        "description": "Worker's summary of what it did.",
        +        "type": "string"
        +      },
        +      "trustworthy": {
        +        "description": "False when claims conflict with observed evidence or runtime errors occurred; scrutinize the result before accepting.",
        +        "type": "boolean"
        +      },
        +      "usage": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "cachedInputTokens": {
        +                "type": "number"
        +              },
        +              "inputTokens": {
        +                "type": "number"
        +              },
        +              "outputTokens": {
        +                "type": "number"
        +              },
        +              "reasoningOutputTokens": {
        +                "type": "number"
        +              }
        +            },
        +            "required": [
        +              "inputTokens",
        +              "cachedInputTokens",
        +              "outputTokens",
        +              "reasoningOutputTokens"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "verdict": {
        +        "description": "Orchestrator verdict from observed scope and configured verification; not copied from the worker's claim.",
        +        "enum": [
        +          "PASS",
        +          "BLOCKED",
        +          "FAILED"
        +        ],
        +        "type": "string"
        +      },
        +      "verification": {
        +        "description": "Verification outcomes with provenance and execution status; use orchestrator rows to determine what actually ran.",
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "command": {
        +              "type": "string"
        +            },
        +            "execution": {
        +              "description": "argv or shell = executed here; rejected = refused; skipped = disabled; reported = worker-only. Only successful executed rows prove a command.",
        +              "enum": [
        +                "argv",
        +                "shell",
        +                "rejected",
        +                "skipped",
        +                "reported"
        +              ],
        +              "type": "string"
        +            },
        +            "exitCode": {
        +              "anyOf": [
        +                {
        +                  "type": "number"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "output": {
        +              "type": "string"
        +            },
        +            "passed": {
        +              "type": "boolean"
        +            },
        +            "source": {
        +              "description": "Result provenance. Orchestrator rows authoritatively record execution, refusal, or skipping; worker rows are self-reported.",
        +              "enum": [
        +                "orchestrator",
        +                "worker"
        +              ],
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "command",
        +            "source",
        +            "execution",
        +            "exitCode",
        +            "passed",
        +            "output"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "verificationMode": {
        +        "description": "Execution policy in force: allowlist, off, or shell.",
        +        "type": "string"
        +      },
        +      "workerClaimedStatus": {
        +        "description": "What the worker reported. Compare against `verdict`.",
        +        "enum": [
        +          "PASS",
        +          "BLOCKED",
        +          "FAILED"
        +        ],
        +        "type": "string"
        +      },
        +      "workerThreadId": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Codex thread id of the worker, for inspecting or resuming it."
        +      }
        +    },
        +    "required": [
        +      "verdict",
        +      "workerClaimedStatus",
        +      "trustworthy",
        +      "workerThreadId",
        +      "model",
        +      "effort",
        +      "effortReason",
        +      "attempt",
        +      "summary",
        +      "notes",
        +      "followUps",
        +      "filesChanged",
        +      "verification",
        +      "verificationMode",
        +      "scopeViolations",
        +      "discrepancies",
        +      "reviewChecklist",
        +      "escalationAdvice",
        +      "durationSeconds",
        +      "usage",
        +      "errors"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedOutput schema / properties / tasks / items / properties / result / description
        Previous value: -"Full single-task result, or null if the task never ran."New value: +"Single-task result at the requested resultDetail, or null if the task never ran."
  5. 2 tool updatesv0.5.1
    • First observeddelegate_task
    • First observeddelegate_tasks

TDQS

A4.3/5.0

Scored across 5 tools

Disambiguation4/5

Each tool targets a distinct orchestration stage: cheap advisory routing_preflight, single-seam delegate_task, multi-seam delegate_tasks, same-thread continue_task, and read-only explore. The only real overlap is delegate_task vs delegate_tasks, which the descriptions resolve explicitly ('prefer delegate_task when no scheduling is needed'), so an agent can select correctly.

Naming Consistency4/5

Four tools follow a readable snake_case verb_noun pattern (continue_task, routing_preflight, delegate_task, delegate_tasks), though delegate_task/delegate_tasks differ only by pluralization. 'explore' breaks the pattern as a bare verb, and 'routing_preflight' is noun-flavored, but the set is still predictable.

Tool Count5/5

Five tools is well-scoped for a delegation orchestration server: one advisory check, two delegation paths, a continuation, and a read-only exploration mode. No tool looks redundant or bolted on.

Completeness4/5

The surface covers the core lifecycle: preflight gating, single and batch delegation, continuation, and exploration, with rich result/recovery semantics described. Gaps are minor — there is no explicit cancel or status/poll tool, and the descriptions assume agents remain silent while pending, so a parent cannot actively query in-flight work.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers