本版加入应用内反馈和每个模型单独的上下文设置,并修复重启后首次启动误报、远程中转断线原因不明等问题。
新增
- 应用内反馈:可附截图和昵称,得到受理编号,并在「我的反馈」里查看进度、维护者回复和追问 (#11432 by @esengine, #11435 by @esengine, #11445 by @esengine, #11446 by @esengine)
- 终端支持
/feedback,可提交反馈、查看进度并回复 (#11432 by @esengine, #11445 by @esengine) - 每个模型可单独设置上下文窗口和最大输出,未设置的沿用服务商的值 (#11422 by @esengine)
- 技能支持
disable-model-invocation(禁止模型调用)和user-invocable(不出现在斜杠列表) (#11439 by @esengine) - MCP 服务器可单独禁用其中的某个工具 (#11468 by @KHG420)
- 市场插件可以来自 GitHub 仓库的子目录 (#11449 by @KHG420)
- 终端问答在答完最后一题时可自动提交,默认关闭 (#11357 by @BuGlessRB)
变更
- 远程中转连接失败时分别提示来源被拒、被限流、离线、网关不可达等具体原因 (#11438 by @esengine)
- 启动等待延长到 60 秒,3 秒后显示「正在启动」窗口,提前退出时自动重试一次 (#11479 by @esengine)
- 市场读取失败可重试,并在重试后保持焦点 (#11442 by @KHG420, #11444 by @KHG420, #11465 by @KHG420)
- 安装信任披露按界面语言显示,自动化事件名称也一样 (#11453 by @KHG420, #11454 by @KHG420)
- 更新或安装进行中,对应的行和设置导航会被锁定,避免并发操作 (#11450 by @KHG420, #11460 by @KHG420, #11469 by @KHG420)
修复
- Git Bash 不在默认位置时也能被找到,并排除 WSL 转发程序 #11421 fixed in #11423 by @esengine
- 删除项目后重启不再因为启动目录而重新出现 #11418 fixed in #11425 by @esengine
- 重启电脑后首次打开不再直接报「内核没给握手」 #11434
- 切换连接后,市场和发布表单不再沿用另一个连接的状态 (#11466 by @KHG420, #11478 by @KHG420, #11480 by @KHG420)
- 插件包里的 MCP 服务显式连接时保留所属的包 (#11476 by @KHG420)
- 存储面板遇到超大目录不再拖慢 (#11389 by @esengine)
- DNS 解析失败不再被报成连接重置 (#11394 by @esengine)
贡献者
感谢本版本的贡献者:@esengine、@KHG420、@BuGlessRB
What's Changed
- fix(bench): make context-maintenance-e2e resume providerless and pin continue to one summary by @chuiwenwei in #11363
- fix(bench): retire the FullFold ablation and the inert compaction -arm flag by @chuiwenwei in #11360
- fix(serve): give bodyless remote-desktop writes a JSON content type by @esengine in #11365
- docs(cli): list recall-search in the --ablate module list by @chuiwenwei in #11371
- fix(cli): list every ablatable module in the --ablate surfaces by @chuiwenwei in #11364
- docs(context-retrieval): correct the Index corpus v2 qualification bar by @chuiwenwei in #11370
- docs(bench): add the missing -policy row to the e2ebench flag table by @chuiwenwei in #11369
- fix(cli): stop the diff formatter repainting every block when a run lands by @BuGlessRB in #11359
- test(e2ebench): assert every memorybench grader accepts its task's correct answer by @chuiwenwei in #11367
- test(e2ebench): give the ten vs-pos tasks the reference solutions the guard needs by @chuiwenwei in #11380
- fix(studio): picking a browser tab steps the docked file list aside by @esengine in #11387
- fix(agent): new user message outranks the interrupted-turn recovery block by @esengine in #11390
- fix(storage): bound each root's size walk and show partial results by @esengine in #11389
- fix(errmsg): report DNS resolution failures as such, not as a connection reset by @esengine in #11394
- ci(release): attest and gate the CLI channels job by @esengine in #11395
- ci(release): studio cli-channels publishes without an approval environment by @esengine in #11399
- fix(studio): wrap long memory titles inside the row by @esengine in #11404
- feat(schedule): scheduled-runs store, policy and budget accounting (slice 1) by @esengine in #11407
- feat(boot): a read-only posture for unattended runs by @esengine in #11408
- feat(schedule): run a claimed scheduled run in a supervised child process by @esengine in #11413
- fix(schedule): close the review findings on the supervised child by @esengine in #11416
- fix(schedule): close the remaining review findings before the ticker lands by @esengine in #11417
- ci(release): studio writes the CLI update pointer the installed updaters read by @esengine in #11402
- fix(studio): do not open the app's own install folder as the first workspace by @esengine in #11425
- fix(sandbox): find Git Bash outside Program Files when a WSL bash shadows it on PATH by @esengine in #11423
- feat(bench): give the index corpus a measured efficiency substrate by @chuiwenwei in #11379
- ci(feedback): converter and status sync for in-app feedback by @esengine in #11427
- feat(feedback): in-app feedback client, controller port, serve endpoints, TUI /feedback by @esengine in #11432
- fix(remote): classify relay connection failures and show the specific cause by @esengine in #11438
- feat(feedback): mirror reporter replies, publish only released items and images by @esengine in #11440
- fix(feedback): show the response origin and body snippet when the worker refuses the sync token by @esengine in #11448
- ci(feedback-sync): reach the worker through workers.dev by @esengine in #11452
- feat(studio): feedback dialog with screenshots, environment block and my-feedback list by @esengine in #11435
- feat(studio): per-model context window and max output in the provider form by @esengine in #11422
- fix(studio): retry failed author market reads by @KHG420 in #11444
- test(studio): verify plugin updates replace MCP contributions by @KHG420 in #11447
- fix(studio): guard concurrent package operations by @KHG420 in #11450
- fix(skill): honour disable-model-invocation, user-invocable and argument-hint by @esengine in #11439
- fix(studio): retry failed market list and detail reads by @KHG420 in #11442
- fix(studio): locate capabilities after author installs by @KHG420 in #11443
- fix(studio): localize installation trust disclosures by @KHG420 in #11453
- feat(feedback): reply threads, triage statuses and unread state in the client by @esengine in #11445
- test(studio): cover stale author package reads by @KHG420 in #11456
- fix(studio): isolate inline package updates through apply by @KHG420 in #11460
- test(studio): verify copied skill references reach the provider by @KHG420 in #11459
- fix(studio): install git-subdir marketplace plugins by @KHG420 in #11449
- fix(studio): localize automation event labels by @KHG420 in #11454
- feat(studio): support disabling individual MCP tools by @KHG420 in #11468
- fix(studio): preserve applying updates across settings controls by @KHG420 in #11469
- test(plugins): cover compatible MCP install lifecycle by @KHG420 in #11467
- fix(studio): preserve focus through market read recovery by @KHG420 in #11465
- feat(cli): auto-submit a fully answered ask batch, gated on auto_submit / 功能(cli):多题问询答完最后一题即自动提交,由 auto_submit 控制 by @BuGlessRB in #11357
- docs(plugins): add a runnable repository issue exercise by @KHG420 in #11472
- feat(studio): reply threads, needs-input and unread badge in the feedback dialog by @esengine in #11446
- fix(studio): isolate author install responses by connection by @KHG420 in #11466
- fix(studio): preserve package ownership on explicit MCP connection by @KHG420 in #11476
- fix(studio): wait longer for a cold kernel start, retry an early exit once, and name the cause by @esengine in #11479
- fix(studio): refresh market state across runtime connections by @KHG420 in #11478
- docs(studio): add a local API documentation scenario by @KHG420 in #11474
- fix(studio): reset publish form when its owner changes by @KHG420 in #11480
- docs(release): Studio 2.24.0 release notes by @esengine in #11482
- test(feedback): read the reply stub's hits under its lock by @esengine in #11490
- fix(studio): scope skill operation results and refresh current inventory by @KHG420 in #11495
- fix(studio): guard conflicting MCP row operations by @KHG420 in #11492
Full Changelog: studio-v2.23.0...studio-v2.24.0
macOS 已用 Developer ID 签名并公证,打开时不需要清除隔离属性。Windows 的窗口、内核与安装器都经 Certum 代码签名证书做了 Authenticode 签名。Linux 从 .deb 安装。
三个平台都能自更新:Linux 走自己的包,Windows 运行下一个安装器,macOS 替换自身 bundle。