本版让输入框可以直接切换工作区的本地分支,界面缩放改用统一范围并支持 Ctrl/Cmd +/-/0,电脑操作能判断每一步是否生效,并修复回退冲突、旧版会话导入、模型切换、GLM 思考参数和多处终端界面的问题。
新增
- 输入框的分支标签读取真实的 git 状态,并可直接把工作区切换到另一个本地分支;有进行中的回合、后台任务或未提交改动时会明确拒绝并说明原因 (#12092 by @XTLine, #12171 by @XTLine)
- 界面缩放只有一个声明范围 0.8 到 1.8(步长 0.05),滑块显示的值就是实际保存的值,并可用 Ctrl/Cmd 加
+、-、0调整 (#12035) - 电脑操作的每一步会标明效果是否可信,并带上占住输入的模态对话框;Windows 上输入文字会读回确认,被错误框挡住时不再假装成功 (#12541, #12542)
- 自动压缩因上次摘要失败而被暂缓时,界面和终端界面会显示一条中英文提示,不再静默 (#12083)
- 终端界面输入框为空时按回车,回到最新输出并继续跟随,与 1.x 一致;
Ctrl+Z把终端界面挂起到命令行,fg后恢复 (#12510 by @xxoingr, #12511 by @xxoingr) - 思考参数面板按协议声明的字段命名,Responses 协议的服务商不再显示成只支持 Chat (#12498)
变更
- 侧栏底部的用量、反馈、账号和设置,在图标栏可见时不再重复显示;图标栏隐藏、仅折叠时显示或窄窗口下仍保留 (#12482 by @SivanCola)
- 显式声明
glm协议的服务,glm-5.2、glm-5.3、glm-5.3-flash 的请求现在带reasoning_effort:5.2 选 high 真发 high,选 none 真关思考;5.3 的「关闭」发thinking=enabled加 low (#12552) - 决策来源不再出现在输入框的模型切换器里,选它会得到明确错误,而不是不可预期的失败 (#12553)
- 已保存的决策来源点「测试连接」时,改走它自己的协议并给出分类错误,不再提示「加 /v1」 (#12546)
- 配置编辑锁目录改放在用户主目录下,遇到属于他人的目录时给出明确错误,不再报一个裸的权限错误 (#11374 by @drakeo338)
- 权限规则写成不对应任何已注册工具的裸命令(如
ask = ["rm"])时会被报告并拒绝,不再静默失效 (#12536) - 安装计划里来自软件包的文字(版本、名称、路径、警告等)现在限长并清除控制字符,
.mcp.json声明的服务数超限会被拒绝 (#12037, #12512 by @xxoingr)
修复
- 代码回退之后再次回退同一回合或更早的回合,不再误报文件冲突;回退确认里的文件数按整个回退范围统计 (#11572 by @Guan0923, #11692 by @Guan0923)
- 打开 1.x 会话时不再多出一份同名副本 (#12506)
- 导入 1.x 目录时,读不了的会话会逐条列出并附带原因,不再只给一个警告数量 (#12538)
- 模型切换被拒时区分是回合仍在运行还是只剩后台任务,并说明各自的处理办法 (#12505)
- 模型切换后,已接入的拦截器类扩展不再失效,也不再误报其服务已停止 (#12367 by @KHG420)
- Windows 上通过注册表里的安装路径找到 Git Bash,回退到 PowerShell 时明确告知;外壳探测有时限且结果会保存,不再拖慢启动 (#12486, #12539)
- Git 低于 2.31 时,工作区不再被误判为「不是仓库」而丢失状态、提交和分支标签 (#12518)
- 压缩摘要因输出上限被截断时,自动用加倍的上限重试一次 (#12469)
- 计划模式拒绝调用时,说明被拒的命令、原因类别和可行的出路 (#12517)
- 本回合只改了
.md/.rst文档时,不再被要求运行验证命令 (#12520) - 交付卡片不再把主机自己的任务快照、工具缓存和
.git当作改动,也不再给中文用户显示英文句子 (#12465) - 后台任务完成、终止、失败的提示改为按界面语言显示 (#12476)
- 提问卡片的自由文字输入框始终可见,运行状态明确写为等待你的回答 (#12540)
- 图标栏的悬停提示不再被裁掉或被遮住 (#12468)
- 重写已发送消息的输入框与队列行的编辑框随文字长度调整高度,长段落不再只露出两行 (#12477)
- 记忆页保存时,较新的草稿不会被先前的保存完成而清掉,各条记忆的写入按钮分别保持禁用 (#12135 by @KHG420)
- 切换设置里的连接后,软件包安装表单和更新锁不再沿用上一个连接的内容 (#12126 by @KHG420)
- 技能安装和注册的结果只报告所选来源自己的文件,同名技能被遮蔽时给出警告,目录别名也会被跟随 (#12107 by @KHG420, #12109 by @KHG420, #12110 by @KHG420)
memory工具的搜索和列表在丢弃结果时会注明丢了多少条,模型不再把截断当作完整 (#12104 by @chuiwenwei)- 宿主日志不再被例行请求刷满,内核异常退出时留下可读的崩溃记录 (#12523)
贡献者
感谢本版本的贡献者:@XTLine、@xxoingr、@SivanCola、@drakeo338、@Guan0923、@KHG420、@chuiwenwei
What's Changed
- fix(studio): keep adopted interceptors working after model switches by @KHG420 in #12367
- docs(readme): add a sponsor slot for PackyCode by @esengine in #12470
- fix(studio): scope package installation forms to connection by @KHG420 in #12126
- fix(studio): preserve memory drafts and pending writes by @KHG420 in #12135
- fix(config): keep the config edit lock directory per user and refuse a foreign owner by @drakeo338 in #11374
- fix(checkpoint): sync file state after code rewind to prevent false conflicts by @Guan0923 in #11572
- feat(memory): report omitted matches on the memory tool paths by @chuiwenwei in #12104
- chore(repolint): declare six look.ts wire mirrors by @f1shsmell in #12389
- docs(studio): run scenario exercises from installed packages by @KHG420 in #12099
- fix(installsource): report skill installation shadowing accurately by @KHG420 in #12107
- fix(installsource): report registered skill discovery by source by @KHG420 in #12109
- fix(receipt): keep host-owned state and the English sentence off the delivery card by @esengine in #12465
- fix(studio): icon-rail hover hints are no longer clipped or covered by @esengine in #12468
- fix(compaction): retry a length-truncated summary once with a larger output cap by @esengine in #12469
- feat(compaction): announce a held automatic compaction by @esengine in #12083
- fix(docs): keep the owner, aliases and tool identities out of the acknowledgments table by @esengine in #12039
- feat(desktop): one declared interface-scale range, and Ctrl/Cmd +/-/0 to change it by @esengine in #12035
- fix(sandbox): find Git Bash through its registry install path and say when the shell falls back to PowerShell by @esengine in #12486
- fix(repolint): drop the duplicate look.ts mirror declarations that broke the studio build by @esengine in #12497
- fix(jobs): give background job completion notices a typed code and payload by @esengine in #12476
- fix(installsource): bound and sanitise package-supplied preview text by @esengine in #12037
- fix(studio): read the composer branch from git, not the capability scope by @XTLine in #12092
- fix(composer): size the rewrite box to its text, as the composer does by @esengine in #12477
- feat(providers): word the thinking parameter from the protocol's declared effort field by @esengine in #12498
- feat(session): check the workspace out to another local branch by @XTLine in #12171
- fix(session): opening a 1.x conversation no longer forks a copy by @esengine in #12506
- fix(serve): say whether a turn or leftover background jobs block a model switch by @esengine in #12505
- fix(tui): Enter on an empty composer returns to the newest output by @xxoingr in #12510
- fix(tui): Ctrl+Z suspends the TUI to the shell by @xxoingr in #12511
- fix(gitcmd): resolve repository paths without rev-parse --path-format by @esengine in #12518
- ci: raise the Windows package timeout to 18m and print the slowest boot tests on failure by @esengine in #12525
- fix(readiness): waive the verification ask when every change this turn is prose by @esengine in #12520
- fix(installsource): refuse a .mcp.json with more servers than the limit by @xxoingr in #12512
- fix(host): quiet routine request logging and keep a crash trail when the kernel dies by @esengine in #12523
- perf(control): read the config for image routing only when a turn has attachments by @esengine in #12529
- perf(skill): resolve each discovery root once per pass by @esengine in #12530
- fix(permissions): report and refuse rules that name no registered tool by @esengine in #12536
- fix(studio): consolidate sidebar footer entries / 合并侧栏重复底部入口 by @SivanCola in #12482
- fix(import): list the 1.x sessions an import could not read, with a typed reason by @esengine in #12538
- fix(studio): make the ask card's free-text answer discoverable and name the wait by @esengine in #12540
- fix(boot): bound and persist Windows shell discovery so the handshake is not held behind it by @esengine in #12539
- feat(computer): grade each step's effect and carry the modal that holds input by @esengine in #12541
- fix(planmode): a refused call names its command, cause class and way out by @esengine in #12517
- feat(computer-helper/windows): report modals and grade typing by read-back by @esengine in #12542
- fix(installsource): follow skill collection root aliases by @KHG420 in #12110
- test(installsource): make the alias quoting fixture creatable on Windows by @esengine in #12579
- fix(studio): count files across the full rewind range by @Guan0923 in #11692
- fix(providers): verify a decision source through its own protocol, not a model listing by @esengine in #12546
- fix(models): a decision source is not offered, or accepted, as a conversation model by @esengine in #12553
- fix(effort): apply the GLM depth contract by declared protocol, not host by @esengine in #12552
- docs(release): Studio 2.34.0 release notes by @esengine in #12583
New Contributors
- @f1shsmell made their first contribution in #12389
Full Changelog: studio-v2.33.0...studio-v2.34.0
macOS 已用 Developer ID 签名并公证,打开时不需要清除隔离属性。Windows 的窗口、内核与安装器都经 Certum 代码签名证书做了 Authenticode 签名。Linux 从 .deb 安装。
三个平台都能自更新:Linux 走自己的包,Windows 运行下一个安装器,macOS 替换自身 bundle。