Skip to content

Commit 0181493

Browse files
claudeHmbown
authored andcommitted
release: v0.8.58 — native Anthropic provider, hooks v2 JSON decisions, clickable sidebar, provider-aware subagent routing, model-fact prompt templating
Co-Authored-By: Claude <noreply@anthropic.com> https://claude.ai/code/session_018zaP8vUfTAsrE38L6h6fw5
1 parent ce39b11 commit 0181493

19 files changed

Lines changed: 219 additions & 135 deletions

File tree

CHANGELOG.md

Lines changed: 78 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,82 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.8.58] - 2026-06-11
11+
12+
### Added
13+
14+
- **Native Anthropic provider.** A dedicated Messages API adapter
15+
(`/v1/messages` with `x-api-key` auth) replaces OpenAI-dialect shims for
16+
Claude models: adaptive thinking with `output_config.effort` shaping,
17+
prompt-cache breakpoints (capped at 4, earliest dropped), signed-thinking
18+
replay via `signature_delta`, normalized cache-hit/miss usage telemetry,
19+
and SSE error envelopes. `claude-opus-4-8`, `claude-sonnet-4-6`, and
20+
`claude-haiku-4-5` join the model registry; configure with
21+
`ANTHROPIC_API_KEY` (#3014).
22+
- **Hooks v2.** `tool_call_before` hooks can now return a JSON decision —
23+
`{"decision": "allow"|"deny"|"ask", "reason", "updatedInput",
24+
"additionalContext"}` — with deny > ask > allow precedence across multiple
25+
hooks, last-writer-wins input rewriting, and concatenated context. Exit
26+
code 2 remains a legacy hard deny. Hooks support glob matchers and
27+
project-local `.codewhale/hooks.toml` (#3026).
28+
- **Clickable sidebar.** Background-job rows show/cancel on click, the
29+
Ctrl+K hint row runs `/jobs cancel-all`, and agent rows open `/subagents`;
30+
row actions are built in the same pass as the rendered lines so a click
31+
can never target the wrong job (#3028).
32+
- OSC 8 out-of-band hyperlink infrastructure with per-region open/close
33+
sequences that survive partial redraws (#3029).
34+
- `codewhale exec` gains `--allowed-tools`, `--disallowed-tools` (deny wins),
35+
`--max-turns`, and `--append-system-prompt` (#3027).
36+
- Constitution prompt source: YAML source-of-truth plus Python renderer for
37+
the system prompt, with the active prompt now served from
38+
`constitution.md` (#3015, renderer reconciliation still tracked).
39+
- Agent-task issue template, labels, and runner protocol (#3021); remote
40+
smoke-test droplet loop hardening — gh CLI, swapfile, agent sessions
41+
(#3022).
42+
43+
### Changed
44+
45+
- **Sub-agent routing is provider-aware.** DeepSeek ids are no longer
46+
hardcoded into model validation; routing works from per-provider
47+
big/cheap candidates, the network router is skipped when a provider has
48+
no cheap tier, and spawn-time model requests are validated against the
49+
active provider (#3018).
50+
- Model-specific facts in the system prompt (context window, sub-agent
51+
pricing, thinking notes, architecture characteristics) are now templated
52+
per-model instead of hardcoded DeepSeek V4 claims, in both `base.md` and
53+
`constitution.md` (#3025).
54+
- Provider capability lookups for Moonshot/OpenAI/Atlascloud resolve from
55+
per-model registry rows (bare and vendor-prefixed ids) instead of
56+
hardcoded 64K-era floors (#3023).
57+
- Reasoning-effort now reaches Atlascloud (DeepSeek dialect), Moonshot
58+
(`thinking` enable/disable), and Ollama (`think` param) (#3024); Moonshot/
59+
Kimi models joined the reasoning-content provider and model gates (#3016).
60+
- Transcript polish: compact tool-call cells without boilerplate (#3031),
61+
internal turn/agent ids hidden behind stable labels (#3030), and Ctrl+B
62+
now backgrounds the running foreground shell directly instead of opening
63+
a menu (#3032).
64+
- The Tasks sidebar separates "Model reasoning" from "Background commands",
65+
and `auth list` reports the same active-credential source as
66+
`auth status` for openai-codex.
67+
68+
### Fixed
69+
70+
- **TUI freeze under sub-agent load.** Rapid `AgentProgress` events
71+
saturated the render loop and starved terminal input; progress-driven
72+
repaints are now throttled to one per 100ms (#3033).
73+
- **Hooks on Windows.** Hook commands were passed to `cmd /C` through
74+
CRT-style argument quoting, which injected literal `\"` sequences that
75+
cmd.exe never unescapes — JSON decisions could not parse. Commands now
76+
reach cmd.exe verbatim via `raw_arg`.
77+
- Codex Responses: assistant tool results are converted to
78+
`function_call_output` items (multi-turn tool calling previously broke),
79+
tool schemas are sanitized for the Responses API, and `maximum` effort
80+
maps to `xhigh` (#3019, #3017 — both partially; retry/backoff and
81+
per-tool strict mode remain open).
82+
- Better tool-denial and provider error messages harvested from PR #2933
83+
(#3020).
84+
85+
1086
## [0.8.57] - 2026-06-10
1187

1288
### Added
@@ -1636,7 +1712,8 @@ overflow report and `/theme` picker edge-wrapping patch in #1814.
16361712

16371713
Older releases (v0.8.39 and earlier) are archived in [docs/CHANGELOG_ARCHIVE.md](docs/CHANGELOG_ARCHIVE.md).
16381714

1639-
[Unreleased]: https://github.com/Hmbown/CodeWhale/compare/v0.8.57...HEAD
1715+
[Unreleased]: https://github.com/Hmbown/CodeWhale/compare/v0.8.58...HEAD
1716+
[0.8.58]: https://github.com/Hmbown/CodeWhale/compare/v0.8.57...v0.8.58
16401717
[0.8.57]: https://github.com/Hmbown/CodeWhale/compare/v0.8.56...v0.8.57
16411718
[0.8.56]: https://github.com/Hmbown/CodeWhale/compare/v0.8.55...v0.8.56
16421719
[0.8.55]: https://github.com/Hmbown/CodeWhale/compare/v0.8.54...v0.8.55

Cargo.lock

Lines changed: 16 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ default-members = ["crates/cli", "crates/app-server", "crates/tui"]
2121
resolver = "2"
2222

2323
[workspace.package]
24-
version = "0.8.57"
24+
version = "0.8.58"
2525
edition = "2024"
2626
# Rust 1.88 stabilized `let_chains` in `if`/`while` conditions, which the
2727
# codebase relies on extensively. Cargo enforces this so users on older

README.ja-JP.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ codewhale --model auto
4343
# https://github.com/Hmbown/CodeWhale/releases
4444

4545
# GitHub に安定して到達できない場合は CNB mirror を使えます:
46-
cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.57 codewhale-cli --locked --force
47-
cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.57 codewhale-tui --locked --force
46+
cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.58 codewhale-cli --locked --force
47+
cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.58 codewhale-tui --locked --force
4848

4949
# 旧 Homebrew 互換。formula はまだ deepseek-tui 名を使います。
5050
brew tap Hmbown/deepseek-tui

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ Other install paths are supported:
7777
# https://github.com/Hmbown/CodeWhale/releases
7878

7979
# CNB mirror path for users who cannot reliably reach GitHub:
80-
cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.57 codewhale-cli --locked --force
81-
cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.57 codewhale-tui --locked --force
80+
cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.58 codewhale-cli --locked --force
81+
cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.58 codewhale-tui --locked --force
8282

8383
# Legacy Homebrew compatibility while the formula is renamed
8484
brew tap Hmbown/deepseek-tui

README.vi.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ Các đường khác:
4343
# https://github.com/Hmbown/CodeWhale/releases
4444

4545
# Nếu GitHub không ổn định, dùng CNB mirror:
46-
cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.57 codewhale-cli --locked --force
47-
cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.57 codewhale-tui --locked --force
46+
cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.58 codewhale-cli --locked --force
47+
cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.58 codewhale-tui --locked --force
4848

4949
# Homebrew legacy trong lúc formula vẫn dùng tên deepseek-tui
5050
brew tap Hmbown/deepseek-tui

README.zh-CN.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ codewhale --model auto
4343
# https://github.com/Hmbown/CodeWhale/releases
4444

4545
# 如果 GitHub 访问不稳定,可以使用 CNB 镜像:
46-
cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.57 codewhale-cli --locked --force
47-
cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.57 codewhale-tui --locked --force
46+
cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.58 codewhale-cli --locked --force
47+
cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.58 codewhale-tui --locked --force
4848

4949
# 旧 Homebrew 兼容路径,formula 仍使用 deepseek-tui 名称
5050
brew tap Hmbown/deepseek-tui

crates/agent/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ repository.workspace = true
77
description = "Model/provider registry and fallback strategy for DeepSeek workspace architecture"
88

99
[dependencies]
10-
codewhale-config = { path = "../config", version = "0.8.57" }
10+
codewhale-config = { path = "../config", version = "0.8.58" }
1111
serde.workspace = true

crates/app-server/Cargo.toml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@ description = "Codex-style app-server transport for DeepSeek workspace architect
1010
anyhow.workspace = true
1111
axum.workspace = true
1212
clap.workspace = true
13-
codewhale-agent = { path = "../agent", version = "0.8.57" }
14-
codewhale-config = { path = "../config", version = "0.8.57" }
15-
codewhale-core = { path = "../core", version = "0.8.57" }
16-
codewhale-execpolicy = { path = "../execpolicy", version = "0.8.57" }
17-
codewhale-hooks = { path = "../hooks", version = "0.8.57" }
18-
codewhale-mcp = { path = "../mcp", version = "0.8.57" }
19-
codewhale-protocol = { path = "../protocol", version = "0.8.57" }
20-
codewhale-state = { path = "../state", version = "0.8.57" }
21-
codewhale-tools = { path = "../tools", version = "0.8.57" }
13+
codewhale-agent = { path = "../agent", version = "0.8.58" }
14+
codewhale-config = { path = "../config", version = "0.8.58" }
15+
codewhale-core = { path = "../core", version = "0.8.58" }
16+
codewhale-execpolicy = { path = "../execpolicy", version = "0.8.58" }
17+
codewhale-hooks = { path = "../hooks", version = "0.8.58" }
18+
codewhale-mcp = { path = "../mcp", version = "0.8.58" }
19+
codewhale-protocol = { path = "../protocol", version = "0.8.58" }
20+
codewhale-state = { path = "../state", version = "0.8.58" }
21+
codewhale-tools = { path = "../tools", version = "0.8.58" }
2222
serde.workspace = true
2323
serde_json.workspace = true
2424
rustls.workspace = true

crates/cli/Cargo.toml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ path = "src/bin/codew_legacy_shim.rs"
1919
anyhow.workspace = true
2020
clap.workspace = true
2121
clap_complete.workspace = true
22-
codewhale-agent = { path = "../agent", version = "0.8.57" }
23-
codewhale-app-server = { path = "../app-server", version = "0.8.57" }
24-
codewhale-config = { path = "../config", version = "0.8.57" }
25-
codewhale-execpolicy = { path = "../execpolicy", version = "0.8.57" }
26-
codewhale-mcp = { path = "../mcp", version = "0.8.57" }
27-
codewhale-release = { path = "../release", version = "0.8.57" }
28-
codewhale-secrets = { path = "../secrets", version = "0.8.57" }
29-
codewhale-state = { path = "../state", version = "0.8.57" }
22+
codewhale-agent = { path = "../agent", version = "0.8.58" }
23+
codewhale-app-server = { path = "../app-server", version = "0.8.58" }
24+
codewhale-config = { path = "../config", version = "0.8.58" }
25+
codewhale-execpolicy = { path = "../execpolicy", version = "0.8.58" }
26+
codewhale-mcp = { path = "../mcp", version = "0.8.58" }
27+
codewhale-release = { path = "../release", version = "0.8.58" }
28+
codewhale-secrets = { path = "../secrets", version = "0.8.58" }
29+
codewhale-state = { path = "../state", version = "0.8.58" }
3030
chrono.workspace = true
3131
dirs.workspace = true
3232
serde.workspace = true

0 commit comments

Comments
 (0)