Release notes
Codewhale v0.8.63
CodeWhale is the canonical project, command, npm package, and release-asset name. The legacy npm package
deepseek-tuiis deprecated and receives no further releases. Users coming from v0.8.x legacydeepseek/deepseek-tuinames should migrate withdocs/REBRAND.md.
Install
Recommended — npm (one command, both binaries)
npm install -g codewhale
The wrapper downloads both binaries from this Release and places them in the same directory.
Docker / GHCR
docker run --rm -it \
-e DEEPSEEK_API_KEY="$DEEPSEEK_API_KEY" \
-v ~/.deepseek:/home/codewhale/.deepseek \
ghcr.io/hmbown/codewhale:v0.8.63
The image ships the codewhale dispatcher and codewhale-tui runtime. The latest tag is also updated on release.
Cargo (Linux / macOS)
cargo install codewhale-cli codewhale-tui --locked
Both crates are required — codewhale-cli produces the codewhale dispatcher and codewhale-tui produces the interactive runtime that the dispatcher delegates to. Installing only one binary will fail at runtime with a MISSING_COMPANION_BINARY error.
Manual download — platform archives (recommended)
Each archive below contains both the codewhale dispatcher and codewhale-tui runtime, plus an install script:
| Platform | Archive | Install script |
|---|---|---|
| Linux x64 | codewhale-linux-x64.tar.gz |
install.sh |
| Linux ARM64 | codewhale-linux-arm64.tar.gz |
install.sh |
| Linux RISC-V | codewhale-linux-riscv64.tar.gz |
install.sh |
| macOS x64 | codewhale-macos-x64.tar.gz |
install.sh |
| macOS ARM | codewhale-macos-arm64.tar.gz |
install.sh |
| Windows x64 (installer) | CodeWhaleSetup.exe |
NSIS setup |
| Windows x64 | codewhale-windows-x64.zip |
install.bat |
| Windows x64 (portable) | codewhale-windows-x64-portable.zip |
— |
Unix (Linux / macOS):
tar xzf codewhale-<platform>.tar.gz
cd codewhale-<platform>
./install.sh
Windows:
- For the installer path, run
CodeWhaleSetup.exe; it installs both binaries under%LOCALAPPDATA%\Programs\CodeWhale\binand adds that directory to the current-user PATH. - Extract
codewhale-windows-x64.zip - Run
install.bat(copies to%USERPROFILE%\bin) - Add
%USERPROFILE%\binto your PATH
The portable Windows archive skips the install script — extract and run from any directory. The NSIS installer is currently unsigned and may trigger Windows SmartScreen until a signing certificate is wired into the release pipeline.
Each platform also has bare, unarchived binaries attached below (codewhale-<platform> and codewhale-tui-<platform>) — these are what the npm wrapper and the in-app codewhale update download, whereas the .tar.gz / .zip archives above are the recommended manual download and additionally bundle an install script. The legacy npm package deepseek-tui is deprecated and is not republished. For migration from v0.8.x legacy binary names, see docs/REBRAND.md.
Verify (recommended)
Download the checksum manifests from this Release and verify:
# Linux — archive bundles
sha256sum -c codewhale-bundles-sha256.txt
# Linux — individual binaries
sha256sum -c codewhale-artifacts-sha256.txt
# macOS
shasum -a 256 -c codewhale-bundles-sha256.txt
shasum -a 256 -c codewhale-artifacts-sha256.txt
What's in v0.8.63
Added
- Sub-agent fanout safeguards (#3318, #3319). High-fanout Workflow runs can
now queue and drain more agents than the instantaneous concurrency cap by
default, with
[subagents] max_admittedavailable to tune that bounded admission population. Distinctagentcalls are no longer capped by the per-turn loop guard before runtime launch concurrency and provider rate-limit backoff can apply.[subagents] token_budgetapplies a shared aggregate token ceiling to a rootagentrun and its descendants. - Per-worker sub-agent token enforcement (#3321). A
token_budget/max_tokensset on an individualagentcall now bounds that single worker mid-run: once its accumulated model tokens exceed the cap it stops cleanly with abudget_exhaustedstatus instead of running tomax_steps. This complements the scope-level admission gate (#3319) — the per-worker cap stops one runaway worker, the scope cap bounds total fan-out — without double-counting. Harvested from #3321 by @donglovejava. - Provider-specific sub-agent fanout config.
[subagents.providers.<provider>]profiles now overrideenabled,max_concurrent,max_admitted,launch_concurrency,max_depth, token budget, API timeout, and heartbeat timeout for the active provider. Use broad direct-API profiles such as[subagents.providers.deepseek]and tighter subscription profiles such as[subagents.providers.glm];/config subagents statusshows both global and active-provider resolved values. - Sub-agent control and isolation. The single
agenttool now exposes status, peek, and cancel actions for running children, and acceptsworktree: trueto create an isolated git worktree/branch for parallel edit lanes instead of requiring callers to hand-roll acwd.
Fixed
- Mode and tool catalog correctness. Core action tools remain discoverable in the model-facing catalog/tool search, and a consistency self-check flags registered handlers that drift out of the advertised catalog. Review-looking prompts in explicit Agent/YOLO mode now keep the requested mode and tools, with only an advisory review hint.
- Sub-agent orchestration recovery. Child agents now retry transient provider header/SSE timeouts before failing, and parent runs synthesize missed child completions from terminal child state so orchestration cannot hang on a lost completion event.
- DeepSeek thinking tool calls. DeepSeek chat-completions requests now omit
explicit
tool_choicewhenever reasoning/thinking is enabled, avoiding provider rejections while leaving no-thinking routes unchanged. - Task sidebar shortcuts and attribution. Ctrl-K stays palette/emacs-kill, while Ctrl-X is scoped to Tasks-sidebar background shell cancellation. Shell jobs launched by sub-agents now render with their child-agent owner in the Tasks sidebar and transcript.
- Benchmark-turn recovery and context economy. Repeated read-only search
loop blocks now return guidance instead of fatal tool failures, Python build
failures that are missing
setuptoolsinclude an install/retry hint, long foreground shell timeouts steer models toward background execution, and noisy shell/test/web outputs are compacted earlier for large-context routes. - Config display redaction.
codew config get/listnow recursively masks token-, secret-, password-, credential-, and authorization-like keys inside unknownextrastables and redacts sensitive HTTP header values before printing config output. - Queued follow-up hints and force-steer keys. The pending-input preview now
advertises
Ctrl+S send nowwhenever queued follow-ups exist, and Ctrl/Cmd+Enter force-steering also accepts the common Ctrl+J terminal encoding while a turn is running. - Sidebar default visibility restored (#3328).
…