跳到主要内容

24 篇博文 含有标签「CodeWhale」

查看所有标签

CodeWhale v0.8.57 发布 —— 系统休眠不丢会话、一键发版、Docker 修复,这次全是工程化细节

· 阅读需 6 分钟

流式请求卡在半路,终端里一行血红的 Stream read error: error decoding response body,上一轮的分析、思考、中间结果全白费了。你只能重新来,然后盯着屏幕祈祷别再有电话会议。这种事发生几次之后,我不敢在 CodeWhale 里做超过十分钟的推理任务了。

v0.8.57 第一件事就是把这个窟窿堵上。

CodeWhale v0.8.57 封面


CodeWhale v0.8.56 发布 —— 社区 Harvest:中文、运维、缓存,全有人递了PR

· 阅读需 5 分钟

我愣了一下,反应过来他说的是 CodeWhale。我们团队这半年一直在用这个开源 AI 编程工具。日本分部的同事最近在 onboarding,每次提审代码,审批弹窗一水的英文,他们点头点得飞快——你也不知道是真懂了还是假装看懂了。老张的意思是:能不能把界面语言切过去?

我说,你等一下,我看看最近有没有更新。

打开 GitHub,正好看到 v0.8.56 刚发布,Release 名字叫"Community Harvest"——社区丰收。点进去一看,审批对话框和状态选择器全都完成了本地化,覆盖英语、简体中文、日语、越南语、葡萄牙语、西班牙语、法语七种语言。老张问的日语,就在里面。

这跟我之前遇到的一个情况很像:我自己在终端里敲命令的时候,状态选择器那七个消息 ID 都是英文,选起来总得默念一遍才能确定。现在不用了。读中文选项比读英文快一个量级,这不是翻译精度的问题,是认知负荷的问题。

CodeWhale v0.8.56 封面


CodeWhale v0.8.55 发布 —— Together AI、Codex、新模型,三个 provider 一次到位

· 阅读需 4 分钟

v0.8.55 的方向很明确——把你能接触到的模型渠道,一个接一个地拉进来,让配置墙变低一点。

CodeWhale v0.8.55 封面

Together AI 成了头等舱,不是经济舱

Together AI 以前在 CodeWhale 里只能靠 OpenAI-compatible 通道进——配置靠自己,模型名自己填,出问题了找谁也说不清。v0.8.55 把它提到了 first-class provider 的待遇:

  • 专属配置段[providers.together],三件套 TOGETHER_API_KEY / TOGETHER_BASE_URL / TOGETHER_MODEL
  • 默认模型直接给了两个deepseek-ai/DeepSeek-V4-Prodeepseek-ai/DeepSeek-V4-Flash,不用自己查文档找名字
  • TUI 已覆盖:provider picker 里能选、auth 流程能走、capability 拿到了

first-class provider 和 OpenAI-compatible 的区别在哪?后者只管"发请求"——参数校验、模型白名单、TUI 集成、错误处理,这些都是出问题了才发现没有。前者从第一行代码就被当作一等公民对待。

有意思的是 Together AI 上可以跑第三方模型(不止 deepseek),它的 model catalog 是独立的。这次把它的 base URL、模型映射、capability 声明全部写死在 provider 定义里,比通用通道少了一整圈配置路。

ChatGPT 的 token,CodeWhale 直接用了

这次最让人眼前一亮的是 openai-codex provider——它不走 API key,走的是 ChatGPT/Codex CLI 的本地 OAuth token。

具体机制:从 ~/.codex/auth.json 里读 access token,走 OpenAI Responses API /codex/responses,请求头带 chatgpt-account-id。如果你已经登录了 ChatGPT 桌面端或 Codex CLI,这个 token 自动就有了。

这意味着什么?你不需要再去 OpenAI 后台建 project、创 API key、设支付方式,只要电脑上登录了 ChatGPT:

# 之前配一个新 provider
# 新建 API key → 设置 billing → 找到模型名 → 填到 CodeWhale 配置 → 调试

# 现在配 Codex provider
# 没了。CodeWhale 自动读 ~/.codex/auth.json

默认模型是 gpt-5.5——目前 ChatGPT Pro 能用到的最强模型之一。环境变量覆盖链也很清楚:OPENAI_CODEX_ACCESS_TOKEN / CODEX_ACCESS_TOKEN 这种双重命名设计,说明它在兼容 Codex CLI 的既有环境配置。

不过官方的标注很诚实:The live Responses round-trip has not been exercised against the production backend in CI; treat as preview.——CI 里没跑过生产后端全链路测试,所以暂时当预览用。这和 CodeWhale 一贯的「稳字当头」风格一致:先让你用起来,出问题有环境变量救场。

模型目录更新

OpenRouter 上加了三款新模型:

  • Qwen 3.7 Maxqwen/qwen3.7-max)—— Qwen 家族的新旗舰
  • MiniMax 2.7minimax/minimax-2.7
  • NVIDIA Nemotron 3 Ultranvidia/nemotron-3-ultra

这三款不是小幅度迭代——Qwen 3.7 Max 明显是冲着对标 V4 Pro 去的,Nemotron 3 Ultra 则是 NVIDIA 自研路线的最新一步。之前要靠自定义 provider 手动加模型名才能跑,现在直接在模型选择器里就能看到了。

升级方式

CodeWhale 内置了更新器,优先走 GitHub Release 二进制:

codewhale update

首次安装走 Cargo:

cargo install codewhale-cli --locked
cargo install codewhale-tui --locked

中国区用户如果 GitHub 访问不稳定,可以用 CNB 镜像:

cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.55 codewhale-cli --locked --force
cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.55 codewhale-tui --locked --force

完整更新日志:GitHub Release

📢 关注我,获取最新开源更新日志和开发者工具动态。如果觉得这篇文章有用,欢迎转发给身边的开发者朋友。

#CodeWhale #AI编程 #TogetherAI #Codex #模型更新

CodeWhale v0.8.54 发布 —— 基准测试、HarmonyOS、WhaleFlow 地基,三线齐发

· 阅读需 3 分钟

CodeWhale v0.8.54 封面

基准测试:SWE-bench、Terminal-Bench、PinchBench 都有了原生入口

CodeWhale 之前跑基准测试靠第三方套件。v0.8.54 加了 SWE-bench、Terminal-Bench、PinchBench 的原生 benchmark runner。PinchBench 还带了一个本地运行器,可以用 LLM judge 给 tool-use trace 打分。

这意味着什么:之前你要评估一个改动对 agent 能力的影响,得搭一套独立的测试环境,再对接到 CodeWhale 的输出。现在一条命令就能跑,跑完还有评分。对开发者来说,性能改进有了可量化的验证手段——修了个 prompt、改了个工具调用逻辑、换了模型,可以直接跑 PinchBench 看分涨了还是跌了。

HarmonyOS 脚手架:CodeWhale 准备上国产系统了

这个版本加了 HarmonyOS/OpenHarmony 的支持搭建:OHOS_NATIVE_SDK 环境驱动的编译脚本、Rustls ring-provider 安装、OHOS 回退策略(不支持的 keyring、clipboard、sandbox、browser-open、TTY、execpolicy Starlark 解析和 self-update),还有 CI/release 预检脚本。

目前是 scaffold 阶段——还没有完整的运行时支持。但方向很明确:CodeWhale 在把国产系统列入正式目标平台。对国内团队来说,以后可能在鸿蒙设备上直接跑 CodeWhale。

WhaleFlow 地基:workflow crate 落地

WhaleFlow 是 CodeWhale 之前在规划的编排引擎——让 agent 按有向图执行任务,而不是线性对话。v0.8.54 落地了第一个 codewhale-whaleflow foundation crate,包含 WorkflowSpecWorkflowNode、分支/叶子/策略元数据结构,还有 sequence、BranchSet、Leaf、Reduce 等节点的 mock executor。目前还没有暴露 workflow_run 工具(等 cancellation、replay 和 worktree 语义就绪),但数据模型和阶段排序测试已经有了。

其他值得注意的

/restore list [N] 增强/restore 现在显示最近 20 个快照(带 UTC 时间戳),数字参数可以跑到更深的索引。超出可见上限时报错而不是静默截断——之前你可能看不到最新的 restore 点,现在不会错过了。

turn_end observer hook:每轮对话后触发,收到 status、usage、totals、duration、tool count 的结构化 JSON。可以接外部监控或日志系统。

insecure_skip_tls_verify provider 选项:私有 OpenAI 兼容网关没有可信 CA 的话,可以跳过 TLS 验证了。默认关闭,仅影响当前 LLM provider 的 HTTP client,codewhale doctor 会显示当前状态。

硬压缩规划器(默认关闭):能识别长对话中可摘要的中间部分,同时保留最近的尾巴和 tool-call/result 对保证。目前只加了规划层,还没开启执行路径。

PlanArtifact 增强update_plan 现在支持 grounded objectives、context、sources、critical files、constraints、verification、risks、handoff notes——Plan 模式的卡片信息更丰富了。

升级:

codewhale update # 已安装用户
npm install -g codewhale # 首次安装

⚠️ npm 包可能有短暂延迟,codewhale update 直接走 GitHub Release 二进制。

完整更新日志:GitHub Release

v0.8.54 是 CodeWhale 在多线推进上最有野心的一个版本——基准测试、国产系统、编排引擎同时铺。每条线都不浅。

📢 关注我,获取最新开源更新日志和开发者工具动态。

#CodeWhale #HarmonyOS #基准测试 #WhaleFlow #版本更新

CodeWhale v0.8.54 发布 —— 从终端到 IDE 再到评测平台,一个 Agent 向三个方向生长

· 阅读需 6 分钟

CodeWhale v0.8.54 封面

评测平台:CodeWhale 开始自己跑 SWE-bench 了

v0.8.54 加了三套原生 benchmark entry point:SWE-bench、Terminal-Bench 和 PinchBench。你不再需要把 CodeWhale 的对话录下来再手动喂给评测框架——codewhale bench 直接跑,自带 grader。

其中 PinchBench 的本地 runner 还能用 LLM judge 给 tool-use 轨迹打分。这意味着什么?你可以在开发迭代中一边改 agent 的 prompt 一边跑 PinchBench 看看回归了没有——不需要把样本送去外部评测平台排队等结果。

CodeWhale 之前只是一个 agent 终端,用户用它写代码、交互调试。现在它同时具备了评测能力——你可以用 CodeWhale 评测 CodeWhale 本身,也可以评测其他 agent 在这个环境下的表现。Benchmark 从「外部流程」变成了「内置设施」,这改变了 agent 开发的反馈循环。

另一个有关联的改动是 Xiaomi MiMo v2.5 Pro 的直接路由。Benchmark runner 现在默认用 MiMo 直接路由跑——不是通过 OpenRouter 绕行,而是直连 MiMo 的推理端点。对于依赖 MiMo 的 benchmark 场景,这减少了网络延迟带来的不确定性。

VS Code 扩展:CodeWhale 第一次出现在编辑器里

Phase 0 scaffold 包含了终端启动、本地 runtime attach 检查、状态栏状态显示和一个只读的 Agent View 预览。这就是最小可行产品——你能在 VS Code 侧栏里看到 CodeWhale agent 的状态,虽然还不能完全替代终端交互,但「在编辑器里跑 CodeWhale」这件事已经不再是 paper mode。

Phase 0 背后涉及的 issue 列表很长(#461, #462, #480, #1217, #2341, #1580, #2327, #2580, #2808),说明这不是一个「周末写着玩」的功能,而是有用户反复提过需求的功能。Agent 工具逐渐从终端走向 IDE 集成几乎是必然——你在编辑代码的时候不想切窗口去终端里打字,你希望 agent 出现在写代码的同一个视图中。

Phase 0 走的是「先能跑起来,再慢慢做交互」的路线。值得关注的是后续 Phase 会不会加入内联代码建议、诊断修复、或者直接在编辑区中显示 agent 的 diff 预览。

WhaleFlow:CodeWhale 的管道层开始成型

WhaleFlow 是这次加的一个「工作流引擎」基础 crate(codewhale-whaleflow),虽然现在还只是 foundation——类型化的 workflow 配置、IR 校验、确定性 phase 排序的测试——但它背后蓝图很清晰:CodeWhale 的 agent 交互不再被限定在「一轮对话 + 一个 tool call」的范式里,而是可以被编排成多条并行的管道。

WhaleFlow 的 state-store 也已经有了 v2 schema migration 的 trace 表——说明项目在认真思考「持久化工作流状态」这件事。当前 agent 工具普遍是会话级的:对话结束状态就没了。WhaleFlow 试图给出一个「agent 行为可复现、可审计、可编排」的层。

这和三方 benchmark runner 加起来,其实暴露了 CodeWhale 的方向判断:它不满足于做一个 terminal agent,而是想给 agent 行为一个可测试、可编排、可重放的基础设施。

其他值得看的更新

Sidebar 可开关了(#2766, #2788)。 /sidebar 命令可以 toggle、show、hide、persist sidebar 状态。之前 sidebar 只能通过 TUI config 永久关闭,现在你可以跑着跑着看到东西多了就关掉,需要时再打开——session 期间不需要重启。同一个方向,v0.8.54 还加了 hotbar action registry foundation(#2866)和 multi-tab core(#2864)。TUI 的交互在向「更像一个 IDE」靠拢。

HarmonyOS/OpenHarmony 平台支持。 这不是一个「你说支持就支持」的事——OHOS_NATIVE_SDK 环境变量驱动的 build 脚本、编译器 wrapper、Rustls ring-provider 安装、平台文档、CI release preflight 的 check-ohos-deps.sh。一个项目值得投入这些资源,说明有实际的鸿蒙开发者在用 CodeWhale 了。

Xiaomi MiMo 的计费模型和 region routing。 加了 MiMo 的 chat 模型成本估算(#2731, #2750),以及 mode / XIAOMI_MIMO_MODE / MIMO_MODE 来切换 Token Plan region 端点(#2621, #2627)。MiMo 的计费体系是 region 分层的,不同 region 价格不同,如果你跑在特定 region 上但 CodeWhale 用全局价格算,偏差可能会很大。

/restore list [N] 可以看更多快照了。 Side-git rollback 的 /restore 之前只列最后几个 snapshot,现在支持指定 N 并显示 UTC 时间戳。对于长 session 里频繁 snapshot 的场景,找回到想要的那个点不用再盲猜了。

DuckDuckGo 兼容的私有搜索 endpoint。 [search].base_urlCODEWHALE_SEARCH_BASE_URL 允许你接入私有部署的 DuckDuckGo-compatible 搜索服务(#2436, #2510)。企业场景中,agent 搜索跳出去走公共 endpoint 通常是合规不通过的。

Pausable slash-command MVP。 自定义斜杠命令现在可以设置 pausable: true——执行到一半暂停,等待用户确认再继续。这个听起来小,但它改变了 slash command 的交互模型:从「一次性执行到底」变成「可中断、可确认」。

turn_end 观察者钩子(#1364, #2578)。 在 post-turn 状态更新和 token 统计数据更新后触发。面向的是想写 plugin 扩展的用户——你可以挂一个 observer 来记录每个 turn 的 cost 或者把 turn 结果推送给外部系统。

/hf 命令和 /huggingface 别名。 HuggingFace MCP 的状态查看和设置助手(#2709, #2782),和 v0.8.53 加的 HuggingFace provider 打通。

in-process 响应缓存。 对确定性、非流式、无 tool 的 chat 请求做了进程内缓存(#2501)。对于重复的 prompt(比如系统 prompt 固定 + 用户简短重复提问),直接走缓存不调模型,省 token 省钱。

/config 现在报告 ~/.codewhale/settings.toml 路径。 之前用户不知道自己的 TUI 配置在哪,/config 现在直接告诉你文件路径。

升级

# 已安装用户
codewhale update

# 首次安装
cargo install codewhale-cli codewhale-tui --locked

# npm(npm 包可能延迟)
npm install -g codewhale

完整更新日志:CodeWhale v0.8.54 Release

📢 关注我,获取最新开源更新日志和开发者工具动态。

#CodeWhale #Benchmark #VSCodeExtension #HarmonyOS #AI编程 #开源工具

CodeWhale v0.8.53 发布 —— HuggingFace 也成了第一方 Provider,CodeWhale 的 Provider 版图拼完了

· 阅读需 3 分钟

CodeWhale v0.8.53 封面

从一次「我能不能用自己的 HF Token」开始

我很早就想在一款 agent 终端里用 HuggingFace 的推理 API。HF 上跑着 deepseek-ai/DeepSeek-V4-Pro 和 deepseek-ai/DeepSeek-V4-Flash 的官方模型,用 HUGGINGFACE_API_KEY(或者老朋友的 HF_TOKEN)就能直接调。但大多数 agent 工具要么不认 HF,要么要走 OpenRouter 绕一圈。

CodeWhale 这次直接加了 huggingface 作为原生 provider。/provider huggingface 切过去就能用,支持 HUGGINGFACE_BASE_URLHUGGINGFACE_MODEL 做覆盖。还特意兼容了 org-prefixed model ID(比如你自己的私有部署命名空间)。

有意思的不是加了一个新 provider——CodeWhale 现在已经有 DeepSeek、OpenAI、Anthropic、Gemini、SiliconFlow(含国内节点)、Arcee、HuggingFace 七路 provider。问题不是「够不够多」,是「每个 provider 的路由和配置逻辑有没有专门适配过」。SiliconFlow-CN 那次就暴露了 CLI 遗漏分支编译不通的尴尬。这次 HuggingFace 的加入,我特意看了下:HUGGINGFACE_API_KEY / HF_TOKEN 双兼容、base URL 和 model 的可选覆盖、org-prefixed pass-through——该有的都有了。

两个容易被忽略的修复

Shell 错误提示的路径纠正。Agent 模式里 shell 工具报错时说「你该用 YOLO mode」,但 YOLO mode 意味着放弃所有权限审批——这对大多数用户根本不是正确的解决路径。现在改成了 allow_shell = true,且在 /config 的 Permissions 区块里直接展示这个配置项。一个很小的文案改动,但代表了项目对「什么才是用户的默认行为」的态度转变。

Provider 描述中立化/provider 命令的输出不再推荐特定 provider。这个改动的潜台词是:以前推荐列表有倾向性,现在项目有了足够的 provider 生态,可以保持中立了——不是 Arcee 出了个 provider 就 All in Arcee 那种节奏。

一点版本杂谈

这个 release 的另一个背景是 npm 包改名彻底完成。v0.8.52 开始 codewhale 就是 npm 主包名,旧 deepseek-tui 包不再更新。如果你还在用 npm install -g deepseek-tui,该切了。codewhale update 内置的升级命令绕开了 npm 发布延迟,直接拉 GitHub Release 的二进制——装好了就永远第一时间更新。

升级

# 已安装用户
codewhale update

# 首次安装
npm install -g codewhale

完整更新日志:GitHub Release

📢 关注我,获取最新开源更新日志和开发者工具动态。

#CodeWhale #HuggingFace #AI编程 #开源工具

CodeWhale v0.8.51 发布 —— 你的 agent 每次用着用着就回到起跑线?不再了

· 阅读需 4 分钟

CodeWhale 之前确实有这个机制——叫「会话周期」(session cycle),一个会话跑满 token 上限就自动 checkpoint 再 restart,相当于给 agent 洗了次脑。v0.8.51 把这个机制整个砍掉了。

CodeWhale v0.8.51 封面

周期系统为什么该砍

我理解当初设计 cycles 的初衷:Agent 对话太长了上下文不够用,不如自动分段。但实际用下来,问题比收益多:

  • 你让 agent 改三个文件,刚改完两个就 cycle 了——新 cycle 里的 agent 不知道刚才改了哪两个
  • /recall 命令理论上能找回旧 cycle 的上下文,但 agent 用起来像翻一本没有目录的笔记
  • 那些 cycle-handoff briefing prompt、seam-manager 阈值、Event::CycleAdvanced——为了一个"自动重置"的功能,维护了一大套引擎层管道

砍掉它们(/cycles/cycle <n>/recallrecall_archive tool、sidebar cycles 行、cycle_manager 全套)是一次减法。硬盘上已有的 cycle 存档不动,只是不再读写——不破坏旧 session,只是新 session 不再走那条路。

替代方案:模型感知的自动压缩

cycle 存在的理由是上下文不够用。v0.8.51 给的替代是 auto_compact 重做了一遍。

核心变化是 compaction_threshold_for_model_at_percent(model, percent) 这个函数。以前 compaction 的触发阈值是固定的 effort 值,现在是按模型上下文窗口的百分比来算。默认 80% 触发,256K 及以下窗口的模型自动开启,1M token 模型(DeepSeek V4 等)保持 opt-in——因为 1M 模型靠 prefix cache 省钱,自动压缩反而会破坏缓存命中。

这个改动比 cycles 聪明的地方:它不是一刀切的"满了就重置",而是看当前模型还剩多少预算、还剩多少空间。

Arcee AI:又一个直接可配的 Provider

CodeWhale 的 provider 列表里加了 Arcee AI([providers.arcee]),三款模型可选:trinity-large-thinking(262K 上下文 + reasoning)、trinity-large-preview(262K 无 reasoning)、trinity-mini(128K)。

Arcee 有个门槛——Cloudflare WAF 在首轮握手时可能拦截工具调用。CodeWhale 的处理方式是:首轮只暴露只读工具(read_filelist_dirgrep_files 等),把 Python 执行等容易触发 WAF 的 payload 拆出 system prompt。WAF 不会拒绝一个只读请求。首轮握手通过后,完整工具集通过 tool-search 可达。

其他亮点

Provider 感知的模型选择器:模型按 provider 分组显示,每个模型有简要 hint,每个 provider 记住上次选的模型。以前模型选择器是个平铺列表,上百个模型混在一起翻半天。

错误提示不再喷 HTML:HTTP 403 之前可能直接吐 Cloudflare "Access Denied" 整页 HTML 到对话里,现在缩成一行原因 + ray ID。403 进一步拆成认证失败和网关拦截两条分支。

深度递归文件可达:@ 引用和 Ctrl+P 文件选择器放松了 walk depth 限制,monorepo 布局不再找不到深层文件。

exec_shell 继承 Windows 工具链环境变量:#1857 修了一个隐蔽的 Windows 问题——exec_shell 子进程之前不继承 .NET/NuGet 和 Windows app data 环境变量,导致在 Windows 上跑 C# 构建或 NuGet 还原时找不到工具。

升级

codewhale update
# 或首次安装
npm install -g codewhale

⚠️ codewhale update 直接走 GitHub Release 二进制,不受 npm 包滞后影响。

完整更新日志:CodeWhale v0.8.51 Release

📢 关注我,获取最新开源更新日志和开发者工具动态。

#开源项目 #CodeWhale #AI终端 #会话管理 #Arcee

CodeWhale v0.8.52 发布 —— 图片 attach 终于不再只是摆设,多模态模型这次真能看见了

· 阅读需 4 分钟

CodeWhale v0.8.52 封面

图片 attach 的曲折修复

v0.8.51 的 changelog 写了一项「Multimodal image forwarding」,标了 #2584 和 #2607 两个 PR。但 release note 末尾有个不起眼的说明:这个改动是在 v0.8.51 tag 之后才合并的。换句话说,装了 v0.8.51 的用户,attach 图片后模型依然看不到——那个修复根本没有被包含进去。

v0.8.52 才是第一个真正包含这个功能的版本。Attached images 现在以 OpenAI 兼容的 image_url content blocks 发送(#2584, #2587, #2607),不是以前那种简单的 base64 嵌入。Claude Vision、GPT-4o、Gemini 这些多模态模型都能识别这个标准格式。

有意思的是,这个改动从 PR 合并到出现在可安装的 release 中,隔了一个完整的发布周期。原因是合并时间刚好错过了 v0.8.51 的打包窗口。

国内用户的 SiliconFlow 专属节点

以前国内用户用 SiliconFlow,走的是国际节点——不是不能用,但延迟和可用性都受影响。这次加了 siliconflow-CN 作为 provider 变种(#2588, #2615),共用现有的 SILICONFLOW_API_KEY 环境变量,不需要额外注册一套凭证。

这个设计的关键是不增加心智负担:同一个 API key、同一个 [providers.siliconflow] 配置块,只是在 provider picker 里多了一个「国内节点」选项。如果你是国内开发者,选这个就自动走国内 endpoint。

有一个小插曲:这个改动在合并时漏了 CLI 端的枚举分支,首次编译不通(#2616, #2618, #2619)。发布前补上了缺失的分支,确保用户拿到的是可用的版本。

子 agent 不再无限等待

Sub-agent 有一个长期痛点:如果子 agent 因为网络断开但进程没退出,父 agent 会一直等待,直到你手动 kill。v0.8.52 加了一个 heartbeat 超时机制(#2603, #2614, #2620):子 agent 定期向 manager 上报存活信号,超过 [subagents] heartbeat_timeout_secs(默认 300 秒)没有收到 heartbeat,自动 cancel,释放并发槽位。

这套机制是纯社区驱动的。反过来看,这个功能直到 0.8.52 才补上,说明项目早期没有把「子 agent 异常处理」当优先级——但现在 agent 嵌套越来越深,这个缺口迟早要填。

其他修复精选

Work 面板不再「失忆」(#2606, #2616):sidebar 缓存最后一次成功的 Work 摘要。当引擎短暂持有 todo/plan 锁时,面板不再显示「Work state updating...」这种无信息状态。

缓存计费双源合并(#2567, #2609):DeepSeek 用 prompt_cache_hit_tokens,OpenAI 用 cached_tokens——两个字段反映同一件事但名字不同。以前 CodeWhale 混着读,DeepSeek 上会算错缓存命中,TUI 中的费用估算随之偏高。这次统一用一个 telemetry source。

Cygwin/MSYS2 配置路径(#2369, #2610):Windows 上的 Cygwin/MSYS2 环境,$HOME 如果被显式设置了,配置路径应该优先用用户设定的值,而不是 fallback 到 Windows 的 home 目录。

Legacy SSE MCP 重连(#2597):老的 SSE 协议 MCP 服务器在 POST /messages 被关闭后,不会触发重连。现在和 SSE 流断开一样,走统一的 reconnect-and-retry 路径。

升级

# 首次安装
npm install -g codewhale

# 已安装用户优先用内置更新
codewhale update

⚠️ npm 包与 GitHub Release 可能有短暂延迟,codewhale update 直接走 GitHub Release 二进制,不受 npm 包滞后影响。

完整更新日志:GitHub Release

📢 关注我,获取最新开源更新日志和开发者工具动态。

#CodeWhale #多模态 #AI编程工具 #开源更新

CodeWhale v0.8.50 发布 —— 小米语音、Windows 安装器、15 条本地化消息,一次给全了

· 阅读需 3 分钟

CodeWhale v0.8.50 封面

小米 MiMo 语音支持:在终端里说中文

这个版本最让人意外的新功能是小米 MiMo 语音/TTS 支持。codewhale speech 成了一个独立 CLI 命令,内置 tts 工具别名,还有独立的 config 配置项。你在终端里跑 codewhale speech "生成一段关于用户登录的测试用例",它调用 MiMo 的语音模型返回语音结果。不是简单的文转音——它打通了 voice-design 和 voice-clone 模型,意味着你能用自定人声来生成。

对中文开发者来说,MiMo 本身的中文语音基础就比 ElevenLabs 之类的外国 TTS 好一个档次。你给 agent 念代码 review 的结果,听起来不再是机器人念英译中。

Windows 终于有了正经安装器

之前 CodeWhale 的 Windows 安装只有 zip 解压和手动加 PATH。v0.8.50 加了一个 NSIS 安装器CodeWhaleSetup.exe),装在 %LOCALAPPDATA%\Programs\CodeWhale\bin,自动加当前用户的 PATH。还附了一份 classroom/lab 部署清单。

Windows 用户的体验现在基本追上 macOS 了。

i18n 推进:/queue 命令全本地化了

/queue 命令的 15 条消息已经翻译到了 7 种语言。同时 FanoutCounts 也做了国际化支持。加上之前在推进的 UI 文案中文化,CodeWhale 的多语言支持覆盖越来越全。对国内团队来说,终端工具切成中文交互已经不是做梦了。

其他值得注意的

AtlasCloud model ID 直通(#2569):你在 provider 配置里写 vendor/model-id 的时候,CodeWhale 现在会原样传给 AtlasCloud,不会再自作主张截断或者重映射。以前某些罕见 model 因为 ID 格式不合预期跑不通的问题,现在没了。

缓存诊断层上线(#2514):FrozenPrefix Phase 2 加了一个三区不可变前缀诊断层,在 debug 级别记录缓存前缀漂移。不阻塞请求,只打日志——对于排查「为什么 agent 的回答跟上下文对不上」这类问题,是第一个能定位的入口。

Theme 切换不再留色块:切换主题时,Whale-dark 面板不会留下残留色块。

/context 用路由模型的上下文窗口预算:DeepSeek V4 的 1M token 窗口现在能正确反映在 /context 输出里,不再统一显示 128K。

Subagent 调用截断现在返回错误(不再是静默失败):之前 subagent 调用的结果过长或出错时是悄悄挂掉,agent 拿不到错误信息也不知道发生了什么。现在会返回模型可见的错误信息。

升级:

如果已安装,直接用内置更新器:

codewhale update

首次安装则用 npm:

npm install -g codewhale

⚠️ npm 包与 GitHub Release 可能有短暂延迟,codewhale update 直接走 GitHub Release 二进制,不受 npm 包滞后影响。安装后运行 codewhale --version 确认版本号。

完整更新日志:GitHub Release

CodeWhale 改名后的第一个「有新功能也有修复」的完整版本。好消息是 MiMo 语音对国内用户是实打实的新能力,坏消息是如果你不用这些新功能,这次升级影响不大。

📢 关注我,获取最新开源更新日志和开发者工具动态。

#CodeWhale #语音助手 #MiMo #开源 #版本更新

CodeWhale v0.8.49 发布 —— 两个月前是 DeepSeek-TUI,现在 deepseek 这几个字都要没了

· 阅读需 4 分钟

CodeWhale v0.8.49 封面

以前:叫 CodeWhale,但到处还是 DeepSeek

改名 v0.8.41 之后,CodeWhale 的 README、包名、仓库名都换了。但有三个地方还在「藕断丝连」。

环境变量DEEPSEEK_API_KEYDEEPSEEK_BASE_URL 还是主力入口。虽然 v0.8.46 加了 CODEWHALE_* 别名,但不少脚本和 CI 配置文件里还写着 DEEPSEEK_

二进制名:终端里敲的还是 deepseekdeepseek-tui。改了名但命令没变,用户感知还是「这是个 DeepSeek 的工具」。CodeWhale 在终端里存在了一整个版本周期只靠 README 上的字说明。

config 残留:v0.8.48 移掉了 Qwen 3.7 Max 预设,但 config.example.toml 里还躺着 qwen/qwen3.7-max 的引用。这些细节用户不该看到。

现在:每个地方都在「脱 DeepSeek」

v0.8.49 不是革命性版本,但做的清理工作非常实在。

二进制 shim 化npm install -g codewhale 之后,你会得到 codewhalecodewhale-tui 两个标准二进制。旧的 deepseekdeepseek-tui 还在包里,但启动时会打印一行 deprecation warning 并转发到新命令。这行警告就是信号——到 v0.9.0 直接消失。

前缀缓存不再只看名字(#2264):CodeWhale 的前缀缓存(prefix-cache)之前只比对 tool 的名字来缓存。问题是:同一个 tool 改了 schema 或 description 之后,旧缓存还在用,下次调用直接拿缓存内容回复——结果跟预期对不上。现在缓存指纹会把整个 API-visible tool schema 的细节哈希进去,schema drift 自动让旧缓存失效。

Kimi/Moonshot 的又一个坑被填了(#2438):CodeWhale 对 Kimi 的 tool schema 适配一直在修。之前修过 external tool 的 schema,这次修的是 type 字段嵌套问题。Kimi 要求 tool schema 的 type 必须放在 anyOfoneOf 里才能正确解析,CodeWhale 之前把 type 放在父级——Kimi 不认。修完后还加了 regression 测试,防止以后别的 schema 形状又撞这个坑。

DeepSeek V4-Pro 价格修正(#2489):5 月 31 日 DeepSeek 调了 V4-Pro 的定价。调完后官方正式价格是原来的四分之一。但 v0.8.48 里的计费模型没更新,估出来的价格比实际高了四倍。用户看到「这一趟花了 2 块钱」,其实只要 5 毛。v0.8.49 把这个 cut-off 后的价格校准了。

ANSI 代码跑到了 UI 里(#2481):终端在执行工具时,工具本身可能会输出 ANSI 转义序列(比如 colored logs)。这些字符没被清理就直接被渲染到了 TUI 的 footer、sidebar activity 和 shell label 上,出现了一些花里胡哨的乱码片段。现在是统一剥离后再渲染。

文档也跟着整理了一遍

这次 release 补上了 Moonshot/Kimi 的 [providers.moonshot] 示例配置块,更新了 tool-surface 文档——包括 financeweb.run、git history tools、memory、OCR 等。这些工具的注册方式变了,文档也同步更新了。

config.example.toml 里的 qwen/qwen3.7-max 残留引用也被彻底清理掉了(这个搭配在 v0.8.48 被移除,但例子文件没跟)。

升级

npm install -g codewhale

Homebrew 也可以:brew tap Hmbown/deepseek-tui && brew install deepseek-tui(旧 tap 名继续用,安装的是 codewhale 二进制)。

完整更新日志:GitHub Release

📢 关注我,获取最新开源更新日志和开发者工具动态。

#CodeWhale #开源工具 #AI编程 #终端工具 #cli