v0.9.5

Hmbown/Codewhalev0.9.5Aug 8, 2026by github-actions[bot]

AI Summary

Codewhale v0.9.5 consolidates the terminal application into one compiled runtime while preserving the familiar `codewhale` and `codew` commands. It expands the managed Runtime API and Fleet management.

Key Highlights

  • Single compiled runtime exposes `codewhale` and `codew` commands directly.
  • `model = 'auto'` for prompt-based tier selection (DeepSeek Pro vs Flash).
  • Runtime API controls for persistent goals, bounded memory, and MCP lifecycle.
  • Append-only session-tree history with `/tree`, `/branch`, `/fork`, and `/resume`.
  • Unified Fleet roster for built-in dispatch postures.

New Features

  • Prompt-based tier selection for `model = 'auto'`.
  • Runtime API controls for persistent goals and MCP lifecycle.
  • Session-tree history management.
  • Unified Fleet roster.
  • Incremental MCP registry refreshes.

Full Release Notes

> **Codewhale** is the public product from Shannon Labs. The `codewhale`
> command, npm package, and release-asset names remain lowercase technical
> identifiers. The legacy npm package `deepseek-tui` is deprecated and
> receives no further releases. Users coming from v0.8.x legacy `deepseek` /
> `deepseek-tui` names should migrate with `docs/REBRAND.md`.

## Install

### Recommended — npm (one command, both entrypoints)

```bash
npm install -g codewhale
```

The wrapper downloads the matched `codewhale` and `codew` command assets
from this Release. Both contain the same compiled runtime.

### Docker / GHCR

```bash
docker run --rm -it \
  -e DEEPSEEK_API_KEY="$DEEPSEEK_API_KEY" \
  -v codewhale-home:/home/codewhale/.codewhale \
  ghcr.io/hmbown/codewhale:v0.9.5
```

The image exposes the same runtime as both `codewhale` and `codew`. The
`latest` tag is also updated on release.

### Cargo (Linux / macOS)

```bash
cargo install codewhale-cli --locked
```

The Cargo package installs `codewhale`. Cargo cannot create a second command
alias from one binary target; users who want the shorter spelling can add a
`codew` symlink to that installed executable. The npm, Homebrew, archive,
shell-installer, and container channels install both command names directly.

### Manual download — platform archives (recommended)

Each archive below contains the same runtime under the `codewhale` and
`codew` command names, 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` |
| Android ARM64 (Termux) | `codewhale-android-arm64.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` | — |
| Windows ARM64 | `codewhale-windows-arm64.zip` | `install.bat` |
| Windows ARM64 (portable) | `codewhale-windows-arm64-portable.zip` | — |

**Unix (Linux / macOS):**
```bash
tar xzf codewhale-<platform>.tar.gz
cd codewhale-<platform>
./install.sh
```

**Windows:**
- For the installer path, run `CodeWhaleSetup.exe`; it installs
  `codewhale.exe` and `codew.exe` under
  `%LOCALAPPDATA%\Programs\CodeWhale\bin` and adds that directory to the
  current-user PATH.
- Extract the archive for your machine: `codewhale-windows-x64.zip` or
  `codewhale-windows-arm64.zip`
- Run `install.bat` (copies to `%USERPROFILE%\bin`)
- Add `%USERPROFILE%\bin` to 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** `codewhale-<platform>` and
`codew-<platform>` assets. The seven `codewhale-tui-<platform>` filenames
attached to v0.9.5 are byte-identical compatibility copies used only to let
already-installed v0.9.4 clients discover and cross this single-binary
transition; current installers do not expose a third runtime. 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:

```bash
# Linux — archive bundles
sha256sum -c codewhale-bundles-sha256.txt --ignore-missing

# Linux — individual binaries
sha256sum -c codewhale-artifacts-sha256.txt --ignore-missing

# macOS
shasum -a 256 -c codewhale-bundles-sha256.txt --ignore-missing
shasum -a 256 -c codewhale-artifacts-sha256.txt --ignore-missing
```

## What's in v0.9.5

Codewhale v0.9.5 consolidates the terminal application into one compiled
runtime while preserving the familiar `codewhale` and `codew` commands. It
also expands the managed Runtime API, makes session and Fleet work easier to
inspect and resume, and removes the hidden local continuation backstop that
could end productive work without a final assistant response.

### Added

- **`model = "auto"` for prompt-based tier selection**: When set, the
  dispatcher analyses the user's prompt before delegating to the TUI and
  selects `deepseek-v4-pro` for complex tasks or `deepseek-v4-flash` for simple
  tasks (PR #5257).
- Runtime API controls for persistent goals, bounded memory inspection, MCP
  server and skill lifecycle management, and durable Fleet receipt evidence.
- Append-only session-tree history with `/tree`, `/branch`, `/fork`, and
  `/resume`, plus `/rc` remote control and managed login.
- A unified Fleet roster for built-in dispatch postures and a pinned indicator
  that keeps active background work visible above the composer.
- Incremental MCP registry refreshes that return the local snapshot immediately
  and update it in the background.
- Scout and Reviewer agents can use a bounded direct-command evidence shell for
  read-only workspace, Git, and GitHub inspection, and can keep private working
  notes in their own To-do while the durable transcript retains their evidence.

### Changed

- `codewhale-cli` now contains the terminal runtime directly. Release installers
  expose byte-identical `codewhale` and `codew` commands without a separate TUI
  executable. The v0.9.5 asset set alone retains deprecated
  `codewhale-tui-*` filenames as byte-identical compatibility copies so
  installed v0.9.4 clients can discover and complete this upgrade.
- Startup release checks cache successful lookups for one hour. The updater
  downloads and verifies the primary runtime once, then refreshes any existing
  `codew` or legacy `codewhale-tui` command paths from the same bytes.
- Headless `codewhale exec` runs and verifier benchmark rollouts no longer
  impose a 100-step default. `--max-turns` remains available as an explicit
  opt-in ceiling; Fleet workers retain their separately configured budget.
- Goal token and time budgets are telemetry rather than default stop
  conditions, and automatic goal continuation is unlimited unless the user
  explicitly configures a continuation ceiling.
- Command-palette and slash-completion shadowing now share one alias-aware
  discovery contract.
- The website install guidance, localized product copy, navigation controls,
  social metadata, and Cloudflare build pipeline now describe and deploy the
  same one-runtime release contract.

### Fixed

- The hidden 20-step no-user-input backstop no longer ends productive turns.
  Tool results, queued steering, child completions, REPL feedback, and goal
  continuations can all reach the next provider step and a final assistant
  response; explicit user-configured limits and genuine stuck-loop guards remain.
- Complete error details are directly inspectable after a failure instead of
  leaving the terminal with a clipped, unrecoverable error fragment.
- A newly minted OAuth credential is adopted in the same provider-selection
  flow instead of requiring a second picker trip.
- Fresh session titles can replace a stale cached `New Session` placeholder,
  unknown model context limits fail loudly, and release/source-install fallbacks
  no longer request binaries removed by the single-runtime conversion.

## Contributors

- [Sh1Zuku](https://github.com/SparkofSpike) (`@SparkofSpike`) fixed stale
  cached session titles that could pin the `New Session` placeholder.
- [Paulo Aboim Pinto](https://github.com/aboimpinto) (`@aboimpinto`) built the
  shared alias-aware command discovery contract and acceptance coverage.
- [Sun Zhenyuan](https://github.com/bistack) (`@bistack`) contributed the
  background incremental MCP Registry refresh.
- [SKY ZHAO](https://github.com/skyzhao1223) (`@skyzhao1223`) contributed
  prompt-based `model = "auto"` routing in PR #5257.

See [CHANGELOG.md](https://github.com/Hmbown/CodeWhale/blob/main/CHANGELOG.md) for full notes and [docs/CHANGELOG_ARCHIVE.md](https://github.com/Hmbown/CodeWhale/blob/main/docs/CHANGELOG_ARCHIVE.md) for older releases.