Repository navigation
v3.50.0
·
172 commits
to master
since this release
v3.50.0
新增
- 会话环境变量可视化(#2167):Dashboard 支持全局与 Bot 两层会话环境变量的可视化配置、编辑与移除,提供 TMUX / 运行时隔离与环境状态预览。
- 快捷搜索(⌘K)导航增强(#2157, #2137):全局搜索支持直达 Bot 配置及其分类区块,并高亮定位到对应具体配置项行,补齐未收录页面。
- 语音与交互扩展(#2089, #1877, #2123):新增火山豆包 TTS 语音引擎支持方舟 Agent Plan;飞书回复卡增加可选操作菜单;observe 支持上报会话上下文占用,dispatch 支持在已有话题无缝换全新会话。
修复与优化
- 会话生命周期与上下文恢复(#2168, #2165, #2084, #2147, #2150, #2109):Claude 切换新会话(/clear、/resume、/branch)后持久化记录新会话 id,冷启动恢复彻底避免接回旧 transcript 上下文,读不到回复时自愈提示;默认工作目录不存在时回退选仓卡且选定后直接执行触发消息;修复多副本会话恢复空壳与延迟;修复 structured CLI 空回复误报;Codex steer 后状态卡不再卡在「启动中」。
- Worker、Tmux 与 PTY 运行稳定性(#2170, #2159, #2154, #2148, #2107, #2142, #925):统一冷启动探针 probePaneAfterKill,tmux server 退出中的 unknown 状态进行短退避重探,不再直接拒绝启动或残留沙盒树;读端收尾前先读完 PTY 残留输出,解决子进程退出前最后几行截断丢失;托管会话改用独立 tmux socket 隔离宿主 tmux server;隔离 worker exit 持久化写入失败,避免崩溃跳过退出对账与通知;协调存储与远程执行器 stdin 写失败不再抛出进程级异常。
- 授权架构、调度与权限引导(#2145, #2151, #2139, #2144, #2143, #2094):授权状态由 bots.json 迁移至独立 SQLite 授权库并定期清理过期授权;定时调度以权威记录创建并拒绝复用撤销编号,分离同应用操作授权与任务归属校验;用户身份缺敏感权限时智能引导对机器人可见数据改用 --as bot 读取;补齐 Codex App 图片上传并终止拒收重放;修复独立版更新源错配并加速镜像下载。
- 测试工程与沙盒韧性(#2135, #2108, #2141):测试卸载挂载忙时退到 lazy detach 根治 mount-guard 偶发;补全附件 media type 双端点 wire 回归用例;优化 daemon 重启用例采样判定。
✨ 新功能
- dashboard: ⌘K 可搜 Bot 配置及其分类并按 bot 直达,补齐未收录的页面 (#2137)
- observe: observe 报出会话上下文占用,dispatch 支持在已有话题换全新会话 (#2123)
- lark: 增加可选的回复卡操作菜单 (#1877)
- voice: 新增火山豆包 TTS 引擎,支持方舟 Agent Plan (#2089)
- dashboard: ⌘K 可搜 Bot 配置页的区块与配置项,直达并定位到那一行 (#2157)
- env: 会话环境变量可视化管理(全局 / Bot 两层设置与去掉) (#2167)
🐛 修复
- backend: 协调存储与远程执行器的 provider stdin 写失败不再抛成进程级异常 (#2142)
- lark-tool: 用户身份缺权限时,先引导对本机器人能访问的数据改用 --as bot 读取 (#2144)
- riff: 修复附件上传 media type 缺失 (#2108)
- schedule: 分离同应用操作授权与任务归属校验 (#2139)
- bridge: 修复 structured CLI 空回复误报 (#2109)
- bridge: Claude 会话 /clear 后重启恢复不再盯着旧 transcript,读不到回复时自愈或在群里提示 (#2147)
- tmux: 托管会话改用独立 tmux socket,测试连不到宿主 tmux server (#2107)
- lark: 补齐 Codex App 图片上传并终止拒收重放(接管 #1807) (#2143)
- sandbox: 无 worker 关闭时 kill 后探测遇到 tmux server 退出中的 unknown,先短退避重探再决定是否保留沙盒树 (#2148)
- pty: 读端收尾前先读完 PTY 里剩下的输出,子进程退出前的最后几行不再丢失 (#2154)
- read-isolation: 冷启动前确认旧 pane 已消失时遇到 tmux server 退出中的 unknown,先短退避重探,不再直接拒绝启动 (#2159)
- schedule: 以权威记录提交创建并拒绝复用撤销编号 (#2151)
- codex-app: steer 后状态卡不再卡在「启动中」 (#2150)
- update: 修复独立版更新源错配并加速镜像下载 (#2094)
- 修复多副本会话恢复空壳与延迟 (#2084)
- bridge: Claude 换到新对话(/clear、/resume、/branch)后记下新会话 id,冷启动恢复不再接回清掉的上下文 (#2165)
- worker: 冷启动链路上 kill 后确认旧 pane 消失的四处探测统一走 probePaneAfterKill,tmux server 退出中的 unknown 不再拒绝启动或留树 (#2170)
- worker: 隔离 worker exit 持久化写入失败,避免崩溃跳过退出对账与通知 (#925)
- session: 默认工作目录不存在时退回选仓卡,缺目录卡选好目录后直接开始那条消息 (#2168)
♻️ 重构
- grant: 授权状态从 bots.json 迁到 SQLite 授权库,过期授权定期清理 (#2145)
🔧 其它
- credential-only-relay: daemon 重启用例在轮询判定式里取样,不再在轮询外二次读 pid marker (#2141)
- sandbox: 测试卸载挂载忙时退到 lazy detach 并断言已卸,根治 mount-guard 偶发 (#2135)
🙏 感谢贡献者
@Justin1989 @haozhenfei @xiongz-c @sourcesnow @Richard5087 @Brianloveslife @yuxiaochen16 @xinna2001 @LANTERNLALA @zsnjuts @ITcathyh
Full Changelog: v3.49.0...v3.50.0