Skip to content

Integration: chat wire_api for LiteLLM tool calls and the agent-state title (WI-1286, WI-1127) - #25

Merged
thedancingdeveloper merged 13 commits into
fork/mainfrom
integrate/codex-next
Oct 12, 2026
Merged

thedancingdeveloper merged 13 commits into
fork/mainfrom
integrate/codex-next

Conversation

@thedancingdeveloper

Copy link
Copy Markdown

The single integration PR for the fork, per the operator's 2026-10-12 one-PR-per-milestone rule. Every item below was reviewed on its own branch with no blockers before being merged into integrate/codex-next.

  • WI-1286, wire_api = "chat" restored as a fork-only patch:

    • Chat Completions request conversion, a client and an SSE parser;
    • parallel tool calls, apply_patch and MCP tools.

    Verified live: tool calls work through the estate LiteLLM router. That doesn't work over Responses, where these models return no tool calls. The patch is recorded in FORK.md. Reviewed: no blockers at ee2ad70.

  • WI-1127, a stable agent-state terminal title item, which Vogt reads to know whether Codex is ready, working or awaiting approval. Reviewed: no blockers at 39ccf9f.

  • WI-1126, a caller-chosen thread id on thread/start, with exec --session-id kept off the resume and fork positionals.

  • fork-ci changes already on fork/combined-features (Fork features: ci-lines, skills roots, instructions dir/global, fail-closed, output schema #22).

Merging this publishes a fork-<sha> release, which Vogt then pins by SHA (WI-1142) for the next Vogt dev deploy.

🤖 Generated with Claude Code

thedancingdeveloper and others added 9 commits October 12, 2026 06:35
Add a terminal title item that writes "codex: ready|working|awaiting
approval" only when the state changes, push the user's title before the
first write, and pop it on exit. Idle with animations off schedules no
refresh.
Committed by oversight for the worker (git guard refused the path).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
b5f9b01 is the branch head that carries the Klaudia title contract.
The fork rejected the chat wire at deserialize time. grok over the Responses
API returns an empty message and no function_call, so a provider that speaks
Chat Completions needs the wire value back. The ollama-chat provider id stays
rejected, and the remote thread-config proto still only carries Responses.
…286)

Flatten namespaced tools to namespace__name, expose freeform tools
(apply_patch) as a one-string-argument function, and keep a ChatToolMap
to restore returned calls to FunctionCall/CustomToolCall items.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ChatClient posts to /chat/completions; process_chat_sse maps chunks to
ResponseEvents: text deltas, an assistant message, one FunctionCall per
tool call (parallel calls split by index) and Completed with usage.
Fixture tests cover text, single, parallel, apply_patch and MCP calls.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@thedancingdeveloper
thedancingdeveloper changed the base branch from main to fork/main October 12, 2026 21:13
@thedancingdeveloper thedancingdeveloper changed the title Integration: chat wire_api for LiteLLM tool calls, agent-state title, caller thread id (WI-1286, WI-1127, WI-1126) Integration: chat wire_api for LiteLLM tool calls and the agent-state title (WI-1286, WI-1127) Oct 12, 2026
sprooty and others added 4 commits October 12, 2026 21:23
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
config_schema_matches_fixture failed because the restored chat variant
was not in the committed schema. Regenerated with
codex-write-config-schema.
renders_title_setup_popup failed because the new AgentState title item
shifted the popup rows. The accepted snapshot adds the agent-state row.
The TUI config struct is flattened into the resume and fork subcommands,
which already register a positional argument with clap id session_id. The
flattened flag derived the same id from its field name, so clap panicked
under debug assertions and `codex resume`/`codex fork` exited 101 before
drawing. That is why history_lookup_uses_server_provider_with_local_and_
embedded_servers died waiting for "Server provider history".

Give the flag the distinct clap id new_session_id and rename the field to
match. The public flag stays --session-id.
@thedancingdeveloper

Copy link
Copy Markdown
Author

Merging past the red fork-ci check with operator approval (2026-10-12 23:15Z). The three failures this PR caused are fixed and reviewed: no blockers at 4eb52da. What remains is runner-only: six ide_context::ipc tests refuse the GCP runner's world-writable temp directory, which is correct behaviour in a file this PR doesn't touch. Two session_lifecycle tests are flaky and pass locally before and after the fix. The runner fix is tracked in vogt WI-1291 / codex WI-1290 and is scheduled after the vogt deploy.

@thedancingdeveloper
thedancingdeveloper merged commit ca04973 into fork/main Oct 12, 2026
1 check failed
thedancingdeveloper added a commit that referenced this pull request Oct 13, 2026
fork/main takes integration pull requests as merge commits (tip ca04973
merges PR #25), so the fork line is not linear. Only integrate/codex-next
is rebase or fast-forward only from this change onward.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Signed-off-by: thedancingdeveloper <306930456+thedancingdeveloper@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant