chore(release): prepare v0.8.49
This commit is contained in:
+46
-1
@@ -7,6 +7,50 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [0.8.49] - 2026-06-01
|
||||
|
||||
### Added
|
||||
|
||||
- Added the missing `[providers.moonshot]` example block for Moonshot/Kimi,
|
||||
documented `completion_sound`, and refreshed the tool-surface docs for the
|
||||
current registry, including `finance`, `web.run`, git history tools, memory,
|
||||
OCR, and other registered tools.
|
||||
|
||||
### Changed
|
||||
|
||||
- Hardened prefix-cache fingerprints to hash API-visible tool schema details,
|
||||
not just tool names, so schema and description drift invalidates cached
|
||||
prefixes before it can confuse model calls (#2264).
|
||||
- Kept `finance` registered independently from web-search tools and prevented
|
||||
duplicate web/patch tool registration in agent and YOLO modes.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed the DeepSeek V4-Pro cost estimate after the 2026-05-31 pricing cutoff:
|
||||
the post-promotion official rate remains one quarter of the original price,
|
||||
so CodeWhale no longer shows roughly 4x too much after June 1 (#2489).
|
||||
- Fixed Kimi/Moonshot tool schema normalization by moving parent `type` fields
|
||||
into `anyOf`/`oneOf` items, with regression coverage for nested schema shapes
|
||||
that could otherwise still fail Kimi validation (#2438).
|
||||
- Fixed raw ANSI/SGR fragments leaking into footer, shell-label, and sidebar
|
||||
activity text during active tool execution (#2481).
|
||||
- Fixed `[tui]` config parsing when `status_items` is omitted, restoring the
|
||||
documented default footer order for older and hand-written configs (#2483).
|
||||
- Fixed a shell env-scrubbing test so it does not depend on the user's default
|
||||
shell understanding POSIX parameter expansion.
|
||||
- Removed stale `qwen/qwen3.7-max` references left in `config.example.toml`
|
||||
after the v0.8.48 preset removal.
|
||||
|
||||
### Community
|
||||
|
||||
Thanks to **@idling11** (#2480, #2485), **@reidliu41** (#2493),
|
||||
**@hongqitai** (#2495), and **@encyc** (#2477) for the fixes and reliability
|
||||
work harvested into this release.
|
||||
|
||||
Thanks also to reporters and verification helpers whose issues shaped the
|
||||
release: **@A-Corner** (#2438), **@taiwan988** (#2483), **@AiurArtanis**
|
||||
(#2489), and **@Hmbown** (#2481).
|
||||
|
||||
## [0.8.48] - 2026-05-31
|
||||
|
||||
### Added
|
||||
@@ -5118,7 +5162,8 @@ Welcome — and thank you.
|
||||
- Hooks system and config profiles
|
||||
- Example skills and launch assets
|
||||
|
||||
[Unreleased]: https://github.com/Hmbown/CodeWhale/compare/v0.8.48...HEAD
|
||||
[Unreleased]: https://github.com/Hmbown/CodeWhale/compare/v0.8.49...HEAD
|
||||
[0.8.49]: https://github.com/Hmbown/CodeWhale/compare/v0.8.48...v0.8.49
|
||||
[0.8.48]: https://github.com/Hmbown/CodeWhale/compare/v0.8.47...v0.8.48
|
||||
[0.8.47]: https://github.com/Hmbown/CodeWhale/compare/v0.8.46...v0.8.47
|
||||
[0.8.46]: https://github.com/Hmbown/CodeWhale/compare/v0.8.45...v0.8.46
|
||||
|
||||
Generated
+15
-15
@@ -803,7 +803,7 @@ checksum = "e9b18233253483ce2f65329a24072ec414db782531bdbb7d0bbc4bd2ce6b7e21"
|
||||
|
||||
[[package]]
|
||||
name = "codewhale-agent"
|
||||
version = "0.8.48"
|
||||
version = "0.8.49"
|
||||
dependencies = [
|
||||
"codewhale-config",
|
||||
"serde",
|
||||
@@ -811,7 +811,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "codewhale-app-server"
|
||||
version = "0.8.48"
|
||||
version = "0.8.49"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"axum",
|
||||
@@ -836,7 +836,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "codewhale-cli"
|
||||
version = "0.8.48"
|
||||
version = "0.8.49"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"chrono",
|
||||
@@ -863,7 +863,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "codewhale-config"
|
||||
version = "0.8.48"
|
||||
version = "0.8.49"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"codewhale-secrets",
|
||||
@@ -876,7 +876,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "codewhale-core"
|
||||
version = "0.8.48"
|
||||
version = "0.8.49"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"chrono",
|
||||
@@ -894,7 +894,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "codewhale-execpolicy"
|
||||
version = "0.8.48"
|
||||
version = "0.8.49"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"codewhale-protocol",
|
||||
@@ -903,7 +903,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "codewhale-hooks"
|
||||
version = "0.8.48"
|
||||
version = "0.8.49"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
@@ -917,7 +917,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "codewhale-mcp"
|
||||
version = "0.8.48"
|
||||
version = "0.8.49"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"serde",
|
||||
@@ -926,7 +926,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "codewhale-protocol"
|
||||
version = "0.8.48"
|
||||
version = "0.8.49"
|
||||
dependencies = [
|
||||
"serde",
|
||||
"serde_json",
|
||||
@@ -934,7 +934,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "codewhale-release"
|
||||
version = "0.8.48"
|
||||
version = "0.8.49"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"reqwest",
|
||||
@@ -945,7 +945,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "codewhale-secrets"
|
||||
version = "0.8.48"
|
||||
version = "0.8.49"
|
||||
dependencies = [
|
||||
"dirs",
|
||||
"keyring",
|
||||
@@ -958,7 +958,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "codewhale-state"
|
||||
version = "0.8.48"
|
||||
version = "0.8.49"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"chrono",
|
||||
@@ -970,7 +970,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "codewhale-tools"
|
||||
version = "0.8.48"
|
||||
version = "0.8.49"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
@@ -984,7 +984,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "codewhale-tui"
|
||||
version = "0.8.48"
|
||||
version = "0.8.49"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"arboard",
|
||||
@@ -1053,7 +1053,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "codewhale-tui-core"
|
||||
version = "0.8.48"
|
||||
version = "0.8.49"
|
||||
|
||||
[[package]]
|
||||
name = "colorchoice"
|
||||
|
||||
+1
-1
@@ -20,7 +20,7 @@ default-members = ["crates/cli", "crates/app-server", "crates/tui"]
|
||||
resolver = "2"
|
||||
|
||||
[workspace.package]
|
||||
version = "0.8.48"
|
||||
version = "0.8.49"
|
||||
edition = "2024"
|
||||
# Rust 1.88 stabilized `let_chains` in `if`/`while` conditions, which the
|
||||
# codebase relies on extensively. Cargo enforces this so users on older
|
||||
|
||||
@@ -7,5 +7,5 @@ repository.workspace = true
|
||||
description = "Model/provider registry and fallback strategy for DeepSeek workspace architecture"
|
||||
|
||||
[dependencies]
|
||||
codewhale-config = { path = "../config", version = "0.8.48" }
|
||||
codewhale-config = { path = "../config", version = "0.8.49" }
|
||||
serde.workspace = true
|
||||
|
||||
@@ -10,15 +10,15 @@ description = "Codex-style app-server transport for DeepSeek workspace architect
|
||||
anyhow.workspace = true
|
||||
axum.workspace = true
|
||||
clap.workspace = true
|
||||
codewhale-agent = { path = "../agent", version = "0.8.48" }
|
||||
codewhale-config = { path = "../config", version = "0.8.48" }
|
||||
codewhale-core = { path = "../core", version = "0.8.48" }
|
||||
codewhale-execpolicy = { path = "../execpolicy", version = "0.8.48" }
|
||||
codewhale-hooks = { path = "../hooks", version = "0.8.48" }
|
||||
codewhale-mcp = { path = "../mcp", version = "0.8.48" }
|
||||
codewhale-protocol = { path = "../protocol", version = "0.8.48" }
|
||||
codewhale-state = { path = "../state", version = "0.8.48" }
|
||||
codewhale-tools = { path = "../tools", version = "0.8.48" }
|
||||
codewhale-agent = { path = "../agent", version = "0.8.49" }
|
||||
codewhale-config = { path = "../config", version = "0.8.49" }
|
||||
codewhale-core = { path = "../core", version = "0.8.49" }
|
||||
codewhale-execpolicy = { path = "../execpolicy", version = "0.8.49" }
|
||||
codewhale-hooks = { path = "../hooks", version = "0.8.49" }
|
||||
codewhale-mcp = { path = "../mcp", version = "0.8.49" }
|
||||
codewhale-protocol = { path = "../protocol", version = "0.8.49" }
|
||||
codewhale-state = { path = "../state", version = "0.8.49" }
|
||||
codewhale-tools = { path = "../tools", version = "0.8.49" }
|
||||
serde.workspace = true
|
||||
serde_json.workspace = true
|
||||
tokio.workspace = true
|
||||
|
||||
@@ -25,14 +25,14 @@ path = "src/bin/deepseek_legacy_shim.rs"
|
||||
anyhow.workspace = true
|
||||
clap.workspace = true
|
||||
clap_complete.workspace = true
|
||||
codewhale-agent = { path = "../agent", version = "0.8.48" }
|
||||
codewhale-app-server = { path = "../app-server", version = "0.8.48" }
|
||||
codewhale-config = { path = "../config", version = "0.8.48" }
|
||||
codewhale-execpolicy = { path = "../execpolicy", version = "0.8.48" }
|
||||
codewhale-mcp = { path = "../mcp", version = "0.8.48" }
|
||||
codewhale-release = { path = "../release", version = "0.8.48" }
|
||||
codewhale-secrets = { path = "../secrets", version = "0.8.48" }
|
||||
codewhale-state = { path = "../state", version = "0.8.48" }
|
||||
codewhale-agent = { path = "../agent", version = "0.8.49" }
|
||||
codewhale-app-server = { path = "../app-server", version = "0.8.49" }
|
||||
codewhale-config = { path = "../config", version = "0.8.49" }
|
||||
codewhale-execpolicy = { path = "../execpolicy", version = "0.8.49" }
|
||||
codewhale-mcp = { path = "../mcp", version = "0.8.49" }
|
||||
codewhale-release = { path = "../release", version = "0.8.49" }
|
||||
codewhale-secrets = { path = "../secrets", version = "0.8.49" }
|
||||
codewhale-state = { path = "../state", version = "0.8.49" }
|
||||
chrono.workspace = true
|
||||
dirs.workspace = true
|
||||
serde.workspace = true
|
||||
|
||||
@@ -8,7 +8,7 @@ description = "Config schema and precedence model for DeepSeek workspace archite
|
||||
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
codewhale-secrets = { path = "../secrets", version = "0.8.48" }
|
||||
codewhale-secrets = { path = "../secrets", version = "0.8.49" }
|
||||
dirs.workspace = true
|
||||
serde.workspace = true
|
||||
serde_json.workspace = true
|
||||
|
||||
@@ -9,13 +9,13 @@ description = "Core runtime boundaries for DeepSeek workspace architecture"
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
chrono.workspace = true
|
||||
codewhale-agent = { path = "../agent", version = "0.8.48" }
|
||||
codewhale-config = { path = "../config", version = "0.8.48" }
|
||||
codewhale-execpolicy = { path = "../execpolicy", version = "0.8.48" }
|
||||
codewhale-hooks = { path = "../hooks", version = "0.8.48" }
|
||||
codewhale-mcp = { path = "../mcp", version = "0.8.48" }
|
||||
codewhale-protocol = { path = "../protocol", version = "0.8.48" }
|
||||
codewhale-state = { path = "../state", version = "0.8.48" }
|
||||
codewhale-tools = { path = "../tools", version = "0.8.48" }
|
||||
codewhale-agent = { path = "../agent", version = "0.8.49" }
|
||||
codewhale-config = { path = "../config", version = "0.8.49" }
|
||||
codewhale-execpolicy = { path = "../execpolicy", version = "0.8.49" }
|
||||
codewhale-hooks = { path = "../hooks", version = "0.8.49" }
|
||||
codewhale-mcp = { path = "../mcp", version = "0.8.49" }
|
||||
codewhale-protocol = { path = "../protocol", version = "0.8.49" }
|
||||
codewhale-state = { path = "../state", version = "0.8.49" }
|
||||
codewhale-tools = { path = "../tools", version = "0.8.49" }
|
||||
serde_json.workspace = true
|
||||
uuid.workspace = true
|
||||
|
||||
@@ -8,5 +8,5 @@ description = "Execution policy and approval model parity for DeepSeek workspace
|
||||
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
codewhale-protocol = { path = "../protocol", version = "0.8.48" }
|
||||
codewhale-protocol = { path = "../protocol", version = "0.8.49" }
|
||||
serde.workspace = true
|
||||
|
||||
@@ -10,7 +10,7 @@ description = "Hook dispatch and notifications parity for DeepSeek workspace arc
|
||||
anyhow.workspace = true
|
||||
async-trait.workspace = true
|
||||
chrono.workspace = true
|
||||
codewhale-protocol = { path = "../protocol", version = "0.8.48" }
|
||||
codewhale-protocol = { path = "../protocol", version = "0.8.49" }
|
||||
reqwest.workspace = true
|
||||
serde.workspace = true
|
||||
serde_json.workspace = true
|
||||
|
||||
@@ -9,7 +9,7 @@ description = "Tool invocation lifecycle, schema validation, and scheduler paral
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
async-trait.workspace = true
|
||||
codewhale-protocol = { path = "../protocol", version = "0.8.48" }
|
||||
codewhale-protocol = { path = "../protocol", version = "0.8.49" }
|
||||
serde.workspace = true
|
||||
serde_json.workspace = true
|
||||
thiserror.workspace = true
|
||||
|
||||
+46
-1
@@ -7,6 +7,50 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [0.8.49] - 2026-06-01
|
||||
|
||||
### Added
|
||||
|
||||
- Added the missing `[providers.moonshot]` example block for Moonshot/Kimi,
|
||||
documented `completion_sound`, and refreshed the tool-surface docs for the
|
||||
current registry, including `finance`, `web.run`, git history tools, memory,
|
||||
OCR, and other registered tools.
|
||||
|
||||
### Changed
|
||||
|
||||
- Hardened prefix-cache fingerprints to hash API-visible tool schema details,
|
||||
not just tool names, so schema and description drift invalidates cached
|
||||
prefixes before it can confuse model calls (#2264).
|
||||
- Kept `finance` registered independently from web-search tools and prevented
|
||||
duplicate web/patch tool registration in agent and YOLO modes.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed the DeepSeek V4-Pro cost estimate after the 2026-05-31 pricing cutoff:
|
||||
the post-promotion official rate remains one quarter of the original price,
|
||||
so CodeWhale no longer shows roughly 4x too much after June 1 (#2489).
|
||||
- Fixed Kimi/Moonshot tool schema normalization by moving parent `type` fields
|
||||
into `anyOf`/`oneOf` items, with regression coverage for nested schema shapes
|
||||
that could otherwise still fail Kimi validation (#2438).
|
||||
- Fixed raw ANSI/SGR fragments leaking into footer, shell-label, and sidebar
|
||||
activity text during active tool execution (#2481).
|
||||
- Fixed `[tui]` config parsing when `status_items` is omitted, restoring the
|
||||
documented default footer order for older and hand-written configs (#2483).
|
||||
- Fixed a shell env-scrubbing test so it does not depend on the user's default
|
||||
shell understanding POSIX parameter expansion.
|
||||
- Removed stale `qwen/qwen3.7-max` references left in `config.example.toml`
|
||||
after the v0.8.48 preset removal.
|
||||
|
||||
### Community
|
||||
|
||||
Thanks to **@idling11** (#2480, #2485), **@reidliu41** (#2493),
|
||||
**@hongqitai** (#2495), and **@encyc** (#2477) for the fixes and reliability
|
||||
work harvested into this release.
|
||||
|
||||
Thanks also to reporters and verification helpers whose issues shaped the
|
||||
release: **@A-Corner** (#2438), **@taiwan988** (#2483), **@AiurArtanis**
|
||||
(#2489), and **@Hmbown** (#2481).
|
||||
|
||||
## [0.8.48] - 2026-05-31
|
||||
|
||||
### Added
|
||||
@@ -5118,7 +5162,8 @@ Welcome — and thank you.
|
||||
- Hooks system and config profiles
|
||||
- Example skills and launch assets
|
||||
|
||||
[Unreleased]: https://github.com/Hmbown/CodeWhale/compare/v0.8.48...HEAD
|
||||
[Unreleased]: https://github.com/Hmbown/CodeWhale/compare/v0.8.49...HEAD
|
||||
[0.8.49]: https://github.com/Hmbown/CodeWhale/compare/v0.8.48...v0.8.49
|
||||
[0.8.48]: https://github.com/Hmbown/CodeWhale/compare/v0.8.47...v0.8.48
|
||||
[0.8.47]: https://github.com/Hmbown/CodeWhale/compare/v0.8.46...v0.8.47
|
||||
[0.8.46]: https://github.com/Hmbown/CodeWhale/compare/v0.8.45...v0.8.46
|
||||
|
||||
@@ -27,11 +27,11 @@ path = "src/bin/deepseek_tui_legacy_shim.rs"
|
||||
[dependencies]
|
||||
anyhow = "1.0.100"
|
||||
arboard = "3.4"
|
||||
codewhale-config = { path = "../config", version = "0.8.48" }
|
||||
codewhale-protocol = { path = "../protocol", version = "0.8.48" }
|
||||
codewhale-release = { path = "../release", version = "0.8.48" }
|
||||
codewhale-secrets = { path = "../secrets", version = "0.8.48" }
|
||||
codewhale-tools = { path = "../tools", version = "0.8.48" }
|
||||
codewhale-config = { path = "../config", version = "0.8.49" }
|
||||
codewhale-protocol = { path = "../protocol", version = "0.8.49" }
|
||||
codewhale-release = { path = "../release", version = "0.8.49" }
|
||||
codewhale-secrets = { path = "../secrets", version = "0.8.49" }
|
||||
codewhale-tools = { path = "../tools", version = "0.8.49" }
|
||||
schemaui = { version = "0.12.0", default-features = false, optional = true }
|
||||
async-stream = "0.3.6"
|
||||
async-trait = "0.1"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "codewhale",
|
||||
"version": "0.8.48",
|
||||
"codewhaleBinaryVersion": "0.8.48",
|
||||
"version": "0.8.49",
|
||||
"codewhaleBinaryVersion": "0.8.49",
|
||||
"description": "Install and run CodeWhale, the agentic terminal for open-source and open-weight coding models, from GitHub release artifacts.",
|
||||
"author": "Hmbown",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "deepseek-tui",
|
||||
"version": "0.8.48",
|
||||
"version": "0.8.49",
|
||||
"description": "Legacy compatibility package. Renamed to `codewhale`; run `npm install -g codewhale` for new installs.",
|
||||
"author": "Hmbown",
|
||||
"license": "MIT",
|
||||
|
||||
Reference in New Issue
Block a user