本版让装有大量插件技能时的列表、开窗和状态读取明显变快,并修复压缩摘要被掐断与重试超窗口的问题。另新增远程机器开关、主题装饰色和终端界面的 /resume <n>、/quit,并修复停止后计划卡住、暂停队列里发消息失败重复的问题。
新增
- 远程机器的每一行新增两个开关:停止连接该机器,以及不在侧栏里列出它;被停止连接的机器不会再被拨号,已打开的窗格不受影响 (#11991 by @keeyangyy)
- 主题包可以单独设置链接、品牌色、悬停光晕和代理名称的颜色,默认外观不变 (#12030)
- 命令行:终端界面的
/resume <n>直接在原位继续第 n 个已保存的会话,序号不对或正忙时会说明原因;不带数字仍打开选择器 (#12113 by @xxoingr)
变更
- 压缩摘要请求改为只要还在持续返回内容就不会被切断,长时间没有任何进展才算超时,另有 30 分钟的总上限,提示会说明是哪一种 (#12036)
- 摘要失败后的重试等待会在到达上下文窗口之前解除,不再带着超窗口的请求发出;中转站对超大请求返回 400 或 413 时也会先压缩再重试 (#12082)
- 模型请求被重试时,状态行会说明原因(连接中断、超时、服务端状态码、流式输出停滞等)、等多久,秒数按每次尝试重新计时;服务商设置里新增
idle_timeout_seconds(#12050) - 设置里的「默认模型」一行显示配置的默认模型,不再跟着当前会话切换的模型变化 (#11992 by @keeyangyy)
- 在设置里搜索支持当前界面语言显示的名称,例如英文界面输入
Community market可以找到对应设置 (#12094 by @KHG420) - 中文的「本会话不再询问」「此类操作不再询问」按钮改为明确写出「允许」,不会再被当成静默拒绝 (#12021)
- 主题包的取值改由一个生成的样式表下发,作者的样式表不必再加
!important就能覆盖 (#12014) - 插件包里 Claude Code 的模块声明现在会被标为不支持的能力,只带模块的包不再显示为完全兼容 (#12017)
- 命令行:
/quit、/exit重新可用,不再被当成普通消息发给模型;停止过程中再按一次 Ctrl+C 即可退出;补全菜单里按 Tab 接受高亮项,而不是下移 (#12146)
修复
- 安装了很多插件技能时,技能列表、打开窗格和状态读取大幅变快;实测 240 个插件技能的列表请求在 macOS 上由约 3.1 秒降到约 33 毫秒 (#12074, #12077, #12079)
- 状态读取不再堆积占满浏览器连接,不再出现批准、计划决定或回答卡片长时间卡在「提交中」,决定提交最多等待 20 秒并给出明确提示 (#12056)
- 点击侧栏会话行时立即显示为选中,不必等内核响应;重复点击同一行不会重复打开 (#12076)
- 状态标签在后接入的窗口里不再在回合运行时显示「空闲」 (#12047)
- 提示词优化和提交说明草拟在通用的 OpenAI 兼容服务上可用,这些服务拒绝「关闭思考」时会改用最低档重试,不再提示没有可用模型 (#12101)
- 版本目录、中转站等请求改用 Studio 自己的客户端标识,不再以 Go 默认标识发出而可能被 Cloudflare 以 403 拦截 (#12064)
- 切换连接后,备份面板不再保留上一个连接的恢复凭据和确认,选择另一份备份时也会清除上一份的预览 (#12127 by @KHG420)
- 切换连接后,记忆面板不再把旧连接的编辑内容、名称或版本发给新连接,也不会被旧连接的迟到结果覆盖 (#12131 by @KHG420)
- 缓存的 MCP 工具没有自带描述时,也会显示「上次连接的快照」标记 (#12096 by @KHG420)
- 浏览器标签打不开时会在窗格里显示原因(缺少浏览器引擎、启动失败、配置被占用等),错误文字也不再显示为正文颜色 (#12140)
- 被强行结束的内核遗留的
reasonix-jobs-*临时目录,会在下一次启动时清理;更新程序的临时文件不在本次修复范围内 (#12145) - 运行中保存子代理模型时,选择框不再跳回「跟随主模型」,并提示「已保存,尚未生效」 (#12150)
- 输入框上的工具提示不再超出提示框,优化按钮不可用时也不再发虚 (#12152)
- 在计划批准卡片打开时停止,计划会回到规划阶段,不再卡在等待批准,之后的消息也不会再被当成写操作拒绝 (#12154)
- 停止后发送队列处于暂停时,再发的消息会作为后续消息保留,并提示「待发送已暂停,这条消息已排入队列,点“继续派发”后才会发送」,不再失败并留下重复副本;空闲时带技能标记的发送也适用 (#12157)
贡献者
感谢本版本的贡献者:@keeyangyy、@xxoingr、@KHG420
What's Changed
- fix(pluginpkg): report Claude Code modules as an unsupported capability by @esengine in #12017
- fix(studio): name the allow decision on session/persistent approval buttons by @esengine in #12021
- fix(studio): deliver theme packs through a generated stylesheet, not inline styles by @esengine in #12014
- feat(theme): decorative roles get their own tokens (link, brand, halo, labelAgent) by @esengine in #12030
- release(studio): stable releases become GitHub latest, without a root latest.json by @esengine in #12034
- fix(studio): the default-model row shows the configured default, not the session's model by @keeyangyy in #11992
- fix(studio): status chip no longer says idle while the turn is running on a late-attached client by @esengine in #12047
- feat(remote): per-host switches to stop dialing a machine and to keep it out of the rail by @keeyangyy in #11991
- fix(retry): say why a request is retried, what it waits for, and expose idle_timeout_seconds by @esengine in #12050
- fix(studio): status reads never stack, decision submits are bounded by @esengine in #12056
- fix(net): send a non-Go User-Agent on catalog, relay and worker requests by @esengine in #12064
- fix(serve): list skills with one configuration read instead of one per skill by @esengine in #12074
- fix(compaction): bound the summary request by lack of progress, not total time by @esengine in #12036
- perf(skill): leave references and scripts unread when listing skills by @esengine in #12077
- perf(serve): answer /status model facts from the build, not a config load by @esengine in #12079
- fix(studio): select a session row on the click instead of after the kernel answers by @esengine in #12076
- fix(compaction): a failed summary's retry hold gives way before the window by @esengine in #12082
- fix(boot): side models retry on the lowest effort when an endpoint refuses "disabled" by @esengine in #12101
- docs(contributing): open-PR cap, issue-first for features, AI-assist note by @esengine in #12132
- docs(contributing): drop the open-PR cap by @esengine in #12134
- fix(studio): scope backup forms to connection by @KHG420 in #12127
- fix(studio): scope memory panels to their connection by @KHG420 in #12131
- fix(tui): /resume continues the nth saved session in place by @xxoingr in #12113
- fix(studio): search settings by localized labels by @KHG420 in #12094
- fix(studio): mark cached MCP tools without descriptions by @KHG420 in #12096
- fix(jobs): reclaim temp roots abandoned by killed kernels via a lock-owned scratch dir by @esengine in #12145
- fix(workbench): show why a browser tab could not open by @esengine in #12140
- fix(tui): restore 1.x /quit, second Ctrl+C while stopping, and Tab accept by @esengine in #12146
- fix(settings): keep a role saved while busy and say it is not applied yet by @esengine in #12150
- fix(studio): composer control tooltips wrap inside their box and no longer fade when the host is disabled by @esengine in #12152
- fix(control): return the plan to planning when a stop cancels the approval card by @esengine in #12154
- fix(control): hold a mid-turn message as a follow-up when the queue is paused by @esengine in #12157
- docs(release): Studio 2.29.0 notes by @esengine in #12160
New Contributors
- @keeyangyy made their first contribution in #11992
Full Changelog: studio-v2.28.0...studio-v2.29.0
macOS 已用 Developer ID 签名并公证,打开时不需要清除隔离属性。Windows 的窗口、内核与安装器都经 Certum 代码签名证书做了 Authenticode 签名。Linux 从 .deb 安装。
三个平台都能自更新:Linux 走自己的包,Windows 运行下一个安装器,macOS 替换自身 bundle。