CodeWhale v0.8.47 发布 —— 改名之后,第一次有人在意「编辑器里能不能选中文字」

以前:改个名字,体验照旧
改名后的前几个版本其实一直在做"基础设施迁移"——环境变量改名、安装包整合、状态路径重定向。这些事用户感受不到,但对项目长期健康是必要的。但 v0.8.46 到 v0.8.47 之间,团队终于转向了另一个方向:用户的日常操作质量。
现在:编辑器体验从"能用"到"好用"
最大的一个改动是 Composer 文本选择(#2228)。 在 CodeWhale 的编辑器里拖拽选中文字这个操作,之前一直不存在。本质原因是 TUI 渲染模式下的选区处理和原生终端编辑器(比如 VS Code)有根本不同——TUI 的每一帧都是独立渲染的,选定和高亮的跨行逻辑得自己实现。现在鼠标拖选 + Shift+方向键终于能用了,Ctrl+C 复制、Ctrl+X 剪切也一起到位。Home、End、Ctrl+A、Ctrl+E 现在会先清除当前选区再跳转。说实话,这些在 GUI 编辑器里天经地义的操作,在 TUI 里需要花不小的工程量来铺设。
另一个不起眼但实际高频的操作:复制对话。 之前复制 transcript 到剪贴板,会带上终端换行的视觉折行——粘贴到编辑器里每一行都被断开了。现在 Ctrl+C 复制时会自动去掉视觉折行的换行符(#1906),粘贴出来的就是干干净净的段落。如果你经常拿对话记录去写文档或做 prompt,这个体验提升是立竿见影的。
三个面向中国用户的小福利
- CNB 镜像支持(#2222)。 专门为国内网络环境加的两个环境变量:
CODEWHALE_RELEASE_BASE_URL和CODEWHALE_USE_CNB_MIRROR,npm 安装脚本和 Rust 自更新器都支持。如果你在境内下 release 包经常被 GitHub 卡住,设前者为国内镜像地址就行 /config面板现在显示生效的 DeepSeek base URL(#1967)。 小改动,但用过复杂代理设置的应该懂——配置改了一堆环境变量,想知道最终请求发到哪了之前得翻日志。现在/config直接显示[✓]替代[x]作为完成标记(#1935)。 Checkbox、plan、tool completion 的状态图标从[x]换成了[✓]。纯视觉改进,但看了[x]几个月的用户,这个改动的感知度比想象中大
改名过渡期的"隐身"修复
v0.8.47 有几个修复是改名后才暴露出来的:
- 并发子 agent 的 RwLock 死锁(#1856)。 改名后部署架构调整触发了
RwLock的写竞争(读锁没释放就尝试获取写锁),多 agent 并发时直接卡死。修复方式是将RwLock替换为Semaphore(1),本质上是不允许并行写了(感谢 @Fire-dtx) - DEEPSEEK_YOLO 环境变量在启动时没生效(#1870)。
--yolo命令行标志和环境变量DEEPSEEK_YOLO之前只取其一,不会合并。意味着你设了环境变量但同时又传了其他 flag,yolo 模式可能没开 - steer/queue 消息的 transcript 顺序修复(#2225)。
steer_user_message插入消息时没有冲刷当前 cell,导致排队的消息渲染顺序错乱 - Loop guard 触发时状态正确报告 Failed 而非 Completed(#1859)。 之前安全守卫被触发后,系统报告"任务已完成"——本质上是自相矛盾的
最安静但最实在的改动
状态根目录迁移(state-root migration)。 这次又迁移了 15+ 条存储路径到优先使用 ~/.codewhale、回退到 ~/.deepseek。这个工作中最真实的一点是:改一个配置路径名是最简单的一步,但翻出代码里每一个硬编码的 ~/.deepseek 并替换为 ~/.codewhale(同时兼容旧路径),才是真正做完了。README 也全部更新为 canonical CodeWhale 路径——新用户配置时不会看到 ~/.deepseek 字样。
升级:
npm install -g codewhale@latest
codewhale update
完整更新日志:GitHub Release
📢 关注我,获取最新开源更新日志和开发者工具动态。如果觉得这篇文章有用,欢迎转发给身边的开发者朋友。
#CodeWhale #DeepSeek #AI编程 #TUI #开发者工具