@tea-agent/loop-agent 0.1.0-fe-test.0

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 (1050) hide show
  1. package/AGENTS.md +114 -0
  2. package/CHANGELOG.md +2283 -0
  3. package/README.md +177 -0
  4. package/bin/agent-worker.js +22 -0
  5. package/bin/loop-agent.js +57 -0
  6. package/dist/adapters/aimax.js +91 -0
  7. package/dist/adapters/context.js +32 -0
  8. package/dist/adapters/index.js +29 -0
  9. package/dist/adapters/loop-agent.js +192 -0
  10. package/dist/adapters/types.js +1 -0
  11. package/dist/application/context-usage/skill-resolution-stats.js +263 -0
  12. package/dist/application/dag/args.js +486 -0
  13. package/dist/application/dag/generate-task-dag.js +408 -0
  14. package/dist/application/dag/report-dag.js +14 -0
  15. package/dist/application/dag/run-dag.js +109 -0
  16. package/dist/application/dag/validate-dag.js +166 -0
  17. package/dist/application/evaluation/alias.js +184 -0
  18. package/dist/application/evaluation/budget.js +192 -0
  19. package/dist/application/evaluation/campaign-hash.js +47 -0
  20. package/dist/application/evaluation/campaign-matrix.js +372 -0
  21. package/dist/application/evaluation/campaign-scorecard.js +135 -0
  22. package/dist/application/evaluation/campaign.js +370 -0
  23. package/dist/application/evaluation/candidate-hash.js +75 -0
  24. package/dist/application/evaluation/candidate.js +69 -0
  25. package/dist/application/evaluation/corpus-hash.js +38 -0
  26. package/dist/application/evaluation/corpus.js +56 -0
  27. package/dist/application/evaluation/experiment.js +294 -0
  28. package/dist/application/evaluation/ignition.js +198 -0
  29. package/dist/application/evaluation/integrity-audit.js +162 -0
  30. package/dist/application/evaluation/outer-loop.js +132 -0
  31. package/dist/application/evaluation/pi-cell-executor.js +39 -0
  32. package/dist/application/evaluation/private-verifier.js +46 -0
  33. package/dist/application/evaluation/promotion-policy.js +151 -0
  34. package/dist/application/evaluation/proposer.js +98 -0
  35. package/dist/application/evaluation/replay.js +289 -0
  36. package/dist/application/evaluation/types.js +652 -0
  37. package/dist/application/loop/run-action.js +19 -0
  38. package/dist/application/task-lifecycle/advance.js +1204 -0
  39. package/dist/application/task-lifecycle/gates.js +130 -0
  40. package/dist/application/task-lifecycle/index.js +7 -0
  41. package/dist/application/task-lifecycle/observe.js +424 -0
  42. package/dist/application/task-lifecycle/plan-transitions.js +251 -0
  43. package/dist/application/task-lifecycle/recommendations.js +180 -0
  44. package/dist/application/task-lifecycle/record.js +73 -0
  45. package/dist/application/task-lifecycle/types.js +1 -0
  46. package/dist/build-stamp.json +6 -0
  47. package/dist/cli/catalog.js +24 -0
  48. package/dist/cli/command-definitions.js +659 -0
  49. package/dist/cli/help.js +56 -0
  50. package/dist/cli/index.js +5 -0
  51. package/dist/cli/program.js +647 -0
  52. package/dist/cli/router.js +13 -0
  53. package/dist/cli/update/init-surface-notifier.js +167 -0
  54. package/dist/cli/update/notifier.js +117 -0
  55. package/dist/cli/update/npm-client.js +151 -0
  56. package/dist/cli/update/policy.js +92 -0
  57. package/dist/cli/update/runtime-activity.js +29 -0
  58. package/dist/cli/update/state.js +68 -0
  59. package/dist/cli-governance/active-residue-check.js +38 -0
  60. package/dist/cli.js +57 -0
  61. package/dist/commands/client-recovery.js +1373 -0
  62. package/dist/commands/closeout.js +13 -0
  63. package/dist/commands/coverage-audit.js +14 -0
  64. package/dist/commands/coverage-report.js +50 -0
  65. package/dist/commands/cursor-prompt.js +182 -0
  66. package/dist/commands/dag-approve.js +142 -0
  67. package/dist/commands/dag-final-verification.js +76 -0
  68. package/dist/commands/dag-init-hybrid.js +57 -0
  69. package/dist/commands/dag-reconcile-run.js +5 -0
  70. package/dist/commands/dag-reconcile-tasks.js +51 -0
  71. package/dist/commands/dag-reject.js +91 -0
  72. package/dist/commands/dag-report.js +76 -0
  73. package/dist/commands/dag-request-interrupt.js +20 -0
  74. package/dist/commands/dag-rerun-task.js +19 -0
  75. package/dist/commands/dag-rerun.js +111 -0
  76. package/dist/commands/dag-resume.js +35 -0
  77. package/dist/commands/dag-run-task.js +12 -0
  78. package/dist/commands/dag-validate.js +20 -0
  79. package/dist/commands/dag-workflow-compile.js +91 -0
  80. package/dist/commands/dag-workflow-plan.js +130 -0
  81. package/dist/commands/dag-workflow-validate.js +66 -0
  82. package/dist/commands/delegate.js +130 -0
  83. package/dist/commands/docs-archive.js +5 -0
  84. package/dist/commands/docs-audit.js +6 -0
  85. package/dist/commands/doctor.js +283 -0
  86. package/dist/commands/eval.js +1398 -0
  87. package/dist/commands/examples.js +90 -0
  88. package/dist/commands/goal.js +92 -0
  89. package/dist/commands/handoff-check.js +5 -0
  90. package/dist/commands/harvest.js +44 -0
  91. package/dist/commands/import-prd.js +81 -0
  92. package/dist/commands/init-upgrade.js +3085 -0
  93. package/dist/commands/init.js +3630 -0
  94. package/dist/commands/inspect.js +11 -0
  95. package/dist/commands/instructions.js +223 -0
  96. package/dist/commands/knowledge.js +162 -0
  97. package/dist/commands/loop-benchmark.js +72 -0
  98. package/dist/commands/loop.js +251 -0
  99. package/dist/commands/new-task.js +5 -0
  100. package/dist/commands/operator.js +44 -0
  101. package/dist/commands/pi-prompt.js +174 -0
  102. package/dist/commands/pi-reuse-benchmark.js +153 -0
  103. package/dist/commands/plan-list.js +5 -0
  104. package/dist/commands/plan.js +50 -0
  105. package/dist/commands/promote-run.js +29 -0
  106. package/dist/commands/reference-index.js +16 -0
  107. package/dist/commands/run-dag-progress.js +123 -0
  108. package/dist/commands/run-dag.js +22 -0
  109. package/dist/commands/spine.js +38 -0
  110. package/dist/commands/stats.js +113 -0
  111. package/dist/commands/status.js +57 -0
  112. package/dist/commands/study-init.js +192 -0
  113. package/dist/commands/task-advance.js +366 -0
  114. package/dist/commands/task-contract.js +269 -0
  115. package/dist/commands/task-source-prepare.js +479 -0
  116. package/dist/commands/task-status.js +133 -0
  117. package/dist/commands/workflow.js +259 -0
  118. package/dist/commands/worktree-create.js +31 -0
  119. package/dist/commands/worktree-list.js +5 -0
  120. package/dist/commands/worktree-remove.js +26 -0
  121. package/dist/executors/config-core.js +5 -0
  122. package/dist/executors/config.js +2 -0
  123. package/dist/executors/dag-pi-executor.js +1277 -0
  124. package/dist/executors/dag-static-executor.js +42 -0
  125. package/dist/executors/dag.js +3 -0
  126. package/dist/executors/index.js +6 -0
  127. package/dist/executors/model-routing.js +71 -0
  128. package/dist/executors/pi-defaults.js +9 -0
  129. package/dist/executors/pi-event-serializer.js +65 -0
  130. package/dist/executors/pi-executor.js +981 -0
  131. package/dist/executors/pi-playwright-cli-tool.js +1006 -0
  132. package/dist/executors/pi-prompt-transport.js +198 -0
  133. package/dist/executors/pi-reuse-benchmark.js +316 -0
  134. package/dist/executors/pi-runtime-reuse.js +29 -0
  135. package/dist/executors/pi-sdk-executor.js +722 -0
  136. package/dist/executors/pi-sdk.js +1 -0
  137. package/dist/executors/pi-writer-tool-policy.js +266 -0
  138. package/dist/executors/pi.js +3 -0
  139. package/dist/executors/playwright-cli-launcher.js +63 -0
  140. package/dist/executors/process-tree.js +33 -0
  141. package/dist/executors/shell-executor.js +3055 -0
  142. package/dist/executors/shell-presets.js +99 -0
  143. package/dist/executors/shell-verification.js +262 -0
  144. package/dist/executors/shell-write-guard.js +543 -0
  145. package/dist/executors/shell.js +3 -0
  146. package/dist/executors/static.js +1 -0
  147. package/dist/governance/checks.js +437 -0
  148. package/dist/governance/document-index-closure.js +164 -0
  149. package/dist/governance/exec-plans.js +549 -0
  150. package/dist/governance/harness.js +9 -0
  151. package/dist/governance/index.js +3 -0
  152. package/dist/governance/manifest-types.js +254 -0
  153. package/dist/governance/manifest.js +2 -0
  154. package/dist/governance/path-guard.js +69 -0
  155. package/dist/governance/path-guards.js +2 -0
  156. package/dist/governance/profiles.js +3 -0
  157. package/dist/governance/requirement-coverage.js +425 -0
  158. package/dist/governance/skill-safety.js +135 -0
  159. package/dist/governance/spine-audit.js +155 -0
  160. package/dist/infrastructure/evaluation/alias-store.js +199 -0
  161. package/dist/infrastructure/evaluation/campaign-store.js +154 -0
  162. package/dist/infrastructure/evaluation/candidate-store.js +439 -0
  163. package/dist/infrastructure/evaluation/corpus-store.js +181 -0
  164. package/dist/infrastructure/evaluation/experiment-store.js +124 -0
  165. package/dist/infrastructure/evaluation/ignition-store.js +82 -0
  166. package/dist/infrastructure/evaluation/private-verifier-store.js +145 -0
  167. package/dist/infrastructure/evaluation/proposer-store.js +78 -0
  168. package/dist/infrastructure/evaluation/store.js +40 -0
  169. package/dist/infrastructure/harness/active-residue-policy.js +73 -0
  170. package/dist/infrastructure/harness/artifact-store.js +72 -0
  171. package/dist/infrastructure/harness/atomic-write.js +50 -0
  172. package/dist/infrastructure/harness/completed-facts-guard.js +40 -0
  173. package/dist/infrastructure/harness/loop-action-store.js +20 -0
  174. package/dist/infrastructure/harness/loop-store.js +41 -0
  175. package/dist/infrastructure/harness/one-shot-run-store.js +94 -0
  176. package/dist/infrastructure/harness/task-store.js +108 -0
  177. package/dist/records/closeout.js +2 -0
  178. package/dist/records/harvest.js +215 -0
  179. package/dist/records/index.js +3 -0
  180. package/dist/records/one-shot-runs.js +386 -0
  181. package/dist/records/promotion.js +200 -0
  182. package/dist/shared/artifacts-core.js +107 -0
  183. package/dist/shared/artifacts.js +2 -0
  184. package/dist/shared/context-files.js +32 -0
  185. package/dist/shared/context.js +2 -0
  186. package/dist/shared/copy-dir.js +17 -0
  187. package/dist/shared/git-progress.js +172 -0
  188. package/dist/shared/index.js +5 -0
  189. package/dist/shared/logger.js +17 -0
  190. package/dist/shared/one-shot-prompt-args.js +98 -0
  191. package/dist/shared/openspec-spec.js +125 -0
  192. package/dist/shared/operator/capabilities.js +2659 -0
  193. package/dist/shared/operator/command-lifecycle.js +94 -0
  194. package/dist/shared/operator/envelope.js +59 -0
  195. package/dist/shared/operator/index.js +5 -0
  196. package/dist/shared/operator/registry.js +38 -0
  197. package/dist/shared/operator/types.js +5 -0
  198. package/dist/shared/output-truncation.js +37 -0
  199. package/dist/shared/package-metadata.js +530 -0
  200. package/dist/shared/path-refs.js +31 -0
  201. package/dist/shared/pi-retry-settings.js +23 -0
  202. package/dist/shared/playwright-cli-command-policy.js +41 -0
  203. package/dist/shared/preview.js +39 -0
  204. package/dist/shared/prompts.js +26 -0
  205. package/dist/shared/reference-context.js +264 -0
  206. package/dist/shared/resilient-git.js +133 -0
  207. package/dist/shared/runtime-activity.js +6 -0
  208. package/dist/shared/timeout-policy.js +24 -0
  209. package/dist/shared/timeout.js +1 -0
  210. package/dist/shared/types.js +5 -0
  211. package/dist/sidecars/cursor-prompt/executor.js +428 -0
  212. package/dist/sidecars/cursor-prompt/index.js +3 -0
  213. package/dist/sidecars/cursor-prompt/stream.js +121 -0
  214. package/dist/task/config-types.js +235 -0
  215. package/dist/task/config.js +2 -0
  216. package/dist/task/contract/adopt.js +166 -0
  217. package/dist/task/contract/apply.js +326 -0
  218. package/dist/task/contract/canonicalize.js +60 -0
  219. package/dist/task/contract/constants.js +30 -0
  220. package/dist/task/contract/diff.js +177 -0
  221. package/dist/task/contract/hash.js +42 -0
  222. package/dist/task/contract/import-revision.js +96 -0
  223. package/dist/task/contract/index.js +17 -0
  224. package/dist/task/contract/journal.js +155 -0
  225. package/dist/task/contract/lock.js +153 -0
  226. package/dist/task/contract/observe.js +296 -0
  227. package/dist/task/contract/paths.js +19 -0
  228. package/dist/task/contract/project.js +185 -0
  229. package/dist/task/contract/recover.js +312 -0
  230. package/dist/task/contract/request-ledger.js +37 -0
  231. package/dist/task/contract/schema.js +153 -0
  232. package/dist/task/contract/transaction.js +160 -0
  233. package/dist/task/contract/types.js +1 -0
  234. package/dist/task/contract/validate-draft.js +106 -0
  235. package/dist/task/dag-source-paths.js +50 -0
  236. package/dist/task/delegate.js +208 -0
  237. package/dist/task/frontend-preflight.js +131 -0
  238. package/dist/task/frontend-project-capability.js +570 -0
  239. package/dist/task/goal-audit.js +51 -0
  240. package/dist/task/goal-policy.js +8 -0
  241. package/dist/task/goal.js +3 -0
  242. package/dist/task/ids.js +1 -0
  243. package/dist/task/index.js +12 -0
  244. package/dist/task/lifecycle.js +1 -0
  245. package/dist/task/operator/capabilities.js +6 -0
  246. package/dist/task/operator/envelope.js +2 -0
  247. package/dist/task/operator/index.js +5 -0
  248. package/dist/task/operator/registry.js +2 -0
  249. package/dist/task/operator/types.js +1 -0
  250. package/dist/task/paths.js +1 -0
  251. package/dist/task/read-model.js +140 -0
  252. package/dist/task/runtime.js +708 -0
  253. package/dist/task/source-prepare/artifact-meta.js +137 -0
  254. package/dist/task/source-prepare/build-draft.js +232 -0
  255. package/dist/task/source-prepare/completeness.js +248 -0
  256. package/dist/task/source-prepare/index.js +10 -0
  257. package/dist/task/source-prepare/parse-intent.js +496 -0
  258. package/dist/task/source-prepare/path-policy.js +197 -0
  259. package/dist/task/source-prepare/placeholder-paths.js +77 -0
  260. package/dist/task/source-prepare/prepare.js +920 -0
  261. package/dist/task/source-prepare/reference-integrity.js +290 -0
  262. package/dist/task/source-prepare/semantic-intake.js +717 -0
  263. package/dist/task/source-prepare/types.js +7 -0
  264. package/dist/task/source-references.js +228 -0
  265. package/dist/task/source-state.js +1 -0
  266. package/dist/task/state.js +41 -0
  267. package/dist/task/subagent-guidance.js +1 -0
  268. package/dist/task/task-demand-routing.js +443 -0
  269. package/dist/task/workflow-state-types.js +92 -0
  270. package/dist/task/worktree-cleanup.js +140 -0
  271. package/dist/task/worktree.js +388 -0
  272. package/dist/verification/maven/cache.js +142 -0
  273. package/dist/verification/maven/index.js +120 -0
  274. package/dist/verification/maven/plan-commands.js +421 -0
  275. package/dist/verification/maven/pom-static.js +136 -0
  276. package/dist/verification/maven/scope-resolve.js +153 -0
  277. package/dist/verification/maven/stale.js +130 -0
  278. package/dist/verification/maven/types.js +23 -0
  279. package/dist/verification/maven/workspace-graph.js +322 -0
  280. package/dist/worker/cli.js +957 -0
  281. package/dist/worker/closeout/apply.js +73 -0
  282. package/dist/worker/closeout/preview.js +30 -0
  283. package/dist/worker/console/app-data.js +316 -0
  284. package/dist/worker/console/chat/artifact-card.js +30 -0
  285. package/dist/worker/console/chat/assistant-content.js +121 -0
  286. package/dist/worker/console/chat/chat-event-store.js +981 -0
  287. package/dist/worker/console/chat/chat-ui-policy.js +25 -0
  288. package/dist/worker/console/chat/compaction-errors.js +64 -0
  289. package/dist/worker/console/chat/composer-draft-store.js +45 -0
  290. package/dist/worker/console/chat/context-panel.js +54 -0
  291. package/dist/worker/console/chat/contract-apply-receipt-store.js +174 -0
  292. package/dist/worker/console/chat/explore-tools.js +299 -0
  293. package/dist/worker/console/chat/human-gate-card.js +45 -0
  294. package/dist/worker/console/chat/interview-adapter.js +149 -0
  295. package/dist/worker/console/chat/mcp-inventory.js +221 -0
  296. package/dist/worker/console/chat/model-resolver.js +215 -0
  297. package/dist/worker/console/chat/operation-card.js +92 -0
  298. package/dist/worker/console/chat/pi-console-config.js +376 -0
  299. package/dist/worker/console/chat/pi-runtime.js +2446 -0
  300. package/dist/worker/console/chat/repo-browser.js +140 -0
  301. package/dist/worker/console/chat/repo-walk.js +125 -0
  302. package/dist/worker/console/chat/resource-loader.js +59 -0
  303. package/dist/worker/console/chat/resource-preferences-store.js +152 -0
  304. package/dist/worker/console/chat/routes.js +3137 -0
  305. package/dist/worker/console/chat/runtime-context.js +102 -0
  306. package/dist/worker/console/chat/runtime-selection.js +96 -0
  307. package/dist/worker/console/chat/semantic-activity.js +489 -0
  308. package/dist/worker/console/chat/session-store.js +484 -0
  309. package/dist/worker/console/chat/shortcuts.js +217 -0
  310. package/dist/worker/console/chat/tool-adapter.js +131 -0
  311. package/dist/worker/console/chat/tool-preview.js +247 -0
  312. package/dist/worker/console/chat/tools.js +212 -0
  313. package/dist/worker/console/chat/turn-execution-registry.js +82 -0
  314. package/dist/worker/console/chat/turn-process.js +346 -0
  315. package/dist/worker/console/chat/usage.js +165 -0
  316. package/dist/worker/console/chat/workspace-landing.js +103 -0
  317. package/dist/worker/console/dag-confirmation.js +347 -0
  318. package/dist/worker/console/dag-execution-receipt.js +393 -0
  319. package/dist/worker/console/doctor.js +230 -0
  320. package/dist/worker/console/draft-store.js +158 -0
  321. package/dist/worker/console/harness-pi-model-matrix.js +137 -0
  322. package/dist/worker/console/human-gate-token.js +130 -0
  323. package/dist/worker/console/index.js +17 -0
  324. package/dist/worker/console/inspect-split.js +82 -0
  325. package/dist/worker/console/interview/assessment.js +67 -0
  326. package/dist/worker/console/interview/grill-me.js +277 -0
  327. package/dist/worker/console/interview/session.js +100 -0
  328. package/dist/worker/console/interview/tools.js +109 -0
  329. package/dist/worker/console/loopback.js +16 -0
  330. package/dist/worker/console/mutation-gate-receipt-store.js +184 -0
  331. package/dist/worker/console/night-aux-ticker.js +146 -0
  332. package/dist/worker/console/observe-health-match.js +179 -0
  333. package/dist/worker/console/observe-link.js +42 -0
  334. package/dist/worker/console/open-browser.js +134 -0
  335. package/dist/worker/console/operation-run-facts.js +190 -0
  336. package/dist/worker/console/operation-runner.js +353 -0
  337. package/dist/worker/console/operation-sse.js +184 -0
  338. package/dist/worker/console/operation-store.js +169 -0
  339. package/dist/worker/console/operation-wait.js +355 -0
  340. package/dist/worker/console/operator-actions.js +3768 -0
  341. package/dist/worker/console/operator-selection.js +105 -0
  342. package/dist/worker/console/operator-surface-health.js +24 -0
  343. package/dist/worker/console/operator-user-error.js +45 -0
  344. package/dist/worker/console/pi-readiness.js +288 -0
  345. package/dist/worker/console/prd-identity.js +102 -0
  346. package/dist/worker/console/prd-intake-bridge.js +441 -0
  347. package/dist/worker/console/prd-reference-discovery.js +124 -0
  348. package/dist/worker/console/recovery-cta.js +320 -0
  349. package/dist/worker/console/recovery-error-copy.js +198 -0
  350. package/dist/worker/console/recovery-selection.js +107 -0
  351. package/dist/worker/console/repo-fingerprint.js +35 -0
  352. package/dist/worker/console/resolve-dag-run-for-task.js +115 -0
  353. package/dist/worker/console/resource-loader.js +95 -0
  354. package/dist/worker/console/routes.js +475 -0
  355. package/dist/worker/console/security.js +170 -0
  356. package/dist/worker/console/server.js +357 -0
  357. package/dist/worker/console/sibling-controller.js +33 -0
  358. package/dist/worker/console/static/assets/abnfDiagram-N423BO3Z-BmOEx0gA.js +1 -0
  359. package/dist/worker/console/static/assets/arc-BGiVVe8b.js +1 -0
  360. package/dist/worker/console/static/assets/architectureDiagram-T3A2C74G-nDdu4rgJ.js +36 -0
  361. package/dist/worker/console/static/assets/blockDiagram-VBNYF7ZC-Bb5u0BWf.js +132 -0
  362. package/dist/worker/console/static/assets/c4Diagram-5PPSVZJV-BlhC0j94.js +10 -0
  363. package/dist/worker/console/static/assets/channel-Tl-FkUqr.js +1 -0
  364. package/dist/worker/console/static/assets/chunk-2GRJ4B5K-Ai8_qQXI.js +1 -0
  365. package/dist/worker/console/static/assets/chunk-2Q5K7J3B-B9gyCjqX.js +1 -0
  366. package/dist/worker/console/static/assets/chunk-5RXB4S5H-Bzbj3zGH.js +231 -0
  367. package/dist/worker/console/static/assets/chunk-5VM5RSS4-BT415PvT.js +15 -0
  368. package/dist/worker/console/static/assets/chunk-6Q2QTUOP-D_A5_5QL.js +88 -0
  369. package/dist/worker/console/static/assets/chunk-GF5L2VYU-srJkaP3f.js +206 -0
  370. package/dist/worker/console/static/assets/chunk-JWPE2WC7-UYGvEP4l.js +1 -0
  371. package/dist/worker/console/static/assets/chunk-KBJHAD2P-B8luBrrz.js +1 -0
  372. package/dist/worker/console/static/assets/chunk-RYQCIY6F-DN7wXZSq.js +1 -0
  373. package/dist/worker/console/static/assets/chunk-XXDRQBXY-DXKyMuKS.js +1 -0
  374. package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-BaehtRk4.js +1 -0
  375. package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-BaehtRk4.js +1 -0
  376. package/dist/worker/console/static/assets/cose-bilkent-JH36ORCC-dqvoynXj.js +1 -0
  377. package/dist/worker/console/static/assets/cynefin-VYW2F7L2--PcyL34A.js +166 -0
  378. package/dist/worker/console/static/assets/cynefinDiagram-MW4NZA55-DvWs_hTY.js +62 -0
  379. package/dist/worker/console/static/assets/cytoscape.esm-yzknjiTM.js +321 -0
  380. package/dist/worker/console/static/assets/dagre-VZM6K2ZE-DxeIxbyO.js +4 -0
  381. package/dist/worker/console/static/assets/defaultLocale-DX6XiGOO.js +1 -0
  382. package/dist/worker/console/static/assets/diagram-7IWD3JNH-DPCG61Of.js +30 -0
  383. package/dist/worker/console/static/assets/diagram-B4RE2ZJO-CmuU50-U.js +3 -0
  384. package/dist/worker/console/static/assets/diagram-LBJQPF4R-B61XLD_v.js +24 -0
  385. package/dist/worker/console/static/assets/diagram-Q27KOJAE-BB7HTRRY.js +24 -0
  386. package/dist/worker/console/static/assets/diagram-UB23O5K3-DvkboAIp.js +41 -0
  387. package/dist/worker/console/static/assets/ebnfDiagram-BXEA7PRR-BdJ_y1fL.js +1 -0
  388. package/dist/worker/console/static/assets/erDiagram-JOGREHBK-9bUBZTRi.js +85 -0
  389. package/dist/worker/console/static/assets/flowDiagram-UKHOOZJN-Dw4L4RBa.js +156 -0
  390. package/dist/worker/console/static/assets/ganttDiagram-PKOTCBZU-Jr82N_QP.js +292 -0
  391. package/dist/worker/console/static/assets/gitGraphDiagram-DS77QQ5N-DAz9wFLr.js +106 -0
  392. package/dist/worker/console/static/assets/graph-DOmOIIwC.js +1 -0
  393. package/dist/worker/console/static/assets/index-B7Y-0g3J.css +1 -0
  394. package/dist/worker/console/static/assets/index-DkCrqaYg.js +325 -0
  395. package/dist/worker/console/static/assets/infoDiagram-6WML65LV-CBB5Np7y.js +2 -0
  396. package/dist/worker/console/static/assets/init-Gi6I4Gst.js +1 -0
  397. package/dist/worker/console/static/assets/ishikawaDiagram-WSZJBQD7-D8IOp94y.js +70 -0
  398. package/dist/worker/console/static/assets/journeyDiagram-NVQOT4AX-Dgd3AHGG.js +139 -0
  399. package/dist/worker/console/static/assets/kanban-definition-27J2QSJJ-BmYOxLE9.js +89 -0
  400. package/dist/worker/console/static/assets/layout-D-LzfAck.js +1 -0
  401. package/dist/worker/console/static/assets/linear-DfYTEF6J.js +1 -0
  402. package/dist/worker/console/static/assets/map-DxJ2ADlA.js +1 -0
  403. package/dist/worker/console/static/assets/mermaid.core-BjuFPRqa.js +308 -0
  404. package/dist/worker/console/static/assets/mindmap-definition-FAOFIHXS-CLyUViGd.js +96 -0
  405. package/dist/worker/console/static/assets/ordinal-Cboi1Yqb.js +1 -0
  406. package/dist/worker/console/static/assets/pegDiagram-VL7TDLO6-BvX2Di4-.js +1 -0
  407. package/dist/worker/console/static/assets/pieDiagram-7S7Q4E2Y-BFj0_OLv.js +39 -0
  408. package/dist/worker/console/static/assets/quadrantDiagram-CIZ2JOQS-BIUrD_hx.js +7 -0
  409. package/dist/worker/console/static/assets/railroadDiagram-AXF67PYL-CHBB48fj.js +1 -0
  410. package/dist/worker/console/static/assets/requirementDiagram-LRYGKXZP-sJrYw2Sf.js +84 -0
  411. package/dist/worker/console/static/assets/sankeyDiagram-W5VNT64P-BzHH6fPR.js +40 -0
  412. package/dist/worker/console/static/assets/sequenceDiagram-SI44F4Z6-7QCnelCt.js +162 -0
  413. package/dist/worker/console/static/assets/sizeCapture-X5ZJPWSS-sDYSxn72.js +1 -0
  414. package/dist/worker/console/static/assets/stateDiagram-OKZ733FA-XpiUdwzm.js +1 -0
  415. package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-eEhq2A8Y.js +1 -0
  416. package/dist/worker/console/static/assets/swimlanes-SLNWSIFB-DvqgNPzD.js +2 -0
  417. package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-la8AC7fo.js +8 -0
  418. package/dist/worker/console/static/assets/timeline-definition-Z64GVDOM-2TyOYNx0.js +120 -0
  419. package/dist/worker/console/static/assets/vennDiagram-T6HMQDX7-B-nM6wM2.js +34 -0
  420. package/dist/worker/console/static/assets/wardleyDiagram-T6FBY63Y-B86wPdbr.js +78 -0
  421. package/dist/worker/console/static/assets/xychartDiagram-ELKLHX3M-Dr1C4AQz.js +7 -0
  422. package/dist/worker/console/static/favicon.svg +37 -0
  423. package/dist/worker/console/static/fonts/katex/KaTeX_AMS-Regular.woff2 +0 -0
  424. package/dist/worker/console/static/fonts/katex/KaTeX_Caligraphic-Bold.woff2 +0 -0
  425. package/dist/worker/console/static/fonts/katex/KaTeX_Caligraphic-Regular.woff2 +0 -0
  426. package/dist/worker/console/static/fonts/katex/KaTeX_Fraktur-Bold.woff2 +0 -0
  427. package/dist/worker/console/static/fonts/katex/KaTeX_Fraktur-Regular.woff2 +0 -0
  428. package/dist/worker/console/static/fonts/katex/KaTeX_Main-Bold.woff2 +0 -0
  429. package/dist/worker/console/static/fonts/katex/KaTeX_Main-BoldItalic.woff2 +0 -0
  430. package/dist/worker/console/static/fonts/katex/KaTeX_Main-Italic.woff2 +0 -0
  431. package/dist/worker/console/static/fonts/katex/KaTeX_Main-Regular.woff2 +0 -0
  432. package/dist/worker/console/static/fonts/katex/KaTeX_Math-BoldItalic.woff2 +0 -0
  433. package/dist/worker/console/static/fonts/katex/KaTeX_Math-Italic.woff2 +0 -0
  434. package/dist/worker/console/static/fonts/katex/KaTeX_SansSerif-Bold.woff2 +0 -0
  435. package/dist/worker/console/static/fonts/katex/KaTeX_SansSerif-Italic.woff2 +0 -0
  436. package/dist/worker/console/static/fonts/katex/KaTeX_SansSerif-Regular.woff2 +0 -0
  437. package/dist/worker/console/static/fonts/katex/KaTeX_Script-Regular.woff2 +0 -0
  438. package/dist/worker/console/static/fonts/katex/KaTeX_Size1-Regular.woff2 +0 -0
  439. package/dist/worker/console/static/fonts/katex/KaTeX_Size2-Regular.woff2 +0 -0
  440. package/dist/worker/console/static/fonts/katex/KaTeX_Size3-Regular.woff2 +0 -0
  441. package/dist/worker/console/static/fonts/katex/KaTeX_Size4-Regular.woff2 +0 -0
  442. package/dist/worker/console/static/fonts/katex/KaTeX_Typewriter-Regular.woff2 +0 -0
  443. package/dist/worker/console/static/index.html +15 -0
  444. package/dist/worker/console/static-src/app/console-types.js +184 -0
  445. package/dist/worker/console/static-src/app/useConsoleShell.js +101 -0
  446. package/dist/worker/console/static-src/app/useOperatorActions.js +324 -0
  447. package/dist/worker/console/static-src/app/usePrdImport.js +172 -0
  448. package/dist/worker/console/static-src/app/useRecoveryActions.js +289 -0
  449. package/dist/worker/console/static-src/app/useRecoveryConsole.js +425 -0
  450. package/dist/worker/console/static-src/app/useTaskWizard.js +296 -0
  451. package/dist/worker/console/static-src/chat-markdown-security.js +38 -0
  452. package/dist/worker/console/static-src/chat-view-types.js +2 -0
  453. package/dist/worker/console/static-src/night/night-types.js +24 -0
  454. package/dist/worker/console/static-src/night/useNightBoard.js +94 -0
  455. package/dist/worker/console/static-src/night/useNightWizard.js +171 -0
  456. package/dist/worker/console/static-src/night-prepare-result.js +118 -0
  457. package/dist/worker/console/static-src/operator-chat/activity-journey.js +125 -0
  458. package/dist/worker/console/static-src/operator-chat/activity-rail-presentation.js +73 -0
  459. package/dist/worker/console/static-src/operator-chat/activity-references.js +20 -0
  460. package/dist/worker/console/static-src/operator-chat/chat-sse-events.js +420 -0
  461. package/dist/worker/console/static-src/operator-chat/format.js +71 -0
  462. package/dist/worker/console/static-src/operator-chat/landing-density.js +23 -0
  463. package/dist/worker/console/static-src/operator-chat/mutation-gate.js +45 -0
  464. package/dist/worker/console/static-src/operator-chat/refs.js +86 -0
  465. package/dist/worker/console/static-src/operator-chat/resource-auto-invocation.js +91 -0
  466. package/dist/worker/console/static-src/operator-chat/resource-diagnostics.js +204 -0
  467. package/dist/worker/console/static-src/operator-chat/runtime-snapshot-store.js +257 -0
  468. package/dist/worker/console/static-src/operator-chat/session-title-watcher.js +128 -0
  469. package/dist/worker/console/static-src/operator-chat/sidebar-split.js +90 -0
  470. package/dist/worker/console/static-src/operator-chat/slash-palette-layout.js +24 -0
  471. package/dist/worker/console/static-src/operator-chat/slash-palette-nav.js +141 -0
  472. package/dist/worker/console/static-src/operator-chat/spatial-overlay.js +38 -0
  473. package/dist/worker/console/static-src/operator-chat/tools-catalog.js +77 -0
  474. package/dist/worker/console/static-src/operator-chat/turn-stream-controller.js +690 -0
  475. package/dist/worker/console/static-src/operator-chat/turn-submission.js +158 -0
  476. package/dist/worker/console/static-src/operator-chat/types.js +1 -0
  477. package/dist/worker/console/static-src/operator-chat/useActivityRailTransition.js +59 -0
  478. package/dist/worker/console/static-src/operator-chat/useChatSessions.js +495 -0
  479. package/dist/worker/console/static-src/operator-chat/useChatStream.js +780 -0
  480. package/dist/worker/console/static-src/operator-chat/useChatThread.js +280 -0
  481. package/dist/worker/console/static-src/operator-chat/useComposer.js +257 -0
  482. package/dist/worker/console/static-src/operator-chat/useInterview.js +108 -0
  483. package/dist/worker/console/static-src/operator-chat/useOverlayFocus.js +84 -0
  484. package/dist/worker/console/static-src/operator-chat/useRepoBrowser.js +148 -0
  485. package/dist/worker/console/static-src/operator-chat/useRuntimeControls.js +358 -0
  486. package/dist/worker/console/static-src/operator-chat/useRuntimeSnapshot.js +196 -0
  487. package/dist/worker/console/static-src/operator-chat/useWorkspaceLayout.js +58 -0
  488. package/dist/worker/console/static-src/operator-chat/workspace-layout-mode.js +35 -0
  489. package/dist/worker/console/static-src/prd-file-import.js +218 -0
  490. package/dist/worker/console/vite.config.js +27 -0
  491. package/dist/worker/console/workflow-kinds.js +46 -0
  492. package/dist/worker/delivery/final-verification.js +302 -0
  493. package/dist/worker/delivery/git-transaction.js +497 -0
  494. package/dist/worker/delivery/package.js +537 -0
  495. package/dist/worker/delivery/verification-bundle.js +544 -0
  496. package/dist/worker/feature/acceptance-policy.js +227 -0
  497. package/dist/worker/feature/advance.js +301 -0
  498. package/dist/worker/feature/decision-loader.js +99 -0
  499. package/dist/worker/feature/discover.js +14 -0
  500. package/dist/worker/feature/doctor.js +223 -0
  501. package/dist/worker/feature/fullstack-validate.js +337 -0
  502. package/dist/worker/feature/next-action.js +140 -0
  503. package/dist/worker/feature/profile-schema.js +47 -0
  504. package/dist/worker/feature/ready-plan-projection.js +82 -0
  505. package/dist/worker/feature/reducer.js +137 -0
  506. package/dist/worker/feature/review.js +678 -0
  507. package/dist/worker/feature/run.js +390 -0
  508. package/dist/worker/feature/scaffold.js +812 -0
  509. package/dist/worker/feature/types.js +1 -0
  510. package/dist/worker/follow-up/approve.js +273 -0
  511. package/dist/worker/follow-up/factory.js +234 -0
  512. package/dist/worker/follow-up/paths.js +25 -0
  513. package/dist/worker/follow-up/policy.js +26 -0
  514. package/dist/worker/follow-up/schema.js +93 -0
  515. package/dist/worker/follow-up/store.js +96 -0
  516. package/dist/worker/loop-agent/command-result.js +1 -0
  517. package/dist/worker/loop-agent/controller-protocol.js +143 -0
  518. package/dist/worker/loop-agent/loop-agent-client.js +489 -0
  519. package/dist/worker/loop-agent/parse-json.js +14 -0
  520. package/dist/worker/materialize/harness-task-lifecycle-probe.js +126 -0
  521. package/dist/worker/materialize/harness-task-lineage.js +220 -0
  522. package/dist/worker/materialize/harness-task-materializer.js +648 -0
  523. package/dist/worker/metrics/projector.js +139 -0
  524. package/dist/worker/observability/dag-execution-trajectory.js +591 -0
  525. package/dist/worker/observability/event-history.js +216 -0
  526. package/dist/worker/observability/event-store.js +83 -0
  527. package/dist/worker/observability/events.js +79 -0
  528. package/dist/worker/observability/interrupt-eligibility.js +264 -0
  529. package/dist/worker/observability/progress-composite.js +34 -0
  530. package/dist/worker/observability/read-model.js +2499 -0
  531. package/dist/worker/observability/snapshot-store.js +43 -0
  532. package/dist/worker/observability/types.js +1 -0
  533. package/dist/worker/observe/dag-node-execution-output.js +180 -0
  534. package/dist/worker/observe/dag-run-artifacts.js +90 -0
  535. package/dist/worker/observe/health.js +58 -0
  536. package/dist/worker/observe/night-jobs.js +104 -0
  537. package/dist/worker/observe/node-input.js +441 -0
  538. package/dist/worker/observe/paths.js +174 -0
  539. package/dist/worker/observe/routes.js +1077 -0
  540. package/dist/worker/observe/server.js +117 -0
  541. package/dist/worker/observe/spec-evidence.js +398 -0
  542. package/dist/worker/observe/static/api.js +117 -0
  543. package/dist/worker/observe/static/app.js +169 -0
  544. package/dist/worker/observe/static/constants.js +182 -0
  545. package/dist/worker/observe/static/copy.js +67 -0
  546. package/dist/worker/observe/static/custom-select.js +567 -0
  547. package/dist/worker/observe/static/dag-edge-routing.js +368 -0
  548. package/dist/worker/observe/static/dag-helpers.js +161 -0
  549. package/dist/worker/observe/static/dag-history-labels.js +95 -0
  550. package/dist/worker/observe/static/dag-layout.d.ts +36 -0
  551. package/dist/worker/observe/static/dag-layout.js +163 -0
  552. package/dist/worker/observe/static/dag-model.js +145 -0
  553. package/dist/worker/observe/static/dom.js +220 -0
  554. package/dist/worker/observe/static/favicon.svg +37 -0
  555. package/dist/worker/observe/static/format-pool.d.ts +71 -0
  556. package/dist/worker/observe/static/format-pool.js +153 -0
  557. package/dist/worker/observe/static/format.js +347 -0
  558. package/dist/worker/observe/static/index.html +409 -0
  559. package/dist/worker/observe/static/kpi.js +78 -0
  560. package/dist/worker/observe/static/markdown-render.js +124 -0
  561. package/dist/worker/observe/static/operator-chrome.css +517 -0
  562. package/dist/worker/observe/static/operator-chrome.d.ts +83 -0
  563. package/dist/worker/observe/static/operator-chrome.js +623 -0
  564. package/dist/worker/observe/static/relations.js +133 -0
  565. package/dist/worker/observe/static/router.js +156 -0
  566. package/dist/worker/observe/static/run-processing.js +148 -0
  567. package/dist/worker/observe/static/shell-chrome.js +65 -0
  568. package/dist/worker/observe/static/state.js +496 -0
  569. package/dist/worker/observe/static/styles.css +3567 -0
  570. package/dist/worker/observe/static/views/batch.js +227 -0
  571. package/dist/worker/observe/static/views/dag-graph.js +508 -0
  572. package/dist/worker/observe/static/views/dag-inspector.js +1722 -0
  573. package/dist/worker/observe/static/views/dag-trajectory.js +313 -0
  574. package/dist/worker/observe/static/views/dag.js +483 -0
  575. package/dist/worker/observe/static/views/dags.js +877 -0
  576. package/dist/worker/observe/static/views/dashboard.js +747 -0
  577. package/dist/worker/observe/static/views/failures.js +143 -0
  578. package/dist/worker/observe/static/views/feature.js +492 -0
  579. package/dist/worker/observe/static/views/night.js +201 -0
  580. package/dist/worker/observe/static/views/pool.js +708 -0
  581. package/dist/worker/observe/static/views/run.js +453 -0
  582. package/dist/worker/observe/static/views/session-timeline.js +771 -0
  583. package/dist/worker/observe/static/views/shell.js +7 -0
  584. package/dist/worker/observe/static/views/task.js +315 -0
  585. package/dist/worker/observe/static/views/timeline.js +163 -0
  586. package/dist/worker/outcomes/adapters.js +153 -0
  587. package/dist/worker/outcomes/declared-artifacts.js +103 -0
  588. package/dist/worker/outcomes/evidence-tokens.js +29 -0
  589. package/dist/worker/outcomes/gate.js +40 -0
  590. package/dist/worker/outcomes/projector.js +227 -0
  591. package/dist/worker/outcomes/registry.js +1 -0
  592. package/dist/worker/outcomes/store.js +131 -0
  593. package/dist/worker/outcomes/types.js +79 -0
  594. package/dist/worker/pool/attempt-identity.js +41 -0
  595. package/dist/worker/pool/attempt-lease.js +184 -0
  596. package/dist/worker/pool/attempt-transition.js +210 -0
  597. package/dist/worker/pool/begin-attempt-with-lease.js +26 -0
  598. package/dist/worker/pool/begin-attempt.js +35 -0
  599. package/dist/worker/pool/doctor.js +165 -0
  600. package/dist/worker/pool/failure-routing.js +182 -0
  601. package/dist/worker/pool/migrate-state.js +303 -0
  602. package/dist/worker/pool/reconcile.js +285 -0
  603. package/dist/worker/pool/recovery-decision.js +163 -0
  604. package/dist/worker/pool/run-owner-store.js +126 -0
  605. package/dist/worker/pool/run-store.js +360 -0
  606. package/dist/worker/pool/runtime-reconcile-inventory.js +127 -0
  607. package/dist/worker/pool/state-projection.js +57 -0
  608. package/dist/worker/pool/types.js +17 -0
  609. package/dist/worker/pool/validation.js +144 -0
  610. package/dist/worker/preflight.js +157 -0
  611. package/dist/worker/profile-mapping.js +76 -0
  612. package/dist/worker/progress-reporter.js +63 -0
  613. package/dist/worker/report/morning-report.js +155 -0
  614. package/dist/worker/repos/repo-resolver.js +23 -0
  615. package/dist/worker/run-task/execute-prepared-task.js +178 -0
  616. package/dist/worker/run-task/run-task.js +912 -0
  617. package/dist/worker/runner/run-ready.js +561 -0
  618. package/dist/worker/runner/single-task-attempt.js +176 -0
  619. package/dist/worker/scheduler/admission.js +547 -0
  620. package/dist/worker/scheduler/auto-followup.js +99 -0
  621. package/dist/worker/scheduler/cli.js +644 -0
  622. package/dist/worker/scheduler/clock-install/darwin-launchd.js +238 -0
  623. package/dist/worker/scheduler/clock-install/linux-systemd-user.js +224 -0
  624. package/dist/worker/scheduler/clock-install/types.js +1 -0
  625. package/dist/worker/scheduler/clock-install/win32-schtasks.js +227 -0
  626. package/dist/worker/scheduler/clock-install.js +284 -0
  627. package/dist/worker/scheduler/clock.js +420 -0
  628. package/dist/worker/scheduler/dispatcher.js +503 -0
  629. package/dist/worker/scheduler/doctor.js +431 -0
  630. package/dist/worker/scheduler/evidence.js +170 -0
  631. package/dist/worker/scheduler/git-base.js +90 -0
  632. package/dist/worker/scheduler/index.js +25 -0
  633. package/dist/worker/scheduler/lease.js +114 -0
  634. package/dist/worker/scheduler/lifecycle.js +348 -0
  635. package/dist/worker/scheduler/lock.js +80 -0
  636. package/dist/worker/scheduler/morning-window.js +191 -0
  637. package/dist/worker/scheduler/night-git-finalizer.js +114 -0
  638. package/dist/worker/scheduler/night-harvest.js +412 -0
  639. package/dist/worker/scheduler/paths.js +92 -0
  640. package/dist/worker/scheduler/prepared-attempt-recovery.js +471 -0
  641. package/dist/worker/scheduler/recovery.js +277 -0
  642. package/dist/worker/scheduler/reservation.js +146 -0
  643. package/dist/worker/scheduler/retry.js +199 -0
  644. package/dist/worker/scheduler/scheduler-loop.js +272 -0
  645. package/dist/worker/scheduler/store.js +275 -0
  646. package/dist/worker/scheduler/traceability.js +54 -0
  647. package/dist/worker/scheduler/trigger.js +258 -0
  648. package/dist/worker/scheduler/types.js +369 -0
  649. package/dist/worker/scheduler/workspace-adapter.js +128 -0
  650. package/dist/worker/task-graph/acceptance-schema.js +40 -0
  651. package/dist/worker/task-graph/ready-planner.js +267 -0
  652. package/dist/worker/task-graph/ready-queue.js +23 -0
  653. package/dist/worker/task-graph/task-graph-schema.js +59 -0
  654. package/dist/worker/task-graph/types.js +1 -0
  655. package/dist/worker/task-graph/validate.js +293 -0
  656. package/dist/worker/task-spec/complexity-mapping.js +8 -0
  657. package/dist/worker/task-spec/schema.js +125 -0
  658. package/dist/worker/task-spec/types.js +1 -0
  659. package/dist/worker/task-spec/validate.js +391 -0
  660. package/dist/worker/task-spec/workflow-routing.js +149 -0
  661. package/dist/workflows/dag/authoring.js +8 -0
  662. package/dist/workflows/dag/authority-surface.js +138 -0
  663. package/dist/workflows/dag/backend-test-analysis-contract.js +507 -0
  664. package/dist/workflows/dag/backend-test-case-coverage-analysis.js +1985 -0
  665. package/dist/workflows/dag/backend-test-case-manifest.js +638 -0
  666. package/dist/workflows/dag/backend-test-classification-contract.js +38 -0
  667. package/dist/workflows/dag/backend-test-contract-envelope.js +205 -0
  668. package/dist/workflows/dag/backend-test-coverage-contract.js +202 -0
  669. package/dist/workflows/dag/backend-test-execution-contract.js +715 -0
  670. package/dist/workflows/dag/backend-test-gap-fill.js +205 -0
  671. package/dist/workflows/dag/backend-test-intake-context.js +178 -0
  672. package/dist/workflows/dag/backend-test-layout.js +133 -0
  673. package/dist/workflows/dag/backend-test-markdown-workflow.js +1984 -0
  674. package/dist/workflows/dag/backend-test-module-stem.js +26 -0
  675. package/dist/workflows/dag/backend-test-pytest-collection.js +859 -0
  676. package/dist/workflows/dag/backend-test-result-contract.js +1030 -0
  677. package/dist/workflows/dag/backend-test-scenario-param.js +1670 -0
  678. package/dist/workflows/dag/backend-test-scenario-partitions.js +249 -0
  679. package/dist/workflows/dag/backend-test-semantic-review-contract.js +36 -0
  680. package/dist/workflows/dag/backend-test-stability-contract.js +57 -0
  681. package/dist/workflows/dag/backend-test-writer-completeness.js +1058 -0
  682. package/dist/workflows/dag/budget-enforcement.js +67 -0
  683. package/dist/workflows/dag/canvas-observer.js +474 -0
  684. package/dist/workflows/dag/context-policy.js +137 -0
  685. package/dist/workflows/dag/contract-output-registry.js +14 -0
  686. package/dist/workflows/dag/contract-validator-registrations.js +10 -0
  687. package/dist/workflows/dag/controller-identity.js +104 -0
  688. package/dist/workflows/dag/convergence/controller.js +596 -0
  689. package/dist/workflows/dag/decision-envelope.js +557 -0
  690. package/dist/workflows/dag/decision-evidence.js +153 -0
  691. package/dist/workflows/dag/decision-gates.js +1 -0
  692. package/dist/workflows/dag/dynamic-runtime/condition.js +48 -0
  693. package/dist/workflows/dag/dynamic-runtime/loop-until.js +161 -0
  694. package/dist/workflows/dag/dynamic-runtime/map.js +435 -0
  695. package/dist/workflows/dag/dynamic-runtime/reduction.js +72 -0
  696. package/dist/workflows/dag/dynamic-runtime/shared.js +203 -0
  697. package/dist/workflows/dag/event-observer.js +132 -0
  698. package/dist/workflows/dag/executor-registry.js +23 -0
  699. package/dist/workflows/dag/facts.js +4 -0
  700. package/dist/workflows/dag/failure-category.js +118 -0
  701. package/dist/workflows/dag/failure-routing.js +105 -0
  702. package/dist/workflows/dag/final-verification.js +180 -0
  703. package/dist/workflows/dag/frontend-implementation-contract.js +1911 -0
  704. package/dist/workflows/dag/frontend-lint-baseline.js +474 -0
  705. package/dist/workflows/dag/frontend-plan-render.js +90 -0
  706. package/dist/workflows/dag/frontend-prewrite-gate.js +1011 -0
  707. package/dist/workflows/dag/frontend-project-capability.js +1 -0
  708. package/dist/workflows/dag/frontend-recovery-plan.js +73 -0
  709. package/dist/workflows/dag/frontend-recovery-root-manifest.js +123 -0
  710. package/dist/workflows/dag/frontend-recovery-run.js +539 -0
  711. package/dist/workflows/dag/frontend-repair.js +541 -0
  712. package/dist/workflows/dag/frontend-review-context.js +116 -0
  713. package/dist/workflows/dag/frontend-risk.js +161 -0
  714. package/dist/workflows/dag/frontend-test-case-checklist.js +343 -0
  715. package/dist/workflows/dag/frontend-test-case-manifest.js +104 -0
  716. package/dist/workflows/dag/frontend-test-case-quality.js +105 -0
  717. package/dist/workflows/dag/frontend-test-html-report.js +174 -0
  718. package/dist/workflows/dag/frontend-test-l5-report.js +177 -0
  719. package/dist/workflows/dag/frontend-test-result-contract.js +487 -0
  720. package/dist/workflows/dag/frontend-verification-trace.js +275 -0
  721. package/dist/workflows/dag/frontend-worktree-diff.js +201 -0
  722. package/dist/workflows/dag/frontend-writer-recovery.js +106 -0
  723. package/dist/workflows/dag/frontend-writer-rollback.js +821 -0
  724. package/dist/workflows/dag/governance-constants.js +5 -0
  725. package/dist/workflows/dag/governance-profile.js +413 -0
  726. package/dist/workflows/dag/index.js +6 -0
  727. package/dist/workflows/dag/init-hybrid.js +7345 -0
  728. package/dist/workflows/dag/interrupt-request.js +559 -0
  729. package/dist/workflows/dag/knowledge-curator.js +165 -0
  730. package/dist/workflows/dag/l5-report-metrics.js +33 -0
  731. package/dist/workflows/dag/lifecycle.js +855 -0
  732. package/dist/workflows/dag/liveness-policy.js +251 -0
  733. package/dist/workflows/dag/node-execution.js +1081 -0
  734. package/dist/workflows/dag/observer-compose.js +52 -0
  735. package/dist/workflows/dag/output-protocol.js +356 -0
  736. package/dist/workflows/dag/project-governance-context.js +514 -0
  737. package/dist/workflows/dag/prompt-source.js +88 -0
  738. package/dist/workflows/dag/prompt.js +348 -0
  739. package/dist/workflows/dag/reconcile-run.js +145 -0
  740. package/dist/workflows/dag/reconcile-tasks.js +404 -0
  741. package/dist/workflows/dag/recovery-recommendation.js +329 -0
  742. package/dist/workflows/dag/repair-artifact.js +363 -0
  743. package/dist/workflows/dag/report.js +1229 -0
  744. package/dist/workflows/dag/rerun-plan.js +614 -0
  745. package/dist/workflows/dag/rerun-run.js +556 -0
  746. package/dist/workflows/dag/rerun-task.js +370 -0
  747. package/dist/workflows/dag/retry-policy.js +263 -0
  748. package/dist/workflows/dag/run-store.js +41 -0
  749. package/dist/workflows/dag/runner.js +1069 -0
  750. package/dist/workflows/dag/runtime-contract.js +87 -0
  751. package/dist/workflows/dag/runtime.js +5 -0
  752. package/dist/workflows/dag/scheduler.js +497 -0
  753. package/dist/workflows/dag/sdd-embedded.js +128 -0
  754. package/dist/workflows/dag/skill-instructions.js +478 -0
  755. package/dist/workflows/dag/skill-snapshot.js +553 -0
  756. package/dist/workflows/dag/skills.js +41 -0
  757. package/dist/workflows/dag/spec.js +3 -0
  758. package/dist/workflows/dag/task-contract-binding.js +138 -0
  759. package/dist/workflows/dag/task-demand-routing.js +1 -0
  760. package/dist/workflows/dag/topo.js +30 -0
  761. package/dist/workflows/dag/types.js +1145 -0
  762. package/dist/workflows/dag/upstream-artifacts.js +98 -0
  763. package/dist/workflows/dag/validate.js +998 -0
  764. package/dist/workflows/dag/workspace-checkpoint.js +186 -0
  765. package/dist/workflows/dynamic/artifacts.js +65 -0
  766. package/dist/workflows/dynamic/compile.js +371 -0
  767. package/dist/workflows/dynamic/compileTypes.js +1 -0
  768. package/dist/workflows/dynamic/errors.js +5 -0
  769. package/dist/workflows/dynamic/index.js +7 -0
  770. package/dist/workflows/dynamic/profiles.js +156 -0
  771. package/dist/workflows/dynamic/spec.js +115 -0
  772. package/dist/workflows/dynamic/validate.js +275 -0
  773. package/dist/workflows/loop/actions/dag-action.js +129 -0
  774. package/dist/workflows/loop/actions/pi-review.js +267 -0
  775. package/dist/workflows/loop/actions/shared.js +157 -0
  776. package/dist/workflows/loop/actions/shell-verify.js +82 -0
  777. package/dist/workflows/loop/actions/types.js +1 -0
  778. package/dist/workflows/loop/actions/workflow-action.js +255 -0
  779. package/dist/workflows/loop/actions.js +160 -0
  780. package/dist/workflows/loop/benchmark.js +510 -0
  781. package/dist/workflows/loop/closeout.js +135 -0
  782. package/dist/workflows/loop/context.js +47 -0
  783. package/dist/workflows/loop/events.js +26 -0
  784. package/dist/workflows/loop/hash.js +32 -0
  785. package/dist/workflows/loop/index.js +8 -0
  786. package/dist/workflows/loop/paths.js +17 -0
  787. package/dist/workflows/loop/policy/auto-policy.js +112 -0
  788. package/dist/workflows/loop/policy/path-patterns.js +13 -0
  789. package/dist/workflows/loop/rounds.js +81 -0
  790. package/dist/workflows/loop/signals.js +52 -0
  791. package/dist/workflows/loop/state.js +116 -0
  792. package/dist/workflows/loop/templates.js +54 -0
  793. package/dist/workflows/loop/types.js +28 -0
  794. package/docs/README.md +82 -0
  795. package/docs/architecture/README.md +35 -0
  796. package/docs/architecture/dag-execution.md +165 -0
  797. package/docs/architecture/evolution.md +108 -0
  798. package/docs/architecture/facts-and-state.md +74 -0
  799. package/docs/architecture/runtime-boundaries.md +226 -0
  800. package/docs/architecture/system-overview.md +100 -0
  801. package/docs/architecture/worker-and-feature.md +122 -0
  802. package/docs/governance/README.md +18 -0
  803. package/docs/governance/harness-methodology-debugging.md +177 -0
  804. package/docs/governance/harness-methodology-tdd.md +130 -0
  805. package/docs/governance/harness-methodology-verification.md +27 -0
  806. package/docs/init-surface.manifest.json +358 -0
  807. package/docs/operations/README.md +15 -0
  808. package/docs/operations/local-development-environment.md +77 -0
  809. package/docs/skills/README.md +7 -0
  810. package/docs/skills/vetted-skill-registry.md +49 -0
  811. package/docs/templates/README.md +67 -0
  812. package/docs/templates/adr.md +60 -0
  813. package/docs/templates/agent-dag-authority-surface-audit.prompt.md +94 -0
  814. package/docs/templates/agent-dag-decision-envelope.schema.json +213 -0
  815. package/docs/templates/agent-dag-decision-gate-dogfood-report.md +117 -0
  816. package/docs/templates/agent-dag-decision-gate.prompt.md +246 -0
  817. package/docs/templates/agent-dag-process-supervisor.prompt.md +98 -0
  818. package/docs/templates/agent-dag-report.schema.json +473 -0
  819. package/docs/templates/agent-dag-review-verdict.prompt.md +68 -0
  820. package/docs/templates/agent-dag.base.json +190 -0
  821. package/docs/templates/agent-dag.final-verification.json +185 -0
  822. package/docs/templates/agent-dag.schema.json +590 -0
  823. package/docs/templates/agent-dag.supervised-implementation.json +640 -0
  824. package/docs/templates/agent-worker-production-readiness-checklist.md +47 -0
  825. package/docs/templates/backend-test-analysis.schema.json +37 -0
  826. package/docs/templates/backend-test-case-manifest.schema.json +223 -0
  827. package/docs/templates/backend-test-dag.classify.prompt.md +75 -0
  828. package/docs/templates/backend-test-dag.generate-pytest.prompt.md +41 -0
  829. package/docs/templates/backend-test-dag.json +671 -0
  830. package/docs/templates/backend-test-dag.retrospect.prompt.md +165 -0
  831. package/docs/templates/backend-test-dag.review-cases.prompt.md +36 -0
  832. package/docs/templates/backend-test-execution.schema.json +138 -0
  833. package/docs/templates/backend-test-result.schema.json +99 -0
  834. package/docs/templates/branch-merge-report.md +115 -0
  835. package/docs/templates/evaluation/agents-map-slim-v1.candidate.json +9 -0
  836. package/docs/templates/evaluation/agents-map-slim-v1.md +87 -0
  837. package/docs/templates/evaluation/agents-map-verbose-v0.candidate.json +9 -0
  838. package/docs/templates/evaluation/agents-map-verbose-v0.md +153 -0
  839. package/docs/templates/evaluation/campaign-budget-v1.json +12 -0
  840. package/docs/templates/evaluation/campaign-dogfood-v0.json +24 -0
  841. package/docs/templates/evaluation/campaign-evidence-v1.json +44 -0
  842. package/docs/templates/evaluation/context-policy-baseline-v1.json +17 -0
  843. package/docs/templates/evaluation/context-policy-role-specialized-v1.json +28 -0
  844. package/docs/templates/evaluation/corpus-dogfood-v0.manifest.json +118 -0
  845. package/docs/templates/evaluation/matrix-dag-dry-run-v1.json +21 -0
  846. package/docs/templates/evaluation/matrix-fixture-v1.json +10 -0
  847. package/docs/templates/evaluation/private-verifier-dogfood-v0.json +16 -0
  848. package/docs/templates/exec-plan.md +66 -0
  849. package/docs/templates/feature-spec.md +53 -0
  850. package/docs/templates/frontend-design-contract.md +68 -0
  851. package/docs/templates/frontend-eval/fixtures/failures/01-type-build-error.md +17 -0
  852. package/docs/templates/frontend-eval/fixtures/failures/02-unit-component-test-fail.md +16 -0
  853. package/docs/templates/frontend-eval/fixtures/failures/03-fixture-schema-drift.md +16 -0
  854. package/docs/templates/frontend-eval/fixtures/failures/04-missing-loading-empty-error-state.md +16 -0
  855. package/docs/templates/frontend-eval/fixtures/failures/05-forbidden-write-writeset-expansion.md +16 -0
  856. package/docs/templates/frontend-eval/fixtures/failures/06-unapproved-dependency-add.md +16 -0
  857. package/docs/templates/frontend-eval/fixtures/failures/07-mock-production-on.md +21 -0
  858. package/docs/templates/frontend-eval/fixtures/functional/01-simple-component-style.md +29 -0
  859. package/docs/templates/frontend-eval/fixtures/functional/02-form-validation.md +28 -0
  860. package/docs/templates/frontend-eval/fixtures/functional/03-list-detail-page.md +28 -0
  861. package/docs/templates/frontend-eval/fixtures/functional/04-api-mock.md +29 -0
  862. package/docs/templates/frontend-eval/fixtures/functional/05-permission-auth-gated-ui.md +27 -0
  863. package/docs/templates/frontend-eval/fixtures/functional/06-ssr-server-client-boundary.md +28 -0
  864. package/docs/templates/frontend-eval/fixtures/functional/07-shared-public-component-api.md +28 -0
  865. package/docs/templates/frontend-eval/fixtures/functional/08-pure-local-no-remote.md +27 -0
  866. package/docs/templates/frontend-eval/metrics.md +138 -0
  867. package/docs/templates/frontend-eval/smoke-targets.md +53 -0
  868. package/docs/templates/frontend-implementation-contract.schema.json +35 -0
  869. package/docs/templates/frontend-task-constraints.md +62 -0
  870. package/docs/templates/frontend-task-requirement.md +104 -0
  871. package/docs/templates/frontend-test-case-checklist.md +44 -0
  872. package/docs/templates/frontend-test-case.example.md +143 -0
  873. package/docs/templates/frontend-test-dag.generate-cases.prompt.md +63 -0
  874. package/docs/templates/frontend-test-dag.json +409 -0
  875. package/docs/templates/frontend-test-dag.retrieve-context.prompt.md +21 -0
  876. package/docs/templates/frontend-test-dag.retrospect.prompt.md +5 -0
  877. package/docs/templates/frontend-test-dag.review-cases.prompt.md +5 -0
  878. package/docs/templates/frontend-test-dag.review-execution.prompt.md +3 -0
  879. package/docs/templates/frontend-test-standard-scenarios.v1.json +159 -0
  880. package/docs/templates/harness.schema.json +351 -0
  881. package/docs/templates/hybrid-dag.json +188 -0
  882. package/docs/templates/init-evolution-review.md +35 -0
  883. package/docs/templates/init-managed-agents.md +157 -0
  884. package/docs/templates/interactive-ui-round2-experiment.md +66 -0
  885. package/docs/templates/knowledge-graph-bootstrap-dag.json +118 -0
  886. package/docs/templates/knowledge-sync-dag.json +178 -0
  887. package/docs/templates/knowledge-sync-draft.schema.json +71 -0
  888. package/docs/templates/product-line/AGENTS.md +9 -0
  889. package/docs/templates/product-line/README.md +42 -0
  890. package/docs/templates/product-line/acceptance.yaml +23 -0
  891. package/docs/templates/product-line/closeout.yaml +9 -0
  892. package/docs/templates/product-line/design.md +13 -0
  893. package/docs/templates/product-line/feature-scaffold-batch.example.yaml +31 -0
  894. package/docs/templates/product-line/feature.yaml +11 -0
  895. package/docs/templates/product-line/links.md +10 -0
  896. package/docs/templates/product-line/requirement.md +17 -0
  897. package/docs/templates/product-line/scaffold-samples/README.md +36 -0
  898. package/docs/templates/product-line/scaffold-samples/backend-only/acceptance.yaml +16 -0
  899. package/docs/templates/product-line/scaffold-samples/backend-only/design.md +14 -0
  900. package/docs/templates/product-line/scaffold-samples/backend-only/feature.yaml +14 -0
  901. package/docs/templates/product-line/scaffold-samples/backend-only/requirement.md +6 -0
  902. package/docs/templates/product-line/scaffold-samples/backend-only/tasks/BE-IMPL-001.yaml +83 -0
  903. package/docs/templates/product-line/scaffold-samples/backend-only/tasks/task-graph.yaml +14 -0
  904. package/docs/templates/product-line/scaffold-samples/fe-with-api/acceptance.yaml +18 -0
  905. package/docs/templates/product-line/scaffold-samples/fe-with-api/design.md +18 -0
  906. package/docs/templates/product-line/scaffold-samples/fe-with-api/feature.yaml +14 -0
  907. package/docs/templates/product-line/scaffold-samples/fe-with-api/requirement.md +6 -0
  908. package/docs/templates/product-line/scaffold-samples/fe-with-api/tasks/BE-IMPL-001.yaml +84 -0
  909. package/docs/templates/product-line/scaffold-samples/fe-with-api/tasks/CONTRACT-001.yaml +84 -0
  910. package/docs/templates/product-line/scaffold-samples/fe-with-api/tasks/FE-IMPL-001.yaml +86 -0
  911. package/docs/templates/product-line/scaffold-samples/fe-with-api/tasks/task-graph.yaml +40 -0
  912. package/docs/templates/product-line/scaffold-samples/frontend-only/acceptance.yaml +16 -0
  913. package/docs/templates/product-line/scaffold-samples/frontend-only/design.md +14 -0
  914. package/docs/templates/product-line/scaffold-samples/frontend-only/feature.yaml +14 -0
  915. package/docs/templates/product-line/scaffold-samples/frontend-only/requirement.md +6 -0
  916. package/docs/templates/product-line/scaffold-samples/frontend-only/tasks/FE-IMPL-001.yaml +85 -0
  917. package/docs/templates/product-line/scaffold-samples/frontend-only/tasks/task-graph.yaml +14 -0
  918. package/docs/templates/product-line/task-graph.yaml +23 -0
  919. package/docs/templates/product-line/task.yaml +68 -0
  920. package/docs/templates/product-line/test-plan.md +7 -0
  921. package/docs/templates/production-readiness-checklist.md +57 -0
  922. package/docs/templates/progress-log.md +27 -0
  923. package/docs/templates/project-start-checklist.md +9 -0
  924. package/docs/templates/qa-report.md +48 -0
  925. package/docs/templates/sprint-contract.md +29 -0
  926. package/docs/templates/worker-dogfood-evidence.md +80 -0
  927. package/docs/templates/worker-dogfood-setup.md +68 -0
  928. package/examples/decision-gate-agent-dag.json +177 -0
  929. package/examples/example-dag.json +46 -0
  930. package/examples/hybrid-loop-agent-dag.json +189 -0
  931. package/examples/l5-report-coms-process-definition.html +322 -0
  932. package/examples/l5-report-demo.html +79 -0
  933. package/harness.json +90 -0
  934. package/package.json +98 -0
  935. package/scripts/kb-bootstrap-init-skeleton.sh +241 -0
  936. package/scripts/kb-graph-incremental-prepare.mjs +386 -0
  937. package/scripts/kb-graph-materialize.mjs +105 -0
  938. package/scripts/kb-graph-promote.mjs +164 -0
  939. package/scripts/kb-query.mjs +554 -0
  940. package/skills/agent-worker/SKILL.md +48 -0
  941. package/skills/agent-worker/references/agent-worker-operator.md +159 -0
  942. package/skills/ai-engineering-context/SKILL.md +48 -0
  943. package/skills/analyze-product-dependencies/SKILL.md +108 -0
  944. package/skills/analyze-product-dependencies/references/api-documentation-schema.md +35 -0
  945. package/skills/analyze-product-dependencies/references/dependency-analysis-schema.md +38 -0
  946. package/skills/analyze-product-dependencies/references/example.md +76 -0
  947. package/skills/analyze-product-dependencies/references/forward-test-cases.md +110 -0
  948. package/skills/analyze-product-dependencies/references/input-contract.md +34 -0
  949. package/skills/analyze-product-dependencies/references/kb-integration.md +64 -0
  950. package/skills/analyze-product-dependencies/references/scouting-rules.md +76 -0
  951. package/skills/analyze-product-dependencies/scripts/test-validators.mjs +460 -0
  952. package/skills/analyze-product-dependencies/scripts/validate-api-documentation.mjs +194 -0
  953. package/skills/analyze-product-dependencies/scripts/validate-dependency-analysis.mjs +200 -0
  954. package/skills/analyze-product-dependencies/scripts/validate-product-requirement-input.mjs +90 -0
  955. package/skills/analyze-product-dependencies/scripts/validation-helpers.mjs +138 -0
  956. package/skills/analyze-product-requirements/SKILL.md +145 -0
  957. package/skills/analyze-product-requirements/references/acceptance-criteria.md +87 -0
  958. package/skills/analyze-product-requirements/references/clarification-and-knowledge.md +70 -0
  959. package/skills/analyze-product-requirements/references/example.md +104 -0
  960. package/skills/analyze-product-requirements/references/forward-test-cases.md +144 -0
  961. package/skills/analyze-product-requirements/references/kb-integration.md +56 -0
  962. package/skills/analyze-product-requirements/references/product-analysis-schema.md +41 -0
  963. package/skills/analyze-product-requirements/references/product-requirement-schema.md +42 -0
  964. package/skills/analyze-product-requirements/references/requirement-clarification-schema.md +66 -0
  965. package/skills/analyze-product-requirements/scripts/compute-source-identity.mjs +35 -0
  966. package/skills/analyze-product-requirements/scripts/test-validators.mjs +501 -0
  967. package/skills/analyze-product-requirements/scripts/validate-product-analysis.mjs +100 -0
  968. package/skills/analyze-product-requirements/scripts/validate-product-requirement.mjs +109 -0
  969. package/skills/analyze-product-requirements/scripts/validate-requirement-clarification.mjs +109 -0
  970. package/skills/analyze-product-requirements/scripts/validation-helpers.mjs +175 -0
  971. package/skills/browser-tools/SKILL.md +196 -0
  972. package/skills/browser-tools/browser-content.js +103 -0
  973. package/skills/browser-tools/browser-cookies.js +35 -0
  974. package/skills/browser-tools/browser-eval.js +53 -0
  975. package/skills/browser-tools/browser-hn-scraper.js +108 -0
  976. package/skills/browser-tools/browser-nav.js +44 -0
  977. package/skills/browser-tools/browser-pick.js +162 -0
  978. package/skills/browser-tools/browser-screenshot.js +34 -0
  979. package/skills/browser-tools/browser-start.js +86 -0
  980. package/skills/browser-tools/package-lock.json +2556 -0
  981. package/skills/browser-tools/package.json +19 -0
  982. package/skills/code-review-core/SKILL.md +20 -0
  983. package/skills/codebase-scout/SKILL.md +19 -0
  984. package/skills/frontend-bounded-implement/SKILL.md +53 -0
  985. package/skills/frontend-design-review/SKILL.md +79 -0
  986. package/skills/frontend-design-review/references/review-checklist.md +43 -0
  987. package/skills/frontend-implementation/SKILL.md +52 -0
  988. package/skills/frontend-implementation/references/code-standards.md +33 -0
  989. package/skills/frontend-implementation/references/design-spec.md +56 -0
  990. package/skills/frontend-implementation/references/node-contracts.md +31 -0
  991. package/skills/frontend-review/SKILL.md +55 -0
  992. package/skills/frontend-review/references/review-findings.md +50 -0
  993. package/skills/frontend-verification/SKILL.md +61 -0
  994. package/skills/frontend-verification/references/verification-checklist.md +48 -0
  995. package/skills/grill-me/SKILL.md +10 -0
  996. package/skills/grill-with-docs/SKILL.md +80 -0
  997. package/skills/grill-with-docs/adr-format.md +58 -0
  998. package/skills/grill-with-docs/context-format.md +52 -0
  999. package/skills/init-capability-evolution/SKILL.md +70 -0
  1000. package/skills/local-jacoco-coverage/SKILL.md +281 -0
  1001. package/skills/local-jacoco-coverage/references/requirement-to-source-mapping.md +85 -0
  1002. package/skills/local-jacoco-coverage/references/runtime-alignment.md +106 -0
  1003. package/skills/local-jacoco-coverage/scripts/run-coverage-analysis.sh +148 -0
  1004. package/skills/local-jacoco-coverage/scripts/start-jacoco-agent.sh +110 -0
  1005. package/skills/loop-agent/SKILL.md +68 -0
  1006. package/skills/loop-agent/references/README.md +67 -0
  1007. package/skills/loop-agent/references/command-reference.md +645 -0
  1008. package/skills/loop-agent/references/docs-converge.md +126 -0
  1009. package/skills/loop-agent/references/harness-policy.md +289 -0
  1010. package/skills/loop-agent/references/hybrid-dag.md +245 -0
  1011. package/skills/loop-agent/references/learned/README.md +21 -0
  1012. package/skills/loop-agent/references/long-running-loop.md +57 -0
  1013. package/skills/loop-agent/references/model-routing.md +45 -0
  1014. package/skills/loop-agent/references/multi-worktree.md +54 -0
  1015. package/skills/loop-agent/references/one-shot-runs.md +84 -0
  1016. package/skills/loop-agent/references/orchestrator-and-interventions.md +175 -0
  1017. package/skills/loop-agent/references/pi-prompt.md +23 -0
  1018. package/skills/loop-agent/references/pi-subagent-assisted-mode.md +84 -0
  1019. package/skills/loop-agent/references/post-implementation-and-patterns.md +54 -0
  1020. package/skills/loop-agent/references/source-and-plan-practice.md +169 -0
  1021. package/skills/loop-agent/references/task-workflow.md +104 -0
  1022. package/skills/loop-agent/references/verification-and-failure-handling.md +148 -0
  1023. package/skills/playwright-cli/SKILL.md +93 -0
  1024. package/skills/playwright-cli/references/element-attributes.md +23 -0
  1025. package/skills/playwright-cli/references/playwright-tests.md +39 -0
  1026. package/skills/playwright-cli/references/request-mocking.md +87 -0
  1027. package/skills/playwright-cli/references/running-code.md +241 -0
  1028. package/skills/playwright-cli/references/session-management.md +225 -0
  1029. package/skills/playwright-cli/references/storage-state.md +275 -0
  1030. package/skills/playwright-cli/references/test-generation.md +433 -0
  1031. package/skills/playwright-cli/references/tracing.md +5 -0
  1032. package/skills/playwright-cli/references/video-recording.md +5 -0
  1033. package/skills/playwright-cli-case-generator/SKILL.md +108 -0
  1034. package/skills/requesting-code-review/SKILL.md +101 -0
  1035. package/skills/requesting-code-review/code-reviewer.md +168 -0
  1036. package/skills/systematic-debugging/CREATION-LOG.md +119 -0
  1037. package/skills/systematic-debugging/SKILL.md +312 -0
  1038. package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  1039. package/skills/systematic-debugging/condition-based-waiting.md +115 -0
  1040. package/skills/systematic-debugging/defense-in-depth.md +122 -0
  1041. package/skills/systematic-debugging/find-polluter.sh +63 -0
  1042. package/skills/systematic-debugging/root-cause-tracing.md +169 -0
  1043. package/skills/systematic-debugging/test-academic.md +14 -0
  1044. package/skills/systematic-debugging/test-pressure-1.md +58 -0
  1045. package/skills/systematic-debugging/test-pressure-2.md +68 -0
  1046. package/skills/systematic-debugging/test-pressure-3.md +69 -0
  1047. package/skills/test-driven-development/SKILL.md +27 -0
  1048. package/skills/using-git-worktrees/SKILL.md +215 -0
  1049. package/skills/verification-before-completion/SKILL.md +154 -0
  1050. package/skills/webapp-testing/SKILL.md +19 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,2283 @@
1
+ # 更新日志
2
+
3
+ ## [Unreleased]
4
+
5
+ ### 变更
6
+
7
+ - frontend-test 用例生成预算与契约:去掉 generate「4–8 条 smoke」软建议;`frontendTest.maxCasesPerBatch` 默认 50、配置最高 100。dimension 不再封闭为 core/boundary/flow/backend,仅校验 kebab-case,允许 `ux` 等扩充。生成 skill/prompt 增加 Playwright 专家角色;标准场景补交互体验(提交防重复、操作反馈为 must)。入库中文优先用例模板 `docs/templates/frontend-test-case.example.md`:需登录则 `open` 登录页再 `goto` 目标页,否则 `open`/`goto` 目标页。
8
+
9
+
10
+ - npm `next` 渠道发布改为提交数节流:main push 仅当距上次 next 发布的 source commit ≥ 5 个 commit 时才自动发布(新增 `scripts/next-publish-gate.mjs`,读已发布 tarball build-stamp 对比 HEAD);不足阈值时 workflow 绿色跳过,手动 `workflow_dispatch` 不受限(切 release 线前强制出包 / 紧急补发)。发布文档真源 §4.1/§5.1/§7/§12 同步。
11
+
12
+ ### 新增
13
+
14
+ - backend-test 适配 A–D:可配置 `backendTest` 布局(`testRoot`/`markdownRel`/`scriptRel`)、用户公共前置文档引用与模块顶部 `user_shared_setup`(不写 conftest)、查询轴 Scenario Partitions 确定性展开与 fail-closed 门禁、`mode=gap-fill` 13 节点增量 DAG。Slot ID 以声明的 Partition ID 为真源(`TP-<Partition ID>-...`)。
15
+ - 前端 plan 唯一机器契约化(JSON-only):`frontend-plan-pi` / `frontend-plan-revision-pi` 输出收敛为「一行导语 + 唯一 fenced `json` 契约 + 唯一 `openspec-citations` 引用块」,彻底移除「可选 Markdown 说明」;plan.md(`contracts/frontend-plan.md`)改由 prewrite gate 用纯函数 `renderFrontendPlanMarkdown` 确定性渲染(不新增 DAG 节点/不新增 Pi 调用)
16
+ - 契约 schema 新增 5 个可选字段(`implementationSteps` / `stylingStrategy` / `dependencyPolicy` / `residualRisks` / `realIntegrationGap`),`schemaVersion` 保持 1;`docs/templates/frontend-implementation-contract.schema.json` 同步
17
+ - revision 输出改为 RFC 7386 merge-patch delta + 引用块:gate 配置新增 `revisionPatch`,生效时在 `planFallbackFromNodeIds[0]` 原始契约上应用 `applyFrontendImplementationContractPatch` 后进入既有分析/规范化/物化管线;旧 DAG 缺字段按整契约处理
18
+ - canonical contract 序列化(UTF-8)超过 64KB → `retryable-invalid` + 新增 `contract-too-large` failureCode(体积守卫兜底)
19
+ - `design-review` / `final-design-review` 提示改为消费契约 JSON(注入契约字段摘要),不再要求读取 plan prose
20
+ - Console「模型与认证」页新增模型矩阵编辑器:展示并允许编辑 `harness.json executors.pi` 的 LOW/MED/HIGH 三档模型;输入框从 readiness 结构化投影 `piModelMatrix` 预填(provider/model 或裸 model id),本地内联校验(空串 / `default` 哨兵 / 畸形 `provider/`、`/model`、`a//b`)非法时禁用保存;保存经既有 `POST /api/operator/v1/operations` 派发 `savePiModelMatrix`,复用 HTTP 层 `evaluateMutationGate`(boot capability cookie + `x-loop-console-confirmation` 头 + Origin/Host/Sec-Fetch-Site),读全文档后原子写 tmp+fsync+rename(保留 `$schema` 与其余字段),成功后自动重测 readiness 并对活动 Chat session 触发 `/sessions/:id/reload`(409 `PI_SESSION_BUSY` 给出可恢复提示)
21
+ - `GET /api/operator/v1/readiness` 的 probe 新增 `piModelMatrix` 结构化投影(向后兼容,不改动既有 `modelsMessage`)
22
+ - 组件选型规范合规(ADR 0016):契约 schema 新增可选 `uiComponentChoices[]`(`{ purpose, component, decision(specified|reuse-existing|new), specReference{path,section,line}|null, rationale }`),`specified` 必须给非空 `specReference`、`new` 不得携带、空串拒绝;`schemaVersion` 保持 1;`docs/templates/frontend-implementation-contract.schema.json` 同步
23
+ - `frontend-prewrite-gate` 新增三个 `retryable-invalid` failureCode:`component-spec-reference-invalid`(specReference.path 非受支持规范路径)、`component-spec-not-cited`(未在 openspec-citations 引用块引用或未真实读取)、`component-choices-missing`(组件/主题候选桶非空且契约有 UI 可见工作而 `uiComponentChoices` 缺失/空)
24
+ - gate 配置新增可选 `componentSpecCandidatePaths`(旧 DAG 缺字段兼容);`init-hybrid` 从 `designEvidence.classified.component ∪ theme ∪ rule.components` 冻结注入,capability context 强调组件/主题桶语义,plan/revision/design-review/final-design-review 提示加入硬规则与 BAD/GOOD 示例
25
+ - `frontend-plan.md` 新增 `Component Selection (spec conformance)` 章节(纯函数确定性渲染,缺省 `_(not specified)_`)
26
+
27
+ - `frontend-prewrite-gate` 的 OpenSpec 读取校验支持 `task.json.frontendOpenspec` 配置:`policy` 缺省 `cited`(候选 = `requiredReadPaths` ∪ 任务源显式引用的 openspec 路径),`scan-strict` 保留止血任务后的全量必读语义;`requiredReadPaths` 中非 openspec 支持路径在生成期确定性失败
28
+ - 确定性引用块协议:生效 plan 输出在 fenced `json` 契约块后追加 `openspec-citations` fenced 块(每行一个 JSON `{"path","section","line"}`);gate 解析并与生效 plan/review 节点的成功 read 事件核验,新增 `openspec-citation-block-unparseable` / `openspec-not-cited` / `openspec-citation-not-read` 三个 retryable-invalid failureCode(防捏造、防遗漏)
29
+ - `src/shared/openspec-spec.ts` 新增 `extractTaskSourceOpenspecPaths` 纯函数(反引号内联、markdown 链接目标、裸路径 token → 归一化 → spec 过滤 → 治理子树排除 → 去重排序)
30
+ - 生成期把 `openspecPolicy` 与候选来源元数据(`openspecCandidateSources.declared` / `taskSourceCited` / `scanStrict`)冻结进 prewrite gate 配置;`task advance` 的 advisories 说明当前模式与候选来源
31
+
32
+ ### 改进
33
+
34
+ - `frontend-plan-pi` 改为 runtime skeleton + editable RFC 7386 patch:`schemaVersion`、source binding、risk、writer target files 与生产 Mock 安全位由 DAG 冻结且不可被 plan/revision 覆盖;节点 validator 将补丁编译为 canonical 完整契约后再交给 review/prewrite,并在 `contracts/candidates/<nodeId>/` 保存每次 raw/extracted/normalized/validation 证据。任务提示与三类结构化重试(invalid-output / provider length 截断 / output-too-large)同步收敛为单一 patch + 唯一 `openspec-citations`;无法在声明文件中解析的可选 verification symbol 会被确定性移除并留下 normalization action,避免格式冲突、完整契约重复输出和说明性 symbol 延迟到 trace 才失败。
35
+ - Operator Chat 恢复工具对齐真实能力:系统提示改用 `dagReport` / `dagRerunPlan` / `dagRerun` / `standaloneTaskRerun` / `workerTaskRetry` 真名,不再写 `operator_*` 或把 `dagResume` 当成模型可执行项;`dagDoctor` / `dagStatus` / `workerPoolDoctor` 改为 typed `runId`/`taskId`,不再让模型猜 CLI `args[]`。ADR 0013 自定义 base prompt 上限由 1900 统一调整为 2500(2026-08-18,废止 0.8×2498 比例),预算用于写清节点续跑 / 整单重生 / Worker 重排队分流,以及多轮迭代恢复纪律(先一句话总结上一轮错误、修根因不修症状、禁止原样重交、同错两轮后停下报告)。
36
+ - Operator Chat 模型工具面收敛:`advanced` 分类的命令(workflow/loop/benchmark/knowledge-graph 等 8 个只读低频入口)不再进入模型工具白名单,模型注意力集中到高频工具;保留的 27 个 model-callable 官方 CLI 动作全部换上「做什么 + 何时用」语义描述,不再是无信息的 `Official CLI action coverage for ...` 模板;dispatcher 对官方尾部动作的识别从描述前缀匹配改为结构化 `OFFICIAL_TAIL_ACTION_IDS` 集合判断。审查收口:`knowledgeCurate` 纠正为 `mutation`/`advanced`(条件写盘,移出模型面,防经 read 通道传 `--output` 写盘);`promoteRun`/`closeoutTask` 描述去掉 dispatch 不保证的生命周期断言,如实标注为 task-advance 别名并提示先核 run/任务状态。工具清单渲染修复:promptSnippet 去掉重复工具名前缀(SDK 渲染自带 `- name:`,原实现名字出现两遍);`inspect`/`status`/`spineCheck`/`sourceInstructions` 四条占位描述换成语义描述;task-advance 家族(`newTask`/`dagRunTask`)标注与标准流 `taskAdvance` 的关系,避免模型在 5 个相似入口间选错。可调用性修复:`observeLink` 补上 4 个可选参数 schema(dagRunId/taskId/featureId/workerRunId,原空 schema + additionalProperties:false 导致模型传参必被拒、工具名存实亡);Pi 工具参数 schema 现在携带注册表里的参数描述(Type.String/Boolean/Number/Array 注入 `description`,原实现丢弃参数描述、模型只能看到参数名)。
37
+
38
+ - Operator Chat 对齐 pi-web:建会话不再传封闭 `tools` 白名单(避免 SDK 把扩展 MCP 工具滤出 registry),创建后 `bindExtensions` 发 `session_start`,再钉激活集。扩展注册的 MCP 工具可被模型调用;`apply_patch` / `full-tools` / `shell` / `coding-chat` 仍排除。
39
+ - 对话侧栏 Plugins 右侧新增只读 MCP 弹窗:展示 `mcp.json` 配置的服务,以及当前会话真正注册/激活的 MCP 工具;没有配置也没有工具时保持真实空态。
40
+ - 对话侧栏原 Packages 入口改名为 Plugins,与 pi-web / Pi 用户面一致;内部仍是 package inventory。
41
+ - 对话进行中底部上下文占用百分比保持常驻:token 用量事件不再冲掉上一帧的 contextUsage,并在回合中持续刷新。
42
+ - 上一轮大量 bash 结束后再发新消息,旧工具条不再整批挂到新气泡下面:无主工具不再丢进最新一组,历史按完整回合裁切,空助手气泡若还挂着工具会留下来当锚点。
43
+ - 侧栏文件树点击目录行直接插入 `@目录/` 引用(箭头单独负责展开/收起);输入框 @ 补全也列出目录,排在文件前面。
44
+ - 对话进行中点「停止」立即安静下来(乐观停止,对齐 pi-web):不再等 POST /abort 往返;后端 abort 等待从 8s 降到 2.5s,未终结时由状态对账收敛。
45
+ - 侧栏文件树实时刷新:agent 回合结束、浏览器标签页回到前台、手动点「刷新」时重拉根目录+全部已展开目录(此前手动刷新只拉根目录,子目录永远旧缓存)。
46
+ - Skills / Packages / Models 面板不再把 Pi 的 warning / collision 原文堆在列表上方:改成标题条一颗摘要芯片(如「14 条提示」),点开按「需要处理 / 名称不规范 / 同名未生效」分组,文案用自然语言,路径只显示末两段;名称不规范的技能在列表旁标「提示」,详情里说明「现在这样也能用」。加载失败仍单独成组,可点「再读一次」。
47
+ - Skills / Packages 双栏改为左右各自滚动;资源弹窗挂到 `document.body`,按顶部对话导航的实时高度在剩余视口居中,不再被 sticky 顶栏挡住上沿。
48
+
49
+ ### 修复
50
+
51
+ - Console 对话中的 Markdown 表格只约束横向滚动,不再截断纵向滚动链;鼠标或触控板停在表格上时仍可继续上下滚动对话。
52
+ - scenario-param 确定性 rewrite 的 Python 语法校验:Windows 优先 `python`,并把 Microsoft Store `python3` 空壳(非 0 且无语法诊断)视为解释器不可用后回退,避免误回滚合法 rewrite。
53
+ - `frontend-plan-revision-pi` 节点级校验与 merge-patch 输出协议矛盾修复:新增 schemaId `frontend-implementation-contract-revision-patch-v1` 与格式级宽松校验 `validateFrontendRevisionPatchNodeOutput`(至少一个 `openspec-citations` 块 + 剥离引用块后恰好一个 JSON 对象,不做完整契约 schema 校验),revision 节点 `structuredContractOutput.schemaId` 切换(plan-pi 仍为 v1);node-execution 的 invalid-output retry 指令按 schemaId 分支,patch 协议提示 merge-patch delta + 引用块,消除「prompt 要求 patch、retry 要求完整契约」的 retryable 死循环;gate 仍是唯一权威合并/校验点(零改动)。ADR 0015 补「节点级校验」决策 7
54
+ - `frontend-implementation-contract.schema.json` 的 `uiComponentChoices` items 补 `if/then` 决策语义(`specified` ⇒ `specReference` 必填非 null;`new` ⇒ `specReference` 为 null/缺失);`frontend-plan-render.ts` 空 `section` 不再渲染尾随 `#`;ADR 0016 增补「门禁边界」小节
55
+ - 前端 gate 内容驱动 revisionPatch 兼容 + verdict 归一化统一:旧 DAG(缺 `revisionPatch` 字段)但 revision 节点按协议输出 merge-patch 时,gate 按内容判定自动合并原始契约并走既有校验(不再因 `missing targets.files` 进入 retryable 死循环);patch 形态但无法合并(fallback 缺失/自身、原始节点不可读或非完整契约、apply 失败)→ `blocked` + 新增 `revision-patch-unmergeable`(错误信息含重新生成 DAG 指引);`normalizeVerdictCandidateLine` 增强 backtick 强调剥离,gate 的 `firstNonEmptyVerdictLine` 复用共享 normalize,runIf / output-protocol / gate 三处一致
56
+
57
+ ### 文档
58
+
59
+ - 新增 `docs/decisions/0016-frontend-component-conformance.md`,并同步 `docs/runtime/frontend-implementation-workflow.md`、`docs/templates/frontend-implementation-contract.schema.json`、`skills/frontend-implementation/references/design-spec.md`、`skills/frontend-implementation/references/node-contracts.md`、`skills/frontend-design-review/references/review-checklist.md`、`CONTEXT.md`
60
+ - 新增 `docs/decisions/0015-frontend-plan-json-only-contract.md`,并同步 `docs/runtime/frontend-implementation-workflow.md`、`docs/templates/frontend-implementation-contract.schema.json`、`skills/frontend-implementation/references/node-contracts.md`
61
+ - 新增 `docs/decisions/0014-openspec-gate-claim-verification.md`,并同步 `docs/runtime/frontend-implementation-workflow.md`、`docs/templates/frontend-task-constraints.md`、`docs/templates/frontend-design-contract.md`、`skills/frontend-implementation/references/node-contracts.md`
62
+
63
+ ## [0.37.1-beta.0] - 2026-08-16
64
+
65
+ ### 重点更新
66
+
67
+ - backend-test live campaign R115–R141 收口:全新 R141 达到 readiness PASS、23/23 correspondence exact、146/146 Test Points、77/77 scenario MATCH、traceability PASS,并唯一执行 82 个真实 API pytest body
68
+ - 强化 backend-test correspondence、scenario-param、Markdown/pytest writer、collection repair、日志审计和 Windows pytest argfile 执行链,稳定区分 controller TestBug、generated TestBug 与真实 API ProductBug
69
+
70
+ ### 改进
71
+
72
+ - backend-test correspondence 只分析目标请求实际绑定的 body/payload,忽略 `scenario` 元数据与 setup-only payload;对 `scenario["body"]` 保留字段 shape,并把 intentional invalid enum 交由 scenario-param 门禁判断;同时识别下划线前缀 pytest 参数集合与带说明的 `Payload Contract: none(…)`,避免零 eligible 的 payload/parameter 误阻断
73
+ - backend-test correspondence 继续解析模块内 transport wrapper 的位置 payload 与 wrapper 构造 body,并清理 `Payload Enum` 值后的中文说明,避免 PUT/lifecycle 合法载荷误报;Markdown/pytest writer 同步禁止臆测响应 ID 类型,并在路径 ID 类型未声明时使用 create-delete 派生的合法 missing ID,避免把测试资产缺陷误分类为产品 400/404 缺陷
74
+ - backend-test correspondence 可还原 `_apply_patch(_base_body(...), patch)` 等 transport-body 组合表达式,并把 setup wrapper payload 限定为有 body 契约时的 fallback;traceability 接受经递归脱敏和有界输出的结构化 request/response 日志,scenario-param 支持带显式例值的 string wrong-type;pytest writer/repair 同步禁止把 path/query/control `id` 混入 DTO patch
75
+ - backend-test correspondence 识别模块级 `_post_case`/`_put_case` 参数工厂、factory TP 字面量与通过 `payload["field"] = value` 构造的 DTO shape,并避免空列表全局变量吞并后续参数集合;writer/repair 要求每个变体展开为直接 `pytest.param(..., id="TP-...")`,scenario readiness 不再依赖隐藏的动态参数行;traceability 允许窄 `urllib.error.URLError`/`httpx.RequestError` DELETE cleanup
76
+ - backend-test correspondence 继续还原 `payload = _base_note_payload()` 形式的 builder-return dataflow,并把 intentional invalid enum 交给 scenario-param 而非 Case 聚合 payload gate;Markdown review 明确 GET/DELETE setup DTO 不得改写目标 no-body contract,pytest writer/repair 禁止把返回 scalar 的 helper 当 tuple 解包
77
+ - backend-test collection repair 把 upstream 的 `Repair paths: testcase/...` 直接视为完整权威路径证据并读取/编辑该文件;禁止猜测根级 `contracts/**` 或 DAG run 目录,也禁止 read tool 已成功返回文件后反事实声称路径不存在并提前 blocked
78
+ - backend-test 的 REPAIRABLE collection repair 现在强制 non-empty diff,禁止 `already-satisfied` 制造假修复;Markdown review 增加 `### 测试点` 与三类 binding union 的 exact-set 校验并删除 legacy alias;no-body Case 的 payload correspondence 忽略同一 journey 的 direct setup POST/PUT DTO
79
+ - backend-test generated-local collection repair 从 HIGH 路由降为 MED,在保留 write guard 与 requireChangedFiles 的同时避开连续多轮 grok repair hallucinated blocked/changed-without-write,改由稳定 writer 路由执行有界单文件修复
80
+ - writer outcome 协议确定性归一化显式中文 `实现结果:已变更|已满足|已阻塞` 到 canonical `IMPLEMENTATION_OUTCOME`,仍拒绝无标签 prose、未知值和冲突值,不根据 diff 猜测语义
81
+ - scenario-param 识别 `"x" * _TITLE_MAX_LENGTH` 等长度表达式与 helper 常量名相乘形式
82
+ - correspondence 忽略 pytest payload 中的 `expect`/`echo_*` 辅助键,避免把 DTO 外 helper 字段误判为 PAYLOAD_SHAPE_MISMATCH
83
+ - scenario-param 解析 `bound=LEN100` 机器行、解引用 `_STATUS_ACTIVE` 等 Python 字符串常量,并把 `NOMINAL` 长度样本从 min/max 纠正为 nominal
84
+
85
+ - scenario-param 观测识别 `_OMIT`/omit sentinel 为合法 `missing`,跳过 `"2xx"`/`"400"` 期望码位置参数,解码 Python `\t`/`\n` 空白字面量,识别 `_TITLE_LEN1` 等长度 helper 名,支持 `custom-literal:whitespace-only|whitespace-padded` 语义标签,`enum-invalid` 接受具体非法字面量,并在 `min`/`LEN1` 意图下优先读取 TP 编码长度与 `minLength` 边界
86
+ - scenario-param 兼容 `empty` 意图下的 omit/`missing-key`,规范化 `custom-literal` 外包引号与可见空白符,并把 `max+1`/`min`/`max` 的裸数字位置参数按长度 token 比较(含 oversized 数字本身);`custom-literal:trim` 视为 padded whitespace 语义标签
87
+ - backend-test writer 合同明确:`enum-invalid` 必须使用具体非法字面量且禁止 `_OMIT`/missing-key;`custom-literal:trim|ACTIVE|ARCHIVED` 必须使用真实 padded/enum 字面量,禁止 `filter-active` 类描述性伪值
88
+ - scenario-param 识别 `_*_MAX_LENGTH` / `_*_OVER_LENGTH` 等长度 helper 名,明确 `custom-literal:trim` 不能是全空白,并把无 pytest.param 的 request-level/health nominal 记为 MATCH 以免污染 eligibility
89
+
90
+ ## [0.36.4-beta.0] - 2026-08-16
91
+
92
+ > 前端 DAG 规范上下文确定性落地(beta,发布到 `beta` dist-tag)。
93
+
94
+ ### 新增
95
+
96
+ - `discoverFrontendProjectCapability` 产出 `designEvidence.classified` 语义归类:按通用目录约定(`openspec/schemas/**`、`openspec/project-specs/templates/**`、`openspec/project-specs/rules/**`、`openspec/project-specs/ui/**`、`ai_workspace/**`)把规范路径分入稳定键 `schemas` / `codeTemplate` / `rule.*` / `theme` / `component` / `uiOther` / `advisoryOther`,并进入 zod schema 校验(分区恒等式:归类值集合 == `normativePaths` 集合),重复探测稳定,不硬编码具体项目文件名
97
+ - 前端 contract/scout/plan/design-review 节点的 `subtask_prompt` 注入归类后的规范路径(含角色语义)并明确要求报告适用规则、命中路径/章节/行号、冲突与缺失
98
+
99
+ ### 修复
100
+
101
+ - `frontend-prewrite-gate` 在 `openspecCandidatePaths` 非空时强制生效 plan/review 节点实际读取候选路径:未读 → `retryable-invalid` + 新增 `openspec-not-read` failureCode,错误信息列出未读路径;空候选(greenfield)不阻断。此前读取证据仅记录不阻断(advisory),本次真正 fail-closed
102
+ - OpenSpec 候选发现止血:默认排除治理子树(`harness.json.governanceRoot` → 缺省 `ai_workspace/loop-agent`),移除固定 `slice(0, 40)` 截断,`openspec/**` 排序优先于 `ai_workspace/**`,仅保留 ≥200 的显式安全上限(命中时写入 `DagSpec.advisories`,非静默丢弃);`openspec-not-read` 失败原因增加实际读取路径/候选总数/排除统计与「重新生成 DAG」归因,生成后已删除/改名的候选改为 `candidate-missing-drift` 诊断而非误报「未读」
103
+
104
+ ### 文档
105
+
106
+ - `docs/templates/frontend-task-constraints.md` 把裸 `TODO` 改写为「探索协议 + 结果 schema + 缺失/冲突 fail-closed」,不再出现具体业务组件名或项目专属路径/命令
107
+ - `docs/templates/frontend-task-requirement.md` 与 `docs/templates/frontend-design-contract.md` 把裸 `TODO` 改写为「编写协议」三要素(要写什么 / DAG 如何消费 / 缺失/冲突时 fail-closed),并新增 `test/frontend-template-no-todo.test.ts` 扫描三个前端模板断言无裸 `TODO`
108
+ - `docs/runtime/frontend-implementation-workflow.md` 的项目规范归类清单改为通用目录约定 + 归类规则,删除写死的示例项目文件名
109
+
110
+ ## [0.36.3-beta.0] - 2026-08-16
111
+
112
+ > 前端 DAG Mock 治理收紧(beta,发布到 `beta` dist-tag)。
113
+
114
+ ### 改进
115
+
116
+ - 前端 DAG 的 Mock 策略约束注入设计评审链:`mockContextBlock`(含冻结 allowlist 的「HARD CONSTRAINT」与修复路径)现在也注入 `frontend-design-review-pi` / `frontend-plan-revision-pi` / `frontend-final-design-review-pi`,消除「design-review 按项目规范要求 native、但生成期 allowlist 冻结为 not-needed、prewrite 硬阻断」的策略断环——评审链会明确提示这是生成期契约缺口(需声明 `frontendMock.verifyCommands` 或 `policy: "required"` 后重新生成 DAG)
117
+ - 前端任务生成期 Mock 预警:新增 `DagSpec.advisories`,任务源提到接口/API/Mock 但 auto 模式把策略收窄为 `not-needed` 时,`task advance` 的 `warnings` 会给出可操作提示(声明 `frontendMock.verifyCommands` 或 `policy: required` 后重新生成 DAG),把契约缺口提前到生成期暴露
118
+
119
+ ### 新增
120
+
121
+ - 版本发布改为三渠道:main 自动发布 npm `next`(`x.y.0-next.N`)、release 分支自动发布正式 patch 到 `release-x.y`、`latest` 仅由人工 GitHub Actions promotion 移动(支持 dry-run 与 CAS 校验)
122
+ - 新增 `next-release.yml` / `cut-release-line.yml` / `release-line-publish.yml` / `promote-npm-latest.yml`,删除旧每日自动 latest 发布入口
123
+ - 发布策略改为 branch + version + channel 矩阵(`scripts/release-channel-policy.mjs`),fail closed
124
+ - 双周 Release Train:可从选定 next 的精确 source SHA 创建版本化 release 分支,带幂等恢复与单 tarball SHA-256 绑定
125
+
126
+ ## [0.37.0] - 2026-08-16
127
+
128
+ ### 新增
129
+
130
+ - markdown syntax highlight, math formulas and mermaid diagrams; operate entry lands on chat
131
+ - label rerun titles with round number from -rN id suffix
132
+ - enter-DAG action, artifact rail projection, zh changelog
133
+ - surface compaction progress and timeline summary
134
+ - floating auto-dismiss toasts replace in-flow error alerts
135
+ - add running spinners to session titles and stop button
136
+ - show context ratio, semantic cache icons, align process entry typography
137
+ - show context usage and semantic cache labels in usage bar
138
+ - stream live turn process in strict order
139
+
140
+ ### 修复
141
+
142
+ - isolate interrupt kernel behind worker adapter
143
+ - constrain session title width so hover tooltip engages
144
+ - backfill operation link for semantic activity refs
145
+ - fail fast on non-canonical newTask ids with suggested fix
146
+ - accept projected references and normalize PRD headings
147
+
148
+ ## [0.36.2] - 2026-08-16
149
+
150
+ ### 修复
151
+
152
+ - exempt changelog history from task-pool-root scan
153
+ - exempt gitignore managed-block doc references in task-pool-root check
154
+
155
+ ## [0.36.1] - 2026-08-16
156
+
157
+ ### 新增
158
+
159
+ - cooperative live DAG interrupt and recovery UX
160
+
161
+ ### 修复
162
+
163
+ - move interrupt eligibility to observability to honor kernel import boundary
164
+ - retry semantic intake across Pi tiers with 300s timeout
165
+
166
+ ## [0.36.1-beta.0] - 2026-08-16
167
+
168
+ > 标准 DAG planner 输出超长紧凑重试(beta,发布到 `beta` dist-tag)。
169
+
170
+ ### 改进
171
+
172
+ - 标准 DAG 的 planner 节点(`contract-pi` / `plan-pi`)输出超长(`output-too-large`)时自动紧凑重试:新增 `PLANNER_OUTPUT_LIMIT_RETRY_POLICY`(默认重试集合 + `output-too-large`),紧凑重试指令按节点类型区分——结构化契约节点只返回单个紧凑 JSON,普通计划节点返回最小计划(有序步骤、writeSet 边界、验证命令),并丢弃上游原文引用与长证据摘录
173
+
174
+ ## [0.35.4-beta.0] - 2026-08-15
175
+
176
+ > frontend prewrite 阻断误路由修正 + Mock 契约文档落地(beta,发布到 `beta` dist-tag)。
177
+
178
+ ### 改进
179
+
180
+ - prewrite 阻断导致的 writer `SKIPPED`(`skippedReason=frontend-prewrite-not-authorized`)失败路由从 `DependencyFailure`/`unblock dependency` 修正为 `ContractMismatch`/`fix-frontend-task-contract-and-regenerate-dag`;`dag report` / `dag doctor` 透传 `skippedReason`,对「Mock 策略契约缺陷需改 task.json + 重新生成 DAG」这类场景给出可操作建议,而非误导性的「解除依赖」
181
+
182
+ ### 文档
183
+
184
+ - `docs/templates/frontend-task-constraints.md` 的 Mock 约束从 TODO 改为可落地契约:要求从项目**探索**实际存在的确定性 Mock 验证命令(不硬编码命令名)并声明到 `task.json.frontendMock.verifyCommands`,说明生成期 `allowedMockStrategies` 来源、`mock-strategy-outside-allowed` 是生成期契约问题(修复 = 补契约 + 重新生成 DAG,plan-revision 无法修复)
185
+ - `docs/runtime/frontend-implementation-workflow.md` 的 task.json 输入标准补充 Mock 契约声明、命令探索与失败恢复指引
186
+
187
+ ## [0.36.0] - 2026-08-15
188
+
189
+ ### 新增
190
+
191
+ - 新增任务旅程活动栏,把任务创建、人工门禁、多次运行、失败和恢复记录聚合在同一张卡片中
192
+ - 强化 Operator Chat 的 DAG 恢复能力,运行失败后可以直接查看原因、恢复路径和后续动作
193
+ - 会话删除改为列表行内二次确认,减少误删,也不再被浏览器原生弹窗打断
194
+ - Operator Chat 可以持续监督长时间运行的 DAG,直到任务结束、失败或确实需要人工处理
195
+ - 优化斜杠命令面板的卡片布局和键盘操作,在较小窗口中也能完整浏览和选择命令
196
+ - 运行状态、恢复提示和关键操作文案统一为自然中文,减少内部状态码和生硬英文直接暴露给用户
197
+
198
+ ### 修复
199
+
200
+ - 任务推进期间的监督更加可靠,减少因短暂静默或状态更新延迟造成的误判
201
+ - 运行器心跳不再提前唤醒 `operationWait`;Markdown 写入统一使用安全编辑工具,降低误覆盖风险
202
+ - 写入目录文档时必须同步更新对应索引,避免内容已经生成却无法从目录入口找到
203
+ - PRD 验收标准支持更多常见中文标题写法,不再因括号、破折号或措辞差异漏掉验收条件
204
+ - 要求执行节点真正生成计划文件;没有触碰禁写路径时,不再错误声称任务受阻
205
+ - 恢复重跑可以正确读取 `dag report` 返回的运行列表,不再因为响应结构差异误判为不可恢复
206
+ - 变更范围统一以 Git 工作区的真实差异为准,不再根据模型回复文字推测是否修改过文件
207
+ - Operator 自定义工具可以正常进入 Pi SDK 会话,不再被工具白名单意外过滤
208
+ - 斜杠命令面板会根据实际可用高度自动调整,不再被窗口边缘裁切
209
+ - 补齐 Operator Chat 的本地命令处理、动态命令降级和错误提示等交互缺口
210
+
211
+ ## [0.35.3] - 2026-08-15
212
+
213
+ ### 新增
214
+
215
+ - Console 默认进入「对话」页面;创建新任务时先分析需求和依赖,再进入正式任务流程
216
+ - 计划中的文件验证会优先落到允许写入的范围内,命令级检查则使用稳定的静态验证入口
217
+ - Recovery 页面新增恢复链路和最终结果展示,能够看清一次失败是如何被接管和收敛的
218
+ - 前端实现 DAG 增加恢复根清单,并去除重复统计,恢复报告更清晰
219
+ - 写入节点支持部分写入回滚和子任务恢复,局部失败不再轻易污染后续执行
220
+ - 写入节点遇到短暂故障时可以回退到稳定基线,再决定重试或恢复
221
+ - 调度器增加激活门禁和恢复触发条件,只有满足执行条件的子任务才会进入运行
222
+ - 新增分阶段创建子任务的基础能力,为后续恢复和分批执行提供统一入口
223
+ - 补齐恢复状态、恢复结果和终态恢复意图的数据结构,前后端对失败状态的理解保持一致
224
+ - 产出节点新增契约自检,并强化长时间运行时的稳定性和异常收敛能力
225
+ - 统一写入节点的公共辅助逻辑,修复判断改为结构化结果,不再依赖模糊文本
226
+ - 精简前端实现 DAG 的第一阶段,在正式写入前完成结果合并和写入准入检查
227
+
228
+ ### 修复
229
+
230
+ - 规范证据面板不再单列 openspec,统一为「规范已读取/规范检索」
231
+ - 恢复全量测试稳定性:没有 `python3` 时自动使用可用 Python,统一构建版本格式,并处理 Node 弃用警告造成的干扰
232
+ - 修正续跑候选测试数据,使 `failureCode` 与真实失败语义一致,避免变基后出现错误判断
233
+
234
+ ## [0.35.2] - 2026-08-15
235
+
236
+ ### 重点更新
237
+
238
+ - Operator Chat 处理详情对齐 pi-web:回合尾部的思考内容与工具调用摘要切分为可折叠「处理详情」,流式中思考可见,回合结束后自动折叠,最终回答单独成气泡
239
+
240
+ ### 新增
241
+
242
+ - 对话时间线新增内联可折叠「处理详情」区块,集中展示模型思考与工具调用摘要,回合结束后自动折叠
243
+ - turn-process 保留 SDK thinking blocks,流式传输与持久化均携带思考内容
244
+
245
+ ### 改进
246
+
247
+ - 命令面板 shortcut 优化:Operator 组单行展示,/task、/contract、/dag 分别跳转到任务与恢复页面
248
+
249
+ ### 修复
250
+
251
+ - 修复「处理详情」思考折叠块背景引用未定义样式变量 --panel 的问题,改为确定性透明背景,消除 Console 样式变量完整性门禁对发布的拦截(视觉无变化)
252
+ - 移除自指的 /help 命令项:输入 / 已弹出命令面板,不再单独提供重复的帮助入口
253
+
254
+ ## [0.35.1] - 2026-08-15
255
+
256
+ ### 重点更新
257
+
258
+ - taskKind 显式契约全链路生效:页面显式选择的任务类型(含「后端研发(默认 DAG)」= standard)不再被 intake 语义识别或 DAG 生成阶段的语义分类改写;taskKindExplicit 从 CLI 标志 → 语义草稿 → task.json → DAG 路由全链路透传,显式 standard 跳过语义分类且不回写 taskKind
259
+ - Console 任务向导提交反馈:导入/访谈/契约等长动作点击后立即显示进度文案与按钮 spinner,消除数十秒无反馈的「页面卡死」观感;导入结果新增自动发现引用文档与未解析引用的透明提示
260
+ - Console intake 链路修复:任务导航上传 PRD 三件套后契约落地不再因工程边界缺失卡死;semantic intake 在缺失型边界缺口时接管并基于仓库布局推荐 allowedPaths/verify;文字录入「请参照这三个prd路径…」自动发现并导入引用文档;新的 PRD 导入重置 semantic intake 一次性 marker,失败后可重试
261
+
262
+ ### 新增
263
+
264
+ - PRD 引用自动发现:无上传文档时从文字录入内容中提取 Unicode 路径 token,经 URL 剥离、存在性/大小/排除过滤与角色推断后按角色自动导入引用文件,并透出自动导入与未解析引用结果
265
+ - 任务向导长动作(bootstrap/import/interview/contract)点击后立即在 flash 区域显示动作进度文案(含全链路阶段说明与预期时长),结束时被结果消息覆盖
266
+ - PRD 导入主按钮增加 busy 态 spinner、「导入中…」文案与 aria-busy,新增旋转动画样式
267
+ - 导入结果渲染自动导入的引用文档(路径:角色)与未解析引用警告
268
+
269
+ ### 改进
270
+
271
+ - semantic intake 资格判定拆分缺失型(工程边界/taskKind 缺失时允许模型按仓库布局推荐)与非法型(路径策略/安全/重叠等仍维持拒绝),回归其 repo-layout-aware fallback 的设计意图
272
+ - semantic intake 提示词增补正式 AC 标题逐字复制指引
273
+ - task advance 对模型未推荐边界场景增加 SEMANTIC_INTAKE_BOUNDARY_UNRESOLVED 可操作提示,明确告知用户当前状态
274
+
275
+ ### 修复
276
+
277
+ - 修复 Console 显式选择的 taskKind 被丢弃的问题:此前「未选择」与「显式选 standard」被混为一谈,仅在非 standard 时传递任务类型标志,导致 AI 语义识别(如推荐 backend-test)覆盖用户选择、DAG 被改道
278
+ - 修复 DAG 生成阶段对显式 standard 仍执行语义分类并回写 taskKind 的问题:显式信息此前在契约落盘时丢失,现显式指定时跳过语义分类且不回写
279
+ - 修复 PRD 三件套上传时工程边界缺失以 EMPTY_ALLOWED_PATHS blocking 卡死、semantic intake 拒绝接管、契约永不 apply 的问题
280
+ - 修复文字录入「请参照这三个prd路径XXX」只物化一句话、引用文件从未导入的问题
281
+ - 修复 semantic intake attempt marker 一次性失败后永不重试的问题:新的 PRD 导入会重置 marker,失败可随新证据重试
282
+ - Operator Chat DAG recovery P0 收敛:`operationWait` 默认仅由 meaningful progress 或终态唤醒,同时保留 `wakeOn=all` 诊断兼容;operation 终态原子保存并安全投影受信任的 `runSummary`/`dagRunId`,Operation Card 与 prompt 可直接消费失败节点、category 和 recovery 摘要;独立 review 后补齐所有 allowlisted 文本字段中的 Windows drive、UNC 与 POSIX absolute-path 子串脱敏,且不暴露 raw result、CLI 参数、绝对 artifact path 或 secrets。
283
+ - 修复 terminal `run-failed + gate=null` 仍建议 `task advance` 的无进展循环;task status 与 Operation Card 现在停止盲目 resume/retry,并只提供合法的 Inspect/外部恢复导航。
284
+ - 为 Console shortcut palette 的动态高度 custom property 声明 `62vh` 默认值,保留 ChatComposer inline override 与既有 fallback,并维持 `shell-ui-boundary` 未定义 token 检查强度。
285
+
286
+ ## [0.35.1-beta.0] - 2026-08-14
287
+
288
+ ### 重点更新
289
+
290
+ - Operator Chat 新增长跑 DAG 自主监督能力,通过只读 `operationWait`、canonical heartbeat 与有界退避持续监控后台 operation 至真实终态
291
+ - `task advance --approve-gate --json` 新增 stderr 周期进度,同时保证 stdout 保持单一最终 JSON
292
+ - `loop-agent init` 收敛 managed `.gitignore` 与运行态目录迁移评估,并保留项目自有 Pi routing
293
+ - Operator Chat `/` 命令面板升级为响应式 3/2/1 列卡片网格,补齐参数命令、动态目录与键盘/IME 行为
294
+
295
+ ### 新增
296
+
297
+ - Operator Chat 长跑 DAG 监督 P0-P2:新增只读、model-callable、无需 Human Gate 的 `operationWait` action/tool(复用 operation event store 的 `listFrom`/`subscribe`,订阅先于复查防竞态;已有事件/终态/needs-reconcile 立即返回,首个新事件立即 settle,超时返回 `timedOut:true` 摘要而非命令失败,NOT_FOUND/EVENT_CURSOR_EXPIRED 确定性错误;所有路径单次 settle 并清理 timer/listener)。
298
+ - Console operation runner 将 sibling CLI 的 `LoopAgentClient` heartbeat 投影为 canonical `kind: "heartbeat"` operation event(含 `at`、`elapsedMs` 与 operation/action/run/task 安全摘要);写入失败不终止 sibling CLI/DAG 执行,不改变 DAG runner lease heartbeat 频率。
299
+
300
+ ### 改进
301
+
302
+ - `task advance --approve-gate --json` 运行 DAG 时周期进度只写 stderr(`--quiet` 可关闭),stdout 保持单个 `OperatorCommandResultV1` JSON;新增 `--progress-interval-ms`(下限 1000ms,与 `dag execute` 同语义)与 `--quiet` 参数;observer 仅在 approve 且非 dry-run 时创建,所有终态/异常路径 `finally` dispose,不留 timer。
303
+ - Operator Chat 长跑监督合同统一为 60 → 90 → 120 → 180 秒退避(状态变化后重置 60 秒,疑似 stall 用 30–60 秒复查);base prompt 与 managed init `AGENTS.md` 模板明确:长跑 DAG 必须经 `prepareDagExecution → runDag → operationId` 由 Console operation 后台持有,禁止前台 Bash 直接 `task advance --approve-gate`、禁止管道 `tail`/`head`、禁止模型自行拼接 `nohup`/`Start-Process`/`start`。
304
+
305
+ ### Init / Upgrade
306
+
307
+ - `loop-agent init` 的 managed `.gitignore` block 收敛为四条目录级规则(`.harness/`、`.agents/`、`.task-pool/`、`.worktrees/`):删除旧细粒度规则与反向放行;`scripts/` 与 `ai_workspace/loop-agent/` 保持可提交。旧格式 block 仍由 `check-update` 确定性报告 `refresh-managed-block`,`update --apply-safe` / `upgrade` 应用后收敛,block 外用户规则原样保留。
308
+ - full init 不再生成 `.harness/**/.gitkeep` 占位文件(目录照常创建)。
309
+ - `init upgrade` 在 managed block 收敛后生成只读 gitignore 迁移评估(`.harness/init-upgrades/<run-id>/gitignore-migration.json`):inventory 已跟踪的 `.harness/**` 与 `.agents/**`,建议 index-only 的 `git rm -r --cached --ignore-unmatch` 命令(只改 index、保留工作区文件);`.agents` 已跟踪内容触发审查暂停,非 Git 仓库 / git 查询失败 / 存在 staged 条目时 fail closed,controller 不自动修改 Git index。
310
+
311
+ ### Operator Chat
312
+
313
+ - 会话历史删除改为 pi-web 式列表行内二次确认:首次点击垃圾桶只在原行显示“删除 / 取消”,不再弹出浏览器原生确认框;同一时刻仅允许一行确认,切换会话、点击取消或按 `Escape` 可撤销,删除中显示忙碌态并阻止重复请求,同时保留原 DELETE confirmation token、失败提示和当前会话清理合同。
314
+ - 修复 Operator Chat 斜杠命令面板在紧凑布局或低高度窗口中顶部被 `.oc-main` 裁切的问题:面板打开后按主工作区顶边与 Composer 锚点之间的真实可用空间动态收缩,并在窗口、VisualViewport 与 Composer 尺寸变化时重算;面板头部保持可见,候选列表继续独立滚动,同时保留原有 `62vh / 520px` 安全上限与无测量回退。
315
+ - Operator Chat 斜杠命令面板完成 UI-12 响应式卡片网格:Operator / Pi Web / Extensions / Prompts / Skills 分组按现有 `comfortable / compact / narrow` 容器模式渲染 3 / 2 / 1 列,卡片仅显示真实命令名与最多两行描述;面板头部固定、候选区独立滚动、分组标题 sticky,长命令不会撑宽页面。键盘支持四方向几何导航与最小滚动,hover、`aria-selected`、`aria-activedescendant` 保持同源;IME composition 与结束后 100ms 保护阻止误导航/误接受,完整描述通过 `aria-describedby` 关联。补足 1/2/3 列、跨分组和 shuffled globalIndex 回归测试,并以真实浏览器验证三档列数、无横向溢出及 Operator/extension/prompt/skill 补全路径。
316
+ - 修复 Operator Chat 命令面板缺口:`/name` 与 `/compact` 参数走本地重命名/压缩路径,palette Enter/Tab 对参数命令进入可编辑前缀,动态 Extension/Skill/Prompt 冲突按优先级保留最高来源,动态目录 fail-soft 时保留本地命令并展示可重试 warning;会话标题 tooltip 水平夹紧视口,单条 Markdown 渲染失败仅该消息降级为纯文本。
317
+
318
+ ## [0.35.1-beta.4] - 2026-08-15
319
+
320
+ > 观察面板规范证据不再单列 openspec:读取与检索统一为「规范已读取 / 规范检索」,空态文案同步中性化(beta,发布到 `beta` dist-tag)。
321
+
322
+ ## [0.35.1-beta.3] - 2026-08-14
323
+
324
+ > frontend-implementation DAG 优化 v9 全六阶段 + Console 展示层(beta,发布到 `beta` dist-tag)。
325
+
326
+ ## [0.35.0] - 2026-08-13
327
+
328
+ ### 重点更新
329
+
330
+ - 将前端实现契约收敛为单一事实源,消除多个 JSON 生产者导致的输出冲突
331
+ - 严格绑定 Mock 策略与冻结验证命令,在生成与写入阶段前置拦截不一致配置
332
+ - 设计评审节点引入协议感知重试,格式漂移不再直接拖垮整轮运行
333
+ - 改进控制台运行时上下文面板与操作员对话控件
334
+
335
+ ### 新增
336
+
337
+ - 前端设计评审节点声明 `first-line-enum` 输出协议,VERDICT 首行缺失或畸形时在同一节点内有界重试
338
+ - 前端契约物化新增冻结命令校验,`verificationTarget.commandLabel` 必须落在冻结命令集合内,否则 fail-closed 拒绝
339
+ - plan/revision 提示词强化单 JSON 输出与逐条 AC 回显
340
+
341
+ ### 改进
342
+
343
+ - 前端实现 DAG 删除重复的 JSON 生产节点,由 prewrite gate 直接从生效计划末尾物化契约,避免 `invalid-output (found N)` 错误
344
+ - 前端 Mock 策略解析逻辑优化:auto 模式在无确认 Mock 能力或无确定性验证命令时强制 `not-needed`,required 模式缺少验证命令时生成期即阻塞
345
+ - 前端 prewrite gate 对不在允许范围内的 Mock 策略给出可操作错误,明确区分不同失败原因并附修复建议
346
+ - 设计评审 verdict 提取同时检查 `assistantText` 与 `stdout`,避免仅输出到 stdout 的 `request-revision` 被误判为缺失
347
+ - 控制台运行时上下文面板与操作员对话控件体验优化
348
+
349
+ ### 修复
350
+
351
+ - 修复前端 Mock 策略与验证命令不一致仅在 verify trace 才暴露的问题,现已在 prewrite gate 前置安全拦截
352
+ - 修复多个 JSON 生产者导致契约物化失败的问题
353
+ - 修复 `VERDICT: request-revision` 仅输出到 stdout 时被误判为缺失的问题
354
+
355
+ ## [0.34.5] - 2026-08-13
356
+
357
+ ### 重点更新
358
+
359
+ - 优化 Operator Chat 对话页体验,包括隐藏重复标题、升级 Markdown 渲染、改进工具调用展示,并合并了 `/` 命令面板
360
+ - 控制台启动后默认自动打开系统浏览器看板
361
+
362
+ ### 改进
363
+
364
+ - 优化 Operator Chat 对话页(UI-01 至 UI-11):隐藏重复标题、补齐品牌空态与真实注入上下文侧栏、改进工具调用摘要与结果展示、修复遮罩 hover 形变、为截断会话标题提供 tooltip、升级 Markdown/GFM 渲染,并增加用户主动打开的调用记录入口与合并后的 `/` 命令面板
365
+ - 会话列表操作改为按需显示 Remix Icon,同时保留键盘 focus 与触屏可访问路径
366
+ - 输入区将图片上传收敛为图标按钮,并避免“全部工具 · N · 状态”歧义
367
+ - 控制台在服务监听成功后默认打开系统浏览器
368
+
369
+ ## [0.34.4] - 2026-08-12
370
+
371
+ ### 重点更新
372
+
373
+ - 裸 `agent-worker console` 收敛为唯一看板入口,监听成功后默认打开系统浏览器,并删除 `console serve`
374
+ - 本地连续交付改为按精确 Git tree 复用验证结果,避免提交、推送和分支合并之间机械重复全量测试,同时保持不同 tree、不同环境和远程 CI 的独立质量门槛
375
+ - 全面加固 Operator Chat 的 Turn 所有权、停止与异常恢复流程,解决浏览器与服务端状态错位时的重复提交、停止失效和错误提示问题
376
+ - Operator Chat 新增按仓库保存的 Skills 自动使用偏好,用户可控制技能是否进入模型自动发现范围,同时保留手动调用能力
377
+ - 修复控制台任务导航无法自主执行后端测试与前端测试 DAG 的问题,现可正确识别 pytest、playwright 等多种测试框架的验证命令
378
+
379
+ ### 新增
380
+
381
+ - 新增可选的 `npm run verify:tree`,对当前严格 clean HEAD 执行完整验证并写入 receipt,随后推送同一 tree 时可直接复用
382
+ - 新增只读的当前 tree receipt 诊断,可区分匹配、缺失、过期、损坏和工作区不合格等状态,不执行测试或写入 receipt
383
+ - Operator Chat 引入完整的 Turn ownership 协议和服务端真实中止接口,并在状态接口中提供 active/latest Turn 与 runtime busy 事实
384
+ - Operator Chat Skills 新增「允许自动使用」开关,偏好按仓库持久化;关闭后仍可通过 `/skill:<name>` 手动调用
385
+
386
+ ### 改进
387
+
388
+ - 裸 `agent-worker console` 成为唯一 Console 启动入口:本地图形交互环境在服务监听成功后默认打开系统浏览器,`--no-open` 可明确禁止;删除 `console serve` 兼容子命令
389
+ - source→target 连续交付统一选择一个本地全量验证权威;默认 commit/push 不增加步骤,远程 CI 与发布环境不复用本地 receipt
390
+ - pre-push receipt 诊断和执行日志改用有界命令摘要,并严格校验 tree、环境、命令合同、有效期及 receipt 内容一致性
391
+ - Skills 运行时快照改为使用服务端资源标识和独立的自动调用状态,资源变更仅接受当前 inventory 中的合法条目
392
+ - Turn 已占用时返回可恢复的中文状态提示和真实 active Turn,不再向用户暴露裸露的 `chat turn already active` 错误
393
+
394
+ ### 修复
395
+
396
+ - 修复浏览器已认为对话结束、服务端却仍持有 active Turn 时的重复提交竞态;提交现在支持幂等请求标识、boot epoch orphan 隔离和 durable Turn/runtime busy 联合对账
397
+ - 修复创建 Turn 的响应不确定时状态被过早释放的问题;客户端会保留 ambiguous 状态,通过 `/state` 绑定或释放真实 ownership,不会重新生成请求标识
398
+ - 修复停止请求在 Turn 尚未绑定时丢失的问题;绑定成功后只发送一次真实 abort,且服务端缺少 abort 能力时不会通过 dispose 会话伪造停止
399
+ - 修复 active bind、terminal SSE 与 React streaming 状态交错时提交锁未释放的问题,并统一 adopt、停止中和 abort-pending 为非致命提示
400
+ - 修复控制台任务导航执行 backend-test 和 frontend-test DAG 时,因结构化验证门禁未识别 pytest/playwright 等命令而始终被阻断的问题
401
+
402
+ ## [0.34.3] - 2026-08-12
403
+
404
+ ### 重点更新
405
+
406
+ - 修复 PRD 导入时 grill-me 模板占位符路径污染写入集的问题,确保仅处理真实需求路径
407
+
408
+ ### 改进
409
+
410
+ - 语义化导入现可作为兜底方案推荐工程边界,提升需求解析的准确性
411
+ - 将语义约束与验证信息合并至控制台草稿,避免表单默认值覆盖精确的验证命令
412
+
413
+ ### 修复
414
+
415
+ - 修复 grill-me 模板占位符路径未被过滤即进入写入集,导致占位内容污染实际工程数据的问题
416
+
417
+ ## [0.34.2] - 2026-08-12
418
+
419
+ ### 重点更新
420
+
421
+ - 修复控制台 DAG 执行在 120 秒后被强制终止导致状态卡死的问题,默认超时现提升至 4 小时
422
+
423
+ ### 改进
424
+
425
+ - DAG 挂钟时间常量统一收敛至 src/shared 共享模块管理,移除了 workflows 中不必要的内核导入
426
+ - 前端实现契约物化新增冻结命令校验:每个 `verificationTarget.commandLabel` 必须落在 DAG 生成时冻结的命令集合内,否则 fail-closed 拒绝,防止模型发明验证命令;plan/revision 提示词同步强化单 JSON 输出与逐条 AC 回显
427
+
428
+ ### 修复
429
+
430
+ - 修复控制台任务导航执行 DAG 时因 LoopAgentClient 默认 120 秒超时被强制终止的问题,现已将默认超时提升至 4 小时,并支持通过 --default-timeout-ms 参数覆盖
431
+ - 修正自定义模型合并报告中的文档描述错误
432
+
433
+ ## [0.34.1] - 2026-08-11
434
+
435
+ ### 重点更新
436
+
437
+ - Console PRD Intake Bridge:统一粘贴、单文件与多文件 PRD 导入流程,复用确定性解析与 Semantic Intake,并回写真实 Console Draft
438
+ - 引入工程边界表单,工程路径与验证命令仅接受人工输入,杜绝使用模板内容冒充需求事实
439
+ - DAG 中断恢复增强:支持协作式 abortSignal,未启动节点明确标记为 controller-interrupted,避免粗暴终止
440
+ - Console Recovery 提供直观的 reconcile CTA,按运行状态精准展示恢复入口,破坏性操作需经浏览器 Human Gate 确认
441
+
442
+ ### 新增
443
+
444
+ - Console PRD 导入桥接:支持将粘贴、单文件与多文件导入统一接入 task advance 的确定性解析,并映射产物至 DraftStore
445
+ - Console 工程边界表单:在 PRD 导入时支持可选的 allowed/forbidden/verify 字段,并作为标志传递至 bootstrap intake
446
+ - Console Recovery CTA:基于 effective status 与 liveness 展示 dag reconcile-run(supersede/abandon)入口
447
+ - DAG runner 协作式 abortSignal:主控停止时允许已运行节点按 checkpoint 收尾,未启动节点标记 controller-interrupted
448
+
449
+ ### 改进
450
+
451
+ - dag reconcile-run 增加 --json 与 --action 参数,避免 operation runner 因期待 JSON 失败,并明确拒绝非法 action
452
+ - task advance 生命周期优化:PRD 导入后默认进入仅导入阶段,确保多文件 bootstrap 完成后再执行 Semantic Intake
453
+ - Console Recovery 状态映射细化:将 interrupted/orphaned 等状态映射为 needs-reconcile,suspected-stall 映射为 observe/doctor
454
+ - task advance writeSet gate 输出附确定性 delta,清晰展示边界扩张来源,且不破坏既有 approve 流程
455
+
456
+ ### 修复
457
+
458
+ - 修复追加 PRD 后两阶段 intake 未重新投影契约、Console 可能回读旧 Semantic Intake artifact 的问题
459
+ - 修复 implement-pi 在 provider clean timeout 且明确零写入时直接终止的问题,现对标准 bounded writer 自动重试一次
460
+ - 修复 grill-me 模板被误当作已解析需求的问题
461
+ - 修复窄屏(<1100px)下 CHANGELOG 文档中尖括号导致的 MDX JSX 解析错误
462
+
463
+ ## [0.34.0] - 2026-08-11
464
+
465
+ ### 重点更新
466
+
467
+ - Operator Chat 会话创建实现即时响应,Landing 页面与创建请求延迟从秒级降至毫秒级
468
+ - 新增桌面端紧凑响应式布局,根据工作区宽度自动适配 comfortable/compact/narrow 三档显示模式
469
+ - 新增自动会话标题功能,基于首条用户消息生成临时标题,并在首轮对话完成后异步生成正式标题
470
+ - 新增 local-jacoco-coverage 技能,将本地 Java 服务挂载、测试执行与覆盖率切片分析串成标准化链路
471
+
472
+ ### 新增
473
+
474
+ - Operator Chat 桌面紧凑响应式布局:按工作区宽度切换 comfortable(≥1450px)/ compact(1100–1449px)/ narrow(<1100px)三档;compact 档使用图标窄栏与覆盖抽屉,narrow 档使用顶栏入口;会话与仓库面板支持拖拽分栏并记忆比例
475
+ - Operator Chat 自动会话标题:首条用户消息持久化后生成清洗有界的临时标题,首轮对话成功完成后异步生成正式标题;手工重命名、归档和删除操作可拒绝迟到的自动标题覆盖
476
+ - local-jacoco-coverage 技能:将本地启动 Java 服务挂载 jacocoagent、运行 backend-test DAG、按需求文档做覆盖率切片分析三步串联为可审计、可重复的本地链路,包含强制流程手册、runtime 对齐参考、需求映射规范与编排脚本
477
+
478
+ ### 改进
479
+
480
+ - Operator Chat 会话创建改为即时响应:先落盘会话骨架与持久记录后立即返回成功,完整 AgentSession 在后台异步初始化,真实 Chrome 测试中 Landing 延迟从 1346ms 降至 22ms、创建请求从 1269ms 降至 16ms
481
+ - 会话创建期间侧栏与 Landing 页共享 busy 状态反馈,抑制双击导致的重复创建
482
+ - 删除正在初始化的会话不会被迟到的后台初始化任务复活,初始化失败统一返回 HTTP 503 错误码
483
+
484
+ ## [0.33.7-beta.2] - 2026-08-13
485
+
486
+ ### Fixed
487
+
488
+ - scenario-param 解析 `bound=LEN100`、解引用 `_STATUS_ACTIVE` 等 Python 字符串常量,识别 `"x" * _TITLE_MAX_LENGTH` 长度表达式
489
+ - correspondence 忽略 pytest payload 中的 `expect`/`echo_*` 辅助键,避免假 PAYLOAD_SHAPE_MISMATCH
490
+
491
+ ### Changed
492
+
493
+ - my-webapp 五轮 backend-test 全流程 live campaign 归档(R1–R5 均 finished;R5 correspondence PASS)
494
+
495
+ ## [0.33.7-beta.1] - 2026-08-12
496
+
497
+ ### Fixed
498
+
499
+ - scenario-param 识别 `_*_MAX_LENGTH` / `_*_OVER_LENGTH` 等长度 helper 名,明确 `custom-literal:trim` 不能是全空白,并把无 pytest.param 的 request-level/health nominal 记为 MATCH 以免污染 eligibility
500
+ - backend-test writer 合同明确:`enum-invalid` 必须使用具体非法字面量且禁止 `_OMIT`/missing-key;`custom-literal:trim|ACTIVE|ARCHIVED` 必须使用真实 padded/enum 字面量;max/min/max+1 应用长度表达式/helper
501
+
502
+ ### Changed
503
+
504
+ - 归档 R108–R110 live campaign 证据与 residual 收紧结果
505
+
506
+ ## [0.33.7-beta.0] - 2026-08-11
507
+
508
+ ### 重点更新
509
+
510
+ - backend-test 收口 source-fidelity P0:绑定 source coverage、有界 Markdown/pytest 同步、item-level eligibility 与单次 eligible 业务执行;my-webapp R107 16 节点 finished
511
+
512
+ ### 新增
513
+
514
+ - backend-test 新增绑定 source references 的来源覆盖事实、Markdown 一轮增量同步和 pytest correspondence 一轮有界修复,在业务测试体执行前保留 initial/effective/residual 证据
515
+ - backend-test 新增 item-level execution eligibility:只授权 payload-safe 的 pytest items,excluded items 与真实业务失败分开展示
516
+
517
+ ### 改进
518
+
519
+ - 将 backend-test Markdown/pytest map 的默认总 token 预算从 `600000` 提升到 `3000000`,降低多模块生成时过早触发 `dynamic map token budget exhausted` 的概率;仍保持预算耗尽 fail-closed
520
+ - Coverage Matrix 接受 `R400001` 等错误码 Rule Key,并保留单元格内 `ACTIVE|ARCHIVED` 未转义枚举管道符,避免合法行被拆成 10 列后整表丢弃
521
+ - scenario-param 按 TP 精确匹配多行 `场景意图`,保留 `ACTIVE` 大小写字面量,识别 `"a" * N` 长度表达式与空白 `empty`,request-level `nominal` 允许 `None` 查询过滤;避免把合法 payload 误判为 MISMATCH 并错误排除 eligible items
522
+ - backend-test 支持 evidence-only 元用例:Markdown 显式声明 `脚本/primary symbol=无` 且仅绑定 assertion/cross-cutting TP 时,不再强制 1:1 pytest 符号,也不再把其算作 MISSING_PYTEST/SCRIPT_MISMATCH
523
+ - generated pytest 内的 `ScopeMismatch`/setup fixture 失败若完全归因于 `testcase/**` 映射脚本,则归为 REPAIRABLE 并进入唯一一轮 collection repair,不再直接 BLOCKED
524
+ - scenario-param 观测跳过 `pytest.param("TP-...", value, id="TP-...")` 的前导 TP 标签,并支持长度意图用数字位置参数表达
525
+
526
+ ### 修复
527
+
528
+ - 修复 readiness 错误信息截断与无效 Coverage Matrix 状态语义,避免超长错误或 advisory 矩阵状态误阻断后续节点
529
+ - 修复 scenario 排除项未绑定 payload 字段、request-level 不确定性被误升级为硬失败的问题
530
+
531
+ ## [0.33.6-beta.0] - 2026-08-11
532
+
533
+ ### 修复
534
+
535
+ - 修复 backend-test correspondence scanner 将下一 Case 的分隔注释误归入前一个 pytest function region,造成虚假的 `MULTIPLE_PYTEST`、script mismatch 和额外 Test Point;现在按函数实际缩进边界隔离 body,并只从精确 `Case-ID:` 元数据或 primary symbol 绑定 Case
536
+ - 修复 backend-test 将 README 其他区域的 Markdown 链接误提取为业务模块、允许 `a401606` 等 opaque/hash-like stem 和异常多模块进入 map 的问题;现在只解析唯一 `## Module Index`,非法、mixed 或超过 8 个模块时 README-only 有界重试并由 manifest fail-closed
537
+ - 修复 backend-test map 总 token 预算耗尽后只生成部分 Markdown/pytest 资产但 parent 仍可能显示成功的问题;budget-blocked child 现在使 backend map 明确 ERROR,并保留 expected/finished/blocked/token 事实
538
+
539
+ ## [0.33.6] - 2026-08-11
540
+
541
+ ### 重点更新
542
+
543
+ - 加固 PRD 导入与 Semantic Intake,在结构化解析不足时提供安全回退,并增强 writeSet 审查与运行结果摘要
544
+ - Operator Chat 接入单一事件流、启动 epoch 隔离、实时运行时控制与开放资源加载,提升长会话恢复和自主 DAG 监督能力
545
+ - 统一 Windows 等环境下只读 Git 命令的有界恢复机制,同时保留用户自有的 Pi 模型路由配置
546
+
547
+ ### 新增
548
+
549
+ - task advance 新增 writeSet delta 与 run summary,直接展示边界扩张来源、节点结果和下一步操作
550
+ - Operator Chat 引入单一事件流与 boot epoch fence,支持 cursor 过期后的自动对账恢复,避免将可恢复问题升级为全局错误
551
+ - ChatEventStore 增加事件合并与容量上限双重压缩,控制长期会话持久化体积
552
+ - Operator Chat 新增实时模型、thinking 和运行时资源控制,并按开放资源加载规则解析 Skills、Extensions 与 Packages
553
+ - Operator Chat 可对安全的 bounded DAG 进行持续监督和恢复,执行报告同步补充运行细节与目标 URL 来源
554
+
555
+ ### 改进
556
+
557
+ - 只读 Git 查询统一使用共享韧性执行器,在 Windows 启动型故障下有界恢复,不扩大 mutation 命令权限
558
+ - 初始化与升级流程保留用户自行配置的 Pi 模型路由,不再因默认配置变化机械覆盖
559
+ - Packages 面板区分配置状态与真实安装元数据,并统一使用品牌图标
560
+
561
+ ### 修复
562
+
563
+ - 修复 Operator Chat 流式状态与 pi-web 可靠性机制未完全对齐的问题,提升重连和终态收敛稳定性
564
+ - 修复前端测试环境预检中的反引号转义错误,以及重跑默认值和 repair 选择器转义不一致的问题
565
+ - 修复后端测试完整性检查误判字符串内部未配对分隔符,以及按优先级生成非法单模块文件的问题
566
+ - 修复前端测试目标 URL 未从运行时上下文解析的问题,执行时现使用可审计的真实地址来源
567
+ - 修复 generated init 内容因 `desiredSha256` 机械比较而阻断安全升级的问题
568
+
569
+ ## [0.33.5] - 2026-08-11
570
+
571
+ ### 重点更新
572
+
573
+ - 全面加固 Operator Chat 流式响应的执行可靠性,对齐 pi-web 四层保障机制,彻底解决重连后界面无限加载、空占位气泡卡死等问题
574
+ - 优化前端测试的目标 URL 解析机制,改为从运行时上下文精准解析,并丰富执行报告的细节展示
575
+ - 修复测试生成与执行环境中的多处转义错误,提升复杂脚本生成的稳定性
576
+
577
+ ### 新增
578
+
579
+ - 新增轻量级会话状态轮询接口(GET /sessions/:id/state),用于快速获取真实的活跃任务状态
580
+ - 前端测试执行报告新增更丰富的细节展示,并支持从运行时上下文中精准解析目标 URL
581
+
582
+ ### 改进
583
+
584
+ - Operator Chat 客户端现支持每 15 秒及页面可见性变化时定期对账服务端真实状态,当服务端已空闲而客户端仍在加载时自动强制结束
585
+ - 优化重连时的回放保护机制:仅当回放事件的任务 ID 与服务端真实活跃 ID 匹配时才继续流式响应,防止已结束的任务被错误唤醒
586
+ - 前端测试默认短链失败用例现仅重跑 1 次,而阻断性审查节点分支默认重跑 2 次,显式配置仍可覆盖默认值
587
+
588
+ ### 修复
589
+
590
+ - 修复 Operator Chat 在中断或失败时未写入持久结束事件,导致重连回放卡在开始阶段、界面无限加载的问题
591
+ - 修复对话中断或结束时残留空白占位气泡和卡死省略号的问题,现自动清理未产生内容的消息
592
+ - 修复前端测试重跑选择器生成的 Shell JavaScript 丢失正则反斜杠和换行转义,导致报语法错误的问题
593
+ - 修复前端测试环境预检脚本将 URL 尾部反引号匹配规则展开为裸 Shell 反引号,导致命令替换未闭合的问题
594
+ - 修复后端测试偶尔按优先级生成单一模块文件的问题,现对非法模块命名执行严格阻断
595
+ - 修复后端测试分片完整性校验误判合法测试字符串中未配对分隔符为脚本截断的问题
596
+
597
+ ## [0.33.4] - 2026-08-10
598
+
599
+ ### 重点更新
600
+
601
+ - 修复后端测试场景参数评估器对 fallback 字段的误判问题,解除由此导致的错误执行阻断
602
+
603
+ ### 修复
604
+
605
+ - 修复 backend-test 场景参数评估器在 Markdown 无可解析场景意图时,将 TP-ID 推断的 fallback 字段(如 `TP-CREATE-APPROVER-FORMAT` → `cREATE`/`pattern-invalid`)被大写启发式误判为不匹配的问题;此类条目现统一判定为无法判定且不可修复,不再生成无效修复建议,由此导致的错误执行就绪阻断已解除
606
+ - 修复 fallback 场景参数状态被错误标记为失败的问题,现根据实际情况正确标记为不可用或部分可用,且不弱化任何就绪性门禁
607
+
608
+ ## [0.33.3] - 2026-08-10
609
+
610
+ ### 重点更新
611
+
612
+ - 修复 Windows 环境下 frontend-test 配置 URL 冻结异常的问题,确保跨平台地址识别行为一致
613
+
614
+ ### 改进
615
+
616
+ - 改进 frontend-test 的 Windows URL 回归测试,使其具备更好的跨平台可移植性
617
+
618
+ ### 修复
619
+
620
+ - 修复 Windows 环境下 frontend-test 配置 URL(如 baseUrl、targetUrl、loginUrl)无法正确冻结的问题,冲突候选现安全 fail closed,仅在完全未配置时回退 localhost
621
+
622
+ ## [0.33.2] - 2026-08-10
623
+
624
+ ### 重点更新
625
+
626
+ - 更新 analyze-product 技能
627
+ - 针对结构化产物的可恢复失败自动重试
628
+
629
+ ### 改进
630
+
631
+ - 更新 analyze-product 技能
632
+ - 结构化产物在遇到可恢复失败时会自动进行重试
633
+
634
+ ## [0.33.1] - 2026-08-10
635
+
636
+ ### 重点更新
637
+
638
+ - Operate 与 Inspect 合并为统一的双层导航壳,取代旧的三层堆叠栏
639
+ - 在「操作」与「观测」模式间切换时保持对象上下文,支持一键带参数返回恢复现场
640
+ - 夜间信息架构收敛,总览新增「昨夜班次」条带,移除冗余的并列 tab
641
+ - 全面加固窄屏适配与可访问性,优化共享资产加载失败时的降级体验
642
+
643
+ ### 新增
644
+
645
+ - 新增共享壳唯一实现 operator-chrome.css/js,包含全局品牌带与工作区下划线 tab
646
+ - Inspect 总览新增「昨夜班次」条带,支持通过/失败/需人工/待 harvest 状态一眼可见
647
+ - OperatorSurfaceHealthV1 新增 repoName 字段,统一上移仓库身份展示
648
+ - 新增 operator-chrome 契约测试,覆盖 tab 映射、模型、对象连续与返回路径
649
+
650
+ ### 改进
651
+
652
+ - 模式切换不丢对象:恢复页持有 DAG 时切「观测」直达同一 DAG 画布,并提供来源 chip 支持一键返回
653
+ - 夜间信息架构收敛:Inspect 顶栏移除「夜间任务」并列 tab,#/night 深链详情保留并提供「在操作台管理 →」入口
654
+ - 仓库身份上移:Inspect 总览移除重复的内联仓库横幅,面包屑从 site-header 移入内容区页头
655
+ - Console 改用 CSP 友好的原生动态导入,共享资产加载失败时保留最小可用导航与错误状态
656
+ - 窄屏(1100px/760px)下新鲜度与 Pi 状态收敛为紧凑图标语法,避免整页横向溢出
657
+
658
+ ### 修复
659
+
660
+ - 修复 Inspect 壳重渲染时 #header-refresh 新鲜度文案被 health 回填或 hash 切换清空的问题
661
+ - 补齐仓库身份浮层的 aria-controls/aria-expanded/dialog 名称,支持外部点击与 Esc 关闭并恢复按钮焦点
662
+ - 修复关闭来源 chip 时误删 node/page 等对象页查询参数的问题,现仅移除 from 参数
663
+ - 移除 Console 中 new Function 的间接导入与 SVG 图标的 innerHTML 注入面,提升安全性
664
+ - 修复 hash 导航与 destroy 时监听与宿主 class 未完整清理的问题
665
+
666
+ ## [0.33.0] - 2026-08-09
667
+
668
+ ### 重点更新
669
+
670
+ - Operator Console 工作区导航升级为 hash 路由,支持页面刷新保留状态及浏览器前进后退,并新增模型与设置页面入口
671
+ - 夜间辅助调度器(NightAuxTicker)改为自动启动,移除手动开关,简化操作流程
672
+ - Observe DAG 运行历史页交互全面优化,改进分页器布局、自定义选择器与复制反馈体验
673
+ - 执行器支持 provider/model 显式引用格式,消除运行时模型路由的歧义
674
+
675
+ ### 新增
676
+
677
+ - Operator Console 工作区导航新增 hash 虚拟路径(#/tasks、#/night、#/models、#/settings),支持刷新恢复与浏览器历史导航
678
+ - 新增模型(Models)与设置(Settings)页面入口
679
+ - 夜间辅助调度器(NightAuxTicker)现默认自动启动,无需手动开启即可维持夜间调度活跃度
680
+ - Observe 新增统一的自定义选择器菜单,支持键盘导航与自适应定位
681
+ - Observe 新增 DAG 运行历史分页功能
682
+
683
+ ### 改进
684
+
685
+ - Operator Console 工作区导航顺序调整,将对话(Tasks)置于首位
686
+ - 夜间任务面板的健康状态栏简化为纯文本状态展示,移除旧的手动开关
687
+ - Observe 夜页头部操作按钮样式统一
688
+ - Observe DAG 历史分页器视觉布局升级为精致的分段设计,并优化窄屏下的显示
689
+ - 执行器 Pi 层级支持 provider/model 引用格式,规范化解析字符串与对象两种配置写法,提升模型路由准确性
690
+
691
+ ### 修复
692
+
693
+ - 修复 Observe 自定义选择器键盘焦点异常的问题
694
+ - 修复 Observe DAG 历史分页器在窄视口下布局溢出的问题
695
+ - 修复 Observe 复制反馈按钮的边框样式显示异常,恢复无边框设计
696
+ - 优化 Observe DAG 节点错误摘要展示,将失败行备注压缩为紧凑的两行摘要,避免撑高表格
697
+
698
+ ## [0.32.1] - 2026-08-09
699
+
700
+ ### 新增
701
+
702
+ - Observe:新增 DAG 运行历史页 `#/dags`:分页表格、hash 恢复 page/pageSize、手动刷新;只读 `GET /api/dag-runs?page=&pageSize=` 返回轻量列表,排除 dry-run/init-only,省略 nodes/edges 等重字段
703
+ - Dashboard「最近 DAG 运行」卡片右上增加「查看全部」入口,进入完整历史页;卡片仍保留最近 10 条
704
+
705
+ ### 修复
706
+
707
+ - Observe DAG 历史页:分页摘要与失败态使用本地固定可信文案;首次 Loading 与后续动态分页/刷新控件分离;双路径失败共用 aria-live;分页失败不污染列表;默认直连真实 `/api/dag-runs`
708
+ - Observe DAG 历史页 review 收口:取消在途 abort 中途仍式 GET 推进 requestSeq,防止旧响应覆盖缓存页;run-id 复制按钮独立 1.5s 成功计时;图标恢复;手动刷新替换当前页缓存;失效页码 bump prefetch generation 并拒绝陈旧预取写回;`totalPages>7` 页码窗口收紧为首页/末页/当前±1(无紧邻填补);`.dags-pagination.is-busy` 降级为上方 `opacity`
709
+ - Observe DAG 节点表格:失败行备注改为两行错误摘要,避免完整 errorPreview 撑高表格;完整错误仍在节点检查器输出中查看
710
+
711
+ ### 改进
712
+
713
+ - Operator Console 前端重构视觉层级与代码结构:`OperatorChat.tsx`(3656→407 行)、`App.tsx`(3044→182 行)、`NightJobsWorkbench.tsx`(852→90 行)按职责拆为 `operator-chat/`、`app/`、`pages/`、`shell/`、`night/` 模块,消息流 / 工具卡 / gate 卡 / composer / 侧栏各自独立;样式统一为单一语义 token 层,人工决策 gate 卡以决策卡规格(橙色左边条 + 浮起阴影 + 状态徽标 + 未决时吸附 composer 上方)突出,工具过程卡默认退后
714
+ - Observe:DAG 历史 pageSize 与节点检查器「执行分次」改为统一自定义选择器(触发器 + listbox;键盘/ARIA/焦点/自适应定位);不改动 hash-only 分页、attempt raw key / 默认最新 / 节点切换重置语义
715
+ - Observe DAG 历史页:复制改为图标反馈(成功勾号 + 页面 aria-live;失败右下角短暂 Toast);数字分页器改为精致分段布局;hash 单一事实源;缓存 + AbortController + 相邻页低优先级预取,减少翻页双重加载与长时间等待
716
+
717
+ - Agent Worker Production Readiness v1 Phase 8:在已发布 `@0.32.0` 上完成 published-tarball deterministic campaign 与 burn-in day 0 开窗;scorecard 仍为 **`NOT_READY`**(待 burn-in 累计、live Pi canary、live Closeout、C4/C7 进程 crash)
718
+
719
+ ### 修复
720
+
721
+ - Operator Console:补齐 `--accent` / `--danger` / `--surface-raised` 等 14 个被引用但从未定义的 CSS 变量(pi-web 遗留命名与 warm canvas 命名两代并存),此前 HumanGateCard 的橙色左边条、confirmed 态、红色错误文本实际不渲染;设置页仓库指纹截断为短哈希展示
722
+ - Operator Console:新增 `console:typecheck` 门禁并修复拆分后 `.ts/.tsx` 未纳入类型检查的盲区;`ChatComposer` 错误从 `ToolsCatalog` 导入未导出的 `ToolCatalogView`;将 46 处旧式 `JSX.Element` 迁移为 React 19 兼容的 `React.JSX.Element`
723
+ - Operator Chat 会话切换硬化:activate / create / restore 改为版本化提交,慢响应的旧会话选择不再覆盖较新的用户选择;新建 / 删除 / 归档会话完整清理 messages、tool calls、operation / gate / artifact cards、usage、streaming、unread、composer draft、图片附件与文件预览,createSession 改为服务端创建成功后再重置
724
+ - Operator Console:新增 `styles.css` 自定义属性完整性契约与会话选择一致性源码契约;测试中以 `URL.parse` 替换会抛错的 `new URL` 构造
725
+
726
+ ## [0.32.0] - 2026-08-09
727
+
728
+ ### 重点更新
729
+
730
+ - 启动 Agent Worker Production Readiness v1 分阶段落地:Running Attempt 归属不再依赖 terminal ledger;safe `run-error` 可直接 `task retry`,不再要求 emergency `mark-failed`
731
+ - Harness Task 新 identity 改为 lineage/revision digest,同日 retry 不再依赖修改 title
732
+ - 新增 Task-scoped attempt lease、controller protocol compatibility 评估,以及 agent-worker production readiness 操作合同/checklist
733
+ - Attempt 终态释放 lease;写入前评估 controllerProtocol;scaffold 强制 ADR 0007 acceptance_policy;reconcile dry-run inventory 给出唯一恢复命令
734
+ - 硬下线 `agent-worker observe serve`,只读检视统一走 Console `/inspect/`
735
+
736
+ ### 新增
737
+
738
+ - `WorkerAttemptIdentity` / immutable run-owner store / `beginWorkerAttempt`(含 lease 路径)
739
+ - `WorkerAttemptFailureV2`、`resolveWorkerRecoveryDecision`、Attempt transition reducer
740
+ - Harness Task lineage/revision digests 与 `MaterializeOutcome` 元数据
741
+ - `docs/operations/agent-worker-production-readiness.md` 与 checklist 模板
742
+ - operator capabilities `controllerProtocol` envelope;`buildRuntimeReconcileInventoryDryRun`;command lifecycle official 命令清单
743
+ - Feature scaffold `acceptance_policy` 与 AC `verification.authority` / `required_evidence_kinds`
744
+
745
+ ### 改进
746
+
747
+ - Feature Review / Observe 对 Running 与 terminal 分层投影,ownership 告警按 `workerRunId` 聚合
748
+ - Task-scoped WorkerEvent 携带 `featureId`
749
+ - `batch run-ready` / `runSingleTaskAttempt` 在 terminal 后 CAS 释放 lease;有 controller identity 时先做 protocol preflight
750
+ - Feature next-action 优先消费 acceptanceGaps.nextCommand
751
+
752
+ ### 修复
753
+
754
+ - 硬下线 `agent-worker observe serve`:调用后不再监听端口,stderr 输出稳定标记 `OBSERVE_SERVE_REMOVED` 与替代入口,进程以退出码 2 结束
755
+ - 只读检视统一走 `agent-worker console`(默认 `127.0.0.1:8790`)的 `/inspect/`;`observe snapshot` 仍输出 GlobalSnapshot JSON
756
+ - Console doctor / health-match 不再以外部 8787 Observe 进程为健康前提
757
+
758
+ ## [0.31.1] - 2026-08-09
759
+
760
+ ### 重点更新
761
+
762
+ - 后端测试生成新增确定性冲突预检与执行就绪性校验,在执行前精准拦截潜在错误并安全自动修复局部缺陷
763
+ - 更精细地区分多种写入失败状态(如思考耗尽、部分写入等),避免无效重试并优先恢复可用进度
764
+ - 收紧测试参数校验与结果真实性,准确区分失败与错误,并前置语法门禁防止生成错误代码
765
+ - 优化 16 个节点的执行成本,将多个审查与计划环节改为确定性交接,在保持质量的同时显著降低资源消耗
766
+
767
+ ### 新增
768
+
769
+ - 为 `dag rerun-task` 新增确定性 generated-output-conflict 预检,执行前扫描并拦截与磁盘已有文件的冲突,提供精确修复建议
770
+ - writer 执行新增 `writer-thinking-exhausted` 终态分类,精准识别模型思考耗尽且无实际写入的情况,避免无限重试
771
+ - 后端 pytest 模块新增 self-contained 静态导入门禁,在收集前拦截对生成共享命名空间的非法导入
772
+ - 新增 `backend-test-execution-readiness-v1` 执行就绪预检,在收集通过后验证传递 fixture/plugin 注册,支持对局部缺陷的安全自动修复
773
+
774
+ ### 改进
775
+
776
+ - 在已确认存在实质变更且完整性校验通过时,允许确定性推断缺失的实现结果,避免因模型漏报而中断已完成的流程
777
+ - 收紧 scenario-param 结论判定,全量不可判定显示 `UNAVAILABLE`,混合情况显示 `PARTIAL`,并支持精确到具体传输目标的校验与修复
778
+ - 大幅降低 16 节点运行成本:将部分审查与计划环节改为确定性静态交接,统一质量度量并优化模块聚合策略
779
+ - 在修复写入前新增 `ast.parse` 语法门禁并修正尾逗号算法,严格禁止生成 `,,` 等错误语法污染收集流程
780
+
781
+ ### 修复
782
+
783
+ - 修复 pytest 结果真实性问题:setup/teardown 错误不再被误报为 collection error,准确区分并独立展示 Failed 与 Error
784
+ - 修复结果合同丢失标识的问题,现完整保留原 pytest node ID、Case ID 与 TP ID,并明确记录业务测试体的实际执行数
785
+
786
+ ## [0.31.0] - 2026-08-08
787
+
788
+ ### 重点更新
789
+
790
+ - Observe 看板新增 DAG 执行轨迹视图,支持按初始执行、修复轮次和最终收敛分车道展开真实的调度执行过程
791
+ - DAG 节点新增轻量执行历史摘要,在逻辑图卡片、节点表和 Inspector 中直观展示多次尝试与恢复记录
792
+ - 统一执行轨迹与 Inspector 的业务文案为自然中文映射,主界面不再显示难以理解的裸英文状态标识
793
+ - 优化 DAG 拓扑依赖边的路由算法,实现结构化避障正交路由,并恢复平滑的视觉线条样式
794
+
795
+ ### 新增
796
+
797
+ - Observe DAG 详情新增执行轨迹视图,默认展示逻辑拓扑,支持键盘切换,点击轨迹卡片可联动 Inspector
798
+ - 为 DAG 节点投影并展示轻量执行历史摘要,包含执行次数叙事及 Inspector 分次选择器
799
+ - 新增纯函数模块统一执行轨迹与 Inspector 的业务文案中文映射,规范展示失败原因与状态转换
800
+ - Console 与 Observe 共享统一的品牌 favicon,并支持通过同步脚本保持资源一致
801
+
802
+ ### 改进
803
+
804
+ - DAG 拓扑依赖边采用结构化避障正交路由,支持长边避障与控制回环独立展示,提升复杂拓扑的可读性
805
+ - 恢复相邻层级普通依赖边的平滑视觉样式,控制回环标签视觉更轻量,避免掩盖主链路
806
+ - DAG 详情响应内嵌有界的执行轨迹投影,在历史证据缺失时安全降级并保持逻辑拓扑始终可用
807
+ - 主 UI 业务术语优化,图卡与工具栏摘要改用自然的中文轮次描述,原始内部编号仅保留在诊断提示中
808
+
809
+ ### 修复
810
+
811
+ - 修复 Console 与 Observe 未共享 favicon 的问题,现统一使用同一品牌资源并兼容嵌入模式
812
+ - 修复 Observe 逻辑拓扑中同一行 DAG 边未能保持水平的问题,确保同逻辑行混合高度边正确展示
813
+ - 修复执行轨迹车道归类错误,修正收敛开启时节点错误归入最终收敛道的问题,确保各节点按真实位置归类
814
+ - 恢复 DAG Pi writer 节点的 bash 工具权限,同时保持只读节点无 bash 且 edit/write 仍受安全策略约束
815
+
816
+ ## [0.30.0] - 2026-08-08
817
+
818
+ ### 重点更新
819
+
820
+ - 后端测试生成引入 map-shard 拓扑,将大型单节点拆分为 plan + manifest-shell + map_agent,每个模块用例获得独立的 16K 输出预算,消除大文件多轮写入被截断或完整性误报的风险
821
+ - 修复 map_agent 单个子节点超出 token 限制导致后续所有子节点被错误级联跳过的问题,确保各模块测试用例独立生成互不干扰
822
+ - Completeness Gate 升级为返回结构化缺陷原因,帮助模型精准定位并修复格式问题,有效结束续写死循环
823
+ - 后端测试用例生成全面转向需求驱动覆盖,以产品需求为基准,API 契约作为场景补充,提升测试覆盖的精准度
824
+
825
+ ### 新增
826
+
827
+ - 新增 plan 节点专属完整性评估器,仅校验 README 覆盖范围和模块索引,不再错误要求下游 map 子节点产出的文件
828
+ - 新增 `scripts/regen-backend-test-dag.mjs` 脚本,用于从 runtime builder 重建打包镜像,保持 runtime 与 packaged template 字节对齐
829
+ - Completeness Gate 的 `moduleStructurallyComplete` 新增结构化原因输出,明确指出空文件、标题层级错误、ID 格式非法或缺失必选章节等具体缺陷
830
+ - 新增 `looksLikeValidPythonModule` 校验逻辑,用于准确识别共享辅助代码和工厂函数,兼容包含合法不平衡分隔符的 fixture 字符串
831
+
832
+ ### 改进
833
+
834
+ - N2/N3 提示词改为需求驱动覆盖:Coverage Scope 固定为 new-operation/full-contract,以产品需求为基准全覆盖,API 契约补充场景维度,并禁止使用导致用例降级的 `## 测试类` 分组
835
+ - dagDynamicExpansionChildTaskSchema 扩展 `writerOutcomePolicy` 和 `retryPolicy`,使 map_agent 子节点能正确声明实现产出并受 Completeness Gate 保护
836
+ - Completeness Gate 白名单泛化,通过识别子节点 ID 前缀准确匹配 map 分片子节点
837
+ - DAG 执行器模型矩阵统一路由至当前环境实际可用的 wizard-local 模型,避免因 API Key 缺失导致节点大面积失败
838
+
839
+ ### 修复
840
+
841
+ - 修复 map_agent 中单个子节点超出 `maxTokensPerCase` 被误当作全局预算耗尽,导致后续兄弟子节点全部被跳过(SKIPPED)的问题
842
+ - 修复 plan 节点 Completeness Gate 错误要求下游 map 子节点产出文件齐全,导致计划节点始终判定为不完整并陷入重试死循环的问题
843
+ - 修复 manifest shell 命令因正则反引号和转义符在多层 shell 解析中被破坏,导致确定性 manifest 节点执行报错的问题,现采用 base64 编码彻底规避 bash 转义干扰
844
+ - 修复 pytest-plan 资源检查因严格括号配平启发式算法,误判包含合法不平衡分隔符的 fixture 字符串为不完整的问题
845
+
846
+ ## [0.29.3] - 2026-08-07
847
+
848
+ ### 重点更新
849
+
850
+ - 夜间任务控制台升级为引导式工作台,支持点选预约、审阅写入集与任务看板,并保留人工审批门禁
851
+ - 失败 DAG 默认改为从失败节点安全续跑,避免因服务波动无理由新建任务
852
+ - Operator Chat 支持内联展示工具执行过程,并改进 Pi 用量统计的准确解析与状态栏展示
853
+ - 增强 Pi 网关限流容错,遇到 429 状态码时自动按 60 秒间隔退避重试
854
+
855
+ ### 新增
856
+
857
+ - 控制台新增前台辅助夜间任务调度开关,在控制台开启时可按间隔触发调度(仅前台有效,过夜仍需系统定时器)
858
+
859
+ ### 改进
860
+
861
+ - 失败 DAG 恢复策略改为先诊断再从失败节点续跑,统一对齐系统提示、恢复入口与工具说明
862
+ - Operator Chat 将工具执行过程内联至消息时间线,支持折叠查看,切会话后可恢复工具记录
863
+ - Operator Chat 用量栏改进 Pi 用量解析,准确展示输入、输出、缓存读取与费用信息
864
+ - 注入上下文面板升级为更大可读面板,展示脱敏后的完整系统提示、技能正文与激活工具列表
865
+
866
+ ### 修复
867
+
868
+ - 修复 Windows 计划任务因 /TR 参数超过 261 字符限制导致创建失败的问题,改用短 .cmd 路径绕过
869
+ - 修复 package-lock 中硬编码的镜像源地址导致发布链路 npm ci 失败的问题,统一指向官方源
870
+ - 修复 playwright-cli open 传入不支持的 --headless/--headed 参数报错的问题
871
+ - 修复 Pi 网关返回 429 限流时重试过快导致任务失败的问题,现自动识别并按 60 秒间隔退避
872
+ - 修复标准 DAG 节点将任务相对路径误当作仓库根路径读取,导致找文件超时的问题
873
+ - 修复 Operator Chat 重开会话时因 JSONL 丢失而静默新建会话 ID 导致会话不匹配的问题
874
+ - 修复夜间任务异步执行结果丢失及 agent-worker 可执行文件权限的问题
875
+
876
+ ## [0.29.2] - 2026-08-07
877
+
878
+ ### 重点更新
879
+
880
+ - 优化后端测试生成 writer 的续写重试机制,直接内嵌具体目标路径以恢复输出,不再依赖读取受限路径
881
+ - 修复三处完整性门禁(Completeness Gate)误报,避免将正确的测试生成误判为残缺写集
882
+ - 修复标准 Happy Path / `contract-pi` 等节点 source prompt:只暴露仓库相对可读路径(`.harness/tasks/<taskId>/source/...`),并明确禁止把 task-relative 的 `source/需求.md` 当工具读路径
883
+
884
+ ### 改进
885
+
886
+ - 后端测试生成 writer(N2 MD / N5 pytest)在输出截断或残缺写集后,续写重试直接内嵌具体目标路径清单,不再依赖读取 `.harness/**` 路径
887
+ - 即使遇到结果为空或输出失败的异常,也会评估完整性门禁,将可恢复的部分写入升格为不完整写集,避免重试空转
888
+
889
+ ### 修复
890
+
891
+ - 修复 README 正文提及的编号式文件名被误判为缺失模块的问题
892
+ - 修复覆盖率矩阵(Coverage Matrix)表头识别被覆盖率范围(Coverage Scope)数据行遮蔽的问题
893
+ - 修复合法多行 `def` 的 pytest 脚本被误判为截断的问题(真正截断现仍由括号配平计数准确捕获)
894
+
895
+ ## [0.29.0] - 2026-08-07
896
+
897
+ ### 重点更新
898
+
899
+ - 新增 Automatic SemVer 自动化发布链,基于 Conventional Commit 增量自动决定版本号,且绝不自动发布破坏性 major 版本
900
+ - Operator Chat 默认开放完整的 Pi 工具集(read/write/edit/bash 等),在保持安全硬边界的前提下提升操作便捷性
901
+ - 后端测试在 16K 最大输出限制下引入分文件写入纪律与完整性恢复机制,彻底避免残缺资产被误判为成功
902
+ - 控制台新增横向莫比乌斯环页签图标,以暖黑双环表达持续运行,并用克制橙色交接面标记受控切换
903
+
904
+ ### 新增
905
+
906
+ - 新增 Automatic SemVer 每日发布入口:严格依据最新稳定 tag 到 main HEAD 的增量决定版本,feat 触发 minor,其余触发 patch,破坏性标记会安全停止
907
+ - Operator Chat 默认注册并开放完整的 Pi 工具(read/write/edit/bash/grep/find/ls),Capabilities 与 system prompt 对齐 ADR 0011
908
+ - Loop Operator Console 新增横向暖黑莫比乌斯环页签图标,并覆盖静态资源与 UI 边界检查
909
+ - 客户端恢复机制支持静默忽略瞬时中断错误,并写入详细的恢复日志供运维人员核查
910
+
911
+ ### 改进
912
+
913
+ - 后端测试在 pytest 执行前增加场景参数一致性检查,支持确定性有界自修,并在执行后生成结构化的《测试失败用例分析报告》
914
+ - 测试框架不再硬编码模型 ID,改为动态解析真实的 Pi 模型矩阵,提升跨环境兼容性
915
+ - 初始化升级流程在控制器基线合并中增加验证权限守卫,提升操作安全性
916
+ - AGENTS 及初始化托管块现允许在监控 DAG 时进行简短的进度更新
917
+
918
+ ### 修复
919
+
920
+ - 修复控制台在用户主动切换标签页时,任务失败错误信息残留并跨标签页持续显示的问题
921
+ - 修复并发操作更新导致 JSON 路径产生竞态的问题,现对操作写入进行串行化处理
922
+ - 修复 Windows 环境下文件原子替换遇到短暂占用时导致操作卡死的问题,现有界重试并清理临时文件
923
+ - 修复后端测试 Markdown 生成器在已确认变更但无 diff 时误判的问题,现会进行严格的有界重试
924
+ - 改进 Windows 环境下临时目录清理机制,在遇到目录非空或繁忙(ENOTEMPTY/EBUSY)错误时自动重试
925
+
926
+ ## [0.28.13] - 2026-08-06
927
+
928
+ ### 重点更新
929
+
930
+ - 显著缩短 CI 与发布流程的测试耗时,优化 2 vCPU runner 上的并发策略
931
+ - 修复集成测试在多核环境下因工作区指纹竞态导致的不稳定问题
932
+
933
+ ### 改进
934
+
935
+ - 优化 CI/发布环境的测试执行效率:固定 fast 测试池为 2 个 worker,移除重复的 pre-prepare 类型检查,并将 npm dist-tag 收敛轮询改为前快后慢的退避策略
936
+ - 默认 fast 测试池现按可用 CPU 核数(上限 4)分配,避免在 2 核环境下意外退化为串行执行
937
+
938
+ ### 修复
939
+
940
+ - 修复集成测试在多 worker 下因读取工作区指纹竞态导致的包校验不稳定问题,现固定集成测试为串行执行
941
+ - 修复 pre-push 验证收据漂移测试受 CI 环境固定 worker 数量影响的问题,确保使用不同值以正确验证指纹失效场景
942
+
943
+ ## [0.28.12] - 2026-08-06
944
+
945
+ ### 重点更新
946
+
947
+ - Night Scheduler 交付 Clock Guarantee,支持通过 macOS、Linux 和 Windows 原生系统定时器自动周期触发调度
948
+ - 加固前端 DAG 验证的回退机制与 JSON 解析,提升复杂环境下的容错能力
949
+ - 修复 pre-push 验证在本地缺失远程提交记录时异常中断的问题,保障推送流程顺畅
950
+
951
+ ### 新增
952
+
953
+ - 新增 `scheduler clock install|status|uninstall` 命令,支持安装用户级别的 launchd、systemd 和 schtasks 定时器
954
+ - 统一 Clock receipt 记录机制,使手动触发与系统定时触发共享运行状态
955
+ - 新增 Clock 健康状态分类器,并接入 doctor、morning 和 scheduler add 的状态反馈
956
+
957
+ ### 改进
958
+
959
+ - 改进 `--verify` 相关文档示例,不再硬编码特定命令,改用占位符并指向项目配置文件以避免误导
960
+ - 规范化初始化升级测试套件的代码格式,使其符合项目的统一排版规范
961
+
962
+ ### 修复
963
+
964
+ - 修复 pre-push 验证在本地无法解析远程最新提交 SHA 时直接报错中断的问题,现会安全回退到完整验证流程
965
+ - 修复 CI 环境下因系统定时器精度不足导致的重试退避时间断言不稳定问题
966
+ - 修复前端 DAG 验证 JSON 解析及覆盖率证据推导的问题,增强验证回退机制的健壮性
967
+ - 修复任务草稿复用时因缺少 `--dag-output` 参数导致无法正确导出 DAG 的问题
968
+ - 修复空事实情况下误触发契约准备的问题,现会安全软停止并提示需要输入
969
+ - 修复 macOS 下因路径别名导致初始化升级测试中写入保护用例失败的问题
970
+
971
+ ## [0.28.11] - 2026-08-06
972
+
973
+ ### 重点更新
974
+
975
+ - 修复 Night Scheduler 收尾提交因前导空格处理不当导致变更路径截断、暂存失败的问题
976
+
977
+ ### 修复
978
+
979
+ - Night Scheduler 收尾提交改用 trimEnd 替代 trim,保留 git porcelain 格式的前导空格,修复 worktree-only 变更路径被截断(如 src/hello.js 变为 rc/hello.js)导致 git add 失败的问题
980
+
981
+ ## [0.28.10] - 2026-08-05
982
+
983
+ ### 重点更新
984
+
985
+ - 修复 DAG 变更清单 schema 校验误杀合法执行清单的问题,恢复夜间测试成功路径
986
+
987
+ ### 修复
988
+
989
+ - DAG writer change-manifest 的 schema 校验现可正确接受 Pi 执行器写入的 effectiveWriteSet 与 approval 元数据字段,修复 verify-pi project-governance-integrity 因 ownership/schema 不匹配而误拒合法 implement-pi 清单的问题
990
+
991
+ ## [0.28.9] - 2026-08-05
992
+
993
+ ### 重点更新
994
+
995
+ - 提升 DAG 执行的可靠性与验证效率
996
+ - 修复初始化时 Pi 模型矩阵的配置问题
997
+
998
+ ### 改进
999
+
1000
+ - 提升 DAG 执行的可靠性与验证效率
1001
+
1002
+ ### 修复
1003
+
1004
+ - 修复初始化时 Pi 模型矩阵的配置问题
1005
+
1006
+ ## [0.28.8] - 2026-08-05
1007
+
1008
+ ### 重点更新
1009
+
1010
+ - 修复 Night Scheduler 收尾提交被运行态文件污染的问题,确保提交内容仅限源码变更
1011
+
1012
+ ### 修复
1013
+
1014
+ - Night Scheduler 收尾提交现忽略 .harness/ 与 .worktrees/ 运行态目录,仅暂存 writeSet 源码路径,避免 verify 将 dag-runs 等运行态文件误判为 writer 变更
1015
+ - Night Scheduler worktree 在 prepare 时尽力确保 .gitignore 包含 .harness/ 与 .worktrees/,防止运行态文件干扰工作区校验
1016
+
1017
+ ## [0.28.7] - 2026-08-05
1018
+
1019
+ ### 重点更新
1020
+
1021
+ - 修复 Night Scheduler 执行已准备好的 DAG 时因客户端超时中断任务的问题
1022
+
1023
+ ### 修复
1024
+
1025
+ - Night Scheduler 执行已准备好的 DAG 时,`task advance --approve-gate` 改用 `timeoutMs: 0`,避免默认 120 秒超时在 DAG 仍在运行时将其强制终止,现由内核负责执行监督
1026
+
1027
+ ## [0.28.6] - 2026-08-05
1028
+
1029
+ ### 重点更新
1030
+
1031
+ - 修复 macOS 下 /tmp 路径别名导致 Night Scheduler 工作区隔离校验误报失败的问题
1032
+
1033
+ ### 修复
1034
+
1035
+ - Night Scheduler 准入控制现使用 realpath 规范化控制目录与 worktree 路径,避免 macOS /tmp 别名引发隔离校验假失败
1036
+ - Night Scheduler 准入事实仅冻结真实的仓库内相对 worktree 路径,提升隔离检查的准确性
1037
+
1038
+ ## [0.28.5] - 2026-08-05
1039
+
1040
+ ### 重点更新
1041
+
1042
+ - 修复 macOS 下 /tmp 路径别名导致 Night Scheduler 工作区隔离校验误报失败的问题
1043
+
1044
+ ### 修复
1045
+
1046
+ - Night Scheduler 准入控制现使用 realpath 规范化控制目录与 worktree 路径,避免 macOS /tmp 别名引发隔离校验假失败
1047
+ - Night Scheduler 准入事实仅冻结仓库内相对路径的 worktree 路径,提升隔离检查的准确性
1048
+
1049
+ ## [0.28.4] - 2026-08-05
1050
+
1051
+ ### 重点更新
1052
+
1053
+ - 修复 Night Scheduler 准入控制中 writeSet 门禁冻结的误报失败问题
1054
+
1055
+ ### 修复
1056
+
1057
+ - Night Scheduler `admission prepare`:为 `task advance --json` 补充 `expectJson`,并允许从 stdout 解析 writeSet gate,修复“did not return JSON”假失败
1058
+
1059
+ ## [0.28.3] - 2026-08-05
1060
+
1061
+ ### 重点更新
1062
+
1063
+ - 修复 Night Scheduler 准入控制因运行态文件自污染导致 clean-tree 校验总是误拒的问题
1064
+
1065
+ ### 修复
1066
+
1067
+ - Night Scheduler 准入控制:freezeCleanBase 忽略 .harness/**与 .worktrees/** 运行态事实,避免 lifecycle 运行事实自污染导致 clean-tree 误拒,同时保留失败 admission 的 submitted → rejected 审计链
1068
+ - 调整 freezeCleanBase 的执行顺序,将其提前至 submitSchedule 之前,确保 baseCommit 能在调度器写入控制文件前正确捕获 HEAD
1069
+ - freezeCleanBase 将 .harness 与 .worktrees 视为非源码脏污(与 harvest 逻辑共享),避免准入流程自写入的调度事实干扰基线冻结
1070
+
1071
+ ## [0.28.2] - 2026-08-05
1072
+
1073
+ ### 重点更新
1074
+
1075
+ - Night Scheduler 实现了夜间任务的完整调度闭环,支持准入控制、执行调度、证据归档与结果回收
1076
+ - 控制台新增夜间任务只读视图与操作面板,支持通过 CLI 和人工审批执行准入与调度操作
1077
+ - 新增可恢复的项目初始化升级流程,支持状态复核与安全断点恢复
1078
+
1079
+ ### 新增
1080
+
1081
+ - Night Scheduler 核心调度能力:支持一次性夜间计划准备、准入控制、队列预约、执行调度、证据归档及结果回收
1082
+ - Night Scheduler 异常恢复机制:支持过期租约恢复、环境失败与不稳定测试的有界自动重试
1083
+ - Night Scheduler 自动跟进功能(默认关闭),开启后仅生成任务草稿,永不自动审批
1084
+ - 控制台夜间任务只读视图与操作面板,支持通过 CLI 和人工审批执行准入与调度操作
1085
+ - 可恢复的项目初始化升级流程,支持断点恢复与状态报告查询
1086
+
1087
+ ### 改进
1088
+
1089
+ - 统一并修正了 DAG 模拟运行(dry-run)的指导说明,明确了预览快照的保存位置与限制
1090
+ - 更新了项目路线图与计划索引,将已完成的可靠性计划归档并校准至最新基线
1091
+
1092
+ ### 修复
1093
+
1094
+ - 对齐了各处 DAG 模拟运行的指导说明,消除了文档与实际行为不一致的问题
1095
+
1096
+ ## [0.28.1] - 2026-08-05
1097
+
1098
+ ### 重点更新
1099
+
1100
+ - 提升前端/后端任务执行稳定性,减少“看起来成功、实际未写入”的误判
1101
+ - 缩短默认测试耗时,改善本地与发布验证体验
1102
+
1103
+ ### 改进
1104
+
1105
+ - 默认测试流程更快,并归档已完成计划
1106
+ - 维护类任务不再误入前端实现流程
1107
+ - 部分证据与 lint 检查改为非阻断,降低无关噪声对交付的干扰
1108
+ - 模型输出格式更宽松:说明文字、行内通过结论等常见写法更不易被误杀
1109
+
1110
+ ### 修复
1111
+
1112
+ - 后端生成任务在未实际写入文件时不再误判为成功
1113
+ - 前端写入前补齐契约校验,避免无效契约进入实现阶段
1114
+ - 修正失败分类误把路径限制提示当成鉴权失败的问题
1115
+ - 加强验证与结果解析,减少畸形输出导致的卡死或误判
1116
+
1117
+ ## [0.28.0] - 2026-08-05
1118
+
1119
+ ### 重点更新
1120
+
1121
+ - 新增客户端上下文溢出(Context Overflow)的自动压缩与恢复机制,支持 OpenCode 与 Pi 环境
1122
+ - DAG 总览面板全面隔离模拟运行,确保仅展示真实执行的任务状态
1123
+ - 修复多项 DAG 生命周期与状态恢复问题,提升任务执行稳定性
1124
+
1125
+ ### 新增
1126
+
1127
+ - 新增内网/通用客户端上下文溢出恢复机制:支持精准识别中英文溢出提示,并为 OpenCode 和 Pi 环境自动生成压缩与恢复插件
1128
+
1129
+ ### 改进
1130
+
1131
+ - DAG 总览面板全面隔离模拟运行(dry-run/init-only),确保其不再污染活跃任务视图,仅展示真实执行的任务状态
1132
+
1133
+ ### 修复
1134
+
1135
+ - 修复 Playwright 浏览器执行未受限制的问题,恢复其有界执行机制
1136
+ - 修复结构化审查在遇到重复或无效 JSON 时无法正确收敛的问题,确保严格按规范完成或进入有界修复
1137
+ - 修复通用 writer 声明结果与实际改动不一致仍误判成功的问题,现强制要求结果与 diff 保持一致
1138
+ - 修复任务在审计或失败运行后无法正确恢复生命周期的问题,现支持在存在待审批写入集时安全恢复执行
1139
+ - 修复客户端上下文溢出恢复在压缩后未正确延迟恢复执行的问题
1140
+
1141
+ ## [0.27.1] - 2026-08-04
1142
+
1143
+ ### 重点更新
1144
+
1145
+ - 前端测试 L-5 报告看板全新改版,与后端报告模板统一
1146
+ - 修复后端测试因 pytest 脚本漏生成而直接阻断的问题,升级为精确的缺失脚本恢复机制
1147
+
1148
+ ### 新增
1149
+
1150
+ - 前端测试 L-5 看板新增确定性质量信号、门禁摘要、证据详情及用例执行详情展示
1151
+
1152
+ ### 改进
1153
+
1154
+ - 前端 L-5 报告看板与后端报告模板视觉与结构对齐,提升跨端报告一致性
1155
+
1156
+ ### 修复
1157
+
1158
+ - 修复后端测试在 Markdown 已声明安全映射脚本、但 pytest writer 漏生成文件时直接以 invalid-output 阻断 repair 的问题:initial facts 升级为 backend-test-pytest-collection-v2,可记录 expected/existing/missing scripts、collectionAttempted=false 与 missing-mapped-pytest-script,复用既有单次有界 repair 精确创建缺失脚本,并由最终收集、scope、安全和 hash freshness 门禁重新授权业务执行
1159
+
1160
+ ## [0.27.0] - 2026-08-03
1161
+
1162
+ ### 重点更新
1163
+
1164
+ - 标准操作生命周期统一为 task advance(推进任务)与 task status(查看状态)两个入口
1165
+ - 移除十余个旧版公开命令别名,简化操作心智模型
1166
+ - task advance 首次执行可自动完成 PRD 导入、契约派生、DAG 生成与校验,停在 writeSet 摘要门禁等待确认
1167
+ - Worker 与 Console 全面迁移至新的机器契约,统一通过 task advance 驱动
1168
+
1169
+ ### 新增
1170
+
1171
+ - 新增 task advance 作为标准任务生命周期的唯一推荐变更入口
1172
+ - 新增 task status 作为只读任务状态查询入口
1173
+ - task advance 支持 --accept-recommendations 参数,通过摘要确认确定性采纳工程边界推荐
1174
+ - task advance 新增 Worker 机器契约参数:--profile、--max-concurrent、--run-id、--events-jsonl、--worker-association、--dag-output、--skip-finalize、--no-strict-models
1175
+ - ADR 0008 将 run 级 dag recovery/forensic/decision 冻结为永久 advanced 专用,标准 task 面保持简洁
1176
+
1177
+ ### 改进
1178
+
1179
+ - Worker run-task 主路径改为 task advance prepare 到 writeSet 门禁后经 --approve-gate 执行,不再 spawn dag run-task / run-dag / dag validate
1180
+ - Console 的 status 调用迁移至 task status,dagRunTask/prepareDagConfirmation 生成路径迁移至 task advance --dag-output
1181
+ - 顶层 status 去掉 refreshSourceState 副作用,read-model next 指向 advance/status
1182
+ - 标准主路径文档、skills、help、capabilities 全面收敛为 task advance + task status
1183
+
1184
+ ### 修复
1185
+
1186
+ - 完成 task-advance 迁移后对齐残余断言:skill 触发词、workflow defaultEntry、Ring1/Ring2 CLI smoke 及 help-summary 与新生命周期一致
1187
+ - 更新 dag/run-task/final-verification/reference-context 预期,pre-push 不再断言已删除的 dag run-task / task contract 公开命令
1188
+
1189
+ ## [0.26.4] - 2026-08-03
1190
+
1191
+ ### 重点更新
1192
+
1193
+ - 强化 DAG 运行时安全与 writer 工具级写边界
1194
+ - 收敛效率与可选 document catalog 兼容
1195
+ - 防污染 review-pass 知识写入
1196
+
1197
+ ### 改进
1198
+
1199
+ - fresh init 与旧项目 `init update --apply-safe` 刷新的 `AGENTS.md` managed block 现要求持续监控 DAG 至 `FINISHED`、`FAILED`、`partial_failed` 等已结束终态或 Decision Gate 需要 approve;判活须组合 runner heartbeat、session events 与 `dag doctor` liveness/provider meaningful progress,并禁止 exclusive writer 运行期间主会话或其他 writer 并发修改工作区
1200
+ - DAG 治理闭包与收敛效率:已配置 `docs/document-catalog.json` 的项目在生成时从 `completeDirectoryIndexes` 注入具体 index companion 到 implement/repair 内存路径,未配置该可选 catalog 的项目保持原有 DAG 生成能力;repair artifact 支持 `blocked-boundary`/`requiredScope` 与 empty-manifest `no-progress` 提前止损;DAG shell 支持显式 `failFast`,supervised hard verify 在同 run、同工作区指纹与命令契约下仅复用成功命令并写可审计 receipt。真实非零退出与 finished 聚合规则不放宽,且不跨 run 缓存验证结果
1201
+ - DAG Pi writer 工具级写边界:移除 writer unrestricted `bash`,以 SDK 同名受控 `edit`/`write` 在文件 API 执行前强制 repo containment、symlink/ancestor containment、`allowedPaths`/`writeSet`/`forbiddenPaths`,并硬拒绝 `.harness/tasks/**` 与 `.harness/dag-runs/**`;CLI-only 与 SDK→CLI 对 writer fail-closed(read-only `cli-only` rollback 保留),SDK resource loader 与 CLI 同时关闭 Pi extension 自动发现,阻止 extension 在 session 启动或覆盖工具后绕过沙箱。授权递归 glob(如 `src/**`)可创建其覆盖的中间目录,但同级越界目录仍在 mutation 前拒绝。same-run hard-verify workspace fingerprint 纳入当前 Task Contract 稳定 ignored 治理输入;这些文件漂移后成功命令全部 `reused=false`,runner-owned dag-runs volatile 不进入指纹。post-run write-guard 与 change-manifest 保持第二层防御
1202
+ - DAG convergence 成功知识防污染:只有 `review-pi` 与 review verdict recovery 均 FINISHED 且明确 `VERDICT: pass` 才写入 `review-pass` knowledge pattern;review gate 仅完成路由但上游 authority/protocol/review verdict 非 pass 时按 `non-retry-failure` 收口,不再把 `request-revision` 或被跳过的 review 误记为成功
1203
+
1204
+ ### 修复
1205
+
1206
+ - 修复未配置 document catalog 的项目在 DAG 生成路径上的兼容问题,避免可选 catalog 成为硬依赖
1207
+ - 提升 convergence 与 writer 可靠性
1208
+
1209
+ ## [0.26.3] - 2026-08-02
1210
+
1211
+ ### 重点更新
1212
+
1213
+ - DAG 无害工具副产物自动恢复
1214
+ - 提升前端验证命令的精确度与失败分类
1215
+ - 隔离测试固件与运行环境标记
1216
+
1217
+ ### 新增
1218
+
1219
+ - DAG 无害工具副产物自动恢复:自动清理 Git Bash 误用 `> nul` / `2> nul` 在仓库根目录生成的普通非 symlink untracked `nul` 文件,避免其干扰 Git 状态复查与变更清单生成
1220
+
1221
+ ### 改进
1222
+
1223
+ - 精确限定前端验证命令的作用域,提升验证执行的准确性
1224
+ - 更精准地分类前端验证失败原因,避免模糊报错
1225
+ - 将运行器标记与测试固件进行安全隔离,防止测试环境干扰
1226
+
1227
+ ### 修复
1228
+
1229
+ - 修复配置验证目标错误处理符号引用的问题
1230
+ - 修复 DAG 执行中无害的根目录 nul 副产物导致流程异常的问题
1231
+
1232
+ ## [0.26.2] - 2026-08-02
1233
+
1234
+ ### 重点更新
1235
+
1236
+ - 后端测试在执行前新增有界的 pytest 收集修复机制,安全且精准地自动修复生成测试中的不一致问题
1237
+ - 全面加固 DAG 审查协议与前端契约边界,提升执行稳定性
1238
+ - 修复 Observe 看板轮询刷新时的交互状态保留问题,优化使用体验
1239
+
1240
+ ### 新增
1241
+
1242
+ - 后端测试在业务 pytest 执行前新增有界的收集(collection)修复机制:仅对生成的测试目录中可唯一归因的语法、导入、模块或参数化不一致进行最多一次自动修复,且严格禁止修改生产代码或放宽断言
1243
+
1244
+ ### 改进
1245
+
1246
+ - 加固 DAG 审查协议与追踪门禁,提升执行稳定性
1247
+ - 加固前端 DAG 契约边界
1248
+ - 稳定 Linux 环境下的测试收集固件(fixture)
1249
+ - 对齐受监督的 DAG 收尾拓扑结构
1250
+
1251
+ ### 修复
1252
+
1253
+ - 修复 Observe 看板在轮询刷新时破坏 DAG 图视口 DOM 的问题,确保拖动与滚动状态不被销毁
1254
+ - 修复节点检查器在内容未变时重建内容的问题,现支持异步标签页安全恢复滚动位置
1255
+
1256
+ ## [0.26.1] - 2026-08-02
1257
+
1258
+ ### 新增
1259
+
1260
+ - 新增 `task source prepare`:PRD-first 确定性派生薄执行契约(`source/需求.md` / `执行约束.md` + managed paths),默认 dry-run,`--apply` 仅经 Task Contract 投影落盘;默认无 LLM 写 source,工程字段不从 PRD 自动提取
1261
+
1262
+ ### 修复
1263
+
1264
+ - Nightly 发布恢复探测会对 annotated tag 做 peel:远程 `ls-remote` 优先取 `refs/tags/<tag>^{}` 的 commit SHA,而不再把 tag object SHA 与 `git rev-list` 的 commit 误判为 conflict,避免「tag+npm 已齐、仅缺 GitHub Release」的恢复被错误中断
1265
+ - 收紧 Windows 下 write-guard 的 `git status` 启动路径,降低启动失败与误报
1266
+
1267
+ ## [0.26.0] - 2026-08-01
1268
+
1269
+ ### 新增
1270
+
1271
+ - Observe/看板将 DAG 机器态 `partial_failed` 展示为「部分成功」(琥珀色 badge/timeline),与红色「执行失败」区分;内部状态与 recovery 语义仍为 `partial_failed` 非成功终态
1272
+ - `harness.json` 的 `executors.pi.LOW|MED|HIGH` 支持简洁对象写法 `{ model, thinking? }`,同时完全兼容既有模型字符串;显式 `thinking` 会透传到 DAG Pi 的 `modelConfig.thinking`,省略时不强制覆盖 Pi 默认(含既有 `wizard-local/gpt-5.5 → low` 硬编码例外,且显式配置优先)
1273
+ - pre-push 新增本机 verification receipt:相同 Git tree、关键环境与默认 24 小时 TTL 命中时可复用已通过验证,并对仅 `docs/reports/**/*.md` 的确定性变更使用 `check-repo` + `docs:build` 轻量门禁;新分支、多 ref、dirty/HEAD 漂移等不确定场景保持 fail-closed。
1274
+ - DAG Pi 模型矩阵支持 `provider/model` 限定引用,可让 LOW/MED/HIGH 通过不同 Pi provider 调用模型;裸模型名继续兼容原有映射与默认 provider,非法空组件在模型调用前安全拒绝
1275
+
1276
+ ### 修复
1277
+
1278
+ - 收紧 `frontend-project-default-implementation`:强前端项目证据(React/Vue/Next)须与具体前端 allowedPath 证据(如 `.tsx`、`src/components/**`、`apps/web/src/**`)共同出现,才作为默认前端实现依据。核心 runtime 路径(如 `src/workflows/dag/**`、`src/server/**`)与宽泛 `src/**` 不再被仓库级前端证据单独劫持到 `frontend-implementation`,模糊任务安全回退 `standard-dag`/`supervised-implementation`。`Task Type: backend-feature` 不再因项目默认前端证据被误判为 mixed,分类保持 backend、模板保持非前端。不新增模型仲裁或路由 DAG 节点,也不向通用 backend 目录列表硬编码 loop-agent 私有目录,修复跨仓库通用。
1279
+
1280
+ ## [0.25.6] - 2026-08-01
1281
+
1282
+ ### 重点更新
1283
+
1284
+ - 后端测试新增按变更类型界定覆盖深度的机制,精准控制测试范围并避免无关用例膨胀
1285
+ - 初始化托管块改为从独立模板文件渲染,大幅降低维护难度并提升可读性
1286
+
1287
+ ### 新增
1288
+
1289
+ - backend-test 新增机器可读的 Coverage Scope,支持按新增接口、契约变化、行为变化、缺陷修复和纯实现优化选择覆盖深度
1290
+ - 目标项目的 AGENTS.md 托管块改为从 docs/templates/init-managed-agents.md 渲染,便于直接编辑维护
1291
+
1292
+ ### 改进
1293
+
1294
+ - Observe/看板将 DAG 机器态 `partial_failed` 展示为「部分成功」(琥珀色 badge/timeline),与红色「执行失败」区分;内部状态与 recovery 语义仍为 `partial_failed` 非成功终态
1295
+ - 纯优化类变更现聚焦于需求、确定性影响面与最小回归集,避免无关接口全量用例膨胀
1296
+ - 目标项目 `AGENTS.md` 的 `LOOP_AGENT_INIT` managed block 改为从 `docs/templates/init-managed-agents.md` 渲染,便于直接编辑维护;该模板仅随 npm 包发布,不投影到目标项目治理目录;同时同步 `import-prd`/exec-plan 推荐路径、init reconcile 零写入条件、DAG liveness/recovery 精确命令及 Official Console 裸入口
1297
+
1298
+ ## [0.25.5] - 2026-07-31
1299
+
1300
+ ### 重点更新
1301
+
1302
+ - 后端测试 DAG 新增确定性场景覆盖分析与 Markdown 到 pytest 的精准对应,显著提升测试质量度量的准确性与透明度
1303
+ - 受监督的 DAG 默认启用有界自愈闭环,能够自动处理可恢复的执行失败并安全重算后续节点
1304
+ - 全面加固客户端会话恢复机制,精准识别并补偿由模型服务瞬时异常引发的结构校验错误
1305
+ - 大幅增强 DAG 执行的确定性收尾能力,确保在模型输出不稳定或前置快照失败时安全降级
1306
+
1307
+ ### 新增
1308
+
1309
+ - 后端测试固定 9 节点 DAG 新增可审计的场景覆盖与 Markdown→pytest 一一对应事实:节点 4 从严格 Coverage Matrix、Case Rule/Test Point 绑定及 OpenAPI required/enum/boundary/pattern/format 规则生成覆盖报告,节点 6 生成 1:1/1:0/1:N/0:1 对应报告,节点 7 校验一致性后物化 canonical manifest
1310
+ - 受监督的 DAG 默认启用有界自愈闭环:通过 maxFixLoops 派生收敛预算,将可恢复失败与合法的审查修订请求统一纳入恢复链,并确定性注入上一轮失败证据指针,同时保持对安全失败的不自动重试
1311
+ - 后端测试用例生成与独立 Review 改为产品需求优先,并穷举文档化 API 规则,涵盖生命周期、枚举等价类、长度数值边界及业务状态迁移等场景
1312
+ - 后端测试 HTML/facts 新增可展开的“用例场景覆盖分析”和“Markdown → pytest 一一对应”质量详情
1313
+
1314
+ ### 改进
1315
+
1316
+ - backend-test 用例生成/独立 Review 改为产品需求优先,再穷举文档化 API 规则:覆盖 active/deleted duplicate-name 生命周期、每个合法枚举值、非法枚举等价类、长度/数值边界、字符格式、null/missing/type 错误和业务状态迁移;每个 Case 绑定唯一 primary pytest symbol
1317
+ - backend-test 将 Coverage Test Point 与 pytest 执行单元解耦:Test Point 明确分为 `variant`、`assertion`、`cross-cutting`,只有真实输入/状态/结果变体生成参数 item,同一业务旅程检查点通过 symbol docstring 追溯,HTTP 日志等横切证据不再制造重复业务 item;报告区分 Markdown Case、primary symbol、pytest item 并展示执行放大率
1318
+ - backend-test HTML/facts 新增可展开的“用例场景覆盖分析”和“Markdown → pytest 一一对应”质量详情,并由最终报告分别消费节点 4/6 详细 findings 与节点 7 machine totals
1319
+ - 减少全量测试中的重复 CLI 冷启动和 self-host canary 二次打包安装场景,收敛低价值重复用例并保留关键端到端主路径
1320
+ - DAG 执行期间的主会话行为约束得到增补:启动后自主推进至结束、持续可靠判活、严格限制工作区文件修改,并优先使用纯函数探针排查路由
1321
+
1322
+ ### 修复
1323
+
1324
+ - 修复 Windows 上 Pi writer 已完成写入后,write guard 启动 `git status` 偶发 `0xC0000142 / STATUS_DLL_INIT_FAILED` 而快速失败的问题:对该精确状态启用更长的有界指数退避和同一 Git for Windows 安装内的 executable fallback,持久化 writer 前置 baseline 与逐次结构化诊断;所有尝试耗尽后仍保持 fail-closed
1325
+ - 修复后端测试节点 4/6 的确定性覆盖与对应分析在自身崩溃时被静默吞掉的问题,现会写入诊断信息并按基础设施故障安全停止
1326
+ - 修复后端测试节点 4、6、7 在缺失 spec.sourceBinding 时未统一停止的问题,避免上游回退导致下游 manifest 突发报错
1327
+ - 修复成功执行路径下 HTTP 请求/响应日志解析不规范的问题,现统一规范化大小写不敏感的日志前缀并完整解析 JSON,恢复报告中的请求参数与大响应正文
1328
+ - 修复 Pi writer 已输出合法结果却因前置说明、Markdown 装饰或中文标点被误判失败的问题,现确定性规范化唯一 outcome 且不影响无副作用操作
1329
+ - 修复 Pi writer 前置 Git 快照失败被延后处理的问题,现调用模型前即安全停止,并在失败信息中保留完整的尝试次数与错误上下文
1330
+ - 修复不稳定模型输出导致受监督 DAG 无法可信收尾的问题,现使用精确判定协议和有限重试,确保最终状态准确且保持安全关闭
1331
+ - 修复合并后 canonical DAG Pi MED 路由错误回退到旧模型的问题,统一恢复为正确配置
1332
+ - 修复脚手架样例漂移检查误判当前 worktree 目录名的问题,避免附加 worktree 触发稳定测试失败
1333
+ - 修复 Windows 8.3 短路径与长路径指向同一仓库时生成不同指纹的问题,避免应用数据命名空间冲突
1334
+ - 修复生成的 OpenCode 恢复插件在 busy→idle 竞态下丢失续接的问题,现保留待处理错误并在明确空闲后安全重试
1335
+ - 修复 Pi retry 配置读取将权限或 I/O 错误误判为缺文件的问题,现仅缺失文件时允许新建配置
1336
+ - 修复客户端瞬态恢复无法正确处理 TypeValidation 瞬时错误的问题,现能准确识别携带瞬时信号的错误并安全重试,纯 schema 校验失败仍被拒绝
1337
+
1338
+ ## [0.25.4] - 2026-07-31
1339
+
1340
+ ### 新增
1341
+
1342
+ - stream run progress heartbeats
1343
+
1344
+ ### 新增
1345
+
1346
+ - stream run progress heartbeats
1347
+ - improve HTML failure triage
1348
+ - add native checklist and HTML report gates
1349
+
1350
+ ### 修复
1351
+
1352
+ - tighten production URL detection
1353
+ - preserve supported Pi default model
1354
+ - sync packaged prompt contract
1355
+ - normalize drifted case ids and decode nested HTML entities
1356
+
1357
+ ## [0.25.3] - 2026-07-30
1358
+
1359
+ ### 重点更新
1360
+
1361
+ - 新增 OpenCode 客户端瞬态会话恢复机制,在内置重试遗漏时自动补偿 UnknownError
1362
+ - 优化前端实现需求路由,将前端开发与测试任务准确分发至对应 DAG 流程
1363
+
1364
+ ### 新增
1365
+
1366
+ - loop-agent init 支持 --client-recovery 参数,可在目标项目生成 OpenCode 插件以补偿瞬态 UnknownError
1367
+ - 支持在用户级别原子写入 Pi retry 推荐配置,并严格遵守插件 ownership 不覆盖用户改动
1368
+
1369
+ ### 改进
1370
+
1371
+ - 初始化或刷新 AGENTS.md 时,要求将明确的前端实现需求路由至 frontend-implementation,与浏览器和 UI 自动化测试区分开
1372
+
1373
+ ### 修复
1374
+
1375
+ - 修复生成的 OpenCode 恢复插件无法按真实 API 工作的问题,现直接返回 Hooks.event 并按事件正确分发与续接
1376
+ - 修复 Type validation failed 等真实错误被业务校验规则误杀的问题
1377
+ - 修复 Pi retry 配置读取将权限或 I/O 错误误判为缺文件的问题,现仅 ENOENT 视为缺文件
1378
+
1379
+ ## [0.25.2] - 2026-07-30
1380
+
1381
+ ### 重点更新
1382
+
1383
+ - 加固后端测试中文 HTML 报告的用例关联与解析逻辑,提升报告的准确性与可读性
1384
+
1385
+ ### 改进
1386
+
1387
+ - 改进基于 class 的 pytest node id 解析,准确提取真实脚本路径,避免显示为 unknown.py
1388
+ - 当用例名称缺失后端 ID 时,支持按函数名与 Markdown catalog 进行回退关联
1389
+ - 规范化 [REQ]/[RESP] HTTP 日志块,增强日志兼容性
1390
+
1391
+ ### 修复
1392
+
1393
+ - 修复成功执行路径下原生 pytest-html 报告未正确保留的问题,现会将其另存为 backend-test-pytest-native.html
1394
+
1395
+ ## [0.25.1] - 2026-07-30
1396
+
1397
+ ### 重点更新
1398
+
1399
+ - 后端测试 DAG 节点新增 JaCoCo 覆盖率收集能力,支持在 L-5 dashboard 展示 Java 后端的代码行与分支覆盖率
1400
+ - 规范任务 DAG 草稿的默认输出路径,统一指向 `.harness/tasks/<task-id>/dag.json`
1401
+ - 修复 loop-agent 技能条目因注入预算超限被截断的问题,确保默认 DAG 下技能完整解析
1402
+
1403
+ ### 新增
1404
+
1405
+ - backend-test DAG 节点 7 支持可选的 JaCoCo 覆盖率收集:通过跨网络 TCP dump JaCoCo tcpserver 数据,经 jacococli.jar 转换并解析为 code-coverage-v1 合约,供 L-5 dashboard 使用
1406
+ - task shell 配置新增 `jacocoCoverage` 字段,支持配置 endpoint、cliJarPath、includes 和 connectTimeoutMs
1407
+ - 新增面向开发与运维的 JaCoCo 覆盖率部署指南,涵盖 tcpserver agent 挂载、端口放行、cli 预装及安全提醒
1408
+
1409
+ ### 改进
1410
+
1411
+ - `dag run-task` 与 `dag init-hybrid` 的默认输出路径改为 `.harness/tasks/<task-id>/dag.json`,不再写入系统临时目录
1412
+ - agent-worker 在 strict validate 成功后,将校验通过的草稿原子同步到 task 根 `dag.json`
1413
+ - task read-model、delegate worktree 提示及各文档示例统一指向规范化的任务草稿路径
1414
+ - skills 补充 `source-and-plan-practice.md`,明确 `import-prd` 与 `plan create` 的决策表与推荐顺序,不强制微小任务
1415
+
1416
+ ### 修复
1417
+
1418
+ - 压缩 SKILL.md 及 required-reference 体积,修复默认 DAG 技能注入预算超限导致 loop-agent 条目被截断的问题
1419
+
1420
+ ## [0.25.0] - 2026-07-30
1421
+
1422
+ ### 重点更新
1423
+
1424
+ - 新增确定性 Feature Packet 脚手架,支持后端、前端及含 API 前端模板,并具备原子批量写入与预检能力
1425
+ - 新增 Feature 交付编排命令,自动串联最终验证、交付与收口流程
1426
+ - 显著提升 DAG 执行稳定性,修复超时残留子进程、重复验证及耗时记录不完整等问题
1427
+ - 新增任务级 Maven 验证规划,自动定位并仅针对相关模块执行验证
1428
+ - 后端测试节点现可自动生成指标机器计算的自包含 L-5 可视化报告
1429
+
1430
+ ### 新增
1431
+
1432
+ - backend-test DAG 节点 7 支持可选的 JaCoCo 覆盖率收集(Java 服务):task shell 配置新增 `jacocoCoverage`(endpoint + cliJarPath + includes + connectTimeoutMs);节点 7 在 pytest 后跨网络 TCP dump JaCoCo tcpserver 执行数据,用 jacococli.jar 转为 jacoco.xml,确定性解析为 `contracts/code-coverage-v1.json` 并喂给 L-5 dashboard 的 line/branch 指标;全程失败安全(endpoint 不通 / cli 缺失 / 解析失败 → 覆盖率降级 unavailable,不阻断测试与 L-5)
1433
+ - 提供 agent-worker Feature Packet 脚手架,内置 backend-only、frontend-only 和 fe-with-api 模板,支持原子批量写入与 validate-feature 预检
1434
+ - 新增 agent-worker feature advance 命令,编排 verify-final、delivery 到 closeout 的完整交付路径
1435
+ - 新增 agent-worker feature doctor 命令,提供只读的交付就绪诊断(覆盖证据、Pool 状态与工作区改动)
1436
+ - Maven 验证现支持任务级范围规划,根据任务涉及的目录自动定位并验证正确的 POM 模块
1437
+ - 后端测试 DAG 节点 7 现可确定性生成美观的自包含 L-5 可视化报告,指标完全由机器计算
1438
+
1439
+ ### 改进
1440
+
1441
+ - Feature Delivery 在省略特定参数时,默认使用 feature verify-final 写入的标准证据路径
1442
+ - TaskConfig 持久化入口在写入前执行 schema 校验,拒绝不符合规范的数据格式
1443
+ - Dogfood 前端测试服务器在检测到旧缓存导致接口数据异常时,现会自动强制重启恢复
1444
+
1445
+ ### 修复
1446
+
1447
+ - 显著加固 DAG 执行可靠性,修复超时或中断后子进程残留问题,降低文件占用与测试干扰概率
1448
+ - 修复受监督流程可能重复执行完整验证的问题,避免高成本检查在不同阶段反复运行
1449
+ - 修复 DAG 被放弃或替换时,运行中节点实际耗时记录不完整的问题
1450
+ - 修复 Windows 环境下因提示内容过长导致 DAG 无法启动的问题,现安全采用受控临时文件传输
1451
+ - 修复前端实现 DAG 在未确认项目 Mock 能力时误报缺失 Mock 文件的问题
1452
+ - 修复结构化任务配置中数组类型校验不严格的问题
1453
+
1454
+ ## [0.24.10] - 2026-07-29
1455
+
1456
+ ### 修复
1457
+
1458
+ - Closeout 重验不再要求 `should`/partial AC 绑定完整 run evidence(仅 `covered` must AC 强制 hash 绑定)
1459
+
1460
+ ## [0.24.9] - 2026-07-29
1461
+
1462
+ ### 重点更新
1463
+
1464
+ - 后端测试执行失败时的诊断信息更加完善,避免出现无输出导致无法定位的问题
1465
+ - 修复 Windows 环境下前端证据校验因长命令终端转义导致的崩溃
1466
+ - 节点检查器新增「节点输入」只读页签,支持安全审查冻结的节点定义
1467
+
1468
+ ### 新增
1469
+
1470
+ - Observe / Inspect 节点检查器在「节点输出」左侧新增「节点输入」页签:只读投影冻结 run.json 顶层节点定义(任务正文、依赖、执行器摘要、边界)与可选 assembled prompt 指纹
1471
+
1472
+ ### 改进
1473
+
1474
+ - 后端测试节点执行失败时可观测性增强:写入包含映射脚本、PYTHON_BIN、pytest 版本、exit、html 是否存在与 STEP 等信息的诊断文件,并在节点 stderr 汇总失败摘要
1475
+
1476
+ ### 修复
1477
+
1478
+ - 修复前端证据校验在 Windows 下通过长 node -e 命令执行时的终端转义崩溃:改为由 runtime 内部直接校验,兼容 CMD、Git Bash、PowerShell 与 Unix shell
1479
+
1480
+ ## [0.24.9] - 2026-07-29
1481
+
1482
+ ### 修复
1483
+
1484
+ - Closeout 重验不再要求 `should`/partial AC 绑定完整 run evidence(仅 `covered` must AC 强制 hash 绑定)
1485
+
1486
+ ## [0.24.8] - 2026-07-29
1487
+
1488
+ ### 重点更新
1489
+
1490
+ - 修复 FINAL-VERIFY 改写已存在的 allowed_paths 证据(gitignore)时 Git checkpoint 误失败,以及 record-error 后 Task Pool 卡在 Running 无法 mark-failed/retry 的问题
1491
+
1492
+ ### 修复
1493
+
1494
+ - `finalizeGitTask` 对 allowed_paths 内的 pre-existing ignored evidence 允许 rewrite 并 force-add
1495
+ - `runReadyTasks` 在 record-error 时 best-effort 投影 `runs.jsonl` + Failed 状态,便于官方 retry
1496
+
1497
+ ## [0.24.7] - 2026-07-29
1498
+
1499
+ ### 重点更新
1500
+
1501
+ - 修复 Feature Verification Bundle 在 Delivery 重验时因绝对路径 artifact、`qa-testcode` 类型与 `run_record` 后写 hash 漂移而失败的问题
1502
+
1503
+ ### 修复
1504
+
1505
+ - 修复前端证据校验在 Windows 下通过长 `node -e` 命令执行时的终端转义崩溃:改为由 runtime 内部直接校验,兼容 CMD、Git Bash、PowerShell 与 Unix shell
1506
+ - 修复 `frontend-implement-pi` 因复用需求发现 skill 而长时间侦查后空实现:contract 现在强制 requirement outcome 与 interaction 行为语义,implement/repair 改用不含递归 OpenSpec/AI workspace 搜索的 bounded skill,并由 `implementation-outcome-v1` 机器校验声明结果与实际 diff;只有显式 already-satisfied 才允许空 diff
1507
+ - Outcome 投影强制写出 repo-relative artifact 路径
1508
+ - Delivery `verifyArtifactRefs` 接受位于仓库内的绝对路径(兼容旧 envelope)
1509
+ - `verifyBundleTaskSpecBindings` 接受 `qa-testcode`(backend-test)与 `qa-execute`(frontend-test)
1510
+ - Bundle 重验仅 rehash typed evidence(backend/frontend-test-result),忽略可能后写的 run_record
1511
+
1512
+ ## [0.24.6] - 2026-07-29
1513
+
1514
+ ### 重点更新
1515
+
1516
+ - 修复后端测试 Markdown-first 成功路径未投影 `backend-test-result` 的问题,Ready Planner 可再次放行 FE-TEST
1517
+
1518
+ ### 修复
1519
+
1520
+ - Markdown-first `markdown-execute-html` 在解析原生 pytest-html 后立即物化 `contracts/backend-test-result.json`(Result v1),避免 styled HTML 覆盖后丢失 JSON island
1521
+ - `node-execution` 对 `markdown-execute-html` 绑定 `structuredArtifact*`,Outcome 适配器可投影 `kind: backend-test-result`
1522
+
1523
+ ## [0.24.5] - 2026-07-28
1524
+
1525
+ ### 重点更新
1526
+
1527
+ - 后端测试 Markdown 模块与 pytest 脚本实现一对一精准映射,提升测试执行的确定性
1528
+ - 修复后端测试 HTML 报告中请求参数显示为空的问题,正确展示请求与响应日志
1529
+ - 初始化项目支持将「帮我完成/实现/修复」等通用需求表达直接路由进 Agent DAG
1530
+ - 新增裸 agent-worker console 入口,简化本地看板启动流程
1531
+
1532
+ ### 新增
1533
+
1534
+ - 初始化后的目标项目支持将「帮我完成/实现/修复/开发」等通用需求表达确定性地路由进 Agent DAG(new-task → dag run-task → dag validate → run-dag),无需追加额外的 cli 关键词
1535
+ - 新增裸 agent-worker console 入口,直接启动 Loop Operator Console,repo 默认当前目录、port 默认 8790
1536
+ - check-skill-entry.sh 及初始化投影脚本支持解析 YAML 折叠块,对通用需求触发词建立机器门禁以防漂移
1537
+
1538
+ ### 改进
1539
+
1540
+ - 后端测试收敛模块映射,生成与评审 prompt 强制模块文件一对一映射,在映射缺失时支持确定性恢复
1541
+ - 后端测试 execute/report 节点文案与 pytest-html 真源对齐,移除残留的 JUnit 表述
1542
+ - 后端测试 HTML 报告对齐 R04 模板样式,采用全 inline style 设计(渐变 banner、可折叠用例卡片、状态胶囊及请求/响应分块展示)
1543
+ - 本地看板启动更简,端口被占用时不再自动更换,改为明确提示使用 --port 显式指定其它端口
1544
+ - 旧项目经 init check-update 与 apply-safe 即可安全补回新的「通用需求实现」路由行,并保留用户自定义前言
1545
+
1546
+ ### 修复
1547
+
1548
+ - 修复后端测试 HTML 报告中请求参数显示为空的问题:渲染器现已兼容 payload= 键或 JSON request_record 格式的请求摘要
1549
+ - 修复后端测试报告无法正确获取请求/响应日志的问题:兼容 HTTP_REQUEST 与 HTTP REQUEST 两种日志前缀,并在解析前正确解码 HTML 实体
1550
+ - 修复 shell-executor 在 Windows 环境下因反斜杠路径导致 runDir 损坏的问题,确保路径注入稳定
1551
+ - 修复前端 lint baseline 在 Windows 下因路径解析逻辑缺陷,拒绝相对路径输出导致评估误报为不可用的问题
1552
+ - 修复多个测试固件在 Windows 下因嵌套 Shell 引号剥离导致命令执行输出为空或报错的问题(涉及 composite-shell 与 init-command)
1553
+
1554
+ ## [0.24.4] - 2026-07-28
1555
+
1556
+ ### 重点更新
1557
+
1558
+ - 控制台「导入需求」支持多文件批量导入,自动合成可编辑正文后创建任务
1559
+ - 后端测试移除重复运行稳定性门槛,每次执行同时生成用户可读的 HTML 与 Markdown 报告
1560
+ - 本地 pre-push 钩子升级为执行完整 CI 流程,覆盖治理检查、类型检查与全量测试
1561
+
1562
+ ### 新增
1563
+
1564
+ - 控制台「导入需求」支持选择或拖入一份或多份 Markdown/TXT 文档(严格 UTF-8,单文件 ≤8 MiB,最多 8 个),多文件分卷归档并合成可编辑正文后创建任务
1565
+
1566
+ ### 改进
1567
+
1568
+ - 后端测试 L-5 结论不再将重复运行稳定性作为门槛,每次执行同时产出用户可读的 HTML 与 Markdown 报告,内部 facts 文件保留用于审计
1569
+ - 本地 pre-push 钩子改为执行完整 CI 流程(治理检查 + 类型检查 + 全量测试),pre-commit 保持仅执行 check-repo
1570
+ - harness 中等复杂度(MED)模型调整为 grok-4.5,并同步对齐相关 smoke/init 断言
1571
+ - 归档已完成的设计文档与执行计划,刷新 0.24.x 六个月规划与能力摘要,并同步验证与 hooks 文档
1572
+
1573
+ ## [0.24.3] - 2026-07-28
1574
+
1575
+ ### 重点更新
1576
+
1577
+ - 发布工作流改为发布已通过完整门禁并经 SHA-256 校验的 npm tarball,避免 `npm publish` 再次触发全量测试、类型检查与构建。
1578
+ - 默认 `standard` 实现任务在 React、Next.js 或 Vue 项目中直接选择 `frontend-implementation` DAG,不再依赖需求关键词;明确后端、文档/测试范围或前端否定仍保留对应通用流程。
1579
+
1580
+ ## [0.24.2] - 2026-07-28
1581
+
1582
+ ### 重点更新
1583
+
1584
+ - 夜间自动发布固定为 patch 通道,不再因功能提交自动跳转次版本号
1585
+ - 新增人工次版本发布工作流,支持显式触发 v0.x.0 版本线升级
1586
+ - 夜间发布支持幂等恢复,重跑时自动探测并跳过已完成步骤,冲突时安全失败
1587
+ - 控制台聊天工作台布局收紧,新增聚焦模式与落地页设计
1588
+
1589
+ ### 新增
1590
+
1591
+ - 新增 manual-minor-release 工作流,仅在显式触发时强制 bump minor 版本
1592
+ - 控制台新增 ChatLanding 子组件,提供无会话/空会话模式下的落地页与建议网格
1593
+ - 聊天压缩失败分类器新增对 token 预算超限、已压缩、模型缺失、活跃对话及不支持运行时等场景的精确 HTTP 状态码映射
1594
+
1595
+ ### 改进
1596
+
1597
+ - 发布工作流将最终门禁拆分为独立可观测步骤,并去重以提升执行效率
1598
+ - 夜间自动发布固定为 --bump=patch,确保版本递增稳定在 0.x.y + 0.0.1
1599
+ - 文档版本引用现支持 floating/current/minimum/range/historical 五类语义声明,合法旧文档不再误阻塞发布
1600
+ - 控制台聊天界面收紧工作台密度,新增 is-chat-focus 类锁定视口,仅消息区域滚动且输入框固定底部
1601
+ - 聊天压缩接口现通过分类器返回类型化错误码,替代原有的通用失败提示
1602
+
1603
+ ### 修复
1604
+
1605
+ - 修复发布流程接受 GitHub Release 目标时无法正确处理符号引用的问题
1606
+ - 修复 GitHub 状态探测缺少认证导致发布恢复判断不准确的问题
1607
+ - 修复夜间发布恢复时未针对当前版本标签进行探测的问题
1608
+ - 修复夜间发布与手动次版本发布通道混淆的问题,现拆分为独立的 patch 与 minor 通道
1609
+ - 修复文档版本治理将合法的旧版本引用误判为漂移并阻塞发布的问题
1610
+
1611
+ ## [0.24.1] - 2026-07-27
1612
+
1613
+ ### 重点更新
1614
+
1615
+ - 后端测试 HTML 报告全面升级,采用更清晰的可折叠用例卡片设计,直观展示脱敏的请求与响应详情。
1616
+ - 彻底修复了 Windows 环境下因 cmd.exe 与 bash 嵌套引号转义不当,导致前端与初始化测试固件执行失败的问题。
1617
+ - 前端实现 DAG 大幅优化,复用现有 run-owned canonical artifacts,有效精简了常规全绿路径的直接依赖节点数量。
1618
+
1619
+ ### 新增
1620
+
1621
+ - 后端测试第 7 节点现使用 pytest-html 生成自包含报告,并新增解析器从其 JSON island 提取每条用例的结果与日志。
1622
+ - 后端测试生成的 pytest 文件名现可与 Markdown 模块建立一对一清晰映射。
1623
+
1624
+ ### 改进
1625
+
1626
+ - 后端测试 HTML 报告对齐 R04 模板样式:改用全 inline style 设计,包含渐变 banner、可折叠用例卡片、状态胶囊以及请求参数与响应结果分块展示。
1627
+ - 前端 canonical implementation contract 允许纯逻辑修改使用空的 UI state,不再强制虚构,并会确定性移除不适用状态下的空输出。
1628
+ - 前端实现 DAG 的多个节点(如 frontend-implement-pi、frontend-review-pi 等)直接依赖得到收敛,不再重复读取完整任务源或上游冗余文本。
1629
+
1630
+ ### 修复
1631
+
1632
+ - 修复后端测试 HTML 报告中请求参数显示为空的问题:渲染器现已兼容 payload= 键或 JSON request_record 格式的请求摘要。
1633
+ - 修复后端测试报告无法获取请求/响应日志的问题:兼容 HTTP_REQUEST 与 HTTP REQUEST 两种日志前缀,并在解析前正确解码 HTML 实体。
1634
+ - 修复 shell-executor 在 Windows 环境下因反斜杠路径导致 runDir 损坏的问题,确保路径注入稳定。
1635
+ - 修复前端 worktree baseline 解析 git status 时因提前 trim 导致未暂存文件路径丢失首字符的解析缺陷。
1636
+ - 统一 DAG 任务源路径生成与运行时解析基准,解决 freshness、rerun 与预览共享不一致的问题。
1637
+ - 修复前端项目在需求未显式提及 UI 时被误判保留为标准任务的问题,提升了基于工程证据与交互语义的任务类型推断准确度。
1638
+ - 修复前端 lint baseline 在 Windows 下因路径解析逻辑缺陷,拒绝相对路径输出导致评估误报为不可用的问题。
1639
+ - 修复多个测试固件在 Windows 下因嵌套 Shell 引号剥离导致命令执行输出为空或报错的问题(涉及 composite-shell 与 init-command)。
1640
+
1641
+ ## [0.24.0] - 2026-07-27
1642
+
1643
+ ### 新增
1644
+
1645
+ - align chat workspace with pi web UX
1646
+ - operator chat workspace UX + async runtime race guards
1647
+ - operator chat M3-M7 (draft interview, human-gate, input context, artifacts, branching, landing)
1648
+ - pytest-html report + filename mapping + Windows path fix (#71)
1649
+
1650
+ ### 改进
1651
+
1652
+ - style(console): 收紧 Operator Chat 工作台密度与侧栏体验
1653
+ - style(console): prettier-format Operator Chat + keep UI-contract text intact
1654
+
1655
+ ### 修复
1656
+
1657
+ - operator chat M2 closure tracer + code review followups
1658
+
1659
+ ## [0.23.1] - 2026-07-26
1660
+
1661
+ ### 重点更新
1662
+
1663
+ - **Console Phase 4 — General Operator Chat**:在 `agent-worker console` 内交付 Pi 驱动的自由对话入口,用自然语言多轮编排 loop-agent / agent-worker;暴露全部 operator action(registry 动态派生)+ 内置探查工具 bash/read/grep/find/ls,仍禁文件写入 coding tool;含两轮代码审查的 P1 修复(builtin tool 注册、schema↔dispatcher 契约、server 生命周期、tool policy 统一)与 followup 修复(缩进、SSE 错误兜底、文档同步、waitForIdle 超时+心跳)
1664
+ - DAG 新增显式 failure-aware 依赖语义,允许只读恢复节点容忍上游 ERROR 并读取失败证据执行收敛
1665
+ - review verdict 协议重试耗尽后支持确定性规范化,缺失或冲突时仍严格报错
1666
+ - 新增 recovery recommendation 稳定下一步分类,为各类失败提供明确的修复或重试路由提示
1667
+ - loop-agent doctor 新增机器可读 JSON 报告与只读上下文审计能力
1668
+ - loop-agent stats context 提供近端 DAG 运行的上下文用量只读聚合统计
1669
+ - AGENTS.md 与 init managed block 采用感知源码的精简策略,保留路由与硬约束不变
1670
+ - 全面深化文档治理体系,引入目录状态语义、审查策略与外部方法论单轨融入
1671
+
1672
+ ### 新增
1673
+
1674
+ - **Console Phase 4 — General Operator Chat(Pi SDK services 模式)**:
1675
+ - 后端 `src/worker/console/chat/`:`pi-runtime.ts`(services 模式 SDK 包装 + session 隔离 + 显式注册 builtin 探查工具 `tools:[bash,read,grep,find,ls]`)、`tool-adapter.ts`(operator action → Pi tool schema,动态发现 fail-closed)、`session-store.ts`(Gate 3 per-call 授权 + per-session write chain)、`routes.ts`(SSE 流式 HTTP)、`tools.ts`(全 operator action 动态派生白名单)、`resource-loader.ts`(封闭 ResourceLoader)、`model-resolver.ts`(harness.json 动态解析,无硬编码)、`instruction-skills.ts`(9 个只读 skill 白名单)
1676
+ - 前端 `OperatorChat.tsx` + `ChatMarkdown.tsx`:多行 composer、Markdown 气泡、可折叠工具侧栏、停止生成、智能贴底滚动;零依赖 Markdown 渲染
1677
+ - 默认模型从 `harness.json executors.pi.MED` 动态解析,按「bare-id 优先 + 有凭证优先」选取 provider(无硬编码回退)
1678
+ - 红队验证 V12/V14/V15/V16:文件写入 coding tool 必拒、credential 不回传、高风险 action 无 prepared receipt 必失败、模型伪报 complete 不覆盖 deterministic validation
1679
+ - DAG 显式 failureAwareDependsOn 依赖语义,支持只读恢复等价节点显式声明容忍指定上游节点的 ERROR
1680
+ - review verdict 协议重试耗尽后的确定性规范化:当恰好存在一个合法受支持且无冲突的 verdict 行时自动规范化为首行
1681
+ - recovery recommendation 稳定下一步分类:为 nonzero-exit、protocol-invalid 等各类失败提供稳定的 repair/revision/retry 路由提示
1682
+ - loop-agent doctor --json 输出单一可 JSON.parse 的 typed DoctorReport,供人与机器共享同一事实源
1683
+ - loop-agent doctor --context 提供只读上下文审计,报告默认策略、技能清单与预算跳过情况
1684
+ - loop-agent stats context [--last N] [--json] 只读聚合最近 DAG 运行的技能解析与节点结果
1685
+ - 新增 scripts/eval-dogfood-context-engineering-ab.sh,支持复现演练 AGENTS map verbose→slim A/B 协议
1686
+ - skill registry 增加 verification placement taxonomy(standalone/embedded/chained/PR-bound)创作词汇
1687
+ - 新增 docs/architecture/agents-invariants.md 作为源 AGENTS 与 managed block 不变量合同的单一真源
1688
+ - 新增 docs/templates/README.md 并纳入 package / full init / init check-update 面
1689
+ - 新增文档治理任务式 README、机器可读 document-catalog.json 与 check-doc-governance.mjs 语义检查器
1690
+ - 新增文档审查策略与三档 reviewTier freshness 策略,支持按 UTC 日期边界阻断过期文档
1691
+ - 新增设计原则与范式转移起源文章,并发布到网站实践文档
1692
+
1693
+ ### 改进
1694
+
1695
+ - supervised 模板的 process-supervisor-pi 可显式消费 soft-verify-shell 的 ERROR,使失败进入有界修复收敛链
1696
+ - supervised 中间验证未显式配置时不再继承 verifyQuota: full,默认只取配额 1
1697
+ - 生成 DAG 的验证命令默认单命令超时由 5 分钟提升为 30 分钟,避免全量测试误判为超时
1698
+ - failure-aware 节点可在 upstream_context 中读取被容忍上游 ERROR 的 stdout/stderr 等作为失败证据
1699
+ - loop-agent public skill 增加默认预算完整性回归,确保关键 entry 与 required references 在默认预算下完整解析
1700
+ - skills/loop-agent/SKILL.md 将 command-reference.md 从 required 调整为按需 reference,保持在默认预算内
1701
+ - doctor 与 stats context 的 JSON 模式不再输出 [loop-agent] banner,保证机器输出可直接解析
1702
+ - 源仓库 AGENTS.md 与 init managed block 采用感知源码的精简,长解释指向 docs/,保留开工路由与硬约束
1703
+ - 调试纪律要求先建立快速确定性反馈回路再进入根因调查;verifier skill 强调不得越过 writer 边界
1704
+ - 任务与 TDD 明确采用垂直 tracer bullet(一测试一实现),避免水平层批处理
1705
+ - ADR 增加三门槛过滤;CONTEXT.md 明确只承担术语表职责;grill-with-docs 按 governanceRoot 解析 decisions
1706
+ - 外部工程方法论按单轨治理融入 docs/skills/init(ADR 0006),不引入平行状态树
1707
+ - 文档治理完成当前权威与内容可信度审计,修正设计入口、能力摘要与网站 roadmap 中的归档状态表述
1708
+ - 文档治理完成实际归位,工程规则、runtime 手册和维护操作分别进入清晰目录,当前设计与历史设计分开
1709
+ - 文档入口版本与状态对齐 @tea-agent/loop-agent@0.22.0
1710
+ - Pi 中等复杂度节点默认模型由 glm-5.2 调整为 gpt-5.5;LOW 与 HIGH 路由保持不变
1711
+
1712
+ ### 修复
1713
+
1714
+ - DAG run-task 持久化 writer 草稿生成前强制要求 managed Task Contract,未管理时在写出前失败并提示人工处理流程
1715
+ - Task source 指南修正 verifyCommands 示例为 { label, command, timeoutMs? }[],并补充旧字符串数组迁移说明
1716
+ - 根 Vitest 配置排除 .worktrees/** 隔离 checkout,避免显式测试文件参数误收集旧副本
1717
+ - 受监督的 DAG 失败收敛机制修复,确保在有监督失败时保持收敛性
1718
+ - DAG bootstrap 合约反馈修复,确保引导阶段正确收敛
1719
+ - 修复 check-doc-governance.mjs 未忽略 .DS_Store/Thumbs.db 等 OS 生成文件导致仓库目录测试失败的问题
1720
+ - 修复 context-engineering 提案中指向 exec-plans/active/ 的过时链接,更新为实际的 completed/ 路径
1721
+ - 校准 context-engineering 提案中的实现证据(测试计数与 AGENTS.md 行数)以匹配当前代码实际产出
1722
+ - Console Phase 4 Chat 审查 followup:createSession 缩进规整;handleChatPrompt 加 try/catch+finally 兜底 SSE error 与 res.end;waitForIdle 超时 120s→45s 并新增每 10s heartbeat(SSE comment 帧)防代理超时;设计文档 §7.2.1/V25/§13 同步 widening 契约
1723
+ - Console Phase 4 Chat P1 审查修复:`createSessionFromServices` 显式传 `tools:[bash,read,grep,find,ls]`(SDK 默认 builtin 不含 grep/find/ls,否则 setActiveToolsByName 静默 no-op);schema↔dispatcher 契约对齐(contractValidate/Diff 用 draftJson、workerTaskRetry 补 featureId、动态发现 fail-closed);server.close() 先 chatRuntime.disposeAll();resource-loader/system prompt 统一到 widening(hasBash:true)
1724
+ - CI 治理:7 个 versionConsumer 文档版本漂移 0.22.0→0.23.0;check-task-pool-root.sh allowlist 增补 codify-constraints.md
1725
+
1726
+ ## [0.22.0] - 2026-07-24
1727
+
1728
+ ### 重点更新
1729
+
1730
+ - 前端规范读取范围扩展,新增 ai_workspace 作为并列来源,并独立展示各类规范证据
1731
+ - 前端实现 DAG 引入 lint 债务基线机制,精准区分存量与新增代码问题,减少误阻断
1732
+ - 前端预写门禁增强,强制校验真实的规范读取事件,避免遗漏关键上下文
1733
+ - 后端测试报告结构优化,新增 Markdown 报告并改进 HTML 报告的分层展示
1734
+
1735
+ ### 新增
1736
+
1737
+ - 前端规范读取将 ai_workspace 目录与 openspec 相关目录作为并列来源,即使缺少 package.json 也能发现本地规范候选
1738
+ - Dashboard 规范证据 API 与界面独立展示知识库查询、openspec 检索和成功读取三类证据
1739
+ - 后端测试在同目录下新增生成 backend-test.md 报告,便于查阅测试结论与明细
1740
+
1741
+ ### 改进
1742
+
1743
+ - 前端实现 DAG 允许未修改文件中的已知 lint 诊断作为基线债务继续,但对修改文件的新问题严格阻断
1744
+ - 后端测试 HTML 报告采用更清晰的分层展示,新增稳定结论图标与可折叠的质量校验明细,移除了原稳定性指标
1745
+ - 前端测试用例的内容完整性与证据检查降级为建议性反馈,不再因个别物料缺失阻断最终复盘
1746
+ - 设计文档与研发 DAG 拓扑说明同步更新,澄清了 profile/workflow/type 三套正交概念与当前实现状态
1747
+
1748
+ ### 修复
1749
+
1750
+ - 修复前端技能指令可能超出预算限制的问题
1751
+ - 修复 DAG 未正确注册 DeepSeek Pi 模型提供者的问题
1752
+ - 修复前端目标项目验证路由不够健壮的问题
1753
+ - 修复后端测试中无法跨环境便携解析 Python 运行时的问题
1754
+
1755
+ ## [0.21.0] - 2026-07-24
1756
+
1757
+ ### 重点更新
1758
+
1759
+ - DAG/Pi 自适应活跃度监管:精准区分传输活动与真实执行进展,受控处置静默卡死,避免误杀。
1760
+ - 后端测试执行范围收窄:仅运行最终 Markdown 明确映射且通过安全校验的脚本,杜绝无关测试混入。
1761
+ - 后端测试 HTML 报告全面升级:采用清晰的用例卡片,直观展示脱敏的请求与响应详情。
1762
+
1763
+ ### 新增
1764
+
1765
+ - DAG/Pi 自适应 liveness 与非误杀监管:区分 runner lease、transport 活动与 Provider/tool/output 真实进展;节点可投影 active/quiet/suspected-stall/probing/needs-attention;静默 stall 会受控终止,退出无法确认时禁止自动重试;Pi absolute max 对齐 4h;Worker 默认不再给 `run-dag` 设置外层 wall-clock,显式 `worker.timeout_ms` 仍为 hard timeout。
1766
+
1767
+ ### 改进
1768
+
1769
+ - backend-test 第 7 节点现在只执行最终 Markdown `自动化映射` 明确声明且安全校验通过的 pytest 脚本,避免历史或无关 `test_*.py` 混入本轮 JUnit/HTML;空映射、缺失脚本或越界路径会 fail-closed。
1770
+ - backend-test HTML 报告升级为更清晰的用例卡片:保留测试结论、质量状态和失败概览,直接展示简洁测试场景、自动化用例名称、结果与耗时,并为通过/失败用例都展示同次执行中脱敏且有界的接口请求参数与响应结果;HTML 不再附带技术证据章节,审计路径与哈希继续保留在 facts/JUnit。
1771
+ - frontend-test 第四节点不再扫描或阻断 pytest、原生 Playwright、`npx playwright`、`@playwright/test` 或 Node Playwright API 等可执行工具指令;该节点只保留 manifest、Case/AC/path、非生产 URL 和标准 `playwright-cli open` 前缀等结构与安全门禁,并强烈建议浏览器执行优先使用 `playwright-cli`。
1772
+ - frontend-test 用例内容、Case ID、AC 关联与 evidence 完整性检查改为 advisory:缺失或损坏的执行物料不再被自动改写为 blocked,也不阻断最终复盘;finding 汇入结构化结果,并在 Markdown retrospective 后生成中文 HTML 建议报告。路径越界、跨用例 evidence 引用、writeSet、生产环境与凭据安全仍保持硬门禁。
1773
+ - frontend-test checklist JavaScript 通过 Base64 参数交给 Node 解码执行,并修正变量声明顺序与重复语句,避免 Git Bash 将 `\s` / `\d`、反引号或引号破坏后再交给 Node。
1774
+ - 新初始化项目的 harness 指南同步 adaptive liveness、4h absolute max、stall 状态与 `termination-unconfirmed` 处置;旧项目可由 `init check-update` 识别未修改的受管指南,并通过 `init update --apply-safe` 安全刷新。
1775
+
1776
+ ## [0.20.1] - 2026-07-24
1777
+
1778
+ ### 新增
1779
+
1780
+ - LLM/provider 偶发失败时可在同节点自动重试;reviewer 漏写 `VERDICT` 等协议错误也会在节点内纠错重试,不必等下游 gate 才失败
1781
+ - 新增 `loop-agent dag rerun`:在安全资格通过时,从选定节点重跑只读子图,并保留父 run 证据与 import 审计
1782
+ - 新增 `loop-agent dag rerun-task`:一键完整重跑 standalone 任务(重新生成、校验并执行),不修改父 run
1783
+ - Operator Console Recovery 提供明确动作:从节点重跑、完整重跑任务、重新排队 Worker Task(不再使用含糊的「重试」)
1784
+ - 前端规范读取将知识库与 `openspec/` 作为并列来源:无论知识库是否可用或命中,均继续递归枚举 `<repoRoot>/openspec/**` 并读取索引与任务相关规范正文。`discoverFrontendProjectCapability` 在没有 `package.json` 或 `package.json` 不可读时仍能发现 `openspec/**` 规范候选。
1785
+ - 前端预写门禁会校验 plan/design-review 的真实读取事件;生成期存在 `openspec` 规范候选但没有成功读取匹配文件时,在 writer 执行前阻断 DAG 并列出候选路径、检查节点和原因。
1786
+ - Dashboard 规范证据 API/UI 分别展示知识库查询、`openspec` 检索和 `openspec` 成功读取证据,三种类别独立展示。
1787
+ - 前端规范证据 API 新增 `openspecReads` 与 `openspecSearches` 字段,与通用 `specReads`/`specSearches` 并行。
1788
+
1789
+ ### 改进
1790
+
1791
+ - backend-test 第 4 个 Markdown 校验节点只将前置条件、操作步骤和预期结果作为必需章节;需求来源引用有效性不再阻断后续测试。普通质量问题保持 advisory,但 secret-shaped 值会先生成脱敏安全报告再 fail-closed,避免进入 pytest、HTML/facts 和最终报告。
1792
+ - backend-test 生成的真实 HTTP pytest 现在必须输出脱敏且有界的请求/响应日志,包含 method、URL/path、请求参数摘要、响应状态和响应 body 摘要;追溯节点会在 Markdown 映射脚本范围内把日志合同缺口记录为 advisory。
1793
+ - backend-test 第 7 节点的 HTML/facts 按测试概览、质量校验、失败概览、用例执行明细和技术证据分层展示;第 8 节点使用固定简洁的中文收口结构,减少重复原文并优先展示结论和风险。
1794
+ - Operator Console「恢复」面板自动拉取 DAG 运行与节点候选,优先展示失败项并以选择器填入,仍可手动输入
1795
+ - 从节点重跑预检失败时展示真实安全资格阻断原因,不再误报为「无法获取 planHash」
1796
+ - 恢复页长操作(完整重跑等)会回写终态成功/失败;不再只提示「已接受」后无下文
1797
+ - 恢复原因按所选 run/节点与失败事实自动预填,并给出三步操作指引;手动编辑不会被覆盖
1798
+ - 恢复页将「DAG 运行恢复」与「Worker Task 重排队」分成独立区域,避免把 runtime DAG 与 Task Pool 动作混在一起
1799
+ - 恢复页去掉高亮「打开检视」,避免与顶部「观测」入口重复误点;需要时用「侧栏预览」或「全屏观测」
1800
+ - 恢复页「侧栏预览」在本页打开可关闭;全屏观测顶栏改为「返回操作台」
1801
+ - 修复侧栏预览:兼容 Observe 的 `nodeId`/`label`,并安全格式化 session-events(避免 React 渲染对象导致整页空白)
1802
+ - 恢复 CTA:查看报告改走 `dag report`(按 run ID);推荐动作仅用橙色主按钮标出,悬停看说明
1803
+ - 从节点重跑 / 完整重跑任务点击后,在按钮下方出现「确定 / 取消」确认条
1804
+ - 恢复页不再展示仅弹 CLI 提示的按钮(如「重新生成契约/计划」)
1805
+ - 「查看报告」在按钮下方展示交接摘要(失败分类与建议),不再只闪顶部提示
1806
+ - 控制器指纹漂移错误改为中文提示:请重启 Console,勿在会话中途重建
1807
+ - frontend-test 环境预检:在生成用例前对冻结的非生产 `baseUrl` 做 curl 可达性探测;不可达或缺少 curl 时以 `frontend-base-url-unreachable` / `curl-unavailable` 阻断 generate/map,并写入 `environmentProbe` 事实。节点 5 manifest 物化改为 ruleId 失败分类、map 配额预检与 temp+rename 原子写入;生成/清单/执行强制 playwright-cli-only,U/D 场景要求当前用户数据归属或 create/Mock/blocked。
1808
+ - 前端测试 DAG 的证据自检改为按用例降级:个别缺失、空白或格式错误的证据会如实标为 blocked 并继续生成复盘报告;只有全部用例都未产生任何证据内容或证据路径不安全时才失败。
1809
+
1810
+ ### 修复
1811
+
1812
+ - Observe 总览 KPI 问号提示框宽度与窄卡片解耦:提示框使用稳定的 240–280px 视口安全宽度,并在五列、三列和两列布局的右侧列向内对齐,避免宽屏下被压缩成约 78px 的窄条;hover 与键盘焦点行为保持不变。
1813
+ - 节点检查器的规范证据文件预览会渲染 Markdown 标题、列表、表格与代码块,不再把正文作为带语法标记的纯文本显示。
1814
+
1815
+ ## [0.20.0] - 2026-07-23
1816
+
1817
+ ### 新增
1818
+
1819
+ - 继续收紧前端实现证据门禁:禁止空 verification contract,校验验证目标与 requirement/UI state/授权路径绑定;新版 review context 缺失 writer baseline 时直接阻断,非 `not-needed` Mock 策略必须提供 endpoint 与 consumer 证据。
1820
+ - 前端写入前重新校验 DAG 绑定源文件的 SHA-256;Mock endpoint 现在必须声明 fixture 与 consumer,且验证 trace 必须记录成功的 Mock 命令。
1821
+ - 前端验证 bundle 现在冻结实际命令文本,并将实现契约 targets 限制在 writer writeSet 内,避免验证证据与可写范围漂移。
1822
+ - 同步前端 prewrite/review context 的 DAG JSON Schema,避免生成 DAG 因 freshness、writeSet 或 baseline 字段漂移而被错误拒绝。
1823
+ - 前端 prewrite 现在强制校验需求源新鲜度,验证 Schema 也要求声明实际命令文本,减少旧 DAG 和证据配置的隐式降级。
1824
+ - 前端实现 DAG 的验证命令与侦察范围改为从目标项目自身的 package scripts、包管理器和允许路径推导,不再假设目标项目沿用 loop-agent 的目录与命令布局。
1825
+
1826
+ ### 改进
1827
+
1828
+ - 前端实现 DAG 的验证命令与侦察范围改为从目标项目自身的 package scripts、包管理器和允许路径推导,不再假设目标项目沿用 loop-agent 的目录与命令布局。
1829
+ - 后端测试用例默认生成中文 README 索引与模块用例卡片,步骤、预期、需求依据和自动化映射更便于测试、研发与评审人员阅读。
1830
+ - 后端测试 HTML 主报告现在逐条展示用例编号、中文名称与场景、脚本、测试函数、结果、耗时和失败原因,完整技术详情可折叠查看。
1831
+
1832
+ - streamline implementation DAG (#61)
1833
+ - improve human-readable artifacts
1834
+
1835
+ ### 修复
1836
+
1837
+ - relax traceability mapping
1838
+
1839
+ ## [0.19.0] - 2026-07-23
1840
+
1841
+ ### 重点更新
1842
+
1843
+ - Operator Console 统一整合 Operate 与 Inspect,在同一服务即可检视只读 Dashboard、DAG、时间线与 artifacts
1844
+ - 原 Observe 服务进入兼容期,仍可运行但会输出迁移提示,引导平滑过渡到统一控制台
1845
+
1846
+ ### 新增
1847
+
1848
+ - 新增统一 Operator Console:`console serve` 同时提供 Operate 与 Inspect,支持通过 `/inspect/` 直接检视运行详情与 DAG
1849
+ - Console 健康检查接口升级,包含 Inspect 就绪状态与路由能力信息
1850
+ - `console serve` 新增局域网绑定(`--host 0.0.0.0`)与调试日志(`--debug`)选项,并在非本地访问时保留安全校验
1851
+
1852
+ ### 改进
1853
+
1854
+ - `frontend-implementation` 保留独立 contract/scout,并把 Mock 策略与 implementation contract 合入 plan,把写前授权、验证/失败评估、复验和 review context 分别收敛为组合 shell 节点。standard/high-risk 固定 15 个顶层节点、small-risk 13 个;绿色路径执行 11 个节点、7 次 Pi,同时保留唯一 prewrite 写入授权、同 writeSet repair、真实 diff review 与 fail-closed closeout。
1855
+ - 加强前端实现节点的证据链:Trace 只绑定本次实际成功执行的验证命令,契约兼容转换不再补入占位文件或默认验证目标,Prewrite 要求上游节点明确完成,review context 校验 artifact 绑定,并以 writer 前工作区快照隔离既有用户改动。
1856
+ - 优化操作与观测统一界面的导航与布局,合并确认与运行为「开始运行」,DAG 详情跳转路径更加准确
1857
+
1858
+ ### 修复
1859
+
1860
+ - 修复执行计划索引将命名约定占位符(如 `YYYY-MM-DD-<topic>.md`)误判为缺失计划引用的问题
1861
+
1862
+ ## [0.18.1] - 2026-07-22
1863
+
1864
+ ### 重点更新
1865
+
1866
+ - 放宽后端测试 Markdown 用例的映射与验收标准校验,减少合法用例被误拦截的情况
1867
+ - 修复文档审计报错未阻断 CI 的治理漏洞,并全面修正失效链接
1868
+ - 清理发布日志中残留的已发布记录,避免将已上线能力误展示为未发布
1869
+
1870
+ ### 修复
1871
+
1872
+ - 放宽后端测试 Markdown 用例的每条补充 Case 必须包含 AC 标识的硬性要求,改为确保任务要求的业务 AC 场景至少被一条最终用例覆盖即可,整体缺失必需 AC 时仍会严格阻断
1873
+ - 放宽后端测试 traceability 映射校验,Case ID 可位于测试函数名、装饰器、函数体或文档字符串区域,不再强制首行文档字符串或严格一对一映射,避免重复映射等情况导致的误阻断
1874
+ - 修复文档审计在发现错误时未返回非零退出码导致 CI 假绿的问题,并将链接门禁覆盖范围扩展至完整的 docs/ 目录
1875
+ - 修正文档报告分类迁移后遗留的 269 条失效链接
1876
+ - 修复自动发布创建版本区块时未正确消费已发布内容并清理残留记录的问题,移除了随 0.18.0 版本发布的 59 条残留日志
1877
+
1878
+ ## [0.18.0] - 2026-07-22
1879
+
1880
+ ### 重点更新
1881
+
1882
+ - 后端测试全面采用 Markdown 优先工作流,整合环境预检、独立审查与确定性门禁,单次执行即可生成完整测试报告。
1883
+ - 前端实现与测试流程大幅优化,按需执行计划修订与验证,常规全绿路径执行节点数量显著减少。
1884
+ - 修复多项严格校验导致的误中断问题,大幅提升 Markdown 用例生成、追踪映射与异常清理的兼容性。
1885
+ - 优化 Pi CLI 与 SDK 执行器,彻底解决长文本输出导致的内存溢出与进程卡死问题。
1886
+
1887
+ ### 新增
1888
+
1889
+ - 引入 Markdown 优先的后端测试工作流,支持环境预检、独立审查用例并生成自包含的 HTML 与 Markdown 报告。
1890
+ - 新增升级后的初始化面通知器,在检测到版本不一致时自动提示安全更新或引导人工处理。
1891
+ - 新增统一的初始化协调命令,支持安全应用更新并智能处理各类阻断情况。
1892
+ - 测试报告新增 L-5 指标消费与统一的代码覆盖率报告入口,支持 Python 与 Java 测试数据。
1893
+
1894
+ ### 改进
1895
+
1896
+ - 前端实现绿色路径改为按需分支执行,常规无错路径可少执行多个节点,提升执行效率。
1897
+ - 前端测试用例生成现可自动解析明确的 baseUrl,不再保留占位符,避免执行异常。
1898
+ - 前端测试复盘报告写入路径调整,支持安全禁止整个 docs 目录的写入权限。
1899
+ - 夜间自动发布机制优化为双基线检测,手动补丁不再抹除同周期的功能信号。
1900
+ - GitHub Actions CI 优化执行策略,合并任务并跳过纯文档变更,有效降低私有仓库分钟消耗。
1901
+
1902
+ ### 修复
1903
+
1904
+ - 修复 Markdown 用例追踪映射将 HTTP 状态码等数字误识别为用例 ID,以及无法正确识别带返回类型标注的测试函数的问题。
1905
+ - 修复 Markdown 用例门禁误拒绝合法的列表断言,以及无法正确解析相对路径绑定文件的问题。
1906
+ - 修复 Pi CLI 执行器将单个节点完整标准输出累积为单一字符串,导致长文本输出时内存溢出或卡死的问题。
1907
+ - 修复 Windows 环境下因清理环境变量导致 Python 和 pytest 无法正确发现用户级依赖的问题。
1908
+ - 修复初始化演进的高影响校验未覆盖专用路径,导致必要审查被静默跳过的问题。
1909
+
1910
+ ## [0.17.2] - 2026-07-22
1911
+
1912
+ ### 改进
1913
+
1914
+ - Operator Console Happy Path 补齐:主导航(任务/恢复/模型与认证/设置)、newTask / importPrd、grill-me Interview(一次一问 + assessment)、SSE 运行跟随;Pi readiness 可刷新。
1915
+ - Operator Console 页面交互文案改为中文(导航、向导步骤、按钮与状态说明);产品名与 CLI 命令仍保留英文术语。
1916
+ - Operator Console 界面与交互美化:暖色画布、胶囊导航、步骤进度条、统一按钮层级与状态条,运行面板元信息更清晰。
1917
+ - Operator Console Happy Path 增加「流程类型」选择(后端研发 / 前端研发 / 后端测试 / 前端测试),写入 `taskKind`;访谈枚举同步支持 `frontend-implementation` 与 `frontend-test`。
1918
+ - Console Happy Path 去掉单独的「创建任务」步骤:导入需求时根据 PRD 标题自动生成任务名称与 canonical taskId,并一键创建任务 + import-prd。
1919
+ - Operator Console 需求访谈可跳过:一键按 grill-me 推荐补齐草稿并签发评估,可直接进入契约校验。
1920
+ - Operator Console 将「校验契约 / 应用契约 / Spine 审计」合并为「契约落地」:自动确定性校验与差异,人工确认一次应用,成功后自动 Spine。
1921
+ - Observe 运行看板视觉对齐 Console:暖色渐变画布、胶囊导航、柔和面板阴影与状态点,减少高饱和色块;进一步统一 badge/表格/风险块/时间线/DAG 图与 inspector、对象关系条与推荐命令等视图组件。
1922
+
1923
+ ### 修复
1924
+
1925
+ - Console Draft 在 validate/diff/apply 前会投影为 CLI 严格 schema:补齐 `constraints.invariants`,并去掉仅 Console 使用的 `updatedAt`,避免误报 draft schema validation failed。
1926
+ - 修复访谈完成后绑定 `interviewAssessmentRef` 会立刻让 assessment 过期的问题:`draftSha256` 不再纳入该绑定字段;finalize 时先清空 `openQuestions` 再签发 assessment。
1927
+ - 修复 Console `contractApply` 默认传入 `expectedObservedHash=unknown` 导致 OBSERVED_HASH_CONFLICT / 页面只见 `exit 1`:改为先 `task contract show` 再传真实 revision/hash;异步操作失败时展示 CLI 错误信息。
1928
+ - 修复应用契约后界面卡住:轮询操作结果时误读 `{ ok, operation }` 响应,一直等到超时且无法进入 Spine。
1929
+ - 修复 DAG 确认准备失败:不再提交空 stub DAG;`prepareDagConfirmation` 会经 `dag run-task` 生成真实 DAG;`dag validate` 接受 `--json` 兼容 Console。
1930
+ - 修复 Console `runDag` 因 `run-dag --json` 未识别而失败:CLI 现接受该旗标(输出本就为 JSON)。
1931
+ - 运行 DAG 不再用短超时阻塞整页:`runDag` 改为后台接受 + SSE 跟随;Observe 按钮与任务 busy 解耦,运行中可打开。
1932
+ - Console 打开 Observe 时,若只给 taskId,会解析该任务最新 DAG run 并跳转 `#/dag/<runId>`,不再误开 `#/task/<taskId>`。
1933
+
1934
+ ## [0.17.1] - 2026-07-22
1935
+
1936
+ ### 修复
1937
+
1938
+ - TaskSpec materialize 在写入 task.json、需求和约束后会自动 adopt 或刷新 managed Task Contract,避免生成 v4 DAG 后立刻因 binding drift 无法 validate/run。
1939
+ - Operator Console 的 Pi readiness 改为真实探测 SDK、认证和可用模型;本机已配置 Pi 时不再误报 `setup-required`,界面同步对齐 Observe 暖白画布。
1940
+
1941
+ ## [0.17.0] - 2026-07-22
1942
+
1943
+ ### 新增
1944
+
1945
+ - streamline report-first workflow (#53)
1946
+ - add operator console, task contract, and harden bindings (#51)
1947
+ - condition DAG design and repair branches
1948
+
1949
+ ### 修复
1950
+
1951
+ - synchronize console frontend lockfile (#52)
1952
+ - tolerate mock strategy format drift
1953
+ - bound executor output
1954
+
1955
+ ## [0.16.26] - 2026-07-22
1956
+
1957
+ ### 修复
1958
+
1959
+ - Git checkpoint 对 `allowed_paths` 内的 **gitignored 证据文件**(如 dogfood `reports/welcome/final/*.json`)执行 `git add -f` 纳入 checkpoint;敏感路径与范围外 ignored 文件仍 fail-closed。修复 FINAL-VERIFY DAG/report 已绿却因 ignored evidence 记 `record-error`、Task Pool 卡 Running 的 Delivery 阻断。
1960
+
1961
+ ## [0.16.25] - 2026-07-22
1962
+
1963
+ ### 修复
1964
+
1965
+ - Backend-test pytest preflight 与执行体改为 `&&` fail-closed:preflight 失败不再因 `;` 继续跑 pytest(I27 曾出现 preflight 报 `WELCOME_BASE_URL`/testRoot 错配仍执行用例)。
1966
+ - 本地 `npm start` / `node server.js` 类 `managed-command` 在 materialize 时降级为 `in-process`,清空 requiredEnv、seed server fixture,并把 scout `testRoot` 收敛到冻结根 `testcase/`;generate-pytest 提示要求 fixture 内启动服务,不再依赖 clean-env 注入 base URL。
1967
+
1968
+ ## [0.16.24] - 2026-07-21
1969
+
1970
+ ### 改进
1971
+
1972
+ - frontend-test 默认改为**短链 RAG**:`reviewMode` 默认 `off`(机械 `frontend-case-checklist-shell` 放行,不再默认双轮 LLM review 硬门);`strictOutcomeGate` 默认 `false`(outcome 全绿门 opt-in)。**流程验收=最终 retrospect 报告**,不以 case 100% 通过为条件。map 仅在 `dynamicExpansion.tolerateChildFailures=true`(frontend-test 默认开启)时将 child auth/timeout/executor 错误落 case-level blocked/failed evidence 且不炸 map closeout;其它 map 仍 fail-closed。
1973
+ - Shell `verdictGate` 改为纯 `node -e` 单次调用,降低 Windows Git Bash 复合脚本崩溃风险。
1974
+
1975
+ ### 修复
1976
+
1977
+ - Windows DAG Shell/verification 的 clean environment 现在保留 `APPDATA`,使 Python 3.12/pip 可按系统规则发现用户级 `site-packages` 与其中的 pytest;仍不会继承完整宿主环境或透传未授权 token/credential,backend-test 无需硬编码用户路径。
1978
+
1979
+ ## [0.16.23] - 2026-07-21
1980
+
1981
+ ### 修复
1982
+
1983
+ - DAG runner 在归档到 `completed/` 前停止 heartbeat 并排空 state 写队列。避免 terminal 节点全 FINISHED 后仍因 completed-facts write guard 拒绝写 `state.json` 导致 `run-dag` 非零退出、Worker 记 `run-error`/Task Pool `Blocked`。
1984
+
1985
+ ## [0.16.22] - 2026-07-21
1986
+
1987
+ ### 修复
1988
+
1989
+ - Git checkpoint `allowed_paths` 审计与 shell write-guard 对齐:忽略 `.playwright-cli/**` 等 ephemeral tool cache。frontend-test 浏览器用例与 `frontend-test-result` 已绿时,不再因 playwright-cli 会话落盘导致 promote/closeout `record-error`。
1990
+
1991
+ ## [0.16.21] - 2026-07-21
1992
+
1993
+ ### 修复
1994
+
1995
+ - DAG `sourceBinding.requirementIds` 优先取任务 `需求.md` 的 `## Acceptance References`(TaskSpec `acceptance_refs`),不再把 Feature 整份 `acceptance.yaml` 的兄弟 AC 扫进本任务。修复 frontend-test 用例全绿却因 `AC-CONTRACT-*` missing 判 incomplete 的假失败。
1996
+
1997
+ ## [0.16.20] - 2026-07-21
1998
+
1999
+ ### 修复
2000
+
2001
+ - Shell write-guard 忽略 playwright-cli 默认会话落盘 `.playwright-cli/**`(console/page dump)。frontend-test 浏览器用例已把权威证据写到 `testcase/frontend/evidence/**` 时,不再因工具缓存误拦 exclusive writer。
2002
+
2003
+ ## [0.16.19] - 2026-07-20
2004
+
2005
+ ### 修复
2006
+
2007
+ - frontend-test result 物化在比较 evidence 路径前先 `realpath` 仓库与 evidence 根,避免 macOS `/var`→`/private/var` 导致的 `evidence realpath escapes its allowed root` 误拦。
2008
+
2009
+ ## [0.16.18] - 2026-07-20
2010
+
2011
+ ### 修复
2012
+
2013
+ - frontend-test 执行预检改为硬校验绝对非生产 `baseUrl`(优先 config.md,缺省 `http://localhost:5173`);fixture/reset 不再作为 preflight 硬门,避免中文隔离叙述因缺少英文 `reset` 被误拦。
2014
+
2015
+ ## [0.16.17] - 2026-07-20
2016
+
2017
+ ### 修复
2018
+
2019
+ - backend-test execution 合同在 `in-process` 且 `existingFixtures: []` 时注入非秘密默认 fixture(优先 server bootstrap),避免 near-schema 侦察输出在 contracts 门 fail-closed。
2020
+
2021
+ ## [0.16.16] - 2026-07-20
2022
+
2023
+ ### 修复
2024
+
2025
+ - 动态 DAG `itemsFrom` / JSON 选择器从 shell 节点 stdout 解析时,可跳过命令回显行并提取末尾 JSON 对象,避免 frontend-test `execute-frontend-cases-map` 在 materialize 门成功后仍因 `$ node -e ...` 前缀失败。
2026
+
2027
+ ## [0.16.15] - 2026-07-20
2028
+
2029
+ ### 修复
2030
+
2031
+ - frontend-test case manifest 校验接受 `evidenceDir` 为 `testcase/frontend/evidence/<caseId>` 目录根(不必强制尾斜杠/子路径),避免生成节点写出合法目录后被 materialize 门误杀。
2032
+
2033
+ ## [0.16.14] - 2026-07-20
2034
+
2035
+ ### 修复
2036
+
2037
+ - `frontend-test` materialize / path audit 自动并入 `testcase/frontend/**` 与 `docs/test-reports/**`,与 hybrid frontend-test DAG 生成约束对齐,避免 TaskSpec 仅声明 `tests/e2e/**` 时 `dag run-task` 直接失败。
2038
+
2039
+ ## [0.16.13] - 2026-07-20
2040
+
2041
+ ### 修复
2042
+
2043
+ - backend-test 的 `finalize-effective-result` 管道在节点完成后绑定 `contracts/backend-test-result.json` 为 structured artifact,使 Outcome 投影出 `backend-test-result`,解除 FE-TEST Ready Planner 对 BE-TEST 产物门的误阻断。
2044
+
2045
+ ## [0.16.12] - 2026-07-20
2046
+
2047
+ ### 修复
2048
+
2049
+ - `backend-test` materialize / Git checkpoint 自动并入 `testcase/**`(与 `docs/test-reports/**`)运行时写根,避免 TaskSpec 仍写 `tests/api/**` 时绿跑无法 promote、任务卡在 Running。
2050
+
2051
+ ## [0.16.11] - 2026-07-20
2052
+
2053
+ ### 修复
2054
+
2055
+ - Worker 报告决策不再把条件分支的 `SKIPPED` 节点当成失败;backend-test 等混合 DAG 在 revise/repair 未选中时,只要 ERROR 不存在且 run finished,即可 `report-completed` 并进入 Outcome/promote。
2056
+
2057
+ ## [0.16.10] - 2026-07-20
2058
+
2059
+ ### 修复
2060
+
2061
+ - 后端测试执行合同物化会清理 `managedCommand` 中的空字符串(如 `stop: ""`),避免 near-schema 侦察输出在 strict parse 下误拦 in-process BE-TEST。
2062
+
2063
+ ## [0.16.9] - 2026-07-20
2064
+
2065
+ ### 修复
2066
+
2067
+ - Outcome 结构化产物声明不再绑定节点 mint-time sha256;同一路径若被后续 gate(如 backend-test traceability)就地改写,投影时以磁盘重算 hash 为准,消除 BE-TEST 完成态仍被 `artifact sha256 mismatch` 误拦。
2068
+
2069
+ ## [0.16.8] - 2026-07-20
2070
+
2071
+ ### 修复
2072
+
2073
+ - Outcome 投影对同一 run-owned 结构化产物路径的多次 rewrite(如 backend-test case manifest initial→final)只保留最后一次 hash 声明,避免 `artifact sha256 mismatch` 误拦已完成的 BE-TEST。
2074
+
2075
+ ## [0.16.7] - 2026-07-20
2076
+
2077
+ ### 修复
2078
+
2079
+ - 前端实现合同物化支持 free-form plan JSON 归一化(GWT/对象 UI 状态、requirementCoverage、mock productionDefaultOff),避免 FE-IMPL 在 `frontend-implementation-contract-shell` 因字段漂移误拦。
2080
+
2081
+ ## [0.16.6] - 2026-07-20
2082
+
2083
+ ### 修复
2084
+
2085
+ - write guard 忽略 `__pycache__` / `.pytest_cache` 等 ephemeral 解释器缓存,避免 backend-test 生成节点本地冒烟 pytest 时被误拦;并明确 generate-pytest 节点不负责执行测试。
2086
+
2087
+ ## [0.16.5] - 2026-07-20
2088
+
2089
+ ### 修复
2090
+
2091
+ - 后端测试分析/执行合同物化支持 free-form 环境侦察与 GWT/嵌套 endpoint 形状的严格 schema 归一化,避免 BE-TEST 在 contracts 门被模型字段漂移误拦。
2092
+
2093
+ ## [0.16.4] - 2026-07-19
2094
+
2095
+ ### 修复
2096
+
2097
+ - 后端测试 `backend-test-semantic-final-gate-shell` 改为复合 pipeline `semantic-effective`,不再手写读 contracts 的 inline shell,避免 `--strict-governance` 误判为 fragile verdict gate 并阻断 BE-TEST DAG 校验。
2098
+
2099
+ ## [0.16.3] - 2026-07-19
2100
+
2101
+ ### 修复
2102
+
2103
+ - 前端实现 DAG 在 review 前新增确定性 `frontend-worktree-diff-shell`,写出 run-owned `diff_patch` 与清单,避免 review 因找不到 actual diff 而误拦截。
2104
+
2105
+ ## [0.16.2] - 2026-07-19
2106
+
2107
+ ### 修复
2108
+
2109
+ - 前端 `frontend-implementation-contract-shell` 物化时用 DAG 权威 `sourceBinding` 覆盖模型输出,避免模型错绑 requirement 路径/哈希或额外引用路径导致实现链在设计门后 fail-closed。
2110
+
2111
+ ## [0.16.1] - 2026-07-19
2112
+
2113
+ ### 重点更新
2114
+
2115
+ - 修复全栈 dogfood 产物与恢复缺口:`produces.path` 可投影为 hash-bound Outcome、closeout 证据迁入 `.harness/`、成功任务 Git checkpoint 先于 Task Pool Done,并补齐 reconcile / mark-failed / advance-checkpoint
2116
+ - 收紧夜间自动发布门槛:至少一个可发布 Conventional Commit,且稳定 tag 后总提交数 ≥ 5 或距上次发布满 1 天,才自动发版
2117
+ - 将根 README 收敛为产品入口,本地环境排障说明独立成篇,降低首次阅读噪声
2118
+
2119
+ ### 新增
2120
+
2121
+ - 新增分支合并规范:按影响自动选择快速、标准或深度模式,统一双方功能保留审查、冲突解析、source-SHA 报告与 init/package 影响校验
2122
+ - `.gitignore` 与 `loop-agent init` managed block 现忽略 `.harness/dogfood-evidence/`,避免把 fullstack / Worker dogfood 本地战役证据误提交
2123
+
2124
+ ### 改进
2125
+
2126
+ - Observe DAG 详情移除依赖图下方重复的层级节点列表,并为节点表增加连续序号,浏览执行结构时更紧凑、更易定位
2127
+ - 根 README 仅保留定位、适用问题、5 分钟开始、核心边界和文档导航;Agent DAG、Worker、发布与运维细节统一下沉到专题文档
2128
+ - Cursor Cloud 等环境排障说明从 `AGENTS.md` 迁至 `docs/local-development-environment.md`
2129
+
2130
+ ### 修复
2131
+
2132
+ - 全栈 dogfood 修复批次:reviewed/supervised DAG 增加一次性 review VERDICT 格式恢复;shell 改为非 login `bash -c`;PATH/VERDICT 格式失败分类对齐 EnvFailure/ContractMismatch
2133
+ - 旧目标项目可用 `init check-update` / `update --apply-safe` 刷新 ignore 区块以忽略 dogfood-evidence
2134
+
2135
+ ## [0.16.0] - 2026-07-19
2136
+
2137
+ ### 重点更新
2138
+
2139
+ - Eval Lab 落地受控评测外环,支持 candidate 矩阵编排、Context Policy A/B dogfood 与 Ignition 研究门禁,全程 autoPromote=false,晋升须人工审核
2140
+ - Worker 新增 TaskSpec 显式工作流路由,为四类任务生成带哈希锚定的 Task Outcome,并在晋升前校验 run_record、dag_json 等必需产物
2141
+ - 新增 fullstack-v1 Feature Profile,支持确定性结构门禁与 Feature Verification Bundle v1,交付与收尾阶段任一身份漂移或产物篡改均阻断发布
2142
+ - Eval Lab 落地固定预算运行时,DagSpec v3 可声明硬预算门禁,超限 fail closed 并输出预算账本,缺失 token 不被当作 0
2143
+
2144
+ ### 新增
2145
+
2146
+ - Eval Lab 新增 Context Policy A/B dogfood 脚本,串联 corpus/candidate/campaign/scorecard 与人工 promote(默认 dry-run),不改 DAG 默认策略
2147
+ - Eval Lab 新增 Ignition 研究门禁命令,记录多代 proposer 并给出趋势 verdict,恒为研究用途,不自动晋升
2148
+ - Eval Lab 新增 Corpus 契约命令与 dogfood 样板清单(15 个异质任务,public/private/held_out 齐全)
2149
+ - Eval Lab 新增 public/private campaign 与 private-verifier,支持多 seed 可重复计划与 candidate 内容泄漏门禁
2150
+ - Eval Lab 新增 anti-hack 审计与 Promotion Policy v1,检测验证弱化与可疑 outlier,promote 须通过多项门禁且默认 dry-run
2151
+ - Eval Lab 新增固定预算运行时,支持按节点累计资源消耗,硬门禁超限 fail closed 并写出 budget-ledger
2152
+ - Eval Lab 新增可切换 Context Policy(baseline-v1 默认与原先一致,role-specialized-v1 按角色调整预算)
2153
+ - 新增 fullstack-v1 dogfood Feature F-2026-005,提供零依赖可运行目标仓与双覆盖验收样板
2154
+ - 新增 fullstack-v1 Feature Profile,对 packet 执行确定性结构门禁,未声明 profile 的 legacy packet 行为不变
2155
+ - AcceptanceSpec verification 新增可选的实现/验证任务引用、required_evidence 与 integration 声明,保留 legacy 字段兼容
2156
+ - TaskGraph 节点新增可选 consumes/produces 声明与 Ready Planner artifact gate,上游产物不可验证时下游阻塞
2157
+
2158
+ ### 改进
2159
+
2160
+ - TaskSpec 支持可选 execution.workflow,可确定性物化为任务 DAG 类型并展示在 Worker、Task Pool、晨报与 Observe
2161
+ - Ready Planner 明确仅做 envelope 级绑定,不重算产物文件 sha256,文件级 hash 在 Outcome projection 与 Feature Verification Bundle 执行
2162
+ - DAG 节点 authoring guidance 明确 Pi 是唯一受治理 writer,cursor-prompt 仅作手工 one-shot sidecar
2163
+ - Eval Lab propose 与 experiment 命令支持有界提出 experimenting candidate,accept/reject 须通过 scorecard 门禁,不自动改写已接受 skill
2164
+ - 文档基线全面校准至 0.15.0,同步半年规划、仓库分析与路线图,harness Pi MED 路由至 grok-4.5
2165
+ - Eval Lab dogfood 脚本改为可安全重复运行,并记录 promote --apply 序列供后续分析
2166
+
2167
+ ### 修复
2168
+
2169
+ - 对齐 Task Outcome 与 Ready Planner 契约:Ready 仅做 envelope 级绑定,Outcome 产物补齐独立 schemaId,失败时写入 outcomeFailure
2170
+ - 规范化 shell_verification 为标准 evidence token(兼容旧 shell-verification),未知 outputs.required token 保持兼容不阻塞
2171
+ - 清理 0.15.0 版本仍残留在 Unreleased 区块的更新日志条目
2172
+ - Eval Lab 运行态(candidate/campaign/scorecard)现被 .gitignore 忽略,旧项目可用 init check-update 刷新 ignore 区块
2173
+
2174
+ ## [0.15.0] - 2026-07-18
2175
+
2176
+ ### 重点更新
2177
+
2178
+ - 新增 Pull Request 的只读 AI 自动审查,自动检查代码缺陷与测试缺口并更新评论
2179
+ - 引入内部测试版本夜间自动发布工作流,主干达标后自动更新版本并发布
2180
+ - 收紧 npm 发布包范围,仅保留 init 与 runtime 必需的文档和脚本
2181
+ - 修复预发布版本被误发布至 latest 的风险,发布门禁改为按版本号状态严格限制
2182
+
2183
+ ### 新增
2184
+
2185
+ - 新增 Pull Request 的只读 AI 自动审查:在创建、重新打开、转为 ready 或更新提交时检查 bug、测试缺口、runtime boundary 等,并更新单条 PR 评论
2186
+ - 新增内部测试版本夜间自动发布:达到提交门槛并通过发布检查后,自动更新版本、生成中文说明并发布 GitHub Release 与 npm
2187
+ - 新增面向内部研发人员的轻量 GitHub 协作指南和简短 Pull Request 模板,统一采用短分支与 Squash Merge 的最小协作闭环
2188
+ - 新增 `.editorconfig` 与 `.gitattributes`,统一常见文本文件的 UTF-8、LF、缩进和文件末尾换行约定
2189
+
2190
+ ### 改进
2191
+
2192
+ - 收紧 npm 发布包中的 `docs/` 范围:只保留 init/runtime 所需的治理文档、architecture、skills 与 templates
2193
+ - 收紧 npm 发布包中的 `scripts/`:只保留知识库实际调用的脚本,不再打包源仓治理检查与 `.sh` 包装
2194
+ - 前端实现 DAG 的 `frontendMock.policy=auto` 不再因为目标项目缺少 Mock 能力而阻塞,无确认能力时自动跳过并保留真实请求默认路径
2195
+ - 文档基线全面校准至 0.14.0,修复了多处的文档索引遗漏与旧路径引用
2196
+
2197
+ ### 修复
2198
+
2199
+ - 修复私有仓库 AI PR 审查因通过网页 `*.diff` 地址拉取差异导致 404 的问题,改为经 GitHub API 获取 diff
2200
+ - 修复预发布版本误发布到 `latest` 的问题:发布门禁改为按版本号的 prerelease 状态限制 dist-tag,beta prerelease 仅允许 `beta` tag
2201
+ - 修复网站更新日志(Changelog)的版本插入位置错误:新版本段落不再错误地插入到读者摘要之前,保持页面结构正常
2202
+ - 修复网站更新日志中残留的 `[Unreleased]` 块未随版本发布移除的问题
2203
+
2204
+ ## [0.14.0] - 2026-07-18
2205
+
2206
+ ### 重点更新
2207
+
2208
+ - 新增夜间自动发布工作流,主干达到提交门槛后自动更新版本、生成说明并发布
2209
+ - 运营看板重构为执行面优先布局,并新增可展开的富执行过程时间线
2210
+
2211
+ ### 新增
2212
+
2213
+ - 定时触发的 GitHub Actions 夜间发布工作流,支持 dry-run 预演与正式发布
2214
+ - 运营看板新增执行过程时间线,支持展开查看工具调用与 AI 正文,并记录时间戳
2215
+ - 资源池默认手动刷新,突出展示需处理和 Ready 状态的任务
2216
+ - 总览页改为执行面 KPI 与风险并排展示,节点检查器默认半屏显示
2217
+
2218
+ ### 改进
2219
+
2220
+ - 发布说明支持 OpenAI 兼容模型生成,并在模型不可用时自动回退到保守摘要
2221
+ - 破坏性变更识别改为严格遵循 Conventional Commits 规范,避免因正文提及该词而误判
2222
+
2223
+ ### 修复
2224
+
2225
+ - 修复模型返回的 JSON 包含 Markdown 代码块导致解析失败、发布说明始终回退为默认摘要的问题
2226
+ - 修复提交信息中包含 'breaking change' 字样被误判为破坏性变更从而阻断发布的问题
2227
+ - 补充 format-pool.d.ts 类型声明文件,修复 CI 类型检查报错
2228
+
2229
+ ## [0.13.0] - 2026-07-18
2230
+
2231
+ - 前端实现流程新增需求合同、风险识别、项目能力检查、有界修复和验证追踪;高置信度前端需求可自动进入专用流程。
2232
+ - 后端自动化测试会在生成 pytest 前确认执行环境和需求覆盖,并区分产品、测试与环境问题。
2233
+ - Observe 看板采用增量刷新,保留焦点、滚动位置和当前节点;节点输出、执行过程与规范证据切换更稳定。
2234
+ - 新增 `browser-tools` 和前端浏览器测试用例生成能力,full init 后可直接在目标项目使用。
2235
+ - Task Pool 按 `{ featureId, taskId }` 识别任务,并新增检查、迁移和 Ready 计划预览命令。
2236
+ - 新增 Eval Replay 与 Candidate Registry,用于重放证据、比较候选并审计候选运行关联。
2237
+ - 旧项目可通过 `init check-update` 检查新增模板、skills 和托管配置,再用 `init update --apply-safe` 安全补齐。
2238
+ - Pi SDK、Windows 命令执行、自举验证和受监督任务的计划修订流程得到稳定性改进。
2239
+
2240
+ 完整条目和迁移提示见根 `CHANGELOG.md [0.13.0]`。
2241
+
2242
+ ## [0.12.0] - 2026-07-16
2243
+
2244
+ - **只读 Pi 节点安全重试**:opt-in `retryPolicy`(network / rate-limit / unavailable / timeout);writer / shell 等声明策略会校验失败。见 [Agent DAG](./website/docs/guides/agent-dag.md)。
2245
+ - **`taskKind: backend-test`**:需求分析 → 功能用例 → pytest → 复盘。
2246
+ - **知识同步与业务图谱 MVP**:`taskKind: knowledge-sync`(须 `featureId`)/ `knowledge-graph-bootstrap`;`loop-agent knowledge query|graph-init|graph-materialize|graph-promote|graph-incremental-prepare`(`knowledge curate` 仍只负责 repair guidance 提案)。
2247
+ - **init surface 全量跟踪**:`check-update` / `update --apply-safe` 覆盖包内全部 `docs/templates/**` 与 `skills/**` 到目标目录的投影。
2248
+ - 详见根 `CHANGELOG.md [0.12.0]`;站上 [当前规划](./website/docs/overview/roadmap.md) 与 [功能导览](./website/docs/overview/feature-map.md)。
2249
+
2250
+ ## [0.11.0] - 2026-07-15
2251
+
2252
+ - **Observe 本地运营面 R1–R5**:资源池 / Task 下钻、Batch·Run 三层事实、Feature 决策详情与对象关系条、有界事件历史、ES modules 前端模块化;`observe serve` keep-alive / SSE keepalive,可选非 loopback 绑定(默认仍 `127.0.0.1`)。见 [Observe](./website/docs/guides/observe-ui.md)。
2253
+ - **版本化自举**:controller identity / package fingerprint / expected gate、run-owned skill snapshot、deterministic `self-host:canary`、`skills/agent-worker` 及目标镜像;dogfood Feature `F-2026-004`。
2254
+ - **DagSpec v3 + repair 契约**:新 DAG 携带 `runtimeContract`;supervised `repairNodeId`;run-owned controller identity pin。
2255
+ - **`plan create` / `plan complete` / `plan check`**:exec-plan 生命周期与 DAG 前置索引校验。见 [CLI 参考](./website/docs/reference/cli.md)。
2256
+ - **CLI 自更新提醒**:交互式成功命令后检查 npm 新版本;`LOOP_AGENT_DISABLE_UPDATE_CHECK=1` 可关。见 [安装](./website/docs/quick-start/installation.md)。
2257
+ - **init 布局收敛**:目标项目默认 `ai_workspace/loop-agent/` + `.agents/skills/`;`init update --apply-safe` 可安全迁移旧根 `docs/` / `skills/`。
2258
+ - **文档站 IA**:intro 概念地图与 30 分钟路径;[功能导览](./website/docs/overview/feature-map.md)、[架构导读](./website/docs/overview/architecture.md)、[当前规划](./website/docs/overview/roadmap.md);Markdown 断链构建失败;`skills/loop-agent/references/docs-converge.md` 固化文档收敛检查表。
2259
+ - 可选 repo-local SDD skill 嵌入;前端 DAG skill 契约与验证命令安全解析。
2260
+
2261
+ ## [0.10.0] - 2026-07-12
2262
+
2263
+ - **Pi-only 受治理 runtime**:DAG writer 固定 `implement-pi` / `repair-pi`;`cursor-prompt` 仅显式 one-shot sidecar。
2264
+ - **`agent-worker feature review|run|approve-followup|delivery|closeout|verify-final`**:Feature 决策面、薄编排、Follow-up 可批准闭环、本地 Git checkpoint、Delivery Package、Feature Closeout。
2265
+ - **`task draft-followup`**、**`report metrics --month`**;Morning / Observe Feature Decision Summary。
2266
+ - 详见根 `CHANGELOG.md [0.10.0]`。
2267
+
2268
+ ## [0.9.0] - 2026-07-12
2269
+
2270
+ - Observe 看板重设计为暖白运行控制台:统一信息层级、依赖图 + 节点表、右侧节点检查器、安全 Markdown;本机资源 guardrail。见 [Observe](./website/docs/guides/observe-ui.md)。
2271
+
2272
+ ## [0.8.0] 及更早
2273
+
2274
+ - 0.8.0:[CLI 参考](./website/docs/reference/cli.md) 补充 `task validate-feature`、`task retry`、`scripts/worker-nightly.sh` + GitHub Actions、`capabilities: [interactive-ui]`,Task Pool 唯一根 `.harness/task-pool/`。
2275
+ - 0.7.5:Observe 新增 DAG 依赖图可视化。
2276
+ - 0.7.0:interactive-ui writer-only HIGH 路由与 UI 交付契约。
2277
+ - 更早条目见根目录 `CHANGELOG.md`。
2278
+
2279
+ ## 文档站点同步说明
2280
+
2281
+ - 站上 guide / reference 与根 `docs/` 双树边界见 [架构导读 · 双树边界](./website/docs/overview/architecture.md#双树边界)。
2282
+ - 活能力短摘要:[`docs/reports/current-capability-summary.md`](https://github.com/tea-agent/loop-agent/blob/main/docs/reports/current-capability-summary.md)。
2283
+ - 冻结基线长文:[`docs/reports/2026-07-02-repository-analysis.md`](https://github.com/tea-agent/loop-agent/blob/main/docs/reports/2026-07-02-repository-analysis.md)(2026-07-16 再采样对齐 0.12.0 + 主干 Unreleased;勿当第二 CHANGELOG)。