From ccc03158312735411514816af0f8667674bbbc6e Mon Sep 17 00:00:00 2001 From: Hunter B Date: Fri, 12 Jun 2026 07:05:05 -0700 Subject: [PATCH] chore(release): prepare v0.8.59 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. --- CHANGELOG.md | 9 ++- Cargo.lock | 32 ++++----- Cargo.toml | 2 +- README.ja-JP.md | 4 +- README.md | 4 +- README.vi.md | 4 +- README.zh-CN.md | 4 +- crates/agent/Cargo.toml | 2 +- crates/app-server/Cargo.toml | 18 ++--- crates/cli/Cargo.toml | 16 ++--- crates/cli/src/bin/codew_legacy_shim.rs | 50 +++++++++----- crates/config/Cargo.toml | 4 +- crates/core/Cargo.toml | 16 ++--- crates/execpolicy/Cargo.toml | 2 +- crates/hooks/Cargo.toml | 2 +- crates/tools/Cargo.toml | 2 +- crates/tui/CHANGELOG.md | 90 ++----------------------- crates/tui/Cargo.toml | 10 +-- npm/codewhale/package.json | 4 +- web/lib/facts.generated.ts | 4 +- 20 files changed, 114 insertions(+), 165 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9bda530f..f61459d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.8.59] - 2026-06-12 + ### Added - **Moonshot Kimi K2.7 Code model.** The Moonshot/Kimi provider now defaults to @@ -107,6 +109,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 rebrand docs now cover the same upgrade path. Thanks @jazzi and @tiangangQiu for the reports, @cyq1017 for the update-path PR, and @angus-guo for the README PR. +- **Short `codew` shim delegation.** The `codew` convenience binary now + prefers the sibling `codewhale` dispatcher installed next to it before + falling back to `PATH`, preventing fresh local builds or installs from + accidentally invoking an older global dispatcher. - **Constitution trust wording (#2950/#3008).** The base prompt now explains that "begins with an A" means a baseline of trust, not a literal output formatting rule. Thanks @cyq1017 for the PR. @@ -1874,7 +1880,8 @@ overflow report and `/theme` picker edge-wrapping patch in #1814. Older releases (v0.8.39 and earlier) are archived in [docs/CHANGELOG_ARCHIVE.md](docs/CHANGELOG_ARCHIVE.md). -[Unreleased]: https://github.com/Hmbown/CodeWhale/compare/v0.8.58...HEAD +[Unreleased]: https://github.com/Hmbown/CodeWhale/compare/v0.8.59...HEAD +[0.8.59]: https://github.com/Hmbown/CodeWhale/compare/v0.8.58...v0.8.59 [0.8.58]: https://github.com/Hmbown/CodeWhale/compare/v0.8.57...v0.8.58 [0.8.57]: https://github.com/Hmbown/CodeWhale/compare/v0.8.56...v0.8.57 [0.8.56]: https://github.com/Hmbown/CodeWhale/compare/v0.8.55...v0.8.56 diff --git a/Cargo.lock b/Cargo.lock index d2afbfd8..b521e898 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -771,7 +771,7 @@ checksum = "e9b18233253483ce2f65329a24072ec414db782531bdbb7d0bbc4bd2ce6b7e21" [[package]] name = "codewhale-agent" -version = "0.8.58" +version = "0.8.59" dependencies = [ "codewhale-config", "serde", @@ -779,7 +779,7 @@ dependencies = [ [[package]] name = "codewhale-app-server" -version = "0.8.58" +version = "0.8.59" dependencies = [ "anyhow", "axum", @@ -806,7 +806,7 @@ dependencies = [ [[package]] name = "codewhale-cli" -version = "0.8.58" +version = "0.8.59" dependencies = [ "anyhow", "chrono", @@ -834,7 +834,7 @@ dependencies = [ [[package]] name = "codewhale-config" -version = "0.8.58" +version = "0.8.59" dependencies = [ "anyhow", "codewhale-execpolicy", @@ -848,7 +848,7 @@ dependencies = [ [[package]] name = "codewhale-core" -version = "0.8.58" +version = "0.8.59" dependencies = [ "anyhow", "chrono", @@ -867,7 +867,7 @@ dependencies = [ [[package]] name = "codewhale-execpolicy" -version = "0.8.58" +version = "0.8.59" dependencies = [ "anyhow", "codewhale-protocol", @@ -876,7 +876,7 @@ dependencies = [ [[package]] name = "codewhale-hooks" -version = "0.8.58" +version = "0.8.59" dependencies = [ "anyhow", "async-trait", @@ -890,7 +890,7 @@ dependencies = [ [[package]] name = "codewhale-mcp" -version = "0.8.58" +version = "0.8.59" dependencies = [ "anyhow", "serde", @@ -899,7 +899,7 @@ dependencies = [ [[package]] name = "codewhale-protocol" -version = "0.8.58" +version = "0.8.59" dependencies = [ "serde", "serde_json", @@ -907,7 +907,7 @@ dependencies = [ [[package]] name = "codewhale-release" -version = "0.8.58" +version = "0.8.59" dependencies = [ "anyhow", "reqwest", @@ -918,7 +918,7 @@ dependencies = [ [[package]] name = "codewhale-secrets" -version = "0.8.58" +version = "0.8.59" dependencies = [ "dirs", "keyring", @@ -931,7 +931,7 @@ dependencies = [ [[package]] name = "codewhale-state" -version = "0.8.58" +version = "0.8.59" dependencies = [ "anyhow", "chrono", @@ -943,7 +943,7 @@ dependencies = [ [[package]] name = "codewhale-tools" -version = "0.8.58" +version = "0.8.59" dependencies = [ "anyhow", "async-trait", @@ -957,7 +957,7 @@ dependencies = [ [[package]] name = "codewhale-tui" -version = "0.8.58" +version = "0.8.59" dependencies = [ "anyhow", "arboard", @@ -1027,11 +1027,11 @@ dependencies = [ [[package]] name = "codewhale-tui-core" -version = "0.8.58" +version = "0.8.59" [[package]] name = "codewhale-whaleflow" -version = "0.8.58" +version = "0.8.59" dependencies = [ "anyhow", "serde", diff --git a/Cargo.toml b/Cargo.toml index 95a157ff..e627649f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,7 +21,7 @@ default-members = ["crates/cli", "crates/app-server", "crates/tui"] resolver = "2" [workspace.package] -version = "0.8.58" +version = "0.8.59" 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 diff --git a/README.ja-JP.md b/README.ja-JP.md index 8f14a42f..135cda2f 100644 --- a/README.ja-JP.md +++ b/README.ja-JP.md @@ -43,8 +43,8 @@ codewhale --model auto # https://github.com/Hmbown/CodeWhale/releases # GitHub に安定して到達できない場合は CNB mirror を使えます: -cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.58 codewhale-cli --locked --force -cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.58 codewhale-tui --locked --force +cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.59 codewhale-cli --locked --force +cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.59 codewhale-tui --locked --force # 旧 Homebrew 互換。formula はまだ deepseek-tui 名を使います。 brew tap Hmbown/deepseek-tui diff --git a/README.md b/README.md index db2c3e0a..37d8cd0f 100644 --- a/README.md +++ b/README.md @@ -77,8 +77,8 @@ Other install paths are supported: # https://github.com/Hmbown/CodeWhale/releases # CNB mirror path for users who cannot reliably reach GitHub: -cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.58 codewhale-cli --locked --force -cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.58 codewhale-tui --locked --force +cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.59 codewhale-cli --locked --force +cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.59 codewhale-tui --locked --force # Legacy Homebrew compatibility while the formula is renamed brew tap Hmbown/deepseek-tui diff --git a/README.vi.md b/README.vi.md index 3f87b7ba..26d7e2b1 100644 --- a/README.vi.md +++ b/README.vi.md @@ -43,8 +43,8 @@ Các đường khác: # https://github.com/Hmbown/CodeWhale/releases # Nếu GitHub không ổn định, dùng CNB mirror: -cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.58 codewhale-cli --locked --force -cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.58 codewhale-tui --locked --force +cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.59 codewhale-cli --locked --force +cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.59 codewhale-tui --locked --force # Homebrew legacy trong lúc formula vẫn dùng tên deepseek-tui brew tap Hmbown/deepseek-tui diff --git a/README.zh-CN.md b/README.zh-CN.md index 343fc5d7..2d02c599 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -43,8 +43,8 @@ codewhale --model auto # https://github.com/Hmbown/CodeWhale/releases # 如果 GitHub 访问不稳定,可以使用 CNB 镜像: -cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.58 codewhale-cli --locked --force -cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.58 codewhale-tui --locked --force +cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.59 codewhale-cli --locked --force +cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.59 codewhale-tui --locked --force # 旧 Homebrew 兼容路径,formula 仍使用 deepseek-tui 名称 brew tap Hmbown/deepseek-tui diff --git a/crates/agent/Cargo.toml b/crates/agent/Cargo.toml index a4e1f3b7..4f07a99b 100644 --- a/crates/agent/Cargo.toml +++ b/crates/agent/Cargo.toml @@ -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.58" } +codewhale-config = { path = "../config", version = "0.8.59" } serde.workspace = true diff --git a/crates/app-server/Cargo.toml b/crates/app-server/Cargo.toml index fec80642..5773e49e 100644 --- a/crates/app-server/Cargo.toml +++ b/crates/app-server/Cargo.toml @@ -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.58" } -codewhale-config = { path = "../config", version = "0.8.58" } -codewhale-core = { path = "../core", version = "0.8.58" } -codewhale-execpolicy = { path = "../execpolicy", version = "0.8.58" } -codewhale-hooks = { path = "../hooks", version = "0.8.58" } -codewhale-mcp = { path = "../mcp", version = "0.8.58" } -codewhale-protocol = { path = "../protocol", version = "0.8.58" } -codewhale-state = { path = "../state", version = "0.8.58" } -codewhale-tools = { path = "../tools", version = "0.8.58" } +codewhale-agent = { path = "../agent", version = "0.8.59" } +codewhale-config = { path = "../config", version = "0.8.59" } +codewhale-core = { path = "../core", version = "0.8.59" } +codewhale-execpolicy = { path = "../execpolicy", version = "0.8.59" } +codewhale-hooks = { path = "../hooks", version = "0.8.59" } +codewhale-mcp = { path = "../mcp", version = "0.8.59" } +codewhale-protocol = { path = "../protocol", version = "0.8.59" } +codewhale-state = { path = "../state", version = "0.8.59" } +codewhale-tools = { path = "../tools", version = "0.8.59" } serde.workspace = true serde_json.workspace = true rustls.workspace = true diff --git a/crates/cli/Cargo.toml b/crates/cli/Cargo.toml index af734f44..25c27ac0 100644 --- a/crates/cli/Cargo.toml +++ b/crates/cli/Cargo.toml @@ -19,14 +19,14 @@ path = "src/bin/codew_legacy_shim.rs" anyhow.workspace = true clap.workspace = true clap_complete.workspace = true -codewhale-agent = { path = "../agent", version = "0.8.58" } -codewhale-app-server = { path = "../app-server", version = "0.8.58" } -codewhale-config = { path = "../config", version = "0.8.58" } -codewhale-execpolicy = { path = "../execpolicy", version = "0.8.58" } -codewhale-mcp = { path = "../mcp", version = "0.8.58" } -codewhale-release = { path = "../release", version = "0.8.58" } -codewhale-secrets = { path = "../secrets", version = "0.8.58" } -codewhale-state = { path = "../state", version = "0.8.58" } +codewhale-agent = { path = "../agent", version = "0.8.59" } +codewhale-app-server = { path = "../app-server", version = "0.8.59" } +codewhale-config = { path = "../config", version = "0.8.59" } +codewhale-execpolicy = { path = "../execpolicy", version = "0.8.59" } +codewhale-mcp = { path = "../mcp", version = "0.8.59" } +codewhale-release = { path = "../release", version = "0.8.59" } +codewhale-secrets = { path = "../secrets", version = "0.8.59" } +codewhale-state = { path = "../state", version = "0.8.59" } chrono.workspace = true dirs.workspace = true serde.workspace = true diff --git a/crates/cli/src/bin/codew_legacy_shim.rs b/crates/cli/src/bin/codew_legacy_shim.rs index 870128fb..39c2467b 100644 --- a/crates/cli/src/bin/codew_legacy_shim.rs +++ b/crates/cli/src/bin/codew_legacy_shim.rs @@ -4,6 +4,7 @@ //! permanent short-form alias — six fewer keystrokes, same binary. use std::env; +use std::path::{Path, PathBuf}; use std::process::Command; fn main() { @@ -26,29 +27,48 @@ fn main() { } fn spawn_codewhale(args: &[String]) -> std::io::Result { - // Try PATH first. + // Prefer the dispatcher installed next to this shim. Falling back to PATH + // first can silently run an older global `codewhale` after a fresh install. + if let Ok(exe_path) = env::current_exe() + && let Some(sibling) = sibling_codewhale_path(&exe_path) + && sibling.is_file() + { + return Command::new(sibling).args(args).status(); + } + + // Fall back to PATH for unusual installs that ship only the shim. match Command::new("codewhale").args(args).status() { Ok(s) => return Ok(s), Err(e) if e.kind() == std::io::ErrorKind::NotFound => {} Err(e) => return Err(e), } - // On Windows, after an update the sibling `codewhale.exe` may be in the - // same directory as this shim but not on PATH (#2006). - #[cfg(windows)] - { - if let Ok(exe_path) = env::current_exe() - && let Some(dir) = exe_path.parent() - { - let sibling = dir.join("codewhale.exe"); - if sibling.is_file() { - return Command::new(sibling).args(args).status(); - } - } - } - Err(std::io::Error::new( std::io::ErrorKind::NotFound, "codewhale not found on PATH or in sibling directory", )) } + +fn sibling_codewhale_path(exe_path: &Path) -> Option { + exe_path + .parent() + .map(|dir| dir.join(format!("codewhale{}", std::env::consts::EXE_SUFFIX))) +} + +#[cfg(test)] +mod tests { + use super::sibling_codewhale_path; + use std::path::Path; + + #[test] + fn sibling_dispatcher_uses_platform_executable_suffix() { + let path = Path::new("/tmp/codewhale-bin/codew"); + let sibling = sibling_codewhale_path(path).expect("sibling"); + + assert_eq!( + sibling, + Path::new("/tmp/codewhale-bin") + .join(format!("codewhale{}", std::env::consts::EXE_SUFFIX)) + ); + } +} diff --git a/crates/config/Cargo.toml b/crates/config/Cargo.toml index 30f90982..23cbf14c 100644 --- a/crates/config/Cargo.toml +++ b/crates/config/Cargo.toml @@ -8,8 +8,8 @@ description = "Config schema and precedence model for DeepSeek workspace archite [dependencies] anyhow.workspace = true -codewhale-execpolicy = { path = "../execpolicy", version = "0.8.58" } -codewhale-secrets = { path = "../secrets", version = "0.8.58" } +codewhale-execpolicy = { path = "../execpolicy", version = "0.8.59" } +codewhale-secrets = { path = "../secrets", version = "0.8.59" } dirs.workspace = true serde.workspace = true serde_json.workspace = true diff --git a/crates/core/Cargo.toml b/crates/core/Cargo.toml index f7a0a3cf..f96a9629 100644 --- a/crates/core/Cargo.toml +++ b/crates/core/Cargo.toml @@ -9,14 +9,14 @@ description = "Core runtime boundaries for DeepSeek workspace architecture" [dependencies] anyhow.workspace = true chrono.workspace = true -codewhale-agent = { path = "../agent", version = "0.8.58" } -codewhale-config = { path = "../config", version = "0.8.58" } -codewhale-execpolicy = { path = "../execpolicy", version = "0.8.58" } -codewhale-hooks = { path = "../hooks", version = "0.8.58" } -codewhale-mcp = { path = "../mcp", version = "0.8.58" } -codewhale-protocol = { path = "../protocol", version = "0.8.58" } -codewhale-state = { path = "../state", version = "0.8.58" } -codewhale-tools = { path = "../tools", version = "0.8.58" } +codewhale-agent = { path = "../agent", version = "0.8.59" } +codewhale-config = { path = "../config", version = "0.8.59" } +codewhale-execpolicy = { path = "../execpolicy", version = "0.8.59" } +codewhale-hooks = { path = "../hooks", version = "0.8.59" } +codewhale-mcp = { path = "../mcp", version = "0.8.59" } +codewhale-protocol = { path = "../protocol", version = "0.8.59" } +codewhale-state = { path = "../state", version = "0.8.59" } +codewhale-tools = { path = "../tools", version = "0.8.59" } serde_json.workspace = true tracing.workspace = true uuid.workspace = true diff --git a/crates/execpolicy/Cargo.toml b/crates/execpolicy/Cargo.toml index 280e5729..3a7b4bcc 100644 --- a/crates/execpolicy/Cargo.toml +++ b/crates/execpolicy/Cargo.toml @@ -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.58" } +codewhale-protocol = { path = "../protocol", version = "0.8.59" } serde.workspace = true diff --git a/crates/hooks/Cargo.toml b/crates/hooks/Cargo.toml index 6743af10..eba3edb8 100644 --- a/crates/hooks/Cargo.toml +++ b/crates/hooks/Cargo.toml @@ -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.58" } +codewhale-protocol = { path = "../protocol", version = "0.8.59" } reqwest.workspace = true serde.workspace = true serde_json.workspace = true diff --git a/crates/tools/Cargo.toml b/crates/tools/Cargo.toml index cf4a5358..04fba277 100644 --- a/crates/tools/Cargo.toml +++ b/crates/tools/Cargo.toml @@ -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.58" } +codewhale-protocol = { path = "../protocol", version = "0.8.59" } serde.workspace = true serde_json.workspace = true thiserror.workspace = true diff --git a/crates/tui/CHANGELOG.md b/crates/tui/CHANGELOG.md index 058bcc99..956ffd9f 100644 --- a/crates/tui/CHANGELOG.md +++ b/crates/tui/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.8.59] - 2026-06-12 + ### Added - **Moonshot Kimi K2.7 Code model.** The Moonshot/Kimi provider now defaults to @@ -107,6 +109,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 rebrand docs now cover the same upgrade path. Thanks @jazzi and @tiangangQiu for the reports, @cyq1017 for the update-path PR, and @angus-guo for the README PR. +- **Short `codew` shim delegation.** The `codew` convenience binary now + prefers the sibling `codewhale` dispatcher installed next to it before + falling back to `PATH`, preventing fresh local builds or installs from + accidentally invoking an older global dispatcher. - **Constitution trust wording (#2950/#3008).** The base prompt now explains that "begins with an A" means a baseline of trust, not a literal output formatting rule. Thanks @cyq1017 for the PR. @@ -1346,90 +1352,6 @@ Thanks to new contributors whose PRs landed in this release: and continuing contributors **@reidliu41**, **@cyq1017**, **@idling11**, **@h3c-hexin**, **@wdw8276**, **@zlh124**, and **@jeoor**. -## [0.8.45] - 2026-05-25 - -### Added - -- **RLM session objects.** `rlm_open` can now load `session://` refs, - exposing the active prompt, history, and session data as symbolic objects - inside RLM REPLs (#2047). -- **Command palette voice input.** The command palette can launch a configured - speech-to-text helper and show footer status while transcription runs - (#2047). -- **Moonshot/Kimi provider.** Moonshot/Kimi is now a first-class provider, - including API-key auth, model completion, CLI auth, secret-store - integration, and optional Kimi CLI credential reuse. -- **Deterministic whale-species sub-agent names.** Sub-agents now get stable, - human-readable whale-species nicknames (e.g. "Beluga", "Orca") while - preserving the raw agent ID in the popup (#2035, #2016). -- **`/balance` command scaffold.** Registered the `/balance` slash command - as a placeholder for future provider billing queries (#2035, #2019). -- **Readable `/restore` snapshot labels.** Snapshot labels now include the - originating user prompt so restore listings are easier to identify. Thanks - @idling11 (#2111). -- **Sidebar hover tooltips.** Truncated Work and Tasks sidebar lines now expose - their full text on hover. Thanks @idling11 (#2110). - -### Changed - -- **AGENTS.md is now maintainer-local.** The project instructions file no - longer ships as a tracked repo file; it lives in maintainer-local ignored - state (#2047). - -### Fixed - -- **Sub-agent completion handoff compatibility.** Completion handoffs now use a - chat-template-safe role and emit before terminal updates, fixing strict - OpenAI-compatible/self-hosted backends and preserving transcript ordering. - Thanks @h3c-hexin and @cyq1017 (#2057, #2120). -- **Self-hosted context budgeting.** Sub-500K self-hosted model windows now keep - a usable input budget instead of disabling preflight compaction after output - reservation underflow. Thanks @h3c-hexin (#2060). -- **Goal prompts start actionable.** Goal-start prompts now open in an - actionable state instead of requiring an extra nudge. Thanks @cyq1017 - (#2097). -- **Composer session title display.** The composer chrome shows the current - session title again and avoids grayscale luma overflow in debug builds. - Thanks @wdw8276 (#2108). -- **Approval prompts use a one-step confirmation flow.** Enter now commits the - selected approval option directly, destructive warnings remain visible, and - abort cancels the active turn instead of only denying the current tool call. - Thanks @reidliu41 (#2143). -- **Model picker selection survives Esc.** Dismissing the model picker with Esc - no longer loses the highlighted selection. Thanks @reidliu41 (#2056). -- **Moonshot/Kimi sessions launch from the dispatcher.** The `codewhale` - wrapper now includes Moonshot/Kimi in the TUI provider allowlist, so - `codewhale --provider moonshot --model kimi-k2.6` reaches the TUI instead of - stopping after config resolution. -- **Slash recovery no longer restores command tails in the composer.** - Resuming a session or recovering from a crash no longer leaves stale - slash-command text (e.g. `/sessions`) in the composer input (#2047, #2032). -- **Remembered tool approvals now update the live active turn.** - When the "remember" checkbox is set on an approval dialog, the active - turn's auto-approve flag flips immediately instead of waiting for the - next turn. Thanks @gaord (#2047, #2041). -- **YAML block scalars in SKILL.md frontmatter.** Multi-line descriptions - using `>` or `|` indicators are now parsed correctly — folded block - scalars join non-empty lines with spaces, literal scalars preserve - newlines, and all three chomping modes (strip/clip/keep) are supported. - Thanks @zlh124 (#1908, #1907). -- **User messages highlighted in the transcript.** User-authored messages - now render with a full-row background in the live TUI transcript, making - it easier to scan prior turns. Assistant and system messages are - unaffected. Thanks @reidliu41 (#1995, #1672). -- **Cancellable `list_dir` and `file_search`.** Long directory walks and - file searches now respond to user cancel/stop requests with a 30-second - fallback timeout, preventing the TUI from hanging on deep or slow - filesystems (#2035). - -### Community - -- **README contributor acknowledgements resynced.** The Thanks list now - includes the latest contributor rows for @donglovejava, @encyc, - @saieswar237, @sximelon, @nanookclaw, @Sskift, @xin1104, @mrluanma, - @Lellansin, and @zhuangbiaowei, while preserving the existing @jeoor - acknowledgement in the consolidated list. - --- Older releases: [CHANGELOG.md](https://github.com/Hmbown/CodeWhale/blob/main/CHANGELOG.md) and [docs/CHANGELOG_ARCHIVE.md](https://github.com/Hmbown/CodeWhale/blob/main/docs/CHANGELOG_ARCHIVE.md). diff --git a/crates/tui/Cargo.toml b/crates/tui/Cargo.toml index 57cd0c94..d14e58da 100644 --- a/crates/tui/Cargo.toml +++ b/crates/tui/Cargo.toml @@ -20,11 +20,11 @@ path = "src/main.rs" [dependencies] anyhow = "1.0.100" -codewhale-config = { path = "../config", version = "0.8.58" } -codewhale-protocol = { path = "../protocol", version = "0.8.58" } -codewhale-release = { path = "../release", version = "0.8.58" } -codewhale-secrets = { path = "../secrets", version = "0.8.58" } -codewhale-tools = { path = "../tools", version = "0.8.58" } +codewhale-config = { path = "../config", version = "0.8.59" } +codewhale-protocol = { path = "../protocol", version = "0.8.59" } +codewhale-release = { path = "../release", version = "0.8.59" } +codewhale-secrets = { path = "../secrets", version = "0.8.59" } +codewhale-tools = { path = "../tools", version = "0.8.59" } schemaui = { version = "0.12.0", default-features = false, optional = true } async-stream = "0.3.6" async-trait = "0.1" diff --git a/npm/codewhale/package.json b/npm/codewhale/package.json index 5f4a0680..639cbf64 100644 --- a/npm/codewhale/package.json +++ b/npm/codewhale/package.json @@ -1,7 +1,7 @@ { "name": "codewhale", - "version": "0.8.58", - "codewhaleBinaryVersion": "0.8.58", + "version": "0.8.59", + "codewhaleBinaryVersion": "0.8.59", "description": "Install and run CodeWhale, the agentic terminal for open-source and open-weight coding models, from GitHub release artifacts.", "author": "Hmbown", "license": "MIT", diff --git a/web/lib/facts.generated.ts b/web/lib/facts.generated.ts index 7f51cfc4..729ef118 100644 --- a/web/lib/facts.generated.ts +++ b/web/lib/facts.generated.ts @@ -18,8 +18,8 @@ export interface RepoFacts { } export const FACTS: RepoFacts = { - "generatedAt": "2026-06-11T05:54:56.679Z", - "version": "0.8.58", + "generatedAt": "2026-06-12T13:44:56.093Z", + "version": "0.8.59", "crates": [ "agent", "app-server",