@tea-agent/loop-agent 0.44.0-next.5 → 0.44.0-next.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/CHANGELOG.md +299 -445
  2. package/dist/build-stamp.json +3 -3
  3. package/dist/executors/pi-sdk-executor.js +7 -7
  4. package/dist/infrastructure/console/operation-store.js +46 -14
  5. package/dist/shared/git-workspace-status.js +2 -0
  6. package/dist/shared/wizard-local-telemetry.js +2 -1
  7. package/dist/worker/console/chat/assistant-content.js +5 -34
  8. package/dist/worker/console/chat/chat-event-store.js +27 -10
  9. package/dist/worker/console/chat/db-connections.js +72 -8
  10. package/dist/worker/console/chat/pi-runtime/custom-tools/sql-tools.js +52 -24
  11. package/dist/worker/console/chat/pi-runtime.js +251 -18
  12. package/dist/worker/console/chat/repo-browser.js +49 -0
  13. package/dist/worker/console/chat/routes.js +215 -66
  14. package/dist/worker/console/chat/session-store.js +147 -19
  15. package/dist/worker/console/chat/turn-process.js +69 -23
  16. package/dist/worker/console/chat/user-turn-outline.js +19 -0
  17. package/dist/worker/console/console-update-runtime.js +2 -2
  18. package/dist/worker/console/operator-user-error.js +28 -1
  19. package/dist/worker/console/pi-readiness.js +4 -4
  20. package/dist/worker/console/recovery-cta.js +14 -14
  21. package/dist/worker/console/static/assets/{abnfDiagram-N423BO3Z-BHuhGM1e.js → abnfDiagram-N423BO3Z-DTuku_-7.js} +1 -1
  22. package/dist/worker/console/static/assets/{arc-CKh5E_sr.js → arc-CQbCsSqb.js} +1 -1
  23. package/dist/worker/console/static/assets/{architectureDiagram-T3A2C74G-DizhiBEv.js → architectureDiagram-T3A2C74G-C-xUntTR.js} +1 -1
  24. package/dist/worker/console/static/assets/{blockDiagram-VBNYF7ZC-3Neea-Z-.js → blockDiagram-VBNYF7ZC-DhNlwGAl.js} +1 -1
  25. package/dist/worker/console/static/assets/{c4Diagram-5PPSVZJV-BCP_Qrgi.js → c4Diagram-5PPSVZJV-B7j3nx8o.js} +1 -1
  26. package/dist/worker/console/static/assets/channel-5_os7t_x.js +1 -0
  27. package/dist/worker/console/static/assets/{chunk-2GRJ4B5K-C_wydftK.js → chunk-2GRJ4B5K-BCrcxEh2.js} +1 -1
  28. package/dist/worker/console/static/assets/{chunk-2Q5K7J3B-jRPXZbzx.js → chunk-2Q5K7J3B-CsaePDb3.js} +1 -1
  29. package/dist/worker/console/static/assets/{chunk-5RXB4S5H-BLQf2OYO.js → chunk-5RXB4S5H--SRQc1rN.js} +1 -1
  30. package/dist/worker/console/static/assets/{chunk-5VM5RSS4-0qRq64rI.js → chunk-5VM5RSS4-C5BFY2Po.js} +1 -1
  31. package/dist/worker/console/static/assets/{chunk-6Q2QTUOP-ClMg8xmV.js → chunk-6Q2QTUOP-Caso6uN7.js} +1 -1
  32. package/dist/worker/console/static/assets/{chunk-GF5L2VYU-Coop2FlL.js → chunk-GF5L2VYU-AY2ZSAx2.js} +1 -1
  33. package/dist/worker/console/static/assets/{chunk-JWPE2WC7-CDdO-jPJ.js → chunk-JWPE2WC7-DiMqZQ_8.js} +1 -1
  34. package/dist/worker/console/static/assets/{chunk-KBJHAD2P-D8Gkppjl.js → chunk-KBJHAD2P-gpvvriOp.js} +1 -1
  35. package/dist/worker/console/static/assets/{chunk-RYQCIY6F-DA9HIySf.js → chunk-RYQCIY6F-CUdyoJhI.js} +1 -1
  36. package/dist/worker/console/static/assets/{chunk-XXDRQBXY-DZNDRX1k.js → chunk-XXDRQBXY-Bp1xW3T4.js} +1 -1
  37. package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-loz0n18W.js +1 -0
  38. package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-loz0n18W.js +1 -0
  39. package/dist/worker/console/static/assets/{cose-bilkent-JH36ORCC-CZ1zGyjq.js → cose-bilkent-JH36ORCC-D-JIcOIT.js} +1 -1
  40. package/dist/worker/console/static/assets/{cynefin-VYW2F7L2-B8u1_FtM.js → cynefin-VYW2F7L2-C-NKFflx.js} +1 -1
  41. package/dist/worker/console/static/assets/{cynefinDiagram-MW4NZA55-CPBB6lfo.js → cynefinDiagram-MW4NZA55-CSOcvOAA.js} +1 -1
  42. package/dist/worker/console/static/assets/{dagre-VZM6K2ZE-CG3Eov3E.js → dagre-VZM6K2ZE-BQSBltMy.js} +1 -1
  43. package/dist/worker/console/static/assets/{diagram-7IWD3JNH-ycI-dOjh.js → diagram-7IWD3JNH-B0LVC45G.js} +1 -1
  44. package/dist/worker/console/static/assets/{diagram-B4RE2ZJO-Bx_GyQ7Y.js → diagram-B4RE2ZJO-Cypg3nqy.js} +1 -1
  45. package/dist/worker/console/static/assets/{diagram-LBJQPF4R-m0G6mP4d.js → diagram-LBJQPF4R-BBDU88XJ.js} +1 -1
  46. package/dist/worker/console/static/assets/{diagram-Q27KOJAE-DTDJkqcJ.js → diagram-Q27KOJAE-BZusLqSb.js} +1 -1
  47. package/dist/worker/console/static/assets/{diagram-UB23O5K3-BCfFrG-p.js → diagram-UB23O5K3-Cfolotcr.js} +1 -1
  48. package/dist/worker/console/static/assets/{ebnfDiagram-BXEA7PRR-BIkTNPpp.js → ebnfDiagram-BXEA7PRR-CjfyUy0m.js} +1 -1
  49. package/dist/worker/console/static/assets/{erDiagram-JOGREHBK-DTcMWrd2.js → erDiagram-JOGREHBK-DJdz7txE.js} +1 -1
  50. package/dist/worker/console/static/assets/{flowDiagram-UKHOOZJN-BqzDaNQ7.js → flowDiagram-UKHOOZJN-CQqgPO6y.js} +1 -1
  51. package/dist/worker/console/static/assets/{ganttDiagram-PKOTCBZU-BSl_vGFe.js → ganttDiagram-PKOTCBZU-BOpGfS2m.js} +1 -1
  52. package/dist/worker/console/static/assets/{gitGraphDiagram-DS77QQ5N-DCA5HXM6.js → gitGraphDiagram-DS77QQ5N-C6UCu0qx.js} +1 -1
  53. package/dist/worker/console/static/assets/index-CUT440A8.css +1 -0
  54. package/dist/worker/console/static/assets/index-DWKejNVJ.js +486 -0
  55. package/dist/worker/console/static/assets/{infoDiagram-6WML65LV-DvqT18ge.js → infoDiagram-6WML65LV-BWeaVEUB.js} +1 -1
  56. package/dist/worker/console/static/assets/{ishikawaDiagram-WSZJBQD7-B6zGKrQ3.js → ishikawaDiagram-WSZJBQD7-C8gmlBbk.js} +1 -1
  57. package/dist/worker/console/static/assets/{journeyDiagram-NVQOT4AX-BpLQPI9C.js → journeyDiagram-NVQOT4AX-DF3bm8Bp.js} +1 -1
  58. package/dist/worker/console/static/assets/{kanban-definition-27J2QSJJ-CzIz_-Lt.js → kanban-definition-27J2QSJJ-D2fG2Vxi.js} +1 -1
  59. package/dist/worker/console/static/assets/{linear-CMQ8Jpp-.js → linear-BGKgMc2T.js} +1 -1
  60. package/dist/worker/console/static/assets/{mermaid.core-BdAMrTf7.js → mermaid.core-DF6mMPJ9.js} +5 -5
  61. package/dist/worker/console/static/assets/{mindmap-definition-FAOFIHXS-hSwF6sOq.js → mindmap-definition-FAOFIHXS-AMhePheC.js} +1 -1
  62. package/dist/worker/console/static/assets/{pegDiagram-VL7TDLO6-DZdv509B.js → pegDiagram-VL7TDLO6-DN1Cl0W0.js} +1 -1
  63. package/dist/worker/console/static/assets/{pieDiagram-7S7Q4E2Y-CmD4-b0K.js → pieDiagram-7S7Q4E2Y-Cx9ngUeN.js} +1 -1
  64. package/dist/worker/console/static/assets/{quadrantDiagram-CIZ2JOQS-DtKxNxlS.js → quadrantDiagram-CIZ2JOQS-BcYPTQJb.js} +1 -1
  65. package/dist/worker/console/static/assets/{railroadDiagram-AXF67PYL-D48iIoiS.js → railroadDiagram-AXF67PYL-BqHUZWnH.js} +1 -1
  66. package/dist/worker/console/static/assets/{requirementDiagram-LRYGKXZP-C3N0K-2p.js → requirementDiagram-LRYGKXZP-CmqWZ0-B.js} +1 -1
  67. package/dist/worker/console/static/assets/{sankeyDiagram-W5VNT64P-CACWR-Xs.js → sankeyDiagram-W5VNT64P--4YetH1y.js} +1 -1
  68. package/dist/worker/console/static/assets/{sequenceDiagram-SI44F4Z6-g_QgugvZ.js → sequenceDiagram-SI44F4Z6-DGD4VMfD.js} +1 -1
  69. package/dist/worker/console/static/assets/{sizeCapture-X5ZJPWSS-DqLoRPGK.js → sizeCapture-X5ZJPWSS-QVw9q7rh.js} +1 -1
  70. package/dist/worker/console/static/assets/{stateDiagram-OKZ733FA-ES59VgMG.js → stateDiagram-OKZ733FA-CuemV9pe.js} +1 -1
  71. package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-BdlGdIJw.js +1 -0
  72. package/dist/worker/console/static/assets/{swimlanes-SLNWSIFB-fjyLVNWo.js → swimlanes-SLNWSIFB-C7oKzZKs.js} +2 -2
  73. package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-DjjbHbde.js +8 -0
  74. package/dist/worker/console/static/assets/{timeline-definition-Z64GVDOM-Cd5-biKv.js → timeline-definition-Z64GVDOM-C2Of60nT.js} +1 -1
  75. package/dist/worker/console/static/assets/{vennDiagram-T6HMQDX7-CZTu6mPf.js → vennDiagram-T6HMQDX7-DHtpQHyL.js} +1 -1
  76. package/dist/worker/console/static/assets/{wardleyDiagram-T6FBY63Y-DR01jjbe.js → wardleyDiagram-T6FBY63Y-COi9OhSy.js} +1 -1
  77. package/dist/worker/console/static/assets/{xychartDiagram-ELKLHX3M-iZcuGVGa.js → xychartDiagram-ELKLHX3M-DPHQfRrt.js} +1 -1
  78. package/dist/worker/console/static/index.html +2 -2
  79. package/dist/worker/console/static-src/app/console-types.js +9 -1
  80. package/dist/worker/console/static-src/operator-chat/chat-link.js +20 -0
  81. package/dist/worker/console/static-src/operator-chat/chat-sse-events.js +58 -3
  82. package/dist/worker/console/static-src/operator-chat/details-rail-surfaces.js +98 -0
  83. package/dist/worker/console/static-src/operator-chat/file-palette-nav.js +81 -0
  84. package/dist/worker/console/static-src/operator-chat/process-label.js +19 -6
  85. package/dist/worker/console/static-src/operator-chat/transcript-mode.js +21 -0
  86. package/dist/worker/console/static-src/operator-chat/turn-group-equality.js +2 -0
  87. package/dist/worker/console/static-src/operator-chat/turn-process-disclosure.js +13 -5
  88. package/dist/worker/console/static-src/operator-chat/turn-state-projection.js +166 -0
  89. package/dist/worker/console/static-src/operator-chat/turn-stream-controller.js +56 -2
  90. package/dist/worker/console/static-src/operator-chat/useChatSessions.js +202 -41
  91. package/dist/worker/console/static-src/operator-chat/useChatStream.js +78 -23
  92. package/dist/worker/console/static-src/operator-chat/useChatThread.js +55 -18
  93. package/dist/worker/console/static-src/operator-chat/useComposer.js +80 -6
  94. package/dist/worker/console/static-src/operator-chat/useRepoBrowser.js +13 -3
  95. package/dist/worker/console/static-src/operator-chat/useRuntimeControls.js +36 -17
  96. package/dist/worker/console/static-src/operator-chat/useRuntimeSnapshot.js +18 -0
  97. package/dist/worker/console/static-src/operator-chat/useWorkspaceBrowserGate.js +4 -0
  98. package/dist/worker/console/static-src/shell/console-update-reload.js +1 -1
  99. package/dist/worker/console/workspace-initialization.js +3 -3
  100. package/dist/worker/observability/read-model.js +23 -2
  101. package/dist/worker/scheduler/scheduled-goal-dispatch.js +3 -2
  102. package/dist/worker/scheduler/scheduled-goal-evidence.js +6 -1
  103. package/docs/templates/backend-test-dag.json +1 -0
  104. package/package.json +4 -4
  105. package/dist/worker/console/static/assets/channel-DxgzA1GF.js +0 -1
  106. package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-BZcm7fs6.js +0 -1
  107. package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-BZcm7fs6.js +0 -1
  108. package/dist/worker/console/static/assets/index-BAEDjTbD.css +0 -1
  109. package/dist/worker/console/static/assets/index-wKEJUaP5.js +0 -482
  110. package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-DyCIq6jx.js +0 -1
  111. package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-CsKtO34q.js +0 -8
package/CHANGELOG.md CHANGED
@@ -2,630 +2,485 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
- - 修复 Windows 上 pi 节点零提交失败的读写守卫误报:libuv 在 win32 的 `fstat` 返回卷序列号而 `lstat` 恒为 0,跨 API 比较必然失败并误报“文件在打开期间被替换”;现新建共享身份比较 helper,win32 跳过跨 API `dev` 比较但保留 `ino` 与其余全部防护,Console 仓库预览同类比较一并修复(用户 0.42.1/0.43.0 两次实测上报)。
6
- - 修复研发工作流对 Git submodule 的误拦截:父仓库 `git status` 只能看到 submodule 目录级条目,子仓库内合法写入会被误判 `empty-diff`(脏基线)或越界(净基线),导致 verify/review/closeout 全部跳过;现在状态采集会展开到已初始化子仓库的文件级事实(含嵌套 submodule、中文/带引号路径解码、未初始化与采集失败时如实报错不吞证据),合法子仓库写入正常进入验证链,真实越界仍按文件精确拦截,无 submodule 仓库行为字节级不变。
7
-
8
- - Console 新增低饱和的「暮色蓝」深色与「雾光白」浅色主题,保留默认暖纸色;柔和背景、轻量选中态与独立按钮配色减少视觉刺激。顶部仅显示带「主题」悬停提示的紧凑明暗图标按钮,点击后展开「默认 / 深色 / 浅色」,选完自动收起,支持点击外部或 Escape 关闭;初始使用默认主题;即时切换对话、操作与观测界面,刷新后记住选择,浏览器存储不可用时仍可在当前页面切换。
9
- - Operator Chat 消息流后续对齐:折叠摘要现在统计 retry/step/command/unknown 等 durable 过程节点,Trajectory 与 HTML 导出保留 DAG progress,并使用稳定过程身份避免直播插入导致 Thinking/工具行重挂载。
10
- - Operator Chat 统一主时间线、Trajectory 与导出使用同一 DSH flow projection:Thinking、工具、重试、命令和完成态节点按事件序交错,保留 completed-turn 折叠;request/unknown 详情改为有界结构化摘要,不再回显裸节点 JSON。
11
- - Operator Chat 的消息流对齐 DSH Conversation Node:模型步骤、重试、终止错误、输出上限、每次请求上下文、嵌套工具、`/sdd-bingo` 命令回执和未知事件均以稳定节点留痕;同一模型步骤的多次重试聚合为一条紧凑记录,Provider 终态错误改为轻量行且不再暴露原始响应;流式文本按动画帧合并发布,刷新和断线恢复保持同一身份与顺序,轨迹页面和导出同步展示。
12
- - Operator Chat 在后台断线重连后不再丢消息:检测到中断会自动补齐缺口内容,也不会把正常的历史回放误判成丢事件而反复重连。
13
- - Operator Chat 新增独立「上下文洞察」面板:提供当前上下文构成、按步/按轮趋势与累计/增量视图、上下文浏览器(系统提示、工具 Schema、消息、注入、工具结果、技能)、上下文事件筛选、文件活动筛选排序,以及 token/cache/cost/timing 统计;`/context` 与详情栏「洞察」共用同一数据面。
14
- - 「上下文洞察」新增 token 构成饼图(conic-gradient 渲染)、剪枝/压缩明细(区分 prune 与 compact 事件,展示前/后/回收 tokens、移除项数、原因);趋势柱 hover/click 实时联动上下文浏览器。
15
- - Operator Chat 的恢复快照现在只会合并属于目标会话的乐观提交;切换会话后,旧会话尚未确认的输入不会再因延迟重连恢复而显示到新会话中。
16
- - `/sdd-bingo` 成功提示现在展示上报的 Skill 与 Session ID;轨迹顶部会出现当前会话的常驻 SDD 身份栏,可一键复制、首次请求后自动更新;该上报以独立“操作”事件留痕,刷新或导出后仍在,不再伪装成工具调用。
17
- - Operator Chat 发送消息后的空白光标改为 Codex 式“正在思考”,真实思考、工具过程或最终回答出现后自然接替;并修复了状态偶发显示在用户输入上方的问题。
18
- - Operator Chat 移除工作区会从侧栏和搜索中隐藏其会话,但不删除工作区目录、会话记录或运行数据;重新添加同一路径会恢复原工作区身份、会话归组和顺序。移除当前工作区时退出其活动会话并切到剩余工作区,已知会话详情仍可直接恢复。
19
-
20
- ## [0.43.0] - 2026-09-14
21
-
22
- - `dag doctor` 现在真的接受 `--json`,与 `dag report` 和顶层 `doctor` 用法一致,且优先于 `--markdown`;默认输出不变,文档里承诺过的这个用法不再报错。
23
- - 新增统一 `dogfood:backend` 入口:默认只做零副作用的控制器身份预检,记录发布渠道、包指纹与构建信息,漂移会在模型和 DAG 启动前直接停下;显式 `--execute` 才跑 live campaign,每轮留存独立证据。
24
- - 后端测试计划的模块清单格式统一到单一来源:8 列表头、分隔行、拆分原因与路径字段只有一套定义,生成的模板与读取方不再各按一套规则解析,避免提示词要求链接加路径而执行器只认单一形式。
25
-
26
- - 自然语言预约的对话轮次现在只开放类型化工作流动作与本地只读文件工具,移除 Bash、终端、浏览器和扩展 MCP 通道;预约准备不能再通过通用工具提前探测 HTTP 服务,下一轮恢复普通能力。
27
- - 后端测试计划要求模块清单紧跟 8 列分隔行,并拒绝重复路径、箭头或整条路径链接;pytest 生成端不再为执行次数、报告存在性等治理要求编造文件路径断言,改由运行事实统一验收。
28
- - 后端测试计划中的场景分区格式在计划节点提前校验并有界重试,避免到模块清单节点才中断;预约工具说明要求忠实保留用户目标,禁止自行增加失败用例、mock 或文件名约束。
29
- - 后端 pytest 生成与唯一集合修复现在要求把测试点信息写在主符号的首段说明里,避免把模块级注释误当成已修复的对应关系。
30
- - 对话预约 backend-test 时,验收命令禁止再次调用 pytest,确保标准 DAG 的唯一正式业务执行不会被验收阶段重复触发。
31
-
32
- - 修复后端用例审查已完成有界修改,却因模型漏报状态行而中断 DAG;保留空改动、阻断状态和越界写入校验。
33
-
34
- - 对话定时任务默认在当前项目目录准备和执行,取消强制创建 worktree 和重复初始化;执行改动直接保留在当前目录,继续校验已确认的干净 Git 基线与写入范围。
35
-
36
- - Console Chat 新增按需工具灰度模式:预约、执行与恢复工具常驻,其余按领域发现后启用;加载状态随会话和分支恢复,异常回退全量模式,默认保留全量以保护核心流程。 发现入口支持按用户意图选能力,预约请求优先保留未来执行语义。
37
- - 自然语言预约自动准备隔离工作区、任务和验收边界,不再要求用户提供内部ID;相同请求复用已有预约,失败保留原因,相对延时从准备完成起算。
38
- - 预约任务集中到「观测 → 定时任务」:支持状态筛选与执行/验收详情,对话只保留简洁确认卡和跳转入口。
39
-
40
- - Console Chat 支持确认后预约工作流:冻结执行时间、范围与预算,到点后台执行并回传原对话;保留失败报告和未知运行状态,取消不会抹除历史结果。
41
- - 前端实现工作台新增多轮冒烟认证:计划选用了运行环境无法验证的 Mock 策略时,会在节点内收到可修复诊断,而不是整轮卡在设计策略校验且无法恢复。
42
- - 修复前端验证在冻结命令为 bash 包装形态时无法生成测试执行报告的问题:报告输出改为注入命令行内部,行为验证目标重新可以通过追踪校验。
43
- - 契约声明的必需交付物改为「必须存在的文件」义务,不再并入需求的实现归属判定:上游契约把挂载文件登记为交付物时,计划不再陷入无论怎么修正文件归属都无法通过的归属死循环。
44
- - 所有权门禁只判定落在声明实现文件之外的文件归属;需求完全由交付物或测试文件覆盖时不再误报违规。
45
- - 实现阶段与计划技能移除已取消的「测试标题必须携带 VT 编号」强制与逐项自检:需求与验证目标的关联由契约承载,测试文件执行成功只记为文件级执行、行为覆盖保持未确认,不会自动宣称全部行为已覆盖。
46
-
47
- - 修复后端与前端工作流对同一 PRD 编号风格容忍度不一致:验收标准写成 `AC1`(不加连字符)时后端一次通过、前端却在 DAG 生成期硬失败;需求编号现统一规范为 `AC-1` 形式,非法写法的报错也会说明期望格式。
48
- - 前端实现不再对没有构建步骤的合法项目无意义失败:静态验证按序取项目真实拥有的检查,不再在交付正确、测试全过之后只因缺少 `npm run build` 报失败,也不会用空命令伪造验证;lint 继续不进入本工作流。
49
- - 修复契约重复提交同一需求导致前端 Plan 节点确定性失败的问题:覆盖率归属前会先对需求 id 做保序去重,不再整轮中断。
50
- - 修复前端 Mock 策略提示词自相矛盾(同时要求“只允许 not-needed”与“有项目证据可选安全策略”)导致 Plan 误选策略、被下游门禁拒绝后整轮失败;硬约束生效时不再输出那句许可性指令。
51
-
52
- - Operator Chat 新增对话驱动的真实浏览器自动化:右侧「浏览器」面板同步共享状态,登录态与下载隔离在仓库外;模型可操作同一浏览器完成导航、搜索、结构化快照、元素操作与截图,不读写仓库文件,也不暴露页面脚本执行。
53
- - 模型驱动的共享浏览器默认改为可见外部窗口,并保留右侧预览;地址、搜索与元素操作不再默认生成大截图,搜索逐字填写并提交真实表单,启动时降低自动化指纹;无法嵌入的页面提供外部打开与聚焦入口,同一持久配置可完成站点安全验证。
54
-
55
- - 修复前端实现因测试名称没有 VT 编号而反复失败:按测试命令与文件关联执行结果,保留已有测试名称及测试失败阻断。
56
-
57
- - 整理设置弹窗布局:当前工作区优先、待处理文件紧凑分组、详情按需展开,全局程序信息收拢;窄屏导航改为横向排列。
58
-
59
- - 工作区配置按实际能力提供更新按钮,逐文件说明待处理原因与下一步,并支持复制智能体处理说明;只剩合并或确认项时不再显示无效更新按钮。
60
-
61
- - 前端实现恢复已有测试维护与执行:优先任务声明,否则复用项目测试入口;没有测试时不强制补框架,避免只构建通过却遗漏旧单测回归。
62
-
63
- - `loop-agent init` 的 `.gitignore` 托管块在原有运行目录外新增忽略治理目录、`scripts/` 与 `harness.json`;`AGENTS.md`、`README.md` 仍在提交面,块外规则保留。
5
+ ### 新增
64
6
 
65
- - Pi 模式不再自动注入 `loop-agent init` 的治理内容:AGENTS.md 治理块剥离、用户手写内容保留,内置 29 个 skills 默认不自动注入,仍可 `/skills:<name>` 手动调用;显式开启后仍自动注入。
7
+ - 修复 main 分支的 next 发布链在类型检查阶段内存溢出失败的问题:完整源码与测试的类型图已超过 Node 默认约 2 GiB 堆上限,类型检查进程因此中止(exit 134),导致 `next` 发布无法完成。此前该上限只在部分验证入口生效,其余入口直接运行类型检查就会因默认堆不足而失败;现把上限固化到类型检查命令本身,各验证入口与本地开发统一生效,不再依赖各入口自行声明。
8
+ - 数据库连接支持断线自动重连:MySQL/PostgreSQL 空闲会话被服务端超时杀掉后,下一次查询会用同一配置透明重开连接并重试一次,不再需要手动重连或重启 Console;MySQL 适配器同时吸收服务端主动断开产生的异步错误,避免未处理错误事件影响进程。
66
9
 
67
- - 侧边栏补齐「当前所在」高亮:对齐 DSH 激活态但用 loop 暖纸配色,激活工作区不再透明,改为橙调浅底加左侧主题色标条,hover 时不被通用灰覆盖;当前会话行同步改为浅橙底加橙色标题。
10
+ - 修复 Operator Chat 冷启动卡在检查面板的问题:模型列表和 runtime-snapshot 改为读工作区目录,不再为了展示技能或系统提示去打开 Pi 历史 JSONL;发消息、切换模型、reload 仍会激活会话。会话栏也不再等 Pi 重开,工作区列表未返回前不再把侧栏滤空。
11
+ - 修复 Operator Chat 发送消息或重连刷新后会话历史偶发全部消失的问题:列表刷新现在保留上次成功结果,非 JSON、缺字段、错误版本和部分工作区失败不再被误判为空列表;并发刷新与新建/删除会话按最新权威结果收敛,只有经过校验的真实空列表才显示“暂无会话”。
68
12
 
69
- - 工具卡对 `ask_user_question`(模型向用户提问)的展示改为 DSH 风格的可读问答:折叠头显示 `N/M 已回答`(等待中显示「等待回答」),不再暴露原始 JSON;展开后按问答对逐条渲染,未回答显示「未回答」。
13
+ - 修复 Operator Chat 在工作区尚未选中时抢先请求仓库树和能力目录、浏览器 Network 出现 400 的问题;等 `workspaceId` 就绪后再请求,不再把启动竞态显示成功能异常。
70
14
 
71
- - 对话页用户消息气泡对齐 DSH 配色与排版:背景从冷灰改为 DSH 浅蓝,内边距收紧、圆角不变,移除多余的最小宽度约束,让两字回复气泡不再被撑宽,长内容换行更合理;消息堆叠间距同步对齐 DSH。
15
+ - 修复 Console 成功更新后历史接棒记录仍占用操作位、导致工作区初始化持续被拒绝的问题;通用「需要核对」提示现在引导先核实实际执行结果,不再误导为重新更新程序。
72
16
 
73
- - 对话页「过程折叠」的折叠行配色对齐 DSH:文字、箭头与分隔线统一改用 DSH 的灰阶,并移除 hover 变色(与 DSH 一致);间距与字阶保持不变。
17
+ - Console 更新前保留当前实例身份,修复重启断线后首次响应已来自新进程时仍等待超时、无法自动刷新的问题;关闭重开设置保留该身份,所有刷新等待分支均反馈超时。
18
+ - 修复观测页「执行历史」把仍在重试的节点误报为「最终失败」的问题:只要节点最后一个已记录的尝试失败,就会显示「N 次 · 最终失败」,即使该节点仍在运行、重试已经排队,会让人误判运行已结束。现在节点处于运行/已启动/暂停状态时改为「N 次 · 最近一次失败,仍在重试」,真正到达终态才显示「最终失败」;修复轮次的多轮标签同样处理。
74
19
 
75
- - 对齐 DSH 的消息时间线排序规则:两侧都带事件序号的条目按序号排序,其余按时间与稳定插入顺序,不再混用多套近似排序;历史合并、过程折叠、工具卡归属与断线重连的回放共用同一规则,跨回合时间轴不再乱序。
20
+ - 修复 Console「更新程序」被一条卡住的旧操作永久堵死的问题:停在「等待核对」的操作记录已被启动对账跳过、自身无法再推进,却又被当成「仍在运行」,导致之后每次更新都提示「另一个 Console 操作正在进行」。现将其明确归为已结束、不再占用操作位,并在恢复页保留可见;同时补全「已安装成功但接棒失败」记录的自动收敛,不再永久停留。
76
21
 
77
- - 工具卡的回合归属改为精确判定:按服务端回合与助手消息标识归属,不再依赖时间窗近似;兜底规则改为「下一组的首个锚点」,不再出现中间没有用户消息的分组把下一回合的工具吸到上一回合的问题。
22
+ - Console 操作文案改为面向操作者的说明并给出下一步:等待超时不再伪装成「需要核对」,改为提示操作可能仍在后台运行;「源内容已变更」「前端拆分状态被并发修改」等原本直接展示英文原文的错误,改为说明原因与具体处理步骤;恢复页按钮与提示去掉 reconcile / supersede / orphan / Human Gate 等术语。
78
23
 
79
- - 待发送的用户提示按时间戳插入历史时间线的正确位置,不再一律堆在最新回合之后;非「正在派发」的占位行不渲染,连续插入多个提示时顺序保持稳定。
24
+ - 修复后端测试 DAG 模板遗漏 `upstream-unavailable` 重试类别的问题:内置模板的 Markdown 计划节点缺少该类别,与运行时生成器不一致,导致照模板配置的项目少一类重试;现已补齐,并把模板漂移检查扩展到重试策略字段,避免同类不一致再次漏过。
80
25
 
81
- - 助手消息气泡的 ID 现在与服务器持久化 ID 对齐:消息落库后前端就地改用持久化 ID,不再出现「已确认消息」与流式气泡并存的孪生气泡,离线重连的文本回放同样对齐;历史数据缺少该 ID 时回退到文本加时间窗匹配。
26
+ - Operator Chat 右侧辅助栏改为三个表面:仓库、会话、工作台。点上下文环进入「会话 / 上下文」,文件和终端不再与会话检查挤在同一条标签上;工作台用内侧图标轨切换终端、浏览器和数据库。
82
27
 
83
- - 修复前端计划无法提交实现步骤的问题:现在支持按 AC 绑定实施动作,缺漏会在节点内返回修正,不再让空计划反复进入设计审查。
28
+ - Operator Chat 侧栏折叠后改为 56px 图标轨:可直接点新建会话、搜索、添加工作区和设置,不再留下空槽。
29
+ - Operator Chat 的 `@` 文件面板改为按当前目录一层浏览:空 `@` 不再倒出整库路径,点文件默认隐藏,Tab 进入目录、Enter 选定,插入仍是 `@path` 文本。文件行改为左对齐菜单,不再被全局按钮样式居中成胶囊;目录右侧常驻进入箭头,浮层圆角与投影贴近 DSH 菜单。
30
+ - Pi SDK 运行时依赖升级:`@earendil-works/pi-ai` 与 `@earendil-works/pi-coding-agent` 从精确 pin `0.83.0` 升到 `0.84.4`(顺带修复其携带的 `undici` 高危漏洞与 `brace-expansion` DoS 告警)。适配 0.84 破坏性变更:`getApiKeyAndHeaders` 返回的 headers 现可含 `null` 删除标记、`setRuntimeApiKey` 第三参改为认证取消选项;扩展加载 fixture 改为 ESM(pi-ai 子路径导出不再提供 CJS 条件)。SDK 契约探针文案、发布包契约测试与自举 canary 同步对齐 0.84.4。
84
31
 
85
- - 修复前端最终审查反复猜错范围 ID:明确 checkpoint 参数和补交步骤,收尾正确识别 checkpoint 之后的审批结论。
32
+ - 修复 Windows 上 pi 节点零提交失败的读写守卫误报:libuv 在 win32 的 `fstat` 返回卷序列号而 `lstat` 恒为 0,跨 API 比较必然失败并误报“文件在打开期间被替换”;现新建共享身份比较 helper,win32 跳过跨 API `dev` 比较但保留 `ino` 与其余全部防护,Console 仓库预览同类比较一并修复(用户 0.42.1/0.43.0 两次实测上报)。
33
+ - 修复研发工作流对 Git submodule 的误拦截:父仓库 `git status` 只能看到 submodule 目录级条目,子仓库内合法写入会被误判 `empty-diff`(脏基线)或越界(净基线),导致 verify/review/closeout 全部跳过;现在状态采集会展开到已初始化子仓库的文件级事实(含嵌套 submodule、中文/带引号路径解码、未初始化与采集失败时如实报错不吞证据),合法子仓库写入正常进入验证链,真实越界仍按文件精确拦截,无 submodule 仓库行为字节级不变。
86
34
 
87
- - 前端实现流程简化为需求实现覆盖审查与项目验证命令,不强制独立测试方案;已有测试仍需维护并执行,无测试项目不强制补框架,构建结果不冒充行为验证。
35
+ - Console 新增「暮色蓝」深色和「雾光白」浅色主题。主题选择会被记住,浏览器存储不可用时仍可在当前页面切换。
36
+ - Operator Chat 新增「上下文洞察」面板,可通过 `/context` 或详情栏「洞察」查看上下文构成、趋势、token、缓存、费用、耗时,以及剪枝和压缩记录。
37
+ - `/sdd-bingo` 会显示上报的 Skill 和 Session ID,并在轨迹中保留可复制的会话身份。
88
38
 
89
39
  ### 改进
90
40
 
91
- - Console 将全局「更新程序」与当前工作区初始化分开:添加或切换工作区后只读检查并提示,设置中展示仓库路径、初始化状态、待处理文件和操作进度;首次初始化显式选择可用模型,安全更新仅作用于当前仓库,冲突保留并提示处理。
92
-
93
- - Operator Chat 内置瞬态异常恢复:未执行 `loop-agent init` 的仓库也能识别网络波动与 502 等响应并交由 Pi 有界重试;重试参数按项目配置、用户全局配置、推荐默认值取值,认证、权限、配额错误仍直接失败。
94
-
95
- - Operator Chat 浏览器面板默认以完整权限运行(去掉沙箱与「临时解锁」状态条),本地回环地址上的开发服务器可直接在面板内浏览;地址栏仍只放行 http/https,危险协议继续拦截,拒绝嵌入站点的提示与出口保持不变。
96
-
97
- - 前端 Plan 普通分片按本批完整需求材料打包,固定提示词、用户消息和工具定义不再挤占 24 KB 分片目标,也不再触发发送前的机械二分,减少小需求逐 AC 会话;实际模型容量检查与超限恢复继续生效。
98
- - 前端 Plan 小任务合并规划不再受固定 48 KB 输入门槛限制,避免提示词、用户消息或工具定义变长导致额外分片;完整输入、其余任务规模条件及容量恢复机制保持不变。
99
- - 节点侧栏修复执行分次下拉菜单被执行记录工具栏遮挡的问题,直接展示所选失败尝试的简要原因,并移除重复的左右切换箭头。
100
- - Operator Chat 的 Pi Runtime 按职责拆出工具构造、运行态检视和 SDK 适配,并共用创建/恢复/分叉的会话准备流程;对外入口、错误类型和会话行为保持不变。
41
+ - Operator Chat 长会话新增完整轮次轨道与按需历史定位,可从任意用户消息精确新建会话;历史图片刷新后仍可预览,仓库文件链接可直接定位到行,最终回答显示单轮 token/耗时,并支持可持久化的紧凑/完整阅读模式。图片文件与消息记录分离保存,删除、分叉和失败回滚会同步清理,附件读取重新校验类型与引用。
42
+ - 本地分支合并默认只执行与影响面匹配的定向测试、类型检查、构建和治理检查;完整测试推迟到 push 或完整交付前,并通过 receipt、`verify:tree` 或 pre-push 在最终 tree 上只执行一次。发布与推送门禁仍包含 I/O-heavy 测试。
43
+ - Operator Chat 重新整理消息时间线:思考、工具、重试、命令和回答按实际顺序展示,工具调用不再被误标为“未识别事件”,未知事件只显示简短摘要。
44
+ - 用户发送消息后会立即看到“正在思考”。请求上下文、模型步骤和生命周期事件不再混入消息数量或干扰主要对话。
45
+ - 只有正常完成且存在最终回答的轮次才会自动折叠过程。停止、失败或只有部分回答时,已有内容仍保留在过程区。
46
+ - 主时间线、轨迹页和 HTML 导出采用相同的消息顺序与折叠结果,实时插入新事件时不再造成思考或工具行跳动。
47
+ - 断线重连会自动补回缺失消息,并避免把正常的历史回放误判为连接故障。
48
+ - 移除工作区只会将其会话从侧栏和搜索中隐藏,不会删除目录或运行记录;重新添加同一路径即可恢复原有会话。
101
49
 
102
50
  ### 修复
103
51
 
104
- - 对话页修复用户消息在流式回复中漏显示或重复分组、加载历史后的滚动跳动,以及删除会话后旧请求恢复条目的问题;移除工作区后隐藏非选中的空白会话,并正确恢复删除失败的列表状态。
105
- - 修复 Operator Chat 的跨会话输入污染与快速重复提交:切换会话立即撤销旧会话发送权,草稿、附件与输入历史按会话独立保存,迟到结果只回写原会话;相同内容的快速双击只产生一次请求,中文输入法更稳定,光标不再跑到用户消息上方。
106
-
107
- - 前端设计审查的写入门禁只统计已提交的审批终态,避免审查范围、发现记录导致合法审批被误判为缺失或歧义;要求修改时保留具体审查意见,缺失、重复及冲突终态仍阻断写入。
52
+ - 修复 macOS/Linux 开发路径在 Windows 暴露的三类兼容问题:前端组合验证夹具不再依赖 POSIX 单引号;无 `.gitmodules` 的仓库不再把 Git 空结果误判为启动失败;定时任务用 Git 规范化内容生成稳定树指纹,CRLF checkout 不再造成虚假 evidence drift。托管任务路径与嵌套 submodule 测试也统一使用跨平台路径语义。
53
+ - 切换会话后,旧会话尚未确认的输入不会再出现在新会话中。
54
+ - 修复 Windows 上 Pi 节点在没有提交改动时误报“文件在打开期间被替换”的问题,同时保留原有文件安全检查。
55
+ - 工作流现在能识别 Git submodule 内的实际文件变化。合法写入可继续验证,真实越界仍会按文件拦截。
108
56
 
109
- ## [0.42.1] - 2026-09-09
57
+ ## [0.43.0] - 2026-09-14
110
58
 
111
59
  ### 新增
112
60
 
113
- - Pi 模式支持 `/goal` 持续目标:斜杠面板可见 `/goal`,会话内可管理目标,带进度条与编辑面板,创建/暂停/恢复/清除接口不再被拒;仅显式 `/goal` 才自主续跑,有轮次上限,暂停/重载/出错即停,压缩后仍可用。
114
-
115
- - Console 右侧栏新增「浏览器」tab:地址栏自动补 https、过滤危险地址,支持前进/后退/刷新与跳系统浏览器;页面在沙箱中打开、拿不到 Console 数据,可临时解锁;拒绝嵌入的站点给出「在系统浏览器打开 / 仍要加载」出口。
116
- - Operator Chat 新增源代码管理:模型可直接跑 git 状态查看、diff、暂存/取消暂存、放弃更改、提交、日志、分支与推拉;右侧栏新增「源码」面板,支持分支切换、分组暂存、提交框、分页历史、看 diff 与右键放弃更改。
117
- - Operator Chat 在具备 Aimax 凭据资格时,向对话进程注入 `$AIMAX_AUTH_TOKEN`(明文或 `sm4:v1:` 解密后的 ticket),供 skills 读取;文件缺失、无法解析或解密失败时不注入该变量。
118
- - Operator Chat 新增终端管理:模型获得 `terminal` 持久终端工具,可按平台创建 powershell/bash/cmd,会话状态跨调用保留;右侧辅助栏新增「终端」面板,可查看、接管模型 shell 并直接输入或中断。
119
- - Windows 终端补全:仅 Windows 有 `cmd` shell,使用经典 `C:\path>` 提示符、黑底浅灰配色,补回 `Microsoft Windows [版本 …]` 横幅;bash 与 PowerShell 输出不变。
120
- - Operator Chat 详情栏调整:「源码」tab 紧邻「文件」tab,便于在文件预览与源码管理之间快速切换。
61
+ - `dag doctor` 正式支持 `--json`,并在同时传入时优先于 `--markdown`;默认输出保持不变。
62
+ - 新增统一的 `dogfood:backend` 入口。默认只检查控制器身份和发布信息,显式传入 `--execute` 才会运行真实任务。
63
+ - Operator Chat 支持确认后预约工作流,并在「观测 → 定时任务」集中展示状态、执行记录和验收结果。
64
+ - 预约会冻结执行时间、范围与预算,到点后在后台执行并把结果回传原对话。取消或失败不会删除历史记录。
65
+ - 新增按需工具模式:预约、执行和恢复工具常驻,其余能力按用户意图启用;发生异常时会恢复完整工具集。
66
+ - Operator Chat 新增共享浏览器自动化,可由模型完成导航、搜索、元素操作和截图,并在右侧「浏览器」面板同步显示;浏览器不会读写仓库文件或执行页面脚本。
67
+ - 共享浏览器默认使用可见外部窗口并保留右侧预览。登录态和下载保存在仓库外,危险协议仍会被拦截。
68
+ - 工作区设置会区分程序更新与当前仓库初始化,并逐项说明待处理文件、原因和下一步操作。
69
+ - `loop-agent init` 生成的 `.gitignore` 托管块新增治理目录、`scripts/` 和 `harness.json`,仍保留 `AGENTS.md` 与 `README.md`。
121
70
 
122
71
  ### 改进
123
72
 
124
- - 上游网关不可达(502/503、Service temporarily unavailable、Bad Gateway)现在归类为上游不可用并默认重试,不再被误判成模型能力不匹配而放弃重试。
125
-
126
- - 前端验证与审查按每条命令的退出结果打通:验证节点会记录每个命令的退出状态,评审直接读这些结果判断是否成功,不再从运行轨迹里推断;任务未声明 lint 时统一标记为不可用,不再自造取值。
127
- - 前端恢复运行不再丢运行级产物:节点在自身目录之外写出的文件(如基线记录)会随继承一起搬到子运行,修复恢复时因产物缺失而必然失败的问题。
128
- - 前端计划收尾的前置检查现在要求**每个**冻结的静态命令都被验证目标覆盖(此前只需覆盖其中一个),类型检查缺口因此在计划阶段就能被自动修复;恢复收尾判断计划是否变化时改用**决策身份**,只改文案或引用不再算作修复。
129
- - 失败原因判定不再被模型正文干扰:认证、限流、配额与网络类判定只看进程错误输出,模型回复与工具参数不再参与,避免自产文本把可重试失败误判为不可重试;设计/评审类节点已给出终态但没写收尾文本时直接判成功,不再空转一次重试。
130
- - 修复 Console 中同时新建任务与导入需求文档时因「任务已存在」报错导致流程卡死;前端运行的 `dag rerun --from-node` 不再因只读产物节点被误判为不安全而始终不可用(硬预算模板仍不支持重跑)。
73
+ - 自然语言预约只开放工作流动作和本地只读文件能力,不会在准备阶段使用终端、浏览器或扩展工具提前执行任务。
74
+ - 后端测试计划统一模块清单格式,并在计划阶段检查场景分区、重复路径和非法链接,格式问题可提前修正。
75
+ - 后端测试计划不会再为执行次数或报告存在性编造文件断言,也不会在验收阶段重复运行 pytest。
76
+ - 前端实现会沿用项目现有测试入口。没有测试框架时不会强制引入,新旧测试一旦存在仍必须执行。
77
+ - 前端工作流不再要求测试标题携带 VT 编号,需求与验证目标的关系由契约记录。
78
+ - 没有构建脚本的合法项目可以使用实际存在的检查完成验证,不会因缺少 `npm run build` 被误判失败;lint 仍不属于该工作流。
79
+ - `AC1` 等验收编号会统一规范为 `AC-1`,非法格式的错误信息会直接说明预期写法。
80
+ - 计划声明的必需交付物只检查文件是否存在;需求由交付物或测试覆盖时不再误报范围违规,真正超出声明范围的写入仍会被拦截。
81
+ - 前端计划会合并重复需求编号,并修正 Mock 策略提示中的冲突约束,减少无法自行恢复的计划失败。
82
+ - 大小任务都按实际模型容量组织计划材料,减少因固定字节门槛造成的不必要分片。
83
+ - Operator Chat 可在未执行 `loop-agent init` 的仓库中重试网络波动和 502 等瞬态故障;认证、权限和配额错误仍会立即返回。
84
+ - 设置弹窗优先展示当前工作区,窄屏导航改为横向排列,只剩合并或确认事项时不再显示无效更新按钮。
85
+ - 侧边栏会清楚标出当前工作区和会话,使用浅色主题标记且不会被悬停样式覆盖。
86
+ - `ask_user_question` 工具卡改为可读的问答视图,显示回答进度,不再直接暴露 JSON。
87
+ - 用户消息、过程折叠和工具卡的配色、间距与排序规则统一,对话在刷新和重连后仍保持原有顺序。
88
+ - 待发送消息会插入正确的历史位置。服务端确认后会就地替换临时消息,不再出现重复气泡。
89
+ - Operator Chat 浏览器面板可直接访问本地开发服务,危险协议和无法嵌入页面的安全出口保持不变。
90
+ - 节点侧栏会直接显示失败尝试的简要原因,下拉菜单不再被工具栏遮挡。
131
91
 
132
- - 前端恢复不再从评审自由文本里猜测文件删除、状态和验证目标约束,避免把保留项、否定描述或错误现状当作修复要求;语义是否闭合仍由设计评审裁决。显式验证目标断言必须包含目标覆盖,不能以任意变化代替修复。
92
+ ### 修复
133
93
 
134
- - 前端计划精简改由运行时收尾:合并没有决策的全局会话,统一风险与形态信号,按接口/资源域合并 Mock 与数据批次,移除没有消费者的影子观察器与旧评审/准入对照链;新增计划指标读取与对照旁路,但在真实同输入对比数据齐备前不切换生产计划规则。
94
+ - 后端用例审查完成修改后,即使模型漏写状态行也可以正常结束;空改动、越界写入和阻断状态仍会被拒绝。
95
+ - 前端验证可在 Bash 包装命令中正确生成测试报告,已完成的行为验证不再因报告缺失而失败。
96
+ - 修复前端计划无法提交实施步骤、最终审查猜错范围,以及重复需求导致计划阶段中断的问题。
97
+ - 修复前端 Mock 策略、测试名称和构建要求相互冲突时造成的反复失败。
98
+ - 修复 Operator Chat 中用户消息漏显示、重复分组、历史加载后滚动跳动,以及删除会话后旧请求重新出现的问题。
99
+ - 修复跨会话输入污染和快速重复提交:草稿、附件与输入历史按会话隔离,相同内容的连续双击只会发送一次。
100
+ - 前端设计审查只依据已提交的最终结论决定是否允许写入,具体修改意见仍会完整保留。
135
101
 
136
- - 修复前端设计评审与实施评审遗漏 `complete_review_scope` 工具权限,导致模型无法完成分段确认、最终评审反复被拒绝的问题;补充真实 Pi SDK 工具激活与分段收口回归验证。
102
+ ### 破坏性变更
137
103
 
138
- - 对话正文与 Human Gate、任务活动和产物卡片统一绑定会话所属工作区;修正旧式任务/运行链接,只有操作编号时查询真实记录再定位,工作区冲突或记录缺失时明确提示,避免误入其他工作区或总览。
104
+ - 定时任务默认改为在当前项目目录执行,不再自动创建 worktree 或重复初始化;执行前仍会检查干净的 Git 基线和写入范围。
105
+ - Pi 模式默认不再注入初始化治理内容和内置 Skills;可通过 `/skills:<name>` 手动调用,也可以显式重新开启自动注入。
139
106
 
140
- - 节点侧栏在首次原始运行中隐藏「来源与影响」,派生运行保留该入口;打开运行中节点默认定位到「执行记录」,手动选择和明确的链接位置在刷新时保持。
107
+ ## [0.42.1] - 2026-09-09
141
108
 
142
- - 修复前端契约可选字段未填写时,评审分片索引引用不存在字段、导致设计评审启动前失败的问题。分片生成会跳过未填写字段;读取端明确拒绝缺失字段、无效引用、重复或非法范围及未索引内容,保留合法空数组和 JSON 空值。
109
+ ### 新增
143
110
 
144
- - Operator Chat 侧栏「添加工作区」图标改为与 DSH 一致的文件夹加号,不再用纯加号。
145
- - Operator Chat 侧栏改为单一「新会话」;空白会话在输入框上方用芯片选择工作区和模式(工作流 / Pi),有历史后芯片收起。不再用落地页双卡或「新 Pi」按钮;换模式会复用或新建对应空白会话,不会改已有会话的模式。
146
- - 修复模型续跑取消后带部分文字仍被标记成功的问题;前端 Plan 的取消、认证、限流及策略失败优先于容量恢复,精确格式错误保留原修复路径。完整性检查按需求建立单次索引,减少大计划重复扫描,同时拆分纯检查与恢复策略模块。
147
- - 长会话中的输入框不再因历史消息和工具记录增多而逐键重绘整段会话,输入与自动增高在低性能电脑上更流畅。
148
- - 优化 Operator Chat 长会话的流式渲染:流式文本更新不再重复渲染整段历史,输入框测量也不会反复重建;缓存只在历史消息或工具真的变化时失效,没有新增折叠回合时不再写入空状态和重复存本地;工具参数与结果的格式化按实际输入变化缓存。
149
- - 对话页「过程折叠」调整:回复完成即折叠,不再先展开再跳动;间距统一,Ctrl+F 可命中折叠内容并自动展开;箭头改为更淡的固定图标并支持系统「减少动态效果」;汇总新增「N 个 subagent」,内置 Explore 子代理不计入工具调用。
150
- - 恢复前端 Plan 实时事实分页读取、逐需求 UX 遗漏检查与已完成范围复用;超限时补齐剩余验证目标,并接通 DAG 到 SDK 的原会话续跑。局部状态修改保留其他需求的关联,沿用耐久账本、显式替换和冻结分片边界。
111
+ - Pi 模式支持 `/goal` 持续目标,可在会话中创建、编辑、暂停、恢复和清除。只有显式启动的目标会自动续跑,并受轮次上限约束。
112
+ - Console 右侧栏新增「浏览器」,支持地址输入、前进、后退、刷新和跳转系统浏览器;页面默认在无法访问 Console 数据的沙箱中打开,也可以临时解锁,危险地址仍会被拦截。
113
+ - Operator Chat 新增源码管理,可查看状态和差异、暂存或撤销暂存、放弃更改、提交、切换分支以及推拉代码。
114
+ - Operator Chat 新增持久终端,可在右侧「终端」面板查看、接管、中断并继续模型使用的 shell。
115
+ - Windows 用户可选择 PowerShell、Bash 或 CMD,CMD 会显示熟悉的提示符和启动信息。
116
+ - 具备 Aimax 凭据时,Operator Chat 中的 Skills 可以直接使用对应认证;凭据无效时不会注入错误信息。
151
117
 
152
- - Pi 节点遇到模型输出因长度截断时,先在原会话内最多续跑 3 次,保留已完成的写入和事实,成功恢复不消耗额外节点重试次数;续跑共用原超时与上下文预算,已提交终态时不重复续跑,耗尽后才走原有缩片或重试。
153
- - 修复前端设计评审成功后可能清空原计划记录的问题,撤回未接通合同校验与落盘的修订工具;同时移除误加在实施后评审的修订指令。评审节点内局部修订尚未实现,设计缺陷仍走原有拒绝与恢复流程。
154
- - 前端 Plan 输出超限后按已提交事实续跑:带部分结果或网关诊断也会保留进度,自动缩小剩余需求;单个过大需求进一步按缺失事实逐项恢复,并在恢复耗尽时输出剩余范围。
155
- - 大需求的前端计划新增可分页的实时事实读取,保留长标识与跨批验收绑定;体验检查限定在需求内,重试复用完整批次与全局命名表并逐需求检查遗漏。冻结交付文件超出单次写入容量时会在契约后提前识别拆分需求;自动子任务链路尚未接通,不代表自动拆分已可用。
118
+ ### 改进
156
119
 
157
- - 前端 DAG 修正否定约束导致的小任务误升级;计划分片前统一判断精简与否并保留完整执行组;冻结阶段的覆盖并发上限可配置(1–4,默认 4),限流后减少后续并发且不加重试;自动恢复子进程与 DAG 共用长跑超时,不再继承通用 120 秒上限。
158
- - 前端 DAG 保留完整需求、按作用域/执行组分批,提交先校验保存再回执;支持按组共享覆盖、逐端点/逐 finding 提交和缺项恢复。小任务走短流程,容量耗尽即缩小工作,模型窗口不再固定为 100K/16K;独立验收与写入/验证门禁有效。
159
- - 观测台阅读与口径修补:失败节点产出页把「错误输出」提到正文之前,检查器 Tab 条放不下时两端渐隐并保证选中项可见;异常任务分类改用中文业务术语,资源池「合计」改为「已建 Task」,数据更新文案改为「数据更新于 … · 仅提示」。
160
- - 检查器保留 Tab 导航,日志分类收进下拉框;执行记录区域统一加上「回到底部」按钮,离开底部时出现、点击即回到底部;活跃运行同时恢复跟随并提示未读条数,终态运行同样可用,分次阅读位置会被记住,并补充日志搜索、错误过滤与完整脱敏文本下载。
161
- - 实际上下文改为中文材料目录优先、技术信息折叠;修复历史轮次混读当前上下文和旧请求覆盖新尝试的问题。保留仅看错误与原始协议事件,原始协议使用直接可达的图标开关,移除单项更多菜单和日志 HTML 导出;交接包明确固定来源并支持刷新。
162
- - 检查器隐藏无内容或明确不适用的入口:单次执行不显示尝试对比,Shell/静态节点不显示实际上下文,静态节点不显示执行记录;切换节点与新增尝试时自动更新,保留用户当前的比较选择。
163
- - 资源池筛选覆盖任务标题和全部任务区域,返回列表及历史分页保留阅读状态;重跑草稿和影响预览可恢复,结果不确定时原样重试已确认的请求,避免重复创建运行。
164
- - 执行记录默认跟随最新内容;上翻自动暂停并出现对话式「回到底部」按钮,点击回到底部;历史记录保留阅读位置,终态运行同样可用。
165
- - DAG 节点检查器仅对最新且仍运行的执行默认跟随;右下角显示阅读状态、新记录提示和“回到最新”,上翻即暂停。
120
+ - 502、503、Bad Gateway 等网关故障会按上游暂时不可用处理并自动重试,不再误判为模型不兼容。
121
+ - 前端验证会按每条命令的真实退出结果判断成功与否,未声明的 lint 不会被虚构为已执行。
122
+ - 恢复运行会保留节点写入自身目录外的运行产物,避免因基线或报告丢失而必然失败。
123
+ - 前端计划会在执行前检查所有静态验证是否都有对应目标,遗漏项可在计划阶段修正。
124
+ - 认证、限流、配额和网络错误只依据实际进程错误判断,不会再被模型正文或工具参数误导。
125
+ - 同时新建任务并导入需求文档时,不会再因“任务已存在”卡住流程。
126
+ - `dag rerun --from-node` 可用于符合安全条件的前端运行,硬预算模板仍不支持这种重跑。
127
+ - 对话内容、人工确认、任务活动和产物卡片会绑定到所属工作区,旧链接也会先定位真实记录,避免误入其他工作区。
128
+ - 侧边栏统一为一个「新会话」入口。空白会话可选择工作区和模式,有历史后选择器自动收起。
129
+ - 取消后的部分回复不会再被标记为成功,认证、限流和策略失败也不会被容量恢复逻辑掩盖。
130
+ - 长会话的输入、流式回答和工具卡更新更流畅,不会因历史内容增多而反复重绘整段对话。
131
+ - 完成的回复会直接折叠过程,Ctrl+F 命中折叠内容时会自动展开,并支持系统“减少动态效果”设置。
132
+ - Pi 节点遇到输出截断时会在原会话内最多续跑 3 次,保留已完成内容;仍未完成时再按原策略重试。
133
+ - 大型前端计划会保留已提交结果并只补齐缺失部分,减少超限后从头开始的情况。
134
+ - 前端冻结阶段的覆盖并发上限可设为 1–4,默认 4;限流后会降低后续并发。
135
+ - 观测台会优先展示失败原因,日志支持搜索、错误筛选、下载和“回到底部”,并记住各次执行的阅读位置。
136
+ - 检查器会隐藏没有内容或不适用的入口,任务筛选和历史分页也会保留当前阅读状态。
166
137
 
167
138
  ### 修复
168
139
 
169
- - 悬停或打开会话「更多」菜单时,Pi / 工作流徽章与相对时间一并让出,避免被三个点按钮盖住。
170
- - 修复点「新 Pi」后一发消息侧栏就变成「工作流」:全局会话列表和点进会话时漏了会话模式,缺省被当成工作流。
171
- - 修复手动压缩上下文后,长会话会清空并重复绘制大量历史内容的问题;压缩结果现在会直接在当前消息流中更新,不再触发整段会话重载。
172
- - 修复对话页存在运行活动时,收起状态的右侧辅助栏展开按钮覆盖「运行活动 N」及数字徽标的问题;中大尺寸布局现在保留 8px 操作间距,窄屏布局不变。
173
- - 修复 Operator Chat 消息流的六处实际使用问题:
174
- - **回复被吞**:断线重连后,已经生成的正文会在连接恢复时重新补回到对应回合,不再被静默丢弃;仅当该回合已有更新内容时才跳过,避免重复气泡。
175
- - **用户输入消失或重复**:新消息发送后会持续显示,不再等回复结束才重新出现;服务端确认后,排队抢占、被拒绝或连接失败的回滚不再删掉已确认的消息;确认到达时会原地合并临时消息与会话内容,不再重复显示同一条输入。
176
- - **回复重复**:上下文溢出自动压缩并重新生成后,被打断的旧回复会被取代,不再与重新生成的回复同时显示。
177
- - **只有思考没有正文**:模型回复以工具调用或思考结尾时,正文会作为回答显示,不再被折叠进「过程」区。
178
- - **空气泡误删**:只包含思考或工具内容、正文为空的回合不再被清理掉。
179
- - **停止语义**:被停止中断的工具调用显示「已停止」,不再显示为「出错」并强制展开、计入「N 次出错」。
180
-
181
- - 任务成功与收尾只认可匹配当前契约版本与哈希的运行;更新需求后会重新审查门禁,旧成功记录不再阻止新运行。需求独立审核接受无修订并保留拒绝结论与身份校验;相同角色、相同内容的 PRD 重复导入会复用已有引用,不再增加副本或无故推进契约版本。
140
+ - 修复侧栏菜单遮挡 Pi、工作流徽章和相对时间的问题。
141
+ - 修复新建 Pi 会话发送消息后被错误显示为工作流的问题。
142
+ - 手动压缩上下文后会直接更新当前消息流,不再清空并重绘整段历史。
143
+ - 修复右侧栏展开按钮遮挡“运行活动”提示的问题。
144
+ - Operator Chat 在重连后会补回已生成的回答,用户输入和重新生成的回答也不会重复显示。
145
+ - 以工具调用或思考结束的回复仍会保留可见正文,只包含过程内容的轮次也不会被误删。
146
+ - 用户停止的工具调用会显示“已停止”,不会被误计为错误。
147
+ - 更新需求后只认可匹配当前契约的运行结果,旧成功记录不会阻止重新执行。
148
+ - 前端重试会沿用首次确定的需求范围,不会重复处理已完成内容;计划损坏或范围变化时会保留证据并停止执行。
149
+ - 恢复运行会检查工作区变化是否影响已复用节点,无法确认安全时仍会阻断。
150
+ - 子目录中的 Vitest 结果会统一转换为仓库相对路径,已通过的测试不再被误判为未执行。
182
151
 
183
- - 前端 Plan 重试复用首次冻结的分片归属,避免重试提示词变长导致进度绑定不匹配或重复处理已完成需求;布局缺失、损坏或漂移时保留证据并阻断派发。风险路由仅忽略完整的范围排除声明,条件句和嵌套否定中的真实权限风险在生成期与运行期均保持升级。
184
- - 执行记录搜索直接高亮命中文字,标识当前跳转记录;未搜索或无匹配时禁用上下箭头,清空搜索恢复原文。
152
+ ### 已知限制
185
153
 
186
- - 恢复运行在导入节点缺少明确读取范围时阻断工作区漂移,避免复用受变更影响的旧结果;读取范围明确且不受影响时仍可按路径复用。
187
- - 前端验证将子目录执行的 Vitest 报告统一为仓库相对路径,并对齐实际目录别名,避免已通过测试被误判为未执行;被筛除或失败的目标仍阻断。
154
+ - 前端设计审查仍不能在审查节点内直接修改计划;发现设计问题时会沿用拒绝并恢复的流程。
155
+ - 大需求可以提前识别需要拆分的交付范围,但自动创建子任务的链路尚未开放。
188
156
 
189
157
  ## [0.42.0] - 2026-09-07
190
158
 
191
159
  ### 重点更新
192
160
 
193
- - **Operator Chat 内置只读 Explore 子 Agent**:主会话可通过 `Agent` 工具委派代码库搜索、符号查找与调用链追踪;子会话只使用 `find`/`ls`/git 等只读工具,父回合停止时一并中止。
194
- - **前端实现 DAG 稳定性集中修复**:修复规划会话提前停止导致会话数翻倍、重试修复指引被通用话术遮蔽、分片重复发明同一批需求、设计被拒后恢复子流程无法启动、自动恢复误重跑整棵 DAG 等问题;默认重试额度从 3 次提升到 5 次。
195
- - **前端验证契约 v2**:计划改为引用冻结的命令目录,非法组合(如 `component` 配 `npm run build`)在提交时即被拒绝;验证命令需要的配置文件自动纳入可写范围,不再拦住实现;同一命令在多个验证环节复用结果。
196
- - **backend-test 判定链修复**:被截断或缺少必需结构的执行计划不再被误判为完成,而是归类为可重试的输出问题;模块身份改为按唯一合法路径判定,展示用名称不再影响结果;单次测试收集修复缺少结果声明时不再阻断整条执行链。
197
- - **契约幂等与 DAG 恢复强化**:内容相同的重复契约提交不再走完整流程,版本号与已批准的审查保持不变(8.6 小时流水线里 7 次修订只有 3 个不同内容);工作区改动全部落在重跑范围内时不再阻断恢复;被取代的运行可作为续跑来源。
198
- - **工具入参预览放宽**:工具入参预览从 1200 字放宽到 4000 字(与会话结果落盘上限对齐),详情栏支持「展开全部」(可视高度最多 720px),Explore 等长 brief 不再被预览截断误导。
161
+ - Operator Chat 新增只读 Explore 子 Agent,可委派代码搜索、符号查找和调用链分析;主回合停止时,子任务也会停止。
162
+ - 前端实现工作流增强了规划、重试和恢复能力,默认重试次数从 3 次提高到 5 次。
163
+ - 前端验证会使用计划中确认的实际命令,非法组合会提前报错,验证所需配置文件也会自动纳入允许范围。
164
+ - 后端测试计划在输出截断、结构缺失或模块路径不一致时会给出可重试诊断,不再把不完整计划误判为完成。
165
+ - 重复提交相同契约会直接复用当前版本和已批准结果,不再重复执行完整审批流程。
166
+ - 工具参数预览上限提高到 4000 字,并支持展开查看,长任务说明不再因截断产生误解。
199
167
 
200
168
  ### 改进
201
169
 
170
+ - DAG 退出诊断不会再影响其他并发任务,退出码会反映真实结果。
171
+ - `dag rerun --from-node` 会在工作区变化全部属于重跑范围时继续执行,其余输入漂移仍会被阻断。
172
+ - 被取代的运行可以作为局部重跑来源,已完成的只读步骤可直接复用。
173
+ - 前端计划会保留已完成需求并补齐剩余范围,输出截断会按可重试问题处理。
174
+ - 中高复杂度前端任务可以并行收集信息并按稳定顺序合并结果,缩短规划等待时间。
175
+ - 相同的验证命令会在一次执行中复用结果,避免静态检查、行为测试和 Mock 验证重复启动。
176
+ - 局部修改同时涉及 `src/`、`test/`、`e2e/` 或 `docs/` 时,不再被误判为跨包大改。
177
+ - 前端计划会提前检查交付文件、界面名称和行为验证目标的引用关系,具体缺失项可在提交时修正。
178
+ - 顶部「观测」入口始终返回当前工作区总览,不会被上次打开的运行劫持。
179
+ - 节点检查器中的问号支持鼠标悬停和键盘聚焦,并显示对应字段说明。
180
+ - 发布测试更加稳定,断言通过后不会再因测试进程通讯超时阻断发包。
181
+ - `npm:pi-lens@3.8.72` 这类带版本号的扩展声明可以被正确识别。
182
+ - 新建、删除和切换会话会立即反馈,历史会话支持分页加载并保留滚动位置。
183
+ - 文件预览支持页面内交互和独立窗口阅读,大型 HTML 文件也可以完整打开。
184
+ - 模型配置更新后,旧会话下一轮会自动使用最新认证信息。
185
+ - 执行记录默认跟随最新内容,用户上翻后会暂停,并可随时回到底部。
202
186
 
187
+ ### 修复
203
188
 
204
- - DAG 退出诊断不再影响其他并发任务的运行与取证,退出码按实际退出结果给出。
205
- - 前端重试修正不再因分片前缀不同而无法覆盖此前的结论。
206
- - 强化 DAG 恢复与契约幂等:重跑不会复用已漂移的输入、缺失或未完成的节点,仅在改动可完整判定时放行局部重跑;被截断的传输错误可正确重试;内容相同的重复契约提交直接返回当前版本,携带新内容的重复请求仍会被拒绝。
207
- - 修复契约重复提交造成的空转:内容一致时直接返回当前版本,不再重复走完整提交与审批;实测一次 8.6 小时的流水线里 7 次修订只有 3 个不同内容;磁盘内容与记录不一致时仍会修复。
208
- - 修复工作区改动会一刀切阻断 `dag rerun --from-node` 的问题:改动全部落在重跑范围内时放行,其余情况(复用节点的输入漂移、无法判定路径的旧检查点)仍严格阻断。
209
- - 被取代的运行(superseded)现在可以作为 `dag rerun --from-node` 的续跑来源:已完成的只读上游节点直接继承,不再因父运行被取代就整棵重跑;写者进入重跑范围、决策门禁、未解决的错误等场景仍照旧阻断。
210
- - 修复前端规划会话提前停止导致会话数翻倍的问题:现在每个需求都要有已提交的覆盖结论才算完成,提前停止会把剩余项留作补齐项,而不是另开一个会话。
211
- - 修复前端规划重试时修复指引被通用话术遮蔽的问题:后续重试会优先给出针对性的修复动作,并明确重复回执表示可以修正、替换会整体覆盖同一条结论;跨切片引用已提交结论时当场回填,双向引用在提交时即闭合。
212
- - 修复模型输出被截断时被误判为「无输出」失败的问题:截断现在归类为可重试的输出超限;已有精确修复指引的类别保持不变;默认重试额度从 3 次提升到 5 次。
213
- - 前端调研与规划在中高复杂度任务中并行收集信息、分批映射需求后按固定顺序归并,保持原有阶段依赖与确定性结果,同时缩短等待时间。
214
- - 前端验证在同一次执行中按工作目录和冻结命令去重,静态、行为、Mock、lint 等环节复用相同命令结果,避免重复启动耗时的检查进程。
215
- - 小规模前端改动不再把 `test/`、`e2e/`、`docs/` 这类验证或文档目录误判为跨包改动;`src/**` 加 `test/**` 的局部改动可以走轻量流程,真正跨包仍会升级。
216
- - 修复前端规划漏读独立行为证据、重试丢失已重新录入的界面名称的问题;必须交付的文件改由契约显式声明并绑定来源,避免把允许修改或仅作参考的路径误判为交付义务;缺失交付物与界面名称冲突现在能在提交前发现并修正。
217
- - 修复前端规划分片时重复发明同一批需求、交互和界面状态的问题:需求文本与来源由运行时从冻结记录写入,规划先基于全部需求提交一次全局界面清单,再在一个会话里统一建模组件、状态与交互。
218
- - 修复顶部一级「观测」入口被恢复工作区残留的 DAG 或上次观测对象劫持的问题:现在点击该入口始终回到当前 Workspace 的运行总览,具体 DAG 仍通过「全屏观测」等显式入口打开。
219
- - 修复节点检查器通俗字段旁的问号只有图标、悬浮时看不到具体说明的问题;问号现在支持鼠标悬浮和键盘聚焦,并显示对应字段含义及原技术字段。
220
- - Next 发布测试升级到 Vitest 4.1.11,避免断言全部通过后仍因通讯超时阻断发包;会改写构建产物的测试被隔离,并恢复两条此前未真正执行的 Console 更新回归;发布门禁继续严格检查未处理错误。
221
- - 前端计划契约新增确定性校验:行为验证目标必须引用至少一个需求,声明了界面状态或交互时必须引用已声明的界面状态(纯逻辑契约豁免);不符合时在提交阶段当场报出具体字段错误,不再等到评审阶段才发现缺失。
222
- - 修复前端设计被拒后自动恢复子流程无法启动的问题:恢复时会写入正确的拓扑绑定并继承父流程已完成的结论,不再在首个检查点整体跳过;同时修复恢复流程标识可能误传、与已归档运行同名的问题。
223
- - 修复后端测试把被截断的计划误判为完成、问题延迟到后续模块校验才暴露的情况:长度截断与缺少必需结构分别归类为对应的输出问题并自动重试,重试只携带系统生成的限长诊断;模块归属、路径与数量门禁不放宽。
224
- - 可选依赖 `@agent-context/sift` 从 `0.0.1-alpha.6` 升级到 `0.0.1-alpha.7`:新增按行取回能力,可直接换算出所需行号;文本压缩更保守,编号或状态不同的内容不会因句式相似合并;回退开关不变。
225
- - 修复后端实现流程无法识别带版本号的扩展声明的问题:`npm:pi-lens@3.8.72` 这类写法此前解析不出包名,多个环节会把相关扩展静默当作未安装,现在可以正确匹配。
226
- - 修复前端自动恢复误重跑整棵 DAG、忽略已冻结恢复计划的问题:恢复现在校验操作归属,只执行重置范围并导入已完成结论;缺少结构化发现时停在原地;崩溃重放复用已完成的子流程;缺少绑定关系的伪成功操作不再标记为已恢复。
227
- - 修复冻结验证命令引用的基建文件(如 `--config` 指定的 vitest 配置)不在写入许可内、导致实现被权限拦住无法完成的问题:这些文件现在会自动纳入生效范围,仍受既有路径限制约束。
228
- - 前端验证契约 v2:计划改为引用冻结命令目录而非手写验证类型,非法组合(如 `component` 配 `npm run build`)在提交与物化阶段即被拒绝,不再拖到实现阶段才以格式错误失败;展示用字段不参与控制流。
229
- - 修复 `/inspect/*` 静态资源缺少缓存控制的问题:现在与 Console 页面一样不使用缓存。此前浏览器会继续使用旧版导航模块,表现为顶部导航缺少对话入口。
230
- - 新建、删除和切换对话的反馈更及时;会话列表默认展示 5 条,“展开其余会话”和“收起”也更整齐易用。
231
- - 发送消息后会立即显示在对话流中,完成回合的过程摘要也更清晰,长时间等待连接时不会让输入内容消失。
232
- - 文件预览支持页面内交互和独立窗口阅读,大型 HTML 内容也能完整打开。
233
- - 模型配置更新后,继续使用旧会话时会自动采用最新认证信息,消息流顺序也更加稳定。
234
- - 执行记录默认跟随最新内容,也可以暂停自动滚动并保留当前阅读位置。
235
- - 任务执行、恢复和结果查看更加稳定,工作区和滚动区域的使用体验得到改进。
236
-
237
- <details>
238
- <summary>实现细节(开发者参考)</summary>
239
-
240
- - Operator Chat 会话列表默认收敛为最近 5 条;展开与收起控件采用稳定的整行布局,折叠工作区后恢复默认列表;长历史会话改为分页加载,并在加载更早消息后保持原有滚动位置。
241
- - 长会话滚动更流畅:活动回合增量构建、已完成的过程节点复用,已完成且无错误的历史回合可压缩,降低长消息流的渲染开销。
242
- - 修复后端测试模块清单把展示用名称当成模块身份、导致格式稍有不同的输出反复失败的问题:现在按唯一合法路径判定模块身份,展示名称只作展示并可自动改写为规范文件名;路径缺失、多候选、越界或冲突仍会直接判定不通过。
243
- - 修复 Next 发布的重量级测试不稳定:保留完整测试集合与错误门禁的同时升级 Vitest,避免断言全绿后仍因通讯超时以失败退出;会改写构建产物的测试改为串行执行;两条此前未真正执行的 Console 更新回归恢复。
244
- - 修复后端测试单次收集修复已产生有效改动、却因缺少结果声明而阻断整条执行链的问题:现在只把完全缺失的结果补为候选修改,随后仍要重新通过场景、对应关系、载荷、收集、夹具与就绪等全部门禁;结果冲突、空改动与越界写入仍直接判定不通过。
245
- - 新建和删除对话现在会立即在侧栏中反馈:新建时先显示“正在创建”,删除时平滑淡出;网络失败会自动恢复原会话,不再需要等待整张会话列表刷新后才看到变化。
246
- - 新建对话会优先复用当前工作区中真正的空白会话,避免重复创建;有历史消息、工具调用、待发送内容或正在运行的会话不会被复用。
247
- - 会话列表刷新现在会复用未变化的行和列表引用,标题、运行状态或队列变化时只更新对应会话,侧栏切换和刷新更平滑。
248
- - Operator Chat 新增仅对具备 Aimax 凭证的用户可见的 `/sdd-bingo` 数据对齐命令;`wizard-local` 模型请求会自动携带与上报一致的会话身份、当前模型和最新 API key,凭证变化自动生效。
249
- - DAG 节点检查器的「执行记录」默认自动跟随最新内容;右下角新增纯图标悬浮开关,可显式暂停并保留阅读位置,恢复后立即回到底部,悬停时显示当前可执行动作。
250
- - 修复前端任务派生的续跑无法识别当前节点链的问题;从实现节点继续时,设计约束、写入许可、验证和收尾步骤会按现行流程安全执行。
251
- - 统一工作区、Todo 和其他滚动区域的滚动条样式,默认更轻巧,鼠标悬浮时也更容易辨认。
252
- - HTML 文件预览现在支持页面内的标签切换等交互;较大的自包含 HTML 可以在新窗口中直接完整加载,不再受源码摘要长度影响。
253
- - 修复 Operator Chat 长工具链的消息错序:模型过程文字、思考和工具卡片现在按服务端事件顺序稳定交替展示,刷新历史会话后也保持相同顺序。
254
- - 修复 Operator Chat 旧会话继续使用过期模型认证的问题:模型配置变化后,下一轮发送或手动重新加载会自动刷新模型目录和当前模型认证。
255
-
256
- </details>
189
+ - 修复前端规划提前停止后重复创建会话、重复生成需求,以及设计被拒后无法启动恢复流程的问题。
190
+ - 修复恢复流程误跑整棵 DAG 的问题;恢复只执行确定的范围,并复用已经完成的结论。
191
+ - 修复后端测试模块显示名称影响模块身份判断,以及有效收集修复因缺少结果声明而中断的问题。
192
+ - 修复 `/inspect/*` 使用旧缓存导致顶部导航缺少对话入口的问题。
193
+ - 修复 Operator Chat 中用户消息等待回复时暂时消失、工具链顺序错乱和旧会话继续使用过期认证的问题。
257
194
 
258
195
  ## [0.41.3] - 2026-09-04
259
196
 
260
- - 本版本没有用户可见的功能变更;内容为 0.41 线的版本号提升与发布说明修正。
197
+ - 本版本没有用户可见的功能变化,仅修正版本号和发布说明。
261
198
 
262
199
  ## [0.41.2] - 2026-09-04
263
200
 
264
201
  ### 修复
265
202
 
266
- - 修复了 DAG 扩展解析、会话恢复和观测页面资源缓存等问题,让任务执行和对话页面在更新后更加可靠。
267
- - 修复了孤儿会话和观测入口偶发失效的问题,重启或刷新后可以继续使用原有会话。
203
+ - 修复 DAG 扩展解析和会话恢复问题,重启后可以继续使用原有任务与会话。
204
+ - 修复观测页面资源缓存和入口偶发失效问题,升级后刷新即可加载当前版本。
268
205
 
269
206
  ## [0.41.1] - 2026-09-02
270
207
 
271
208
  ### 修复
272
209
 
273
- - 修复发布流程中的测试并发稳定性问题。
274
- - 修复旧会话继续使用过期模型认证的问题,配置更新后会自动采用最新认证信息。
275
- - 修复长工具链消息错序,历史会话也保持正确顺序。
276
- - 统一工作区、Todo 和其他滚动区域的滚动条样式。
277
- - 改进 HTML 文件预览,支持页面内交互和独立窗口完整阅读。
278
-
279
- ### 测试
280
-
281
- - Pi MED 档测试改为校验模型档位形状,避免具体模型切换造成误报。
210
+ - 模型配置更新后,旧会话会在下一轮发送或手动重新加载时使用最新认证信息。
211
+ - 长工具链中的思考、过程文字和工具卡片会按实际发生顺序展示,刷新历史会话后顺序也不会改变。
212
+ - 工作区、Todo 和其他滚动区域采用一致的轻量滚动条,鼠标悬浮时更容易辨认。
213
+ - HTML 文件预览支持页面内交互;较大的自包含页面也可以在新窗口中完整打开。
282
214
 
283
215
  ## [0.41.1-beta.0] - 2026-08-31
284
216
 
285
217
  ### 用户可见更新
286
218
 
287
- - 前端自动化任务的规划、执行和结果检查更加稳定,失败后更容易继续处理。
288
- - 长任务和复杂工作区的进度、文件和运行结果展示更加清晰。
289
- - 插件管理、文件预览和任务详情等常用操作得到改进。
290
-
291
- 实现细节与逐项变更记录(开发者参考)见 [`docs/reports/dogfood/2026-08-31-0.41.1-beta.0-implementation-details.md`](docs/reports/dogfood/2026-08-31-0.41.1-beta.0-implementation-details.md)。
219
+ - 前端自动化任务从规划到验收更加稳定,失败后可以从已有进度继续处理。
220
+ - 长任务和复杂工作区中的进度、文件与运行结果更容易查看。
221
+ - 插件管理、文件预览和任务详情等常用操作更加顺手。
292
222
 
293
223
  ## [0.41.0] - 2026-08-31
294
224
 
295
225
  ### 新增
296
226
 
297
- - 后端测试可为单次 pytest/HTML 执行节点配置每命令超时(`backendTest.executeTimeoutMs`,1 分钟到 2 小时),不配置时仍是 5 分钟。
227
+ - 后端测试可通过 `backendTest.executeTimeoutMs` 为单次 pytest 或 HTML 执行设置 1 分钟到 2 小时的超时;未配置时仍为 5 分钟。
298
228
 
299
229
  ### 改进
300
230
 
301
- - 对话中的长时间 DAG 执行会保留一条实时状态,持续显示总运行时间、当前阶段、完成步数与最近一次有效进展;点击可直接跳到对应运行。
302
- - 「Pi 插件」安装的版本下拉增加加载过渡:内网拉取较慢时显示「正在获取版本…」,获取失败可一键重试,不阻塞安装。
231
+ - 对话中的长时间 DAG 会持续显示运行时间、当前阶段、完成进度和最近一次有效进展,点击状态即可打开对应运行。
232
+ - 「Pi 插件」安装页会在获取版本时显示进度;内网访问较慢或失败时可以直接重试,不会阻塞其他操作。
303
233
 
304
234
  ### 修复
305
235
 
306
- - DAG 节点「执行过程」导出 HTML 在系统深色模式下不再黑底黑字,正文对比度恢复正常。
307
- - DAG 节点「执行过程」导出 HTML 在反向代理或子路径部署下不再丢失整页样式。
308
- - 「Pi 插件」安装在内网源下能正常获取版本列表,不再因作用域包名的编码问题失败。
236
+ - DAG 节点导出的「执行过程」HTML 在深色模式下保持清晰可读,在反向代理或子路径部署时也能完整加载样式。
237
+ - 「Pi 插件」在企业 npm 镜像下可以正常获取作用域包的版本列表。
309
238
 
310
239
  ## [0.40.0] - 2026-08-31
311
240
 
312
241
  ### 重点更新
313
242
 
314
- - **Console 对话页「轨迹」视图**:对话按「用户 → 过程 → AI 回复」逐行渲染,可展开收起并一键导出自包含 HTML;顶部展示注入的系统提示词全文与工具目录,每轮附步骤数、耗时与 token 成本,刷新后不再归零。
315
- - **上下文压力处理默认开启**:Operator Chat 与 DAG 节点在接近模型窗口时会先压缩一次再发送,遇到网关「请求上下文过大」也会压缩后继续原请求;消息流按顺序展示触发原因、压缩进度与结果,压缩能力可整体或分路关闭。
316
- - **Console「Pi 插件」管理**:从「设置」提升为独立 tab,内置经校验的插件目录(6303 个,5562 个可安装、含中文说明),支持搜索、分页与一键安装卸载;安装时可选版本(默认最新),已装插件显示实际版本,支持内网镜像源。
317
- - **Operator Chat 持续目标模式**:用 `/goal` 或目标条创建跨多回合推进的目标,可随时暂停、继续、编辑或清除;长任务自动续行,刷新或重启 Console 后目标仍在,并新增任务清单与结构化提问卡片。
318
- - **多工作区与消息流重构**:同一页面可管理多个工作区,会话稳定归属创建它的工作区,移除工作区不会丢会话;消息流按真实顺序展示思考、工具执行与最终回答,对话中可连续排队、编辑或删除多条消息;右侧辅助栏承载文件、上下文、调用记录与运行活动。
319
- - **CLI 帮助修复**:`--help` 现在直接列出真实用法,`task advance`、`task status` 与 `dag` 子命令的帮助顶部即给出完整参数说明;`task source prepare` 也恢复可用。
320
- - **backend-test 执行与判定系列修复**:pytest 7.x 环境下已授权用例现在能被正确执行;修复了空值标记、本地请求、空白写法与超长取值被误判为不安全或前后不一致的假警报,生成与执行的对应关系也不再反复返工。
243
+ - Console 对话页新增「轨迹」视图,按真实顺序展示用户消息、模型过程和最终回复,并可展开、收起或导出自包含 HTML。
244
+ - 「轨迹」视图会显示系统提示词、工具目录、步骤数、耗时和 token 成本,刷新页面后统计仍会保留。
245
+ - Operator Chat 和 DAG 默认在接近模型上下文上限时先压缩再继续请求,遇到网关返回的上下文过大错误也会自动恢复。
246
+ - 「Pi 插件」成为独立页面,支持搜索、分页、选择版本以及一键安装或卸载,并兼容企业 npm 镜像。
247
+ - Operator Chat 新增持续目标模式,可用 `/goal` 创建跨回合目标,并暂停、继续、编辑或清除;刷新或重启后目标仍会保留。
248
+ - Console 支持同时管理多个工作区,会话始终归属创建它的工作区;移除工作区不会删除其中的会话。
249
+ - `--help` 会直接显示真实用法,`task advance`、`task status`、`dag` 和 `task source prepare` 的参数说明也已补齐。
321
250
 
322
- ### 改进
251
+ ### 新增
323
252
 
324
- - Windows 上读取运行中的 DAG 状态不再因文件占用或半成品内容偶发失败,Console 协作中止也不再误报输入非法;相关 I/O 检查的超时上限同步对齐,避免进程启动压力造成假失败。
325
- - 检查器「提示词重启」只读态的提示词卡片会撑满剩余高度并在卡片内滚动,不再在面板底部留下大块空白;失败节点的可编辑布局不变。
326
- - DAG 节点表「备注」改为节点用途简介(是什么、做什么、目的),不再重复节点 ID;失败节点仍显示错误摘要。检查器标题与图节点悬浮提示同步展示同一句说明。
327
- - 实验「提示词重启」会为每次失败尝试保存独立、脱敏且体积有上限的提示词候选;检查器始终提供版本选择,新运行会列出原始提示词与全部失败尝试,历史运行未保存候选时会明确说明。候选可一键复制,被截断的候选会标记为截断预览并禁止直接用于续跑。
328
- - DAG 节点检查器的「执行过程」按执行方式分别展示:Pi 节点看会话事件,shell 节点显示命令回执与标准输出/错误,内部处理器显示步骤回执;空态不再把 shell 与静态节点说成「暂无过程日志」,节点输入也会标出实际的处理步骤名。
329
- - DAG 节点检查器「节点输出」在内容为完整 JSON 对象或数组时改为缩进代码块展示,不再挤成一段紧凑文本;截断或非法 JSON、普通 Markdown 仍走原阅读器。
330
- - 前端 DAG 不再把需求与验收文档全文复制进每个相关节点,改为按需引用有限片段,也不再要求计划与契约重读全部绑定源文件,长需求在多节点间的上下文占用明显降低。
331
- - frontend-test 的用例打包会从项目模板目录拷贝标准场景;完整初始化出的目标仓库不再静默落到只含一条冒烟用例的兜底集合。
332
- - frontend-test 的环境探测会区分「端口没人监听」与「服务返回 4xx/5xx」两种失败,并提示先启动本地前端再从失败节点续跑,不再把它们写成同一句不可达提示。
333
- - frontend-test 报告解析用例 Markdown 的 `##`/`###` 标题与有序列表(`测试步骤` / `预期结果` / `前置条件与重置`);缺 `测试目的` 时回退到用例 H1,避免主 HTML 出现空步骤。
334
- - `dag rerun --from-node` 把尚未运行的写入与映射节点视为首次执行;失败的 frontend-test 探测节点可以带着下游未跑的节点一起续跑,不必整图重跑。
335
- - Pi 节点卡住 15 分钟没有任何活动时,会自动中断等待并在同一会话里重发一次「继续」;只有在中断已确认、且尚未开始写文件时才会恢复,恢复失败仍按超时处理。
336
- - DAG 节点检查器「执行过程」时间线默认隐藏原始协议事件,按钮文案为「展开原始协议事件」;用户可点选展开,同会话内的选择会保持。
337
- - Operator Chat 点「停止」后会先明确显示「正在停止」,此时仍可提交一条「停止后发送」的消息;它会被持久保存,切换会话、刷新或重启 Console 都不会丢,上一轮结束后自动发出且不会重复执行。
338
- - Operator Chat 修复了快速终止时「停止后发送」与普通发送之间的竞态:消息不会再卡在中间状态,会自动转为正常发送,用户不必刷新重试,也不会丢失本次提交。
339
- - `dag rerun-task` 会把上一轮仍未解决的验证与评审反馈带入新一轮:实现与验证角色必须修复或举证说清已不适用,不能只因文件已存在就判为完成。Console 同步区分「自动修订」「从失败节点恢复」「带反馈重新执行任务」等入口。
340
- - DAG 恢复与治理入口收敛为两条最小路径:`request-revision` 只有在配置了修复轮次时才回到实现节点;遇到临时故障时,用 `dag rerun --from-node` 重跑写入节点与安全下游,失败状态不会被改写成成功。
341
- - `frontend-plan-pi` 改为在固定骨架上提交补丁:版本号、来源绑定、风险与写入目标文件等关键字段由 DAG 冻结,计划本身不能覆盖;补丁会先被编译校验成完整契约再交给评审与预写,每次尝试的原始与规范化结果都会留档。
342
- - Operator Chat 的恢复类工具与实际能力对齐:工具名、参数与说明都按真实命令给出,不再让模型猜参数或调用不存在的入口。自定义系统提示词上限由 1900 调整为 2500 字,用于写清节点续跑、整单重生与重排队的分流规则。
343
- - Operator Chat 的模型工具面收敛:低频只读入口不再进入模型工具白名单,保留的官方 CLI 动作全部换成「做什么 + 何时用」的说明;修复了部分工具参数缺失导致模型调用必被拒、以及参数说明丢失的问题,模型更不容易选错恢复入口。
344
-
345
- - Operator Chat 的会话创建不再限制工具范围,扩展注册的 MCP 工具现在可以被模型调用;补丁、全量工具、shell 与编码对话等入口仍按原样排除。
346
- - 对话侧栏 Plugins 右侧新增只读 MCP 弹窗:展示 `mcp.json` 配置的服务,以及当前会话真正注册/激活的 MCP 工具;没有配置也没有工具时保持真实空态。
347
- - 对话侧栏原 Packages 入口改名为 Plugins,与 Pi 用户面的叫法保持一致。
348
- - 对话进行中底部上下文占用百分比保持常驻:用量事件不再冲掉上一次的占用显示,并在回合中持续刷新。
349
- - 上一轮大量 bash 结束后再发新消息,旧工具条不再整批挂到新气泡下面:无主工具不再丢进最新一组,历史按完整回合裁切,空助手气泡若还挂着工具会留下来当锚点。
350
- - 侧栏文件树点击目录行直接插入 `@目录/` 引用(箭头单独负责展开/收起);输入框 @ 补全也列出目录,排在文件前面。
351
- - 对话进行中点「停止」会立即安静下来,不再等待后端往返确认;后端中止等待从 8 秒缩短到 2.5 秒,未及时终结时由状态自动收敛。
352
- - 侧栏文件树实时刷新:agent 回合结束、浏览器标签页回到前台、手动点「刷新」时重拉根目录+全部已展开目录(此前手动刷新只拉根目录,子目录永远旧缓存)。
353
- - Skills / Packages / Models 面板不再把提示原文堆在列表上方,改为标题条上一颗摘要芯片(如「14 条提示」),点开按「需要处理 / 名称不规范 / 同名未生效」分组,加载失败仍单独成组并可重试。
354
- - Skills / Packages 双栏改为左右各自滚动;资源弹窗会跟随顶部导航高度在剩余视口内居中,不再被顶栏挡住上沿。
355
- - 标准、评审和监督型 DAG 现在会在当前运行中重试短暂的验证故障;写入节点只有在确认工作区完全未变更时才会重试,避免因网络波动重新执行整条任务。
356
- - 后端测试支持自定义目录、公共前置说明、查询场景分区和增量补缺模式;相关布局可通过 `task advance --backend-test` 纳入受管任务契约,不再需要手工修改 `task.json`。
357
-
358
- - 直接运行 `agent-worker console` 时,会按本机自然日询问一次是否升级到最新版本;升级检查沿用当前 npm 源,失败不会阻断启动,Console 地址仍只在终端输出。
359
- - npm `next` 发布成功后会自动更新发布锚点;可用 `loop-agent inspect next` 查看已发布版本、源码提交、构建时间,以及本地尚未发布的提交。
360
- - Operator Chat 的文件预览可在新窗口中打开,并可切换排版预览与原始内容;弹窗被浏览器拦截时会保留当前抽屉并给出提示。
361
- - Pi SDK 的会话事件可透出模型明确返回的结束原因,便于诊断截断、停止和异常结束。
362
-
363
- - 初始化模型配置新增 Pi/OpenCode 脱敏目录:代码只暴露白名单模型元数据和凭据就绪状态,执行初始化的模型结合目标项目自主选择并直接写入 LOW/MED/HIGH;只有实质歧义才询问用户。
364
- - npm `next` 自动发布改为每累计 5 个提交触发一次,减少无意义构建;手动发布仍可随时执行。
365
- - `dag rerun-task` 会继承上一轮尚未解决的验证和评审反馈,避免新一轮忽略旧问题或误判为已经完成。
366
- - DAG 恢复入口会根据失败类型区分“从节点继续”和“完整重跑”,并避免把失败节点改写成成功状态。
367
- - Operator Chat 停止会话时会显示真实进度;用户可预先提交一条“停止后发送”的消息,刷新页面或重启 Console 也不会丢失。
368
- - Operator Chat 的命令说明和参数提示与实际能力保持一致,减少选错恢复入口或误用占位参数。
369
- - 测试套件按 CPU、内存、平台和当前 DAG 压力动态分配资源,并减少重复启动进程,完整验证耗时更稳定。
370
-
371
- - Operator Chat 在接近模型窗口时会先压缩再发送,压缩失败也不会丢消息;DAG 节点同样能识别上下文超限并压缩,但不会在流式输出中途主动压缩。
372
- - 网关「请求上下文过大」以及常见的包装或嵌套写法都能被识别;`loop-agent init` 在目标项目生成的 Pi 扩展与控制器使用同一套判断规则。
373
- - 上下文压缩默认在 Console 与 DAG 中开启,也可分别关闭;使用 Anthropic 默认提示缓存时不会触发压缩,避免破坏缓存命中。
374
- - 后端测试的计划与生成阶段只读取任务明确绑定的需求、环境报告和本轮产物,减少无关仓库内容干扰结果,并让后续步骤继续使用同一份已确认计划。
375
- - Operator Chat 的任务清单工具描述补齐多步骤与 DAG 使用纪律:开始前按具体步骤规划、保持进行中约束、完成后立即更新完整列表,并用面向用户的阶段呈现 DAG 进度,简单任务自动跳过。
376
- - 右侧文件工作台打开 `.html` 或 `.htm` 文件时默认直接预览:沙箱会完整加载页面及同项目的相对样式、图片和字体,同时阻止脚本及外部网络访问;大体积源码不再直接报错,而是展示前 512 KiB 并清晰提示内容已截断。
377
- - 排队消息改为由输入框上方的队列面板统一展示;正常排队、撤回和删除不再反复弹出提示,当前会话也不再显示重复的“待发送”,其他会话只保留低调的排队数量。
378
- - 正式发布会自动同步更新版本日志和文档站摘要;发布说明优先生成简洁自然的中文,生成服务不可用时也能安全完成发布。
379
- - 输入框整合模型与推理等级选择,并只展示有真实数据的轮次、耗时、速度和缓存统计。
380
- - 工作区、会话列表、文件标签和侧栏交互更加紧凑自然,折叠、切换和页面过渡更加流畅。
381
- - 左侧多个工作区可以独立展开;展开工作区不再切换当前作用域,跨工作区打开会话时也不会闪出错误的空列表。
382
- - 多个 Console 同时运行时会安全合并工作区增删,并把变更实时同步到已打开的页面,避免旧缓存覆盖新工作区。
383
- - 设置页改用自然中文展示当前工作区的模型状态,减少内部状态和重复信息。
384
- - DAG 检查器简化节点说明、执行记录和提示词重启面板,长内容更容易阅读和定位。
253
+ - DAG 检查器可以保存失败尝试的脱敏提示词候选,并从选定版本重新执行;被截断的候选只供预览,不能直接用于续跑。
254
+ - Operator Chat 可以调用扩展注册的 MCP 工具;侧栏会显示 `mcp.json` 中配置的服务和本会话实际启用的工具。
255
+ - 后端测试支持自定义目录、公共前置说明、查询场景分区和增量补缺,可通过 `task advance --backend-test` 写入任务契约。
256
+ - `agent-worker console` 每个自然日会询问一次是否升级到最新版;检查失败不会阻止 Console 启动。
257
+ - Pi SDK 会返回模型明确提供的结束原因,便于区分正常结束、截断、停止和异常。
385
258
 
386
- ### 修复
259
+ ### 改进
387
260
 
388
- - 修复在只有 `python3`、没有 `python` 命令的环境(如新版 macOS)里,backend-test 的用例覆盖分析会静默返回空结果、导致取值形状误报不匹配的问题;现在会按平台选择可用的解释器,缺失时才尝试下一个候选。
389
- - 修复检查器「执行过程」时间轴切换执行分次不生效、多次执行的事件重合显示的问题:现在选中第 N 次执行只显示该次内容并标注「已按第 N 次执行过滤 · 共 M 次执行」,单次执行仍展示全量,检测不到分段边界时会明确提示。
390
- - 修复前端计划修订中空引用块被误判为缺失、导致反复格式重试的问题:合法但内容为空的引用块现在会被正确接受,重复、损坏或不止一个的引用块仍会被拒绝。
391
- - `npm test` 前置阶段失败导致后续阶段被跳过时,现在会显式输出警告与补跑命令,不再静默跳过(此前的失败汇总容易被误读为已全量覆盖)。
392
- - npm 包现在会包含 `inspect next` 运行时依赖的查询脚本,安装后的 CLI 不再因缺少包内文件而无法启动。
393
- - 初始化更新改为一次扫描与规划:固定投影按已记录的归属确定性增删改,多项合并按文件串行写入,全部完成后只做一次最终验证;`--status` / `--report` 直接读取已有证据,不再重复运行项目脚本。配置项保留项目值,有效档位不变。
394
- - CLI 的版本检查与 `init upgrade` 的版本门禁会沿用目标项目的 npm 配置(含项目级、用户级与全局源设置),企业镜像失败时不会偷偷回退官方源,并给出脱敏原因区分超时、启动失败与响应无效。
395
- - 同一浏览器下不同端口的多个 Operator Console 不再互相顶掉登录状态:不同项目和同一项目的多个 Console 可以并行对话,来回切换页面无需刷新;Console 重启后旧页面会被安全拒绝,刷新即可恢复。
396
- - Markdown 表格只处理横向溢出,鼠标停在表格上时仍可正常上下滚动对话。
397
- - Windows 上执行后端测试场景参数的 Python 语法检查时,会跳过不可用的 Microsoft Store 占位程序,避免错误回滚合法改动。
398
- - 旧版前端 DAG 也能识别增量计划修订,不再因契约格式差异反复重试;无法合并的修订会提示重新生成 DAG。
399
-
400
- - 修复 backend-test 把无请求体用例里的「none」误识别为 JSON 字段路径,从而把全部 pytest 用例判为不安全并排除的问题;现在会把这类空值正确归一化为空集合,而真实的取值冲突仍会严格阻断。
401
- - 修复 Console「更新并初始化」被观测顶栏挡住、看起来像从 DAG 详情消失的问题:入口改到操作 → 设置,观测与对话页不再挂全局悬浮按钮。
402
- - 修复从恢复打开全屏观测时,长 DAG run id 把「返回 恢复」顶进居中模式开关底下、按钮显示不全的问题;上下文 chip 改到顶栏下方独立一行,过长 id 省略、按钮不收缩。
403
- - 修复 Console 内嵌观测后样式泄漏到对话/操作、观测顶栏丢失新鲜度与 Pi 状态、从恢复打开观测看不到「返回 恢复」、以及检查器盖住一级导航的问题;对话里的观测链接改为壳内地址。
404
- - 修复 Console 内嵌观测丢失「提示词重启」入口、图标和产品深链的问题;托管观测所需的访问凭据不再写入 Console 页面。
405
- - 修复 backend-test 的场景分区虽已声明、展开后的精确槽位清单却没有交给 Markdown 生成环节,导致用例只生成普通别名并被全量判为缺失的问题;现在计划会把每个精确槽位逐字写入绑定的覆盖矩阵规则,生成前会做一次完整性核对。
406
- - 修复 backend-test 的场景分区计划表只提示部分取值、下游门禁却要求补集槽位的不一致:计划、Markdown 用例与 pytest 现在统一明确唯一的补集槽位,不会再因为表格指令遗漏而报槽位缺失。
407
- - 修复文档审计会把本地临时证据与打包目录一起扫描、导致发布前验证被非治理文件阻断的问题。
408
- - 修复 backend-test 把 Markdown 里明确声明的非法枚举、类型错误、null、空值和精确非法字面量当成契约漂移、白白消耗唯一一次返工机会的问题;豁免现在按参数、目标字段和取值逐条绑定,真实契约漂移与路径缺陷仍严格阻断。
409
- - 修复 backend-test 无法识别同一模块内安全取值辅助函数的位置、关键字与默认参数,以及精确删除某个字段的写法的问题,这类场景此前会一直判为无法确定;涉及计算、动态、跨模块或危险写法的场景仍保持无法确定。
410
- - 修复 backend-test 无法确认同一模块内的安全取值辅助函数、导致常规请求场景长期判为无法确定的问题;超长边界取值现在会保存为有长度上限的摘要并保留真实长度,空白修复建议也改用真实空格而不是转义文本。
411
- - 修复 backend-test 把 Markdown 里的空白转义写法与 pytest 中真实空白字符串误判为场景参数不一致的问题;现在逐项排除会带上用例、字段、期望/实际取值和源码位置等有界诊断,同时不会对普通业务字符做宽松处理。
412
- - 修复 Console 把 backend-test 写入节点的局部保护文件误判为整体越界的问题;任务级禁止路径仍保持硬阻断,合法的 DAG 可以继续获得自主执行凭据。
413
- - 修复 backend-test 会漏判一类本地请求调用的取值问题;现在会汇总分类与用例排除结果并记录 pytest 启动事实,取值修复提示会同时给出期望、实际与缺失的字段路径清单。
414
- - 修复后端测试在取值、夹具与用例对应关系同时异常时只修复其中一类的问题;pytest 侧缺陷现在会合并进唯一一次有界返工,Markdown 测试点未分类或重复分类会在生成阶段定向重试,不允许下游猜测修复。
415
- - 修复重命名会话时输入框没有回显当前标题的问题。
416
- - 修复自动压缩提示长期停在输入框上方、恢复输出跑到压缩前面,以及回复文字在工具出现时突然跳位的问题;消息流会按顺序保留模型提供商的原始错误、压缩过程和恢复结果,刷新后也保持一致。
417
- - 工作区列表支持像 DSH Web 一样上下拖动调整顺序;新的顺序会自动保存,刷新页面或重新启动看板后仍然保持。
418
- - 修复多工作区下已有会话只显示在对话正文、却没有出现在左侧列表的问题;会话会稳定归属到创建它的工作区,旧会话也会自动恢复到列表中。
419
- - 会话列表改为独立的全局目录:启动时一次恢复历史归属,之后随会话变化实时更新;移除工作区不会删除或隐藏其中的会话,它们会保留在“未归类”中并可继续打开。
420
- - 修复停止回复后输入区恢复迟缓、排队消息偶发丢失,以及切换会话后旧状态残留的问题。
421
- - 修复宽表格、文件预览、滚动条和窄屏布局中的多处显示异常。
422
- - 修复部分 Windows 环境读取运行状态时的偶发失败,并提高前后端任务验证的可靠性。
423
- - 初始化选择模型时识别公司内部 `wizard-local` 的 AICoder 型号梯度(default/plus/pro/max),作为 LOW/MED/HIGH 参考但不机械分档。
424
- - 右侧文件工作台打开 HTML 默认沙箱预览(同项目相对资源可用、脚本与外部网络阻断),超大源码显示前 512 KiB 并明确提示截断。
425
- - 工作区列表支持拖动排序并自动保存;多个 Console 同时运行时安全合并工作区增删并实时同步。
426
- - 设置页用自然中文展示模型状态;DAG 检查器简化节点说明与提示词重启面板,长内容更易定位。
427
- - 输入框整合模型与推理等级选择,只展示有真实数据的轮次、耗时、速度与缓存统计。
428
- - 修复 Console「更新并初始化」被观测顶栏遮挡(入口改到操作 → 设置)、内嵌观测样式泄漏与「提示词重启」入口丢失、宽表格/窄屏多处显示异常、部分 Windows 偶发读取失败等。
261
+ - DAG 检查器会用自然语言说明节点用途,并按 Pi、shell 或内部处理分别展示执行记录和输出。
262
+ - `loop-agent inspect next` 会补充显示预发布版本、对应源码提交、构建时间和本地尚未发布的提交。
263
+ - 节点输出为完整 JSON 时会自动格式化;原始协议事件默认收起,需要时可以展开查看。
264
+ - 长前端需求只向相关节点提供必要片段,减少重复上下文;来源、风险和目标文件等关键约束不会被计划内容覆盖。
265
+ - frontend-test 会从项目模板复制标准场景,并支持自定义测试目录和文件布局,不再默认为单一冒烟用例。
266
+ - frontend-test 会区分端口未监听和服务返回错误,并给出对应处理建议;报告也能识别常见标题和有序列表写法。
267
+ - `dag rerun --from-node` 可以从失败节点继续运行尚未执行的安全下游,无需整图重跑。
268
+ - `dag rerun-task` 会继承上一轮未解决的验证和评审意见,避免重新执行时遗漏旧问题。
269
+ - 短暂验证故障会在当前 DAG 内重试;写入节点只在确认工作区未变化时重试。
270
+ - Pi 节点连续 15 分钟没有活动时会尝试中断并在原会话中继续;已开始写文件或恢复失败时仍按超时处理。
271
+ - Operator Chat 停止回复时会立即显示「正在停止」,并允许预先提交一条「停止后发送」的消息;刷新或重启后消息也不会丢失。
272
+ - Operator Chat 的恢复工具、参数和说明与实际命令保持一致,减少选错入口或提交无效参数;自定义系统提示词上限从 1900 字提高到 2500 字。
273
+ - 对话中的上下文占用会在整个回合中持续显示,模型和推理等级也可以直接在输入区选择。
274
+ - 排队消息统一显示在输入框上方,可撤回或删除,不再反复弹出提示。
275
+ - 文件树支持插入 `@目录/` 引用,并会在回合结束、页面重新激活或手动刷新时更新已展开目录。
276
+ - HTML 文件默认以沙箱方式预览同项目资源,并阻止脚本和外部网络;超过 512 KiB 的源码会显示截断提示。
277
+ - 多个 Console 可以安全同步工作区增删;同一浏览器中不同端口的 Console 也能分别保持登录状态。
278
+ - 初始化模型配置时只提供脱敏后的可用信息,并保留已有有效档位;只有确有歧义时才询问用户。
279
+ - 测试会根据 CPU、内存、平台和当前 DAG 压力分配资源,减少低性能机器上的重复进程和并发压力。
429
280
 
430
- ### 文档
281
+ ### 修复
431
282
 
432
- - 整理 `0.36.0` 以来的更新日志,改为面向用户描述结果,并补齐 `0.38.0`、`0.38.1` 的正式发布记录。
433
- - 新增检查以阻止纯英文条目、重复版本、版本倒序和非标准 `Unreleased` 标题。
283
+ - 上下文压缩失败时不会丢失原消息,压缩提示、提供商错误和恢复结果会按发生顺序展示。
284
+ - 上下文压缩可分别在 Console 和 DAG 中关闭;启用 Anthropic 默认提示缓存时会跳过主动压缩,DAG 也不会在流式输出中途压缩。
285
+ - 修复停止回复后输入区恢复迟缓、排队消息偶发丢失,以及快速停止时消息卡住的问题。
286
+ - 修复长工具链结束后旧工具卡片挂到新消息下方的问题,历史会话会按完整回合稳定展示。
287
+ - 修复多工作区中会话未出现在左侧列表的问题;移除工作区后,会话会保留在「未归类」中并可继续打开。
288
+ - 修复重命名会话时输入框未显示当前标题的问题。
289
+ - 修复 backend-test 对空请求体、空白字符串、负向非法取值、本地请求和安全辅助函数的多类误判;动态、跨模块或危险写法仍会被阻止。
290
+ - 修复 backend-test 场景分区、补集槽位和 pytest 用例之间不一致的问题,计划、Markdown 和实际执行会使用同一份覆盖要求。
291
+ - 修复仅提供 `python3` 的环境无法完成后端测试分析,以及 Windows 将 Microsoft Store 占位程序误当作可用 Python 的问题。
292
+ - 修复旧版前端 DAG 无法识别增量计划修订的问题;确实无法合并时会提示重新生成 DAG。
293
+ - 修复 Windows 读取运行中 DAG 状态时偶发失败的问题,并减少进程启动压力造成的验证误报。
294
+ - 修复多次执行的节点记录混在一起的问题,选择某次执行后只会显示该次内容。
295
+ - 修复 Console 内嵌观测的样式、顶栏和「提示词重启」入口异常;「更新并初始化」入口已移到「操作 → 设置」。
296
+ - 修复 npm 包缺少 `loop-agent inspect next` 依赖文件的问题,安装后的命令可以正常启动。
297
+ - `init upgrade` 会保留项目配置,并沿用项目、用户或全局 npm 镜像;`--status` 和 `--report` 直接复用已有证据,不会重复运行项目脚本。
298
+ - `npm test` 因前置阶段失败而跳过后续检查时,会明确提示缺失的验证和补跑命令。
299
+ - Markdown 表格只处理横向溢出,鼠标位于表格上方时仍可正常上下滚动对话。
434
300
 
435
301
  ## [0.39.3] - 2026-08-28
436
302
 
437
303
  ### 新增
438
304
 
439
- - 前端实现支持来源归属运行时注入,使用宽松校验,不符合格式也不会阻断现有流程,方便后续接入完整的来源追溯。
305
+ - 前端实现任务开始记录需求来源;来源格式暂不完整时不会阻断现有流程。
440
306
 
441
307
  ## [0.39.2] - 2026-08-28
442
308
 
443
- ### 重点更新
309
+ ### 改进
444
310
 
445
- - DAG 检查器与提示词重启面板重做:节点备注列改为节点用途简介不再复读节点 ID,默认隐藏协议事件、需要时可一键展开;提示词重启只读面板撑满剩余高度,内容在卡片内滚动,避免长提示词被压缩或被全局滚动条逼出视区。
311
+ - DAG 检查器会用节点用途代替重复的节点编号,原始协议事件默认收起;提示词重启面板也能在有限空间内完整滚动查看长内容。
446
312
 
447
313
  ### 修复
448
314
 
449
- - 为 `views/dag.js` 补充缺失类型声明,修复 next 发布通道的 typecheck 阻断。
450
- - 记录 release/0.39 上 observe 面板改动的回移植入 0.39.2,方便追溯修复来源。
315
+ - 修复预发布通道因类型检查失败而无法发布的问题。
451
316
 
452
317
  ## [0.39.1] - 2026-08-25
453
318
 
454
319
  ### 重点更新
455
320
 
456
- - 前端实现流程会逐项核对原始需求与验收标准,减少长需求被遗漏、误解或静默排除的情况。
457
- - Console 新增可选择稳定版或预发布版的更新入口,更新前会检查正在运行的任务,完成后自动恢复当前页面。
321
+ - 前端实现流程会逐项核对原始需求和验收标准,减少长需求被遗漏、误解或静默排除的情况。
322
+ - Console 新增更新入口,可选择稳定版或预发布版;更新前会检查运行中的任务,完成后自动恢复当前页面。
458
323
 
459
324
  ### 新增
460
325
 
461
326
  - DAG 检查器可以查看失败节点的提示词版本,并在确认后从选定内容重新执行。
462
- - 后端测试会核对本轮文件清单与实际引用关系,避免历史文件或错误依赖混入测试结果。
327
+ - 后端测试会核对本轮文件清单和实际引用,避免历史文件或错误依赖混入测试结果。
463
328
 
464
329
  ### 改进
465
330
 
466
- - 设置页移除重复的模型配置入口,模型管理继续集中在对话页。
467
- - 关键治理文档完成复核,当前能力、限制和操作方式保持一致。
331
+ - 设置页移除重复的模型配置入口,模型管理集中到对话页。
468
332
 
469
333
  ## [0.39.0] - 2026-08-23
470
334
 
471
335
  ### 重点更新
472
336
 
473
- - Operator Chat 支持通过方向键找回历史输入,并可在当前回复进行时预先排队下一条消息。
474
- - 任务向导新增实时进度、当前节点、运行时长和失败摘要,长时间任务更容易判断是否正常推进。
337
+ - Operator Chat 支持通过方向键找回历史输入,也可以在当前回复进行时预先排队下一条消息。
338
+ - 任务向导会实时显示当前节点、运行时长、整体进度和失败摘要,长任务是否仍在推进更加清楚。
475
339
 
476
340
  ### 新增
477
341
 
478
- - 前端测试支持自定义测试目录和文件布局,适配不同项目结构。
342
+ - 前端测试支持自定义测试目录和文件布局,可以适配不同项目结构。
479
343
 
480
344
  ### 改进
481
345
 
482
- - 运行结束后会自动降低刷新频率,并为失败状态提供更直接的处理建议。
483
- - npm 预发布包会记录准确版本,安装后显示的版本与实际发布制品保持一致。
346
+ - 任务结束后会自动降低刷新频率,失败时也会给出更直接的处理建议。
347
+ - npm 预发布包会记录准确版本,安装后显示的版本与实际制品保持一致。
484
348
 
485
349
  ## [0.38.4] - 2026-08-23
486
350
 
487
351
  ### 重点更新
488
352
 
489
- - 初始化与升级流程更好地支持企业 npm 镜像、已有模型配置和一次性安全更新。
490
- - Console 与 DAG 检查器补充了运行状态、失败节点和提示词重启等诊断能力。
353
+ - 初始化和升级现在兼容企业 npm 镜像,能保留已有模型配置,并支持一次性安全更新。
354
+ - Console 和 DAG 检查器可以更直观地查看运行状态、失败节点和提示词重启信息。
491
355
 
492
356
  ### 新增
493
357
 
494
- - 新增 `inspect next`,可以查看当前 npm 预发布版本对应的源码和本地尚未发布的变化。
495
- - 前端测试可以从项目治理目录和初始化模板读取标准场景,并提供更完整的执行报告。
358
+ - 新增 `inspect next`,用于对比当前 npm 预发布版本的源码与本地尚未发布的变化。
359
+ - 前端测试可以读取项目治理目录和初始化模板中的标准场景,并生成更完整的执行报告。
496
360
 
497
361
  ### 修复
498
362
 
499
- - 修复 npm 包缺少运行文件、macOS Python 命令差异、Windows 场景检查和部分滚动显示问题。
500
- - 修复前端计划引用、失败恢复和测试回执在复杂项目中的多处误判。
363
+ - 修复 npm 包缺少运行文件,以及 macOS、Windows 上部分命令和场景检查不兼容的问题。
364
+ - 修复复杂项目中前端计划引用、失败恢复和测试回执可能被误判的问题。
365
+ - 修复 Console 部分内容滚动显示异常的问题。
501
366
 
502
367
  ## [0.38.3] - 2026-08-22
503
368
 
504
369
  ### 重点更新
505
370
 
506
- - Operator Chat 的文件预览可以在新窗口打开,并能在排版预览与原始内容之间切换。
507
- - 长时间模型任务遇到输出截断或暂时停滞时,恢复过程更加可靠。
371
+ - Operator Chat 的文件预览可以在新窗口打开,也可以随时切换排版预览和原始内容。
372
+ - 长时间模型任务遇到输出截断或短暂停滞时,恢复成功率更高。
508
373
 
509
374
  ### 新增
510
375
 
511
- - 安装 loop-agent 时会默认包含 Pi 运行能力,减少额外配置步骤。
512
- - DAG 检查器可以查看不同执行器的运行过程和更清晰的节点输出。
376
+ - 安装 loop-agent 时默认包含 Pi 运行能力,减少额外配置。
377
+ - DAG 检查器可以区分不同执行器,并展示更清晰的运行过程和节点输出。
513
378
 
514
379
  ### 改进
515
380
 
516
- - 后端测试增强了自定义目录、场景分区和生成文件的校验。
517
- - 文件浏览、结束原因和前端计划恢复信息更容易查看和诊断。
381
+ - 后端测试更好地支持自定义目录、场景分区和生成文件校验。
382
+ - 文件浏览、任务结束原因和前端计划恢复信息更容易查看。
518
383
 
519
384
  ## [0.38.2] - 2026-08-20
520
385
 
521
386
  ### 重点更新
522
387
 
523
- - 后端测试支持自定义输出目录、公共前置说明、查询场景分区和增量补缺模式。
524
- - Operator Chat 的停止与后续发送更加可靠,停止过程中提交的下一条消息不会因刷新或重启丢失。
388
+ - 后端测试支持自定义输出目录、公共前置说明、查询场景分区和增量补缺。
389
+ - 在 Operator Chat 停止当前任务时发送的下一条消息,会在停止完成后继续处理,刷新或重启也不会丢失。
525
390
 
526
391
  ### 改进
527
392
 
528
- - DAG 重新执行时会继承上一轮尚未解决的验证和评审反馈,减少重复失败。
529
- - 恢复入口会根据失败原因选择从节点继续或完整重跑,并给出更明确的操作建议。
530
- - npm 预发布改为按提交数量节流,减少没有必要的重复发布。
393
+ - DAG 重新执行时会沿用上一轮未解决的验证和评审反馈,减少重复失败。
394
+ - 恢复入口会根据失败原因建议从节点继续或完整重跑,并说明下一步操作。
395
+ - npm 预发布会根据提交数量控制频率,减少内容没有变化时的重复发布。
531
396
 
532
397
  ## [0.38.1] - 2026-08-18
533
398
 
534
399
  ### 重点更新
535
400
 
536
- - 前端实现计划统一使用结构化契约,修订只提交必要变更;系统会核对 OpenSpec 引用和组件选型依据,减少格式漂移、遗漏规范和无效返工。
537
- - Operator Chat 增强了模型配置、MCP 工具、文件浏览和运行状态展示,常用操作更集中,长时间对话也更容易掌握上下文。
401
+ - 前端实现计划改用结构化契约,并支持只提交本次修订;项目规范引用、组件选择和验证要求会在执行前统一检查。
402
+ - Operator Chat 集中了模型配置、MCP 工具、文件浏览和运行状态,长时间对话更容易跟踪。
538
403
 
539
404
  ### 新增
540
405
 
541
- - Console「模型与认证」页支持查看和编辑 LOW、MED、HIGH 三档 Pi 模型;保存前会校验配置,保存后自动刷新模型状态和空闲会话。
542
- - Operator Chat 支持扩展提供的 MCP 工具;侧栏可查看已配置服务和当前会话实际可用的工具。
543
- - 文件预览改为侧边抽屉,可在排版预览和原始内容之间切换,不会打断当前对话。
544
- - 前端计划会记录实施步骤、样式策略、依赖选择、剩余风险和真实集成缺口,并在写入前检查组件选型依据。
406
+ - Console「模型与认证」页支持查看和编辑 LOW、MED、HIGH 三档 Pi 模型,保存前会校验配置,保存后会刷新模型状态和空闲会话。
407
+ - Operator Chat 支持扩展提供的 MCP 工具,侧栏会同时显示已配置服务和当前会话实际可用的工具。
408
+ - 文件预览改为侧边抽屉,可以切换排版预览和原始内容,不会打断当前对话。
409
+ - 前端计划会说明实施步骤、样式策略、依赖选择、剩余风险和真实集成缺口。
545
410
 
546
411
  ### 改进
547
412
 
548
- - 点击“停止”后对话会立即安静下来,并通过服务端状态对账确认最终结果,不再长时间停留在忙碌状态。
549
- - 对话底部持续显示上下文占用;历史工具调用按所属回合展示,不再错误挂到下一条消息下。
550
- - 文件树会在回合结束、页面回到前台或手动刷新时更新已展开目录,并支持直接引用整个目录。
551
- - Skills、Plugins 和 Models 的提示改为分类摘要,列表支持独立滚动,弹窗不会再被顶部导航遮挡。
552
- - Operator Chat 的恢复工具名称、参数和使用建议与实际能力保持一致,降低误选恢复方式的概率。
553
- - 前端结构化输出过长或格式不完整时会有针对性地重试,减少因输出截断导致的整轮失败。
413
+ - 点击“停止”后,对话会立即停止继续输出,并自动确认服务端的最终状态。
414
+ - 对话底部会持续显示上下文占用,历史工具调用也会归入正确的回合。
415
+ - 文件树会在回合结束、页面重新激活或手动刷新时更新已展开目录,并支持直接引用整个目录。
416
+ - Skills、Plugins 和 Models 改用分类摘要,长列表可以独立滚动,弹窗不会再被顶部导航遮挡。
417
+ - 恢复工具的名称、参数和使用建议与实际能力保持一致。
418
+ - 前端计划输出过长、格式不完整或数据不合规时,会说明原因并在限定次数内自动重试。
554
419
 
555
420
  ### 修复
556
421
 
557
- - 前端设计评审改为串行:先做秒级的确定性校验,不通过立即停止,不再白跑模型评审;通过后再由模型评审,且评审读到的一定是定稿后的完整契约,不会看到计划中间态。
558
- - 模型如实上报的设计偏差不再被前置校验一刀切阻断,改由设计评审裁决是否可接受;如实披露冲突的计划能正常通过,不会永久卡住。
559
- - 前端任务执行验证时写下的工具缓存不再被误判为越界修改;真正的产品文件越界修改仍会被拦截。
560
- - 在干净的 Git 仓库中,前端任务不再因对照基线为空而卡死;越界判定改为以完整工作区文件清单为基准,判断结果更稳定。
561
- - 前端任务的可写范围支持用通配符声明,系统会展开为具体文件,不再因路径不是具体文件而卡死;无法获取文件清单时仍会拒绝执行。
562
- - 前端计划使用目标项目已有的依赖、或明确声明不新增依赖时,不再被误报为未授权,真正未声明的新依赖仍会被拒绝;UI 状态检查只要求已声明的状态说明完整,不再强制补齐不存在的状态。
563
- - 纯逻辑的前端修改不再被要求补齐 loading/empty/error/disabled 四种 UI 状态,不会因此被判为不通过;一旦计划涉及界面状态或交互,仍要完整说明每个状态的归属。
564
- - 前端计划的必填字段补齐规则统一到一处,不再因分支规则不一致而失败;未声明界面绑定的验证目标不再被默认填上“成功/失败”状态,缺失命令时也不再套用默认命令。交互与界面状态都要有组件选型依据,缺失时带明确诊断重试。
565
- - 前端计划里的数据质量问题现在会在计划阶段就地重试修复:依赖授权、交互与界面状态归属等检查提前到计划节点执行,带明确诊断重试,而不是直接终止;最终校验仍然保留。
566
- - 前端计划输出格式不合规(例如引用了未声明的界面状态)时不再直接失败,而是带具体原因和修复指引自动重试,重试次数仍有上限。
567
- - 前端实现的门禁判定改为读取已提交的结构化结论,不再从计划文本里猜;结论缺失或格式不合规时给出明确阻断原因,不退回文本解析。设计评审不再预判验证命令的成败,命令结果以实际执行认定,这类疑虑只作非阻断提示。
568
- - Console 对话中的 Markdown 表格只约束横向滚动,不再截断纵向滚动链;鼠标或触控板停在表格上时仍可继续上下滚动对话。
569
- - 场景参数的确定性改写会做 Python 语法校验:Windows 上优先使用 python,如果只找到 Microsoft Store 的 python3 空壳则视为解释器不可用并自动回退,避免把合法改写误判为失败而回滚。
570
- - 前端计划修订节点允许只提交增量补丁和规范引用块,格式校验按补丁形态宽松判定,不再出现“要求提交完整契约”与“只提交变更”互相矛盾导致的循环失败;最终合并与校验仍由门禁统一负责。
571
- - 组件选型现在会强制说明依据:沿用已有组件必须给出 OpenSpec 规范引用,新增组件必须给出 PRD 引用;计划文档中小节为空时不再残留多余标题符号。
572
- - 已有的前端任务中,只要修订节点提交的是增量补丁,门禁会按内容自动合并并照常校验,不再因字段缺失卡在循环重试;补丁确实无法合并时会明确阻断,并提示重新生成执行流程。
573
-
574
- - 前端计划修订能正确识别增量补丁,不再因“提交完整契约”和“只提交变更”两套要求冲突而循环失败。
575
- - OpenSpec 引用必须来自真实读取记录;缺失、移动或未引用的规范会在写入前给出明确提示。
576
- - 初始化升级和并发写入不再把构建产物或临时文件误判为越界修改。
577
- - Console 的授权失效、模型配置错误和资源诊断会显示可操作的中文提示,不再直接暴露内部错误。
422
+ - 前端设计评审会先完成快速校验,再评审最终计划;无效计划会提前停止,评审也不会再读到中间版本。
423
+ - 已主动说明的设计偏差会交由设计评审判断,不再被前置检查直接拒绝。
424
+ - 前端任务不会再把工具缓存、构建产物或临时文件误判为越界修改;真正超出任务范围的产品文件仍会被拦截。
425
+ - 干净仓库和使用通配符声明可写范围的前端任务可以正常执行;无法确认文件范围时仍会停止并说明原因。
426
+ - 使用项目已有依赖或不新增依赖的计划不再被误报;只有实际涉及界面状态时,才要求说明相应状态和交互。
427
+ - 前端计划可以提交增量修订,并自动合并到最终契约;无法合并时会给出明确的重新生成建议。
428
+ - 项目规范引用必须来自真实读取记录,缺失、移动或未引用的规范会在写入前提示。
429
+ - 组件选择必须说明依据:沿用现有组件需引用项目规范,新增组件需引用需求。
430
+ - 验证命令是否成功以实际执行结果为准,设计评审中的预判只作为提示。
431
+ - Markdown 表格不会再截断对话的纵向滚动。
432
+ - Windows 上缺少可用的 `python3` 时,场景参数改写会自动尝试 `python`,避免合法修改被错误回滚。
433
+ - Console 会用可操作的中文说明授权失效、模型配置错误和资源问题,不再直接显示内部错误。
578
434
 
579
435
  ## [0.38.0] - 2026-08-17
580
436
 
581
437
  ### 重点更新
582
438
 
583
- - npm 发布改为 `next`、版本发布线和人工 `latest` 三个渠道,开发版本不再自动覆盖稳定版本。
439
+ - npm 发布分为 `next`、版本发布线和人工 `latest` 三个渠道,开发版本不再自动覆盖稳定版本。
584
440
 
585
441
  ### 新增
586
442
 
587
- - 主分支持续发布 npm `next`;发布分支维护对应版本线;`latest` 仅通过人工操作提升。
588
- - 新增双周发布列车,可从指定 `next` 的源码提交创建发布分支,并绑定最终 tarball 与源码提交。
443
+ - 主分支持续发布 npm `next`,发布分支维护对应版本线,`latest` 只通过人工操作提升。
444
+ - 新增双周发布列车,可以从指定 `next` 的源码提交创建发布分支,并确认最终安装包来自同一提交。
589
445
 
590
446
  ### 改进
591
447
 
592
- - 发布策略会同时校验分支、版本和目标渠道,不符合矩阵的发布会直接拒绝。
593
- - 发布中断后可从已有分支、版本或标签继续,恢复时会核对预期源码提交,避免发布错误制品。
448
+ - 发布前会同时校验分支、版本和目标渠道,不符合发布矩阵时会直接拒绝。
449
+ - 发布中断后可以从已有分支、版本或标签继续;恢复时会再次核对源码提交,避免发布错误制品。
594
450
 
595
451
  ## [0.37.1-beta.0] - 2026-08-16
596
452
 
597
453
  ### 重点更新
598
454
 
599
- - 后端测试流程完成一轮真实项目验证:覆盖 146 个测试点和 77 个场景组合,并执行 82 个真实 API 测试,需求、用例与执行结果能够完整对应。
455
+ - 后端测试可以更稳定地关联需求、测试点、生成用例和实际执行结果。
600
456
 
601
457
  ### 改进
602
458
 
603
- - 请求体分析可识别常见包装函数、数据构造器、补丁合并和参数工厂,减少把测试准备数据误判为接口请求的问题。
459
+ - 请求体分析可以识别常见包装函数、数据构造器、补丁合并和参数工厂,减少把准备数据误当成接口请求。
604
460
  - 场景参数校验增强了缺失值、空白、边界长度、非法枚举和辅助常量的识别,降低合法用例被误报的概率。
605
- - 生成的 Markdown 和 pytest 用例必须使用明确且唯一的测试点编号,并避免猜测接口未声明的 ID 类型或响应结构。
606
- - 修复流程会直接使用上游提供的测试文件路径,并要求产生真实改动,避免找错文件或“未修改却声称已修复”。
607
- - 请求与响应日志支持有界脱敏记录,清理阶段可处理常见网络异常,排查失败原因更加可靠。
608
- - 测试结果能够更稳定地区分控制器问题、生成用例问题和真实产品缺陷。
461
+ - 生成的 Markdown 和 pytest 用例必须使用明确且唯一的测试点编号,不会猜测接口未声明的 ID 类型或响应结构。
462
+ - 修复流程会使用上游提供的测试文件路径,并确认确实产生了修改,避免找错文件或空修复。
463
+ - 请求与响应日志支持有界脱敏记录,常见网络异常也能得到清理和说明。
464
+ - 测试结果可以更清楚地区分控制器问题、生成用例问题和真实产品缺陷。
609
465
 
610
466
  ## [0.37.0] - 2026-08-16
611
467
 
612
468
  ### 新增
613
469
 
614
470
  - Operator Chat 支持 Markdown 语法高亮、数学公式和 Mermaid 图表。
615
- - 新增 DAG 操作入口与产物栏,可从对话中查看运行、门禁和交付结果。
616
- - 对话中可查看上下文压缩进度、上下文占用和语义缓存状态。
617
- - 当前回合的思考、工具调用和过程事件会按实际发生顺序实时展示。
471
+ - 新增 DAG 操作入口和产物栏,可以从对话中查看运行、门禁和交付结果。
472
+ - 对话中可以查看上下文压缩进度、上下文占用和语义缓存状态。
473
+ - 当前回合的思考、工具调用和过程事件会按发生顺序实时展示。
618
474
 
619
475
  ### 改进
620
476
 
621
- - 重跑标题会显示运行轮次,运行中的会话和停止按钮具有明确的状态标记。
477
+ - 重跑任务会显示运行轮次,运行状态和停止按钮也有更明确的标记。
622
478
  - 错误提示改为自动消失的悬浮消息,不再挤压聊天区域。
623
479
 
624
480
  ### 修复
625
481
 
626
- - 长会话标题能够稳定显示完整悬浮提示,相关活动也能定位到对应 Operation。
627
- - 非规范的 `newTask` 编号会立即返回修正建议;PRD 标题和投影引用的识别更加宽容。
628
- - 中断能力通过 Worker 边界调用,减少运行时模块之间的耦合。
482
+ - 长会话标题可以稳定显示完整提示,相关活动也能定位到对应 Operation。
483
+ - 不规范的 `newTask` 编号会立即得到修正建议;更多常见的 PRD 标题和引用写法也能正常识别。
629
484
 
630
485
  ## [0.36.4-beta.0] - 2026-08-16
631
486
 
@@ -633,16 +488,16 @@
633
488
 
634
489
  ### 新增
635
490
 
636
- - 前端 DAG 会按模板、规则、主题和组件等用途整理项目规范,并把相关内容提供给契约、探索、计划和设计评审阶段。
491
+ - 前端 DAG 会按模板、规则、主题和组件等用途整理项目规范,并在契约、探索、计划和设计评审阶段提供相关内容。
637
492
 
638
493
  ### 修复
639
494
 
640
- - 有适用规范时,计划和评审必须真实读取并引用;缺失、移动或删除的规范会给出清晰诊断,而不再笼统提示“未读取”。
641
- - 规范发现不再静默截断前 40 个文件,同时会排除 loop-agent 自身的治理目录,减少漏读和误读。
495
+ - 有适用规范时,计划和评审必须真实读取并引用;规范缺失、移动或删除时会给出具体诊断。
496
+ - 项目规范不再只读取前 40 个文件,同时会排除 loop-agent 自身的治理目录,减少漏读和误读。
642
497
 
643
498
  ### 文档
644
499
 
645
- - 前端任务模板改为可执行的探索与失败处理说明,移除裸露的 `TODO` 和项目专属示例路径。
500
+ - 初始化生成的前端任务模板补充了可执行的探索和失败处理说明,不再包含待填写占位内容和项目专属示例路径。
646
501
 
647
502
  ## [0.36.3-beta.0] - 2026-08-16
648
503
 
@@ -650,30 +505,29 @@
650
505
 
651
506
  ### 新增
652
507
 
653
- - npm 发布分为 `next`、版本发布线和人工 `latest` 三个渠道,避免开发版本自动覆盖稳定版。
654
- - 新增双周发布列车,可从指定 `next` 的源码提交创建发布分支,并校验最终 tarball 与源码一致。
508
+ - npm 发布分为 `next`、版本发布线和人工 `latest` 三个渠道,避免开发版本自动覆盖稳定版本。
509
+ - 新增双周发布列车,可以从指定 `next` 的源码提交创建发布分支,并校验最终安装包与源码一致。
655
510
 
656
511
  ### 改进
657
512
 
658
- - 前端设计评审会同时考虑任务声明的 Mock 策略和验证命令,避免评审通过后才被写入门禁阻断。
659
- - 当任务提到 API 或 Mock、但契约缺少验证方式时,系统会在 DAG 生成阶段给出修复建议。
513
+ - 前端设计评审会同时考虑任务声明的 Mock 策略和验证命令,减少评审通过后才被执行门禁阻断的情况。
514
+ - 任务涉及 API 或 Mock、但契约缺少验证方式时,DAG 会在生成阶段给出修复建议。
660
515
 
661
516
  ## [0.36.2] - 2026-08-16
662
517
 
663
518
  ### 修复
664
519
 
665
- - 仓库治理检查不再把更新日志历史或 `.gitignore` 托管说明误认为非法任务池路径。
520
+ - 仓库治理检查不再把更新日志历史或 `.gitignore` 中的托管说明误认为非法任务池路径。
666
521
 
667
522
  ## [0.36.1] - 2026-08-16
668
523
 
669
524
  ### 新增
670
525
 
671
- - 支持协作式中断正在运行的 DAG:当前节点安全结束后停止后续调度,并提供后续恢复入口。
526
+ - 支持安全中断正在运行的 DAG:当前节点结束后停止后续调度,并保留恢复入口。
672
527
 
673
528
  ### 修复
674
529
 
675
- - 语义导入会在不同 Pi 模型档位之间重试,单次最长等待 300 秒,降低单一模型暂时不可用造成的阻塞。
676
- - 中断资格判断移到可观测层,避免破坏运行时模块边界。
530
+ - 语义导入会在不同 Pi 模型档位之间重试,单次最长等待 300 秒,减少单一模型暂时不可用造成的阻塞。
677
531
 
678
532
  ## [0.36.1-beta.0] - 2026-08-16
679
533
 
@@ -681,31 +535,31 @@
681
535
 
682
536
  ### 改进
683
537
 
684
- - 契约或计划输出过长时会自动重试为精简版本,只保留实施步骤、写入范围和验证命令等必要信息。
538
+ - 契约或计划输出过长时,会自动重试为精简版本,只保留实施步骤、写入范围和验证命令等必要信息。
685
539
 
686
540
  ## [0.36.0] - 2026-08-15
687
541
 
688
542
  ### 重点更新
689
543
 
690
- - Operator Chat 可以持续监督长时间运行的 DAG,并在失败后展示原因、恢复路径和可执行的后续动作。
691
- - 新增任务旅程卡,将任务创建、人工门禁、多次运行、失败和恢复记录集中展示。
544
+ - Operator Chat 可以持续监督长时间运行的 DAG,并在失败后展示原因、恢复路径和可执行的下一步。
545
+ - 新增任务旅程卡,集中展示任务创建、人工门禁、多次运行、失败和恢复记录。
692
546
 
693
547
  ### 新增
694
548
 
695
- - 会话删除改为列表内二次确认,减少误删并避免浏览器原生弹窗打断操作。
549
+ - 删除会话时会在列表内二次确认,减少误删,也不会再被浏览器原生弹窗打断。
696
550
  - 斜杠命令面板优化了卡片布局和键盘操作,在较小窗口中也能完整使用。
697
551
 
698
552
  ### 改进
699
553
 
700
- - 运行状态、恢复建议和关键操作统一使用自然中文,减少内部状态码直接暴露给用户。
701
- - 任务监督更能容忍短暂静默和状态延迟,降低正常运行被误判为中断的概率。
554
+ - 运行状态、恢复建议和关键操作统一使用自然中文,减少内部状态码直接暴露。
555
+ - 任务监督可以容忍短暂静默和状态延迟,降低正常运行被误判为中断的概率。
702
556
 
703
557
  ### 修复
704
558
 
705
- - 恢复流程可正确读取运行报告,不再因响应结构差异误判为无法恢复。
706
- - 变更范围以 Git 工作区的真实差异为准,不再根据模型回复推测是否修改过文件。
707
- - PRD 验收标题支持更多常见写法;目录文档更新时会检查索引是否同步。
708
- - Operator 自定义工具可正常进入 Pi SDK 会话,命令面板的高度和降级提示也更加稳定。
559
+ - 恢复流程可以正确读取运行报告,不再因响应格式差异误判为无法恢复。
560
+ - 变更范围以 Git 工作区的真实差异为准,不再根据模型回复推测。
561
+ - PRD 验收标题支持更多常见写法,目录文档更新时也会检查索引是否同步。
562
+ - Operator 自定义工具可以正常用于 Pi 会话,命令面板高度和降级提示也更加稳定。
709
563
 
710
564
  ## 历史版本
711
565