Skip to content

0.1.8 Beta2: Define the Codex CLI 0.146 Collaboration V1/V2 schema boundary #64

Closed

Description

@NOirBRight

Parent

#318 (part of #248)

Outcome

Record the exact Codex CLI 0.146 Collaboration V1/V2 schema boundary needed to keep Beta2 compatibility handling from corrupting either protocol.

This is a structural inventory and isolation contract. Full real-agent lifecycle qualification remains in the later Collaboration V2 phase.

Scope

  • Capture the model-visible V1 and V2 declaration shapes, names, argument fields, result identities, history items, and streaming forms.
  • Identify the exact signal that selects V1 versus V2 before any schema repair.
  • Record which V2 namespace shape may pass natively and which selected protocols require the generic namespace-to-function Adapter.
  • Define the fields and lifecycle assumptions that V1 repair/scheduling code must never add to V2.
  • Confirm that Codex Client remains the agent owner/executor.

Acceptance criteria

Blocked by

Activity

  1. NOirBRight commented on Jul 16, 2026

    @NOirBRight
    OwnerAuthor

    Reporter evidence — GLM-5.2 visible Worker receives continuations but cannot discover the outbound Task callback (2026-07-16)

    Sanitized bounded readback from Codex Desktop 26.707.12708.0 / Codex CLI 0.144.5 through CodexHub:

    • The Worker turn context records model=glm-5.2, effort=max, approval=never, and danger-full-access. Independent Gateway telemetry records the same request stream on Ollama Cloud native Responses with model=glm-5.2 and route_mode=codexhub.
    • Parent-to-child continuation works: the running Worker received an activation correction and a later stop/final-status instruction.
    • The failing turn remained active for about 464 seconds and issued 63 native tool_search calls. All 63 completed, including repeated exact-name queries for send_message_to_thread and codex_app__send_message_to_thread; every search output contained an empty tool list.
    • No outbound send_message_to_thread call occurred. Other exposed functions did execute, including shell_command and one list_mcp_resources, so this was not a total model/tool-call outage.
    • After the exact callback name was supplied, the Worker continued searching and narrating the same intended action instead of returning the required blocked result. A later parent continuation that required an exact no-tool BLOCKED response terminated the loop cleanly.
    • No repository or GitHub write was made by the Worker. Task IDs, callback addresses, local paths, prompts, call IDs, and raw traces are intentionally omitted.

    Failure-boundary classification

    This is not merely a reluctant model that declined to invoke discovery: GLM-5.2 selected tool_search repeatedly. The current red boundary is that the Deferred recovery path returned no callback capability even for exact-name searches, leaving inbound Task continuation functional while outbound native Task messaging was unavailable.

    #64 owns the visible-Task send/continue lifecycle and its Deferred tool_search recovery path. #63 should distinguish planner/registry exclusion or search-result loss from model next-call behavior when this replay is incorporated into the runtime trace harness.

  2. NOirBRight commented on Jul 16, 2026

    @NOirBRight
    OwnerAuthor

    Ownership refinement after root-cause expansion

    The reporter's expanded evidence now identifies a narrower production bug in addition to this broad verification scope. #156 is the P0 root-fix owner for:

    • missing native child callback/result receipt;
    • unbounded identical empty tool_search replay on the external adapter path; and
    • spawn_agent.agent_type loss plus missing effective worker/model/reasoning readback.

    #64 remains the V1/V2 collaboration lifecycle verification owner and should consume #156's post-fix native GLM-5.2/max Active → Done replay. This does not remove #64's existing #62/#63 research dependencies.

  3. NOirBRight commented on Jul 22, 2026

    @NOirBRight
    OwnerAuthor

    rust-v0.145.0 evidence baseline

    Keep this issue as the single native V1/V2 lifecycle evidence ticket; do not create a duplicate 0.145 research issue.

    The 0.145 run should additionally record:

    • V2 is Stable but not globally default-enabled, while model metadata can still select V2.
    • Effective [agents] precedence, max_concurrent_threads_per_session, default subagent model/reasoning, and configured roles.
    • V2 task_name/fork_turns and collaboration namespace tools versus the V1 agent_id/fork_context lifecycle.
    • send_message versus followup_task behavior, mailbox wait behavior, interrupt_agent, list_agents, and absence of V1 close/resume.
    • cold root resume restoring canonical agent path, nickname, role, model/reasoning, cwd, and permissions.
    • parent-owned child threads reporting canAcceptDirectInput=false and rejecting direct input.
    • paginated sub-agent history and inherited-prefix behavior.

    Scoped implementation follow-ups are tracked separately:

    Run the native evidence only after the current connection-stability frontier recorded in #147; this issue is not promoted to P1 merely because upstream marked V2 Stable.

  4. 25 remaining items

  5. NOirBRight commented on Aug 4, 2026

    @NOirBRight
    OwnerAuthor

    Orchestrator dispatch status (2026-08-04)

    Campaign: campaign:0.1.8-beta2.

    This ticket is pre-admitted for a single Luna Max worker, but dispatch is held by dispatch_after: #62. The worker may start only after #62 is closed on the accepted candidate lineage. Its scope is the authoritative Codex CLI 0.146 Collaboration V1/V2 schema boundary and focused contract tests; it must not implement Collaboration V2, alter routing, or make a release decision. Completion still requires exact-SHA review, CLI/manual evidence, and Hosted CI / gate.

  6. added
    orch:blockedOrchestrator V6: blocked pending a decision or external state change
    and removed
    orch:blockedOrchestrator V6: blocked pending a decision or external state change
    on Aug 4, 2026
  7. NOirBRight commented on Aug 5, 2026

    @NOirBRight
    OwnerAuthor

    Dependency update (2026-08-05): #62 has completed its reviewed CLI 0.146 evidence gate and is closed. This issue is now unblocked for its own structural V1/V2 schema work. Keep #65 locked; this does not authorize full Collaboration V2 lifecycle qualification or a Beta2 release/tag.

  8. NOirBRight commented on Aug 5, 2026

    @NOirBRight
    OwnerAuthor

    Roadmap reconciliation (2026-08-05)

    The earlier 2026-08-02 note moving this issue to Beta4 is superseded by the current #248/#318 decision and the 2026-08-05 dependency update. #64 is the Beta2 structural input: it records only the CLI 0.146 V1/V2 boundary needed by #198/#58. Full Collaboration V2 lifecycle qualification remains in Beta4 (#284).

    The accepted #62 evidence is closed and this issue is now unblocked. #65 remains locked; this comment does not authorize a Beta2 tag/release or a new real-client request.

  9. NOirBRight commented on Aug 5, 2026

    @NOirBRight
    OwnerAuthor
    {"contract":{"design":["Use the accepted Issue #62 CLI 0.146 source contract and repository evidence as the sole input; do not run a new real-client request or use 0.144 behavior as 0.146 proof.","Produce a bounded machine-readable and human-readable inventory for Collaboration V1 and V2 declaration, call, result, history, streaming, and terminal/error shapes, including exact discriminators and owner/executor semantics.","Define one decidable pre-exposure V1/V2 boundary and explicitly separate V2 namespace/tool names, task paths, fork_turns, and continuation identities from V1 agent-id/close/resume semantics.","Document only the namespace-to-function Adapter requirements needed by #198/#58; do not implement adapters, routing, scheduling, tool execution, or full Collaboration V2 lifecycle.","Add focused contract and negative tests proving V1 repair cannot accept V2-only fields and that unknown/ambiguous boundary inputs fail closed."],"acceptance":["The inventory identifies the exact CLI 0.146 source revision and independently documents V1 and V2 declaration/call/result/history/stream schemas.","The boundary is decidable before tool exposure or semantic repair; V2-only fork_turns/task paths/tool names cannot be interpreted as V1 agent-id/close/resume fields.","The artifact states Codex Client owns agent execution and explicitly defers full spawn/message/follow-up/wait/interrupt/list, restart, and cross-Home qualification to Beta4.","Focused issue-64 tests pass, malformed/ambiguous schema replays fail closed, and no production routing or model-selection behavior changes.","git diff --check passes and the exact candidate is ready for Spec/Quality review before any manual release verification."],"change_claims":{"paths":["docs/evidence/issue-64/**","tests/test_issue_64*","scripts/*issue_64*"],"resources":["schema:codex-cli-0.146-collaboration-v1-v2","contract:tool-compatibility-boundary"]},"done_when":["py -3.13 -m pytest tests/test_issue_64*.py -q","git diff --check","python scripts/report_quality_gates.py"],"dependencies":{"dispatch_after":[62],"merge_after":[62]},"priority":"P1","difficulty":"standard","risk":"standard","unresolved_decisions":[],"sha256":"860b68e024489270518a77f72c3b068a5307e6321a36844643e0ab006b069346"},"dispatch":null}
  10. added
    orch:readyOrchestrator V6: valid hashed contract is complete and dispatchable
    on Aug 5, 2026
  11. NOirBRight commented on Aug 5, 2026

    @NOirBRight
    OwnerAuthor

    Implemented and merged via PR #359 (merge commit f4a0ddb).

    The Beta2-scoped structural boundary is complete at exact candidate e69ade0: V1/V2 discriminator and schema inventory, fail-closed reconciliation, adapter requirements, and negative replay tests. Full Collaboration V2 lifecycle qualification remains deferred to Beta4; this closure does not authorize #65 or a Beta2 release/tag.

  12. NOirBRight commented on Aug 8, 2026

    @NOirBRight
    OwnerAuthor

    Beta3 scope decision (2026-08-08)

    The accepted structural inventory remains historical evidence, but the scheduling note that defers full official Collaboration lifecycle qualification to Beta4 is superseded by the current release decision. Beta3 Task 4 (#369) now explicitly qualifies the complete official V1/V2 lifecycle for each list-visible Official model: V1 and V2 selection, spawn, returned identity, message/agent_message, follow-up, wait/result, list/interrupt where supported, streaming/history, restart/readback, and terminal/error shape.

    This override is limited to official-model qualification. Generic third-party Collaboration V2 lifecycle work remains Beta4 (#252/#282/#283/#284). No catalog default, global switch, provider fallback, or gateway execution behavior is changed by this scheduling decision.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1Priority 1: current iteration goalcampaign:0.1.8-beta20.1.8 Beta2 generic tool compatibility campaignenhancementNew feature or requestorch:readyOrchestrator V6: valid hashed contract is complete and dispatchableready-for-agentFully specified, ready for an AFK agentwayfinder:researchWayfinder evidence or research ticket

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions