Remove stale v0.8.59 release docs (release-notes-v0.8.59.md, docs/V0_8_59_RELEASE_TRIAGE.md) now that v0.8.59 is shipped.
Clear three clippy release-gate lints: const-evaluate the DEFAULT_SPAWN_DEPTH ceiling assert, and allow the intentional await_holding_lock on two Z.ai routing tests that must hold the test-env mutex across the await.
Credit new 0.8.60 models and first-party provider routes in the changelog: GLM-5.2 (Z.ai + OpenRouter), first-party Z.ai, StepFun/StepFlash (step-3.7-flash), and MiniMax (MiniMax-M3) routes (#3187/#3191). Regenerate the embedded crates/tui/CHANGELOG.md slice.
Separate model-native context metadata from provider-effective runtime capability so OpenAI API gpt-5.5 stays at its documented 1.05M window while the openai-codex OAuth route budgets preflight, recovery, capacity checks, prompt text, and TUI context indicators against the Codex-family 400K envelope.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Make agent_eval return a running projection by default so follow-up steering does not wait for child model calls. Keep checkpoint resume blocking by default unless block=false is explicit.
Teach /agent, /swarm, prompts, and docs to poll workers nonblocking and reserve block:true for deliberate terminal waits. Add Ctrl+S as a reliable queued-message send path before falling back to draft stash.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
State the v0.8.60 direction plainly: sub-agent is role and UX vocabulary, while durable detached work should use the fleet-backed worker lifecycle.
Document the current agent_open path as compatibility until retry, receipt, and ledger semantics are unified with Fleet.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Cut the 0.8.59 changelog section, bump workspace/npm/README versions, refresh Cargo.lock and generated web facts, and sync the embedded TUI changelog slice.
Also fixes the short codew shim to prefer its sibling codewhale dispatcher before PATH so fresh installs do not delegate to an older global binary.
Harvests #3052 onto the v0.8.59 release branch. Noninteractive CLI launches default to concise output discipline unless config, env, or --verbosity overrides it; interactive TUI launches remain normal by default.
Also forwards CODEWHALE_VERBOSITY as the primary env bridge while keeping DEEPSEEK_VERBOSITY for compatibility, documents the setting, and records @cyq1017 credit in both changelogs.
Use bounded ordered concurrency for /skills sync so registry downloads no longer serialize one skill at a time while preserving deterministic outcome order.
Harvested from PR #3139.
Co-authored-by: Hmbown <101357273+Hmbown@users.noreply.github.com>
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Avoid an N+1 item-directory scan when loading runtime thread details by grouping persisted items for all turns in one pass.
Harvested from PR #3141.
Co-authored-by: Hmbown <101357273+Hmbown@users.noreply.github.com>
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Accept SSE data frames with either `data: {...}` or `data:{...}` in Chat Completions, Responses, and Anthropic stream readers.
Harvested from PR #3152.
Co-authored-by: wgeeker <169752135+wgeeker@users.noreply.github.com>
Codex Responses requests now clamp legacy minimal effort to low and carry a regression test that the request body uses reasoning.effort without DeepSeek thinking or chat-completions reasoning_effort fields.
Harvests PR #3013 by @cyq1017 and PR #3053 by @angus-guo. Legacy deepseek/deepseek-tui binaries now return migration steps instead of trying to self-update through a missing codewhale binary, and the README/rebrand docs carry the same upgrade path.
Co-authored-by: cyq1017 <61975706+cyq1017@users.noreply.github.com>
Co-authored-by: gus <217034332+angus-guo@users.noreply.github.com>
Harvests PR #3056 by @reidliu41, keeping overlays in control of number keys, reclaiming Alt+1 through Alt+8 for hotbar dispatch, and updating the help/footer shortcut copy.
Co-authored-by: reidliu41 <61492567+reidliu41@users.noreply.github.com>
Adds the release-note credit for PR #2901 and extends the no-English-leak test to delegate, think, and generic tool labels.
Co-authored-by: gordonlu <3125629+gordonlu@users.noreply.github.com>
Harvests the explainability slice from PR #2971 without changing the public HookEvent constructor shape. Runtime API approval.required frames now carry matched_rule metadata when an execpolicy rule caused the prompt.
Co-authored-by: greyfreedom <11493871+greyfreedom@users.noreply.github.com>
Harvests the macOS shortcut fix from PR #2943 for the #2938 release lane, but scopes the SUPER-as-control mapping to the affected task/background and sidebar-focus shortcuts so Cmd+C/Cmd+V keep their existing platform behavior.
Co-authored-by: idling11 <8055620+idling11@users.noreply.github.com>
Harvests the narrow CLI/TUI exec model propagation fix from PR #3148 while honoring the CodeWhale model env alias before the legacy DeepSeek model handoff.
Co-authored-by: hongchen1993 <269377208+hongchen1993@users.noreply.github.com>
Adapt PR #3011 so unsupported interactive providers report their actual source and config-sourced unsupported providers fall back to DeepSeek without forwarding a stale keyring secret.
Co-authored-by: cyq1017 <61975706+cyq1017@users.noreply.github.com>
Harvest #3008 for the v0.8.59 release lane. The base prompt now clarifies that beginning with an A means baseline trust, not a literal response-format instruction.
Fixes#2950.
Harvest #3006 for the v0.8.59 release lane. The self-update HTTP client now uses a five-minute timeout so blocked or very slow GitHub release downloads fail instead of hanging indefinitely.
Harvest #2895 for the v0.8.59 release lane. SiliconFlow CN now reads its own providers.siliconflow_cn / providers.siliconflow-CN table and falls back to providers.siliconflow only when api_key, base_url, or model are unset.
Maintainer amendments wire the TUI fallback paths, provider config get/set/unset/redaction surfaces, env override routing, model normalization, tests, and changelog credit.
Fixes#2893.
Reported-by: Artenx <18120598+Artenx@users.noreply.github.com>
Clarify in the frozen runtime policy reference that a lone <runtime_prompt>
tag must not trigger new tool/git/sub-agent work without user input or a
pending handoff.
Log and degrade gracefully when the interactive fanout semaphore is closed
instead of silently dropping backpressure.
Document v0.8.59 release spine in CHANGELOG [Unreleased].
Co-authored-by: Cursor <cursoragent@cursor.com>
Completes the in-progress OpenAI Codex provider and bumps the workspace to
0.8.55. Builds on the committed Together AI provider + model catalog work.
OpenAI Codex (ChatGPT) provider — experimental:
- Wire the previously-dead OAuth module into credential resolution. The TUI
config now resolves the access token via the Codex CLI login in
~/.codex/auth.json (env overrides OPENAI_CODEX_ACCESS_TOKEN/CODEX_ACCESS_TOKEN),
refreshing expired tokens synchronously via the OpenAI token endpoint —
mirroring the existing Kimi OAuth flow rather than introducing a new pattern.
- Send the ChatGPT backend's required headers from the Responses client
(chatgpt-account-id, OpenAI-Beta: responses=experimental, originator) and
stop duplicating the Authorization header already installed on the client.
- Fix the cli crate's non-exhaustive ProviderKind matches (compile blocker).
Consistency / de-slop pass (so the provider fits the whole app, not one path):
- has_api_key_for / active_provider_has_config_api_key now detect the Codex
OAuth login on disk, the same way they detect Kimi OAuth — a `codex login`
user is no longer reported as unauthenticated.
- Replace the bogus OPENAI_CODEX_API_KEY hint (which exists nowhere else) with
the real OPENAI_CODEX_ACCESS_TOKEN/CODEX_ACCESS_TOKEN in the auth-error and
picker surfaces.
- Drop dead state in the Responses stream parser (unused ToolCallState fields /
imports); tool-call data is streamed live.
- Update docs/PROVIDERS.md, config.example.toml, and the provider-metadata wire
test for the Responses wire format.
Release:
- Bump workspace + crates + npm package to 0.8.55; update CHANGELOG.md and
crates/tui/CHANGELOG.md.
Note: the live Responses round-trip has not been exercised against the
production ChatGPT backend in this environment; the provider ships as preview.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>