pi-crew 0.9.51 → 0.9.53

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 (611) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/README.md +216 -20
  3. package/dist/build-meta.json +2090 -1638
  4. package/dist/index.mjs +18057 -17119
  5. package/docs/actions-reference.md +431 -1
  6. package/index.ts +39 -10
  7. package/package.json +19 -9
  8. package/schema.json +41 -0
  9. package/scripts/check-bundle-size.mjs +38 -0
  10. package/scripts/test-runner.mjs +11 -1
  11. package/dist/index.mjs.map +0 -7
  12. package/docs/FEATURE_INTAKE.md +0 -126
  13. package/docs/HARNESS.md +0 -87
  14. package/docs/HARNESS_BACKLOG.md +0 -89
  15. package/docs/PROJECT_REVIEW.md +0 -270
  16. package/docs/PROJECT_REVIEW_FIXES.md +0 -342
  17. package/docs/PROJECT_REVIEW_ROUND4.md +0 -156
  18. package/docs/PROJECT_REVIEW_ROUND5.md +0 -86
  19. package/docs/REVIEW-FINDINGS-2026-06 +0 -357
  20. package/docs/REVIEW-FINDINGS-2026-07-CORE.md +0 -139
  21. package/docs/REVIEW-FINDINGS-2026-07.md +0 -125
  22. package/docs/TEST_MATRIX.md +0 -51
  23. package/docs/archive/README.md +0 -91
  24. package/docs/archive/followup-review-round3-2026-05-12.md +0 -342
  25. package/docs/archive/followup-review-round4-2026-05-13.md +0 -107
  26. package/docs/archive/pi-crew-bugs.md +0 -961
  27. package/docs/archive/pi-crew-test-final.md +0 -120
  28. package/docs/archive/pi-crew-test-results.md +0 -260
  29. package/docs/archive/pi-crew-test-round2.md +0 -136
  30. package/docs/archive/pi-crew-test-round4.md +0 -100
  31. package/docs/archive/pi-crew-test-round5.md +0 -70
  32. package/docs/archive/pi-crew-test-round6.md +0 -110
  33. package/docs/archive/pi-crew-v0.5.10-audit-fix-plan.md +0 -60
  34. package/docs/archive/pi-crew-v0.5.11-audit-fix-plan.md +0 -92
  35. package/docs/archive/pi-crew-v0.5.12-audit-fix-plan.md +0 -76
  36. package/docs/archive/pi-crew-v0.5.13-audit-fix-plan.md +0 -75
  37. package/docs/archive/pi-crew-v0.5.14-audit-fix-plan.md +0 -75
  38. package/docs/archive/pi-crew-v0.5.16-audit-fix-plan.md +0 -35
  39. package/docs/archive/pi-crew-v0.5.17-audit-fix-plan.md +0 -80
  40. package/docs/archive/pi-crew-v0.5.5-audit-fix-plan.md +0 -133
  41. package/docs/archive/pi-crew-v0.5.9-audit-fix-plan.md +0 -88
  42. package/docs/archive/pi-mono-opportunities.md +0 -969
  43. package/docs/archive/pi-mono-review.md +0 -291
  44. package/docs/archive/pi-subagent4-comparison.md +0 -261
  45. package/docs/archive/pi-subagents3-deep-analysis.md +0 -508
  46. package/docs/bugs/bug-021-notification-badge-counter-misleading.md +0 -293
  47. package/docs/bugs/bug-023-chain-windows-path-resolution.md +0 -106
  48. package/docs/bugs/bug-quota-display-truncation.md +0 -223
  49. package/docs/bugs/cross-session-notification-leakage.md +0 -82
  50. package/docs/code-review-2026-05-11.md +0 -592
  51. package/docs/coding-agent-optimization.md +0 -268
  52. package/docs/comparison-pi-subagents-vs-pi-crew.md +0 -303
  53. package/docs/decisions/0001-durable-state.md +0 -41
  54. package/docs/decisions/0002-child-process-for-async.md +0 -42
  55. package/docs/decisions/0003-depth-guard.md +0 -36
  56. package/docs/decisions/0004-execfile-over-exec.md +0 -34
  57. package/docs/decisions/0005-no-parameter-properties.md +0 -49
  58. package/docs/decisions/0006-publish-bundled-esm.md +0 -63
  59. package/docs/decisions/0007-active-run-binary-index.md +0 -54
  60. package/docs/decisions/0008-child-pi-warm-pool.md +0 -61
  61. package/docs/decisions/2026-07-21-broker-phase4-default-on.md +0 -77
  62. package/docs/decisions/2026-07-21-broker-windows-perms.md +0 -91
  63. package/docs/decisions/2026-07-22-broker-phase4-gated-on.md +0 -99
  64. package/docs/decisions/2026-07-24-oidc-trusted-publishing.md +0 -112
  65. package/docs/decisions/2026-07-26-c6-mascot-visibility-not-wired.md +0 -84
  66. package/docs/decisions/README.md +0 -26
  67. package/docs/deep-review-report.md +0 -384
  68. package/docs/distillation/cybersecurity-patterns.md +0 -294
  69. package/docs/feature-analysis-subagent4.md +0 -305
  70. package/docs/fix-plan-disabletools-exit-null.md +0 -219
  71. package/docs/fixes/BATCH_A_H1_H2.md +0 -86
  72. package/docs/fixes/bug-006-foreground-cancel-concurrent.md +0 -78
  73. package/docs/fixes/bug-007-async-notifier-stale-ctx.md +0 -112
  74. package/docs/fixes/bug-008-child-process-silent-timeout.md +0 -100
  75. package/docs/fixes/bug-009-executor-yield-limit-needs-attention.md +0 -75
  76. package/docs/fixes/bug-010-child-process-api-key-filtered.md +0 -109
  77. package/docs/fixes/bug-011-spawn-pi-enoent.md +0 -92
  78. package/docs/fixes/bug-012-essential-env-stripped.md +0 -89
  79. package/docs/fixes/bug-013-background-runner-death.md +0 -84
  80. package/docs/fixes/bug-014-infinite-retry-loop-needs-attention.md +0 -82
  81. package/docs/fixes/bug-015-background-runner-sigterm.md +0 -65
  82. package/docs/fixes/bug-017-background-runner-session-shutdown.md +0 -66
  83. package/docs/fixes/bug-017-background-runner-sigkill-double-fork.md +0 -28
  84. package/docs/fixes/bug-018-child-pi-worker-stdin-hang.md +0 -61
  85. package/docs/fixes/bug-019-phantom-runs-temp-workspace.md +0 -52
  86. package/docs/fixes/bug-020-infinite-retry-loop-needs-attention.md +0 -47
  87. package/docs/fixes/v0.9.10/locks-fix-verify.md +0 -3
  88. package/docs/fixes/v0.9.10/smoke-test.md +0 -12
  89. package/docs/followup-plan-2026-05-12.md +0 -463
  90. package/docs/followup-review-2026-05-12.md +0 -297
  91. package/docs/goals.md +0 -59
  92. package/docs/implementation-plan-top3.md +0 -333
  93. package/docs/issue-29-analysis.md +0 -189
  94. package/docs/live-mailbox-runtime.md +0 -36
  95. package/docs/migration/atomic-write-v2-migration.md +0 -299
  96. package/docs/next-upgrade-roadmap.md +0 -808
  97. package/docs/oh-my-pi-research.md +0 -509
  98. package/docs/optimization-plan-2026-07.md +0 -366
  99. package/docs/optimization-plan.md +0 -644
  100. package/docs/patterns/command-agent-skill.md +0 -71
  101. package/docs/perf/baseline-2026-05.md +0 -113
  102. package/docs/perf/final-report-2026-05.md +0 -206
  103. package/docs/perf/optimization-plan-2026-07-verified.md +0 -396
  104. package/docs/perf/performance-audit-report-2026-07.md +0 -948
  105. package/docs/perf/performance-review-2026-07.md +0 -287
  106. package/docs/perf/sprint-1-report.md +0 -71
  107. package/docs/perf/sprint-2-report.md +0 -81
  108. package/docs/perf/sprint-2.5-report.md +0 -53
  109. package/docs/perf/sprint-3-report.md +0 -36
  110. package/docs/perf/sprint-4-report.md +0 -47
  111. package/docs/perf/sprint-5-report.md +0 -51
  112. package/docs/perf/sprint-6-report.md +0 -94
  113. package/docs/perf/sprint-7-report.md +0 -74
  114. package/docs/perf/upgrade-plan-2026-05.md +0 -147
  115. package/docs/performance-optimization-execution-plan.md +0 -520
  116. package/docs/phase4-triage.md +0 -58
  117. package/docs/pi-crew-investigation-report.md +0 -411
  118. package/docs/product/README.md +0 -31
  119. package/docs/product/platform.md +0 -27
  120. package/docs/product/runtime-safety.md +0 -37
  121. package/docs/product/team-run.md +0 -39
  122. package/docs/product/team-tool.md +0 -37
  123. package/docs/runtime-analysis-child-vs-live.md +0 -171
  124. package/docs/runtime-migration-in-process-analysis.md +0 -250
  125. package/docs/skills/REFERENCE.md +0 -138
  126. package/docs/stories/README.md +0 -32
  127. package/docs/stories/US-DEPS-major-upgrade.md +0 -62
  128. package/docs/stories/backlog.md +0 -36
  129. package/docs/superpowers/plans/2026-06-09-fallow-patterns-adoption.md +0 -1270
  130. package/docs/templates/decision.md +0 -27
  131. package/docs/templates/story.md +0 -44
  132. package/docs/templates/validation-report.md +0 -32
  133. package/docs/ui-optimization-plan.md +0 -447
  134. package/src/adapters/claude-adapter.ts +0 -23
  135. package/src/adapters/codex-adapter.ts +0 -21
  136. package/src/adapters/cursor-adapter.ts +0 -17
  137. package/src/adapters/export-util.ts +0 -143
  138. package/src/adapters/index.ts +0 -15
  139. package/src/adapters/registry.ts +0 -18
  140. package/src/adapters/types.ts +0 -23
  141. package/src/agents/agent-config.ts +0 -194
  142. package/src/agents/agent-search.ts +0 -98
  143. package/src/agents/agent-serializer.ts +0 -38
  144. package/src/agents/discover-agents.ts +0 -623
  145. package/src/benchmark/benchmark-runner.ts +0 -313
  146. package/src/benchmark/feedback-loop.ts +0 -73
  147. package/src/config/config.ts +0 -1269
  148. package/src/config/defaults.ts +0 -193
  149. package/src/config/drift-detector.ts +0 -290
  150. package/src/config/markers.ts +0 -330
  151. package/src/config/resilient-parser.ts +0 -117
  152. package/src/config/role-tools.ts +0 -118
  153. package/src/config/suggestions.ts +0 -75
  154. package/src/config/types.ts +0 -278
  155. package/src/errors.ts +0 -194
  156. package/src/extension/action-suggestions.ts +0 -117
  157. package/src/extension/async-notifier.ts +0 -179
  158. package/src/extension/autonomous-policy.ts +0 -209
  159. package/src/extension/command-completions.ts +0 -120
  160. package/src/extension/context-status-injection.ts +0 -185
  161. package/src/extension/crew-autocomplete.ts +0 -131
  162. package/src/extension/crew-cleanup.ts +0 -168
  163. package/src/extension/crew-input-router.ts +0 -93
  164. package/src/extension/crew-shortcuts.ts +0 -87
  165. package/src/extension/crew-vibes/cat-frames.ts +0 -18
  166. package/src/extension/crew-vibes/config.ts +0 -195
  167. package/src/extension/crew-vibes/figures.ts +0 -101
  168. package/src/extension/crew-vibes/font-detect.ts +0 -71
  169. package/src/extension/crew-vibes/footer.ts +0 -292
  170. package/src/extension/crew-vibes/index.ts +0 -432
  171. package/src/extension/crew-vibes/provider-usage.ts +0 -396
  172. package/src/extension/crew-vibes/render.ts +0 -206
  173. package/src/extension/crew-vibes/speed.ts +0 -286
  174. package/src/extension/cross-extension-rpc.ts +0 -350
  175. package/src/extension/help.ts +0 -62
  176. package/src/extension/import-index.ts +0 -74
  177. package/src/extension/knowledge-injection.ts +0 -402
  178. package/src/extension/management.ts +0 -571
  179. package/src/extension/message-renderers.ts +0 -108
  180. package/src/extension/notification-router.ts +0 -152
  181. package/src/extension/notification-sink.ts +0 -54
  182. package/src/extension/pi-api.ts +0 -56
  183. package/src/extension/plan-orchestrate.ts +0 -302
  184. package/src/extension/project-init.ts +0 -170
  185. package/src/extension/register.ts +0 -113
  186. package/src/extension/registration/artifact-cleanup.ts +0 -20
  187. package/src/extension/registration/command-registration.ts +0 -58
  188. package/src/extension/registration/command-utils.ts +0 -58
  189. package/src/extension/registration/commands.ts +0 -1228
  190. package/src/extension/registration/compaction-guard.ts +0 -333
  191. package/src/extension/registration/context-builder.ts +0 -135
  192. package/src/extension/registration/crash-recovery-cache.ts +0 -54
  193. package/src/extension/registration/foreground-run-controller.ts +0 -238
  194. package/src/extension/registration/hook-registration.ts +0 -119
  195. package/src/extension/registration/lazy-configurers.ts +0 -124
  196. package/src/extension/registration/lifecycle-handlers.ts +0 -923
  197. package/src/extension/registration/lifecycle.ts +0 -259
  198. package/src/extension/registration/observability.ts +0 -322
  199. package/src/extension/registration/registration-types.ts +0 -158
  200. package/src/extension/registration/runtime-cleanup.ts +0 -230
  201. package/src/extension/registration/subagent-helpers.ts +0 -125
  202. package/src/extension/registration/subagent-manager-setup.ts +0 -330
  203. package/src/extension/registration/subagent-tools.ts +0 -456
  204. package/src/extension/registration/team-tool.ts +0 -220
  205. package/src/extension/registration/tool-registration.ts +0 -50
  206. package/src/extension/registration/ui.ts +0 -172
  207. package/src/extension/registration/viewers.ts +0 -121
  208. package/src/extension/registration/wire-cross-extension.ts +0 -37
  209. package/src/extension/result-watcher.ts +0 -139
  210. package/src/extension/rpc-hmac.ts +0 -256
  211. package/src/extension/run-bundle-schema.ts +0 -104
  212. package/src/extension/run-export.ts +0 -97
  213. package/src/extension/run-import.ts +0 -168
  214. package/src/extension/run-index.ts +0 -131
  215. package/src/extension/run-maintenance.ts +0 -190
  216. package/src/extension/session-summary.ts +0 -18
  217. package/src/extension/team-manager-command.ts +0 -153
  218. package/src/extension/team-onboard.ts +0 -177
  219. package/src/extension/team-recommendation.ts +0 -288
  220. package/src/extension/team-tool/anchor.ts +0 -172
  221. package/src/extension/team-tool/api.ts +0 -1244
  222. package/src/extension/team-tool/auto-summarize.ts +0 -142
  223. package/src/extension/team-tool/cache-control.ts +0 -19
  224. package/src/extension/team-tool/cancel.ts +0 -337
  225. package/src/extension/team-tool/chain-dispatch.ts +0 -95
  226. package/src/extension/team-tool/chain-executor.ts +0 -379
  227. package/src/extension/team-tool/config-patch.ts +0 -50
  228. package/src/extension/team-tool/context.ts +0 -149
  229. package/src/extension/team-tool/destructive-gate.ts +0 -52
  230. package/src/extension/team-tool/doctor.ts +0 -431
  231. package/src/extension/team-tool/explain.ts +0 -282
  232. package/src/extension/team-tool/failure-patterns.ts +0 -118
  233. package/src/extension/team-tool/goal-wrap.ts +0 -330
  234. package/src/extension/team-tool/goal.ts +0 -556
  235. package/src/extension/team-tool/handle-schedule.ts +0 -332
  236. package/src/extension/team-tool/handle-settings.ts +0 -520
  237. package/src/extension/team-tool/health-monitor.ts +0 -481
  238. package/src/extension/team-tool/inspect.ts +0 -88
  239. package/src/extension/team-tool/intent-policy.ts +0 -45
  240. package/src/extension/team-tool/lifecycle-actions.ts +0 -615
  241. package/src/extension/team-tool/orchestrate.ts +0 -98
  242. package/src/extension/team-tool/parallel-dispatch.ts +0 -183
  243. package/src/extension/team-tool/plan.ts +0 -50
  244. package/src/extension/team-tool/respond.ts +0 -150
  245. package/src/extension/team-tool/run-not-found.ts +0 -49
  246. package/src/extension/team-tool/run.ts +0 -1035
  247. package/src/extension/team-tool/status.ts +0 -260
  248. package/src/extension/team-tool/workflow-manage.ts +0 -261
  249. package/src/extension/team-tool-types.ts +0 -26
  250. package/src/extension/team-tool.ts +0 -1116
  251. package/src/extension/tool-result.ts +0 -16
  252. package/src/extension/validate-resources.ts +0 -108
  253. package/src/hooks/registry.ts +0 -200
  254. package/src/hooks/types.ts +0 -69
  255. package/src/i18n.ts +0 -212
  256. package/src/observability/correlation.ts +0 -50
  257. package/src/observability/event-bus.ts +0 -86
  258. package/src/observability/event-to-metric.ts +0 -170
  259. package/src/observability/exporters/adapter.ts +0 -27
  260. package/src/observability/exporters/otlp-exporter.ts +0 -356
  261. package/src/observability/exporters/prometheus-exporter.ts +0 -54
  262. package/src/observability/metric-registry.ts +0 -100
  263. package/src/observability/metric-retention.ts +0 -64
  264. package/src/observability/metric-sink.ts +0 -99
  265. package/src/observability/metrics-primitives.ts +0 -219
  266. package/src/plugins/plugin-define.ts +0 -6
  267. package/src/plugins/plugin-registry.ts +0 -32
  268. package/src/plugins/plugins/index.ts +0 -3
  269. package/src/plugins/plugins/nextjs.ts +0 -19
  270. package/src/plugins/plugins/vite.ts +0 -10
  271. package/src/plugins/plugins/vitest.ts +0 -9
  272. package/src/prompt/prompt-runtime.ts +0 -380
  273. package/src/runtime/adaptive-plan.ts +0 -563
  274. package/src/runtime/agent-control.ts +0 -215
  275. package/src/runtime/agent-memory.ts +0 -81
  276. package/src/runtime/agent-observability.ts +0 -122
  277. package/src/runtime/anchor-manager.ts +0 -475
  278. package/src/runtime/async-marker.ts +0 -32
  279. package/src/runtime/async-runner.ts +0 -381
  280. package/src/runtime/attention-events.ts +0 -28
  281. package/src/runtime/auto-summarize.ts +0 -344
  282. package/src/runtime/background-runner.ts +0 -837
  283. package/src/runtime/batch-barrier.ts +0 -147
  284. package/src/runtime/broker-issuer.ts +0 -37
  285. package/src/runtime/cancellation-token.ts +0 -99
  286. package/src/runtime/cancellation.ts +0 -99
  287. package/src/runtime/capability-inventory.ts +0 -137
  288. package/src/runtime/chain-parser.ts +0 -237
  289. package/src/runtime/chain-runner.ts +0 -606
  290. package/src/runtime/checkpoint.ts +0 -291
  291. package/src/runtime/child-pi-constants.ts +0 -42
  292. package/src/runtime/child-pi-kill.ts +0 -180
  293. package/src/runtime/child-pi-pool.ts +0 -68
  294. package/src/runtime/child-pi-spawn.ts +0 -287
  295. package/src/runtime/child-pi-steering.ts +0 -128
  296. package/src/runtime/child-pi-streams.ts +0 -296
  297. package/src/runtime/child-pi-transcript.ts +0 -169
  298. package/src/runtime/child-pi.ts +0 -1105
  299. package/src/runtime/coalesce-tasks.ts +0 -268
  300. package/src/runtime/code-summary.ts +0 -292
  301. package/src/runtime/command-trace.ts +0 -105
  302. package/src/runtime/compact-pipeline.ts +0 -56
  303. package/src/runtime/compact-stages/ansi-strip-stage.ts +0 -25
  304. package/src/runtime/compact-stages/blank-collapse-stage.ts +0 -31
  305. package/src/runtime/compact-stages/deduplicate-stage.ts +0 -34
  306. package/src/runtime/compact-stages/head-snap-stage.ts +0 -57
  307. package/src/runtime/compact-stages/index.ts +0 -23
  308. package/src/runtime/compact-stages/tail-capture-stage.ts +0 -77
  309. package/src/runtime/compact-stages/truncation-stage.ts +0 -74
  310. package/src/runtime/compaction-summary.ts +0 -278
  311. package/src/runtime/completion-guard.ts +0 -207
  312. package/src/runtime/concurrency.ts +0 -58
  313. package/src/runtime/crash-classification.ts +0 -229
  314. package/src/runtime/crash-recovery.ts +0 -577
  315. package/src/runtime/crew-agent-records.ts +0 -593
  316. package/src/runtime/crew-agent-runtime.ts +0 -62
  317. package/src/runtime/crew-broker-child.ts +0 -88
  318. package/src/runtime/crew-broker-client.ts +0 -673
  319. package/src/runtime/crew-broker-tokens.ts +0 -84
  320. package/src/runtime/crew-broker.ts +0 -1276
  321. package/src/runtime/crew-hooks.ts +0 -227
  322. package/src/runtime/cross-extension-rpc.ts +0 -143
  323. package/src/runtime/custom-tools/irc-tool.ts +0 -282
  324. package/src/runtime/custom-tools/submit-result-tool.ts +0 -102
  325. package/src/runtime/deadletter.ts +0 -47
  326. package/src/runtime/delivery-coordinator.ts +0 -211
  327. package/src/runtime/delta-conflict.ts +0 -348
  328. package/src/runtime/deterministic-ast.ts +0 -161
  329. package/src/runtime/diagnostic-export.ts +0 -171
  330. package/src/runtime/direct-run.ts +0 -45
  331. package/src/runtime/dwf-state-store.ts +0 -102
  332. package/src/runtime/dynamic-workflow-context.ts +0 -1016
  333. package/src/runtime/dynamic-workflow-runner.ts +0 -310
  334. package/src/runtime/effectiveness.ts +0 -90
  335. package/src/runtime/errors/crew-errors.ts +0 -162
  336. package/src/runtime/event-stream-bridge.ts +0 -98
  337. package/src/runtime/foreground-control.ts +0 -193
  338. package/src/runtime/foreground-watchdog.ts +0 -132
  339. package/src/runtime/global-worker-cap.ts +0 -96
  340. package/src/runtime/goal-achievement.ts +0 -148
  341. package/src/runtime/goal-evaluator.ts +0 -361
  342. package/src/runtime/goal-loop-runner.ts +0 -828
  343. package/src/runtime/goal-state-store.ts +0 -219
  344. package/src/runtime/green-contract.ts +0 -55
  345. package/src/runtime/group-join.ts +0 -267
  346. package/src/runtime/handoff-manager.ts +0 -598
  347. package/src/runtime/heartbeat-gradient.ts +0 -36
  348. package/src/runtime/heartbeat-watcher.ts +0 -239
  349. package/src/runtime/hidden-handoff.ts +0 -407
  350. package/src/runtime/important-line-classifier.ts +0 -140
  351. package/src/runtime/intercom-bridge.ts +0 -187
  352. package/src/runtime/iteration-hooks.ts +0 -305
  353. package/src/runtime/live-agent-control.ts +0 -136
  354. package/src/runtime/live-agent-manager.ts +0 -704
  355. package/src/runtime/live-control-realtime.ts +0 -56
  356. package/src/runtime/live-extension-bridge.ts +0 -148
  357. package/src/runtime/live-irc.ts +0 -97
  358. package/src/runtime/live-session-health.ts +0 -108
  359. package/src/runtime/live-session-runtime.ts +0 -1139
  360. package/src/runtime/loop-gates.ts +0 -128
  361. package/src/runtime/manifest-cache.ts +0 -375
  362. package/src/runtime/mcp-proxy.ts +0 -105
  363. package/src/runtime/metric-parser.ts +0 -36
  364. package/src/runtime/model-fallback.ts +0 -409
  365. package/src/runtime/model-resolver.ts +0 -126
  366. package/src/runtime/model-scope.ts +0 -158
  367. package/src/runtime/orphan-worker-registry.ts +0 -465
  368. package/src/runtime/output-validator.ts +0 -202
  369. package/src/runtime/overflow-recovery.ts +0 -206
  370. package/src/runtime/parallel-research.ts +0 -68
  371. package/src/runtime/parallel-utils.ts +0 -160
  372. package/src/runtime/parent-guard.ts +0 -134
  373. package/src/runtime/path-overlap.ts +0 -150
  374. package/src/runtime/peer-dep.ts +0 -292
  375. package/src/runtime/per-write-validator.ts +0 -181
  376. package/src/runtime/phase-progress.ts +0 -217
  377. package/src/runtime/phase-tracker.ts +0 -385
  378. package/src/runtime/pi-args.ts +0 -655
  379. package/src/runtime/pi-json-output.ts +0 -170
  380. package/src/runtime/pi-spawn.ts +0 -273
  381. package/src/runtime/pipeline-runner.ts +0 -523
  382. package/src/runtime/plan-templates.ts +0 -201
  383. package/src/runtime/policy-engine.ts +0 -115
  384. package/src/runtime/post-checks.ts +0 -142
  385. package/src/runtime/post-exit-stdio-guard.ts +0 -104
  386. package/src/runtime/process-lifecycle.ts +0 -491
  387. package/src/runtime/process-status.ts +0 -154
  388. package/src/runtime/progress-event-coalescer.ts +0 -44
  389. package/src/runtime/progress-tracker.ts +0 -124
  390. package/src/runtime/prose-compressor.ts +0 -162
  391. package/src/runtime/recovery-recipes.ts +0 -203
  392. package/src/runtime/replace.ts +0 -570
  393. package/src/runtime/resilient-edit.ts +0 -153
  394. package/src/runtime/result-extractor.ts +0 -213
  395. package/src/runtime/retry-executor.ts +0 -100
  396. package/src/runtime/retry-runner.ts +0 -336
  397. package/src/runtime/role-permission.ts +0 -59
  398. package/src/runtime/run-coalesced-task-group.ts +0 -308
  399. package/src/runtime/run-drift.ts +0 -219
  400. package/src/runtime/run-tracker.ts +0 -116
  401. package/src/runtime/runtime-policy.ts +0 -29
  402. package/src/runtime/runtime-resolver.ts +0 -172
  403. package/src/runtime/runtime-warmup.ts +0 -160
  404. package/src/runtime/scheduler.ts +0 -353
  405. package/src/runtime/semaphore.ts +0 -141
  406. package/src/runtime/sensitive-paths.ts +0 -93
  407. package/src/runtime/session-resources.ts +0 -25
  408. package/src/runtime/session-snapshot.ts +0 -59
  409. package/src/runtime/session-usage.ts +0 -79
  410. package/src/runtime/settings-store.ts +0 -155
  411. package/src/runtime/sidechain-output.ts +0 -35
  412. package/src/runtime/single-agent-compose.ts +0 -84
  413. package/src/runtime/skill-effectiveness.ts +0 -524
  414. package/src/runtime/skill-instructions.ts +0 -391
  415. package/src/runtime/stale-reconciler.ts +0 -680
  416. package/src/runtime/stream-preview.ts +0 -184
  417. package/src/runtime/streaming-output.ts +0 -50
  418. package/src/runtime/subagent-manager.ts +0 -561
  419. package/src/runtime/subprocess-tool-registry.ts +0 -70
  420. package/src/runtime/supervisor-contact.ts +0 -64
  421. package/src/runtime/task-display.ts +0 -52
  422. package/src/runtime/task-graph-scheduler.ts +0 -227
  423. package/src/runtime/task-graph.ts +0 -290
  424. package/src/runtime/task-health.ts +0 -83
  425. package/src/runtime/task-id.ts +0 -161
  426. package/src/runtime/task-output-context.ts +0 -602
  427. package/src/runtime/task-packet.ts +0 -268
  428. package/src/runtime/task-quality.ts +0 -199
  429. package/src/runtime/task-runner/capabilities.ts +0 -78
  430. package/src/runtime/task-runner/context-retrieval.ts +0 -163
  431. package/src/runtime/task-runner/live-executor.ts +0 -227
  432. package/src/runtime/task-runner/output-splitter.ts +0 -152
  433. package/src/runtime/task-runner/progress.ts +0 -157
  434. package/src/runtime/task-runner/prompt-builder.ts +0 -278
  435. package/src/runtime/task-runner/prompt-pipeline.ts +0 -88
  436. package/src/runtime/task-runner/result-utils.ts +0 -16
  437. package/src/runtime/task-runner/retrieval-orchestrator.ts +0 -310
  438. package/src/runtime/task-runner/run-projection.ts +0 -125
  439. package/src/runtime/task-runner/state-helpers.ts +0 -176
  440. package/src/runtime/task-runner/tail-read.ts +0 -34
  441. package/src/runtime/task-runner.ts +0 -1420
  442. package/src/runtime/team-runner-artifacts.ts +0 -13
  443. package/src/runtime/team-runner.ts +0 -1993
  444. package/src/runtime/tool-output-pruner.ts +0 -333
  445. package/src/runtime/tool-progress.ts +0 -278
  446. package/src/runtime/usage-tracker.ts +0 -73
  447. package/src/runtime/verification-gates.ts +0 -571
  448. package/src/runtime/verification-integrity.ts +0 -105
  449. package/src/runtime/verification-worktree.ts +0 -186
  450. package/src/runtime/worker-heartbeat.ts +0 -25
  451. package/src/runtime/worker-startup.ts +0 -83
  452. package/src/runtime/workflow-state.ts +0 -195
  453. package/src/runtime/workspace-lock.ts +0 -443
  454. package/src/runtime/workspace-tree.ts +0 -312
  455. package/src/runtime/yield-handler.ts +0 -224
  456. package/src/runtime/zombie-scanner.ts +0 -298
  457. package/src/schema/config-schema.ts +0 -327
  458. package/src/schema/team-tool-schema.ts +0 -415
  459. package/src/schema/validation-types.ts +0 -159
  460. package/src/skills/discover-skills.ts +0 -197
  461. package/src/skills/skill-templates.ts +0 -456
  462. package/src/skills/validate.ts +0 -285
  463. package/src/state/active-run-registry.ts +0 -439
  464. package/src/state/artifact-store.ts +0 -176
  465. package/src/state/atomic-write.ts +0 -903
  466. package/src/state/blob-store.ts +0 -308
  467. package/src/state/contracts.ts +0 -158
  468. package/src/state/crew-init.ts +0 -269
  469. package/src/state/decision-ledger.ts +0 -345
  470. package/src/state/event-log-rotation.ts +0 -342
  471. package/src/state/event-log.ts +0 -1311
  472. package/src/state/event-reconstructor.ts +0 -229
  473. package/src/state/gitignore-manager.ts +0 -46
  474. package/src/state/health-store.ts +0 -79
  475. package/src/state/hook-instinct-bridge.ts +0 -94
  476. package/src/state/hook-integrations.ts +0 -51
  477. package/src/state/instinct-store.ts +0 -275
  478. package/src/state/jsonl-writer.ts +0 -107
  479. package/src/state/locks.ts +0 -562
  480. package/src/state/mailbox.ts +0 -916
  481. package/src/state/observation-store.ts +0 -176
  482. package/src/state/run-cache.ts +0 -193
  483. package/src/state/run-graph.ts +0 -183
  484. package/src/state/run-metrics.ts +0 -165
  485. package/src/state/schedule.ts +0 -166
  486. package/src/state/session-state-map.ts +0 -51
  487. package/src/state/state-store.ts +0 -958
  488. package/src/state/task-claims.ts +0 -61
  489. package/src/state/tiered-eval.ts +0 -480
  490. package/src/state/types-eval.ts +0 -58
  491. package/src/state/types.ts +0 -440
  492. package/src/state/usage.ts +0 -138
  493. package/src/state/worker-atomic-writer.ts +0 -194
  494. package/src/subagents/async-entry.ts +0 -1
  495. package/src/subagents/index.ts +0 -3
  496. package/src/subagents/live/control.ts +0 -1
  497. package/src/subagents/live/manager.ts +0 -1
  498. package/src/subagents/live/realtime.ts +0 -1
  499. package/src/subagents/live/session-runtime.ts +0 -1
  500. package/src/subagents/manager.ts +0 -1
  501. package/src/subagents/spawn.ts +0 -1
  502. package/src/teams/discover-teams.ts +0 -187
  503. package/src/teams/team-config.ts +0 -27
  504. package/src/teams/team-serializer.ts +0 -38
  505. package/src/tools/safe-bash-extension.ts +0 -54
  506. package/src/tools/safe-bash.ts +0 -505
  507. package/src/types/diff.d.ts +0 -18
  508. package/src/types/new-api-types.ts +0 -35
  509. package/src/ui/agent-management-overlay.ts +0 -160
  510. package/src/ui/card-colors.ts +0 -139
  511. package/src/ui/crew-footer.ts +0 -102
  512. package/src/ui/crew-select-list.ts +0 -111
  513. package/src/ui/dashboard-panes/agents-pane.ts +0 -164
  514. package/src/ui/dashboard-panes/cancellation-pane.ts +0 -66
  515. package/src/ui/dashboard-panes/capability-pane.ts +0 -77
  516. package/src/ui/dashboard-panes/health-pane.ts +0 -31
  517. package/src/ui/dashboard-panes/mailbox-pane.ts +0 -35
  518. package/src/ui/dashboard-panes/metrics-pane.ts +0 -37
  519. package/src/ui/dashboard-panes/progress-pane.ts +0 -38
  520. package/src/ui/dashboard-panes/transcript-pane.ts +0 -10
  521. package/src/ui/deploy-bundled-themes.ts +0 -71
  522. package/src/ui/dwf-phase-display.ts +0 -151
  523. package/src/ui/dynamic-border.ts +0 -35
  524. package/src/ui/heartbeat-aggregator.ts +0 -74
  525. package/src/ui/key-utils.ts +0 -42
  526. package/src/ui/keybinding-map.ts +0 -248
  527. package/src/ui/layout-primitives.ts +0 -106
  528. package/src/ui/live-conversation-overlay.ts +0 -183
  529. package/src/ui/live-duration.ts +0 -55
  530. package/src/ui/live-run-sidebar.ts +0 -293
  531. package/src/ui/loaders.ts +0 -6
  532. package/src/ui/mascot.ts +0 -449
  533. package/src/ui/overlays/agent-picker-overlay.ts +0 -65
  534. package/src/ui/overlays/confirm-overlay.ts +0 -60
  535. package/src/ui/overlays/help-overlay.ts +0 -177
  536. package/src/ui/overlays/mailbox-compose-overlay.ts +0 -181
  537. package/src/ui/overlays/mailbox-compose-preview.ts +0 -78
  538. package/src/ui/overlays/mailbox-detail-overlay.ts +0 -154
  539. package/src/ui/pi-ui-compat.ts +0 -68
  540. package/src/ui/powerbar-publisher.ts +0 -459
  541. package/src/ui/render-coalescer.ts +0 -101
  542. package/src/ui/render-diff.ts +0 -160
  543. package/src/ui/render-scheduler.ts +0 -278
  544. package/src/ui/run-action-dispatcher.ts +0 -182
  545. package/src/ui/run-dashboard.ts +0 -904
  546. package/src/ui/run-event-bus.ts +0 -381
  547. package/src/ui/run-snapshot-cache.ts +0 -1057
  548. package/src/ui/settings-overlay.ts +0 -1067
  549. package/src/ui/shared-overlay-scheduler.ts +0 -96
  550. package/src/ui/snapshot-types.ts +0 -90
  551. package/src/ui/spinner.ts +0 -17
  552. package/src/ui/status-colors.ts +0 -143
  553. package/src/ui/syntax-highlight.ts +0 -136
  554. package/src/ui/terminal-status.ts +0 -269
  555. package/src/ui/theme-adapter.ts +0 -271
  556. package/src/ui/theme-discovery.ts +0 -199
  557. package/src/ui/tool-progress-formatter.ts +0 -93
  558. package/src/ui/tool-render.ts +0 -453
  559. package/src/ui/tool-renderers/brief-mode.ts +0 -225
  560. package/src/ui/tool-renderers/index.ts +0 -726
  561. package/src/ui/transcript-cache.ts +0 -128
  562. package/src/ui/transcript-entries.ts +0 -256
  563. package/src/ui/transcript-viewer.ts +0 -424
  564. package/src/ui/widget/index.ts +0 -391
  565. package/src/ui/widget/widget-formatters.ts +0 -182
  566. package/src/ui/widget/widget-model.ts +0 -110
  567. package/src/ui/widget/widget-renderer.ts +0 -182
  568. package/src/ui/widget/widget-types.ts +0 -36
  569. package/src/utils/bm25-search.ts +0 -235
  570. package/src/utils/completion-dedupe.ts +0 -63
  571. package/src/utils/conflict-detect.ts +0 -668
  572. package/src/utils/env-allowlist.ts +0 -30
  573. package/src/utils/env-filter.ts +0 -155
  574. package/src/utils/file-coalescer.ts +0 -98
  575. package/src/utils/fingerprint.ts +0 -180
  576. package/src/utils/frontmatter.ts +0 -70
  577. package/src/utils/fs-watch.ts +0 -37
  578. package/src/utils/gh-protocol.ts +0 -556
  579. package/src/utils/git.ts +0 -260
  580. package/src/utils/guards.ts +0 -107
  581. package/src/utils/ids.ts +0 -24
  582. package/src/utils/incremental-reader.ts +0 -220
  583. package/src/utils/internal-error.ts +0 -10
  584. package/src/utils/names.ts +0 -36
  585. package/src/utils/ndjson.ts +0 -115
  586. package/src/utils/paths.ts +0 -227
  587. package/src/utils/project-detector.ts +0 -160
  588. package/src/utils/redaction.ts +0 -347
  589. package/src/utils/resolve-shell.ts +0 -36
  590. package/src/utils/run-watcher-registry.ts +0 -152
  591. package/src/utils/safe-paths.ts +0 -383
  592. package/src/utils/scan-cache.ts +0 -144
  593. package/src/utils/session-utils.ts +0 -110
  594. package/src/utils/sleep.ts +0 -54
  595. package/src/utils/socket-path.ts +0 -127
  596. package/src/utils/sse-parser.ts +0 -129
  597. package/src/utils/task-name-generator.ts +0 -337
  598. package/src/utils/timings.ts +0 -33
  599. package/src/utils/token-counter.ts +0 -200
  600. package/src/utils/visual.ts +0 -207
  601. package/src/workflows/cost-estimator.ts +0 -34
  602. package/src/workflows/discover-workflows.ts +0 -290
  603. package/src/workflows/intermediate-store.ts +0 -166
  604. package/src/workflows/preflight-validator.ts +0 -168
  605. package/src/workflows/topology-analyzer.ts +0 -203
  606. package/src/workflows/validate-workflow.ts +0 -50
  607. package/src/workflows/workflow-config.ts +0 -70
  608. package/src/workflows/workflow-serializer.ts +0 -32
  609. package/src/worktree/branch-freshness.ts +0 -112
  610. package/src/worktree/cleanup.ts +0 -341
  611. package/src/worktree/worktree-manager.ts +0 -1200
@@ -1,808 +0,0 @@
1
- # pi-crew Next Upgrade Roadmap
2
-
3
- Date: 2026-05-05
4
- Source inputs:
5
-
6
- - `docs/research-oh-my-pi-distillation.md`
7
- - `docs/source-runtime-refactor-map.md`
8
- - Recent runtime hardening commits through `f5d47aa feat: surface run effectiveness evidence`
9
-
10
- This document tracks the next practical upgrades after the current scaffold/no-op subagent fix, runtime safety classification, cancellation provenance, intent audit trail, prompt pipeline artifacts, capability inventory artifacts, and run effectiveness reporting.
11
-
12
- ## Current Baseline
13
-
14
- Already implemented and pushed:
15
-
16
- - Real child worker execution is the default.
17
- - Implicit scaffold/no-op runs are blocked when worker execution is disabled by config/env.
18
- - Explicit `runtime.mode=scaffold` remains available for dry-run prompt/artifact generation.
19
- - Run `summary.md`, `progress.md`, and `status` now expose effectiveness evidence.
20
- - Structured cancellation reasons flow through retry/cancel/team-runner/run events/metrics/UI snapshot.
21
- - `cancel`, `cleanup`, `forget`, and `prune` accept audit intent metadata.
22
- - Live-agent control distinguishes `steer` from `follow-up` at live-control/API level.
23
- - Retry attempts have `attemptId`; max-retry deadletters link to the final `attemptId`.
24
- - Worker prompt pipeline and capability inventory metadata artifacts are written per task.
25
- - P0.1: effectiveness guard escalates `warn` to `blocked` for mutating-role tasks with no observable worker activity.
26
- - P1.1: mailbox `readMailbox` accepts `kind` filter; API `read-mailbox` supports `config.kind`.
27
- - P1.5: `TeamEventMetadata` extended with `parentEventId`, `attemptId`, `branchId`, `causationId`, `correlationId`.
28
- - P1.6: `buildSyntheticTerminalEvidence()` produces `"worker"`/`"cancelled"` terminal records for cancelled in-flight tasks.
29
- - P1.7: `buildCapabilityInventory(cwd)` normalizes teams/workflows/agents; API `operation=inventory`.
30
- - P2.1: typed hook lifecycle — `registerHook`/`executeHook` registry; `before_run_start` and `before_task_start` wired.
31
- - P2.4: `AbortSignal` wired into `collectRuns`, `validateMailbox`, `readAllMailboxMessages`, `pruneFinishedRuns`, `cleanupRunWorktrees`, etc.
32
- - Resume scaffold runs preserve scaffold mode from original manifest when workers not disabled.
33
-
34
- ## Implementation Status as of `v0.1.46`
35
-
36
- This roadmap is **not complete overall**. The `v0.1.46` release completed several vertical slices, but multiple roadmap items remain partial or unimplemented.
37
-
38
- ### Implemented / mostly implemented
39
-
40
- - Baseline worker behavior: real child-process execution by default, explicit scaffold dry-runs, and blocked implicit scaffold/no-op runs.
41
- - P0.1 ✅ effectiveness policy enforcement: default guard escalates `warn` to `blocked` for mutating-role tasks.
42
- - P0.2 ✅ runtime safety persistence: manifests persist `runtimeResolution`; `runtime.resolved` event emitted; status shows safety; blocked runs persist evidence.
43
- - Effectiveness reporting: summary/progress/status expose no-observed-work evidence and policy outcome.
44
- - Structured cancellation basics: cancellation reasons flow through retry/backoff/team-runner paths and run/task events.
45
- - Retry attempt evidence: retry attempts and max-retry deadletters carry/link `attemptId` data.
46
- - Prompt pipeline artifacts and per-task capability metadata artifacts are written.
47
- - P1.3 worker teardown evidence vertical slice: `WorkerExitStatus` and terminal worker cancellation evidence exist.
48
-
49
- ### Completed in this upgrade cycle (after v0.1.46)
50
-
51
- - P0.1 effectiveness policy enforcement: default guard now escalates `warn` to `blocked` for mutating-role tasks with no observable worker activity; read-only roles remain `warning`.
52
- - P0.2 runtime safety persistence: manifests persist `runtimeResolution`; `runtime.resolved` event emitted; status shows safety; blocked runs persist evidence.
53
- - P1.1 durable steering/follow-up queues: `readMailbox` accepts `kind` filter; API `read-mailbox` supports `config.kind`; steering and follow-up are isolatable by kind.
54
- - P1.2 respond vs follow-up UX: `/team-follow-up` command added for continuation prompts; `/team-respond` remains for waiting-task replies.
55
- - P1.3 two-phase child process teardown: `WorkerExitStatus` populated from graceful SIGTERM → grace window → hard kill pipeline.
56
- - P1.5 event-tree provenance: `TeamEventMetadata` extended with `parentEventId`, `attemptId`, `branchId`, `causationId`, `correlationId`; retry and cancel events carry `attemptId`.
57
- - P1.6 synthetic terminal results: `buildSyntheticTerminalEvidence()` in `cancellation.ts`; cancelled in-flight tasks receive `"worker"`/`"cancelled"` terminal evidence records.
58
- - P1.7 unified capability inventory: `buildCapabilityInventory(cwd)` normalizes teams/workflows/agents into `CapabilityItem[]`; API `operation=inventory` returns sorted JSON.
59
- - P1.8 capability disable by stable ID: `disabledCapabilities` in `CrewPolicyConfig`; inventory marks disabled items with reason.
60
- - P2.1 typed hook lifecycle: `HookName`, `HookMode`, `HookOutcome`, `HookContext`, `HookResult`, `HookExecutionReport` types; `registerHook`/`executeHook`/`clearHooks` registry; `before_run_start` and `before_task_start` wired into team-runner.
61
- - P2.2 intent gates for destructive actions: `enforceDestructiveIntent` wired in cancel/cleanup/forget/prune/delete; configurable via `policy.requireIntentForDestructiveActions`.
62
- - P2.3 durable history projection: `transformRunContextBeforeWorkerStart()` and `convertRunHistoryToWorkerPrompt()` bounded projection functions.
63
- - P2.4 CancellationToken wired into long scans: `AbortSignal` passed to `collectRuns`/`validateMailbox`/`readAllMailboxMessages`/`pruneFinishedRuns`/`cleanupRunWorktrees`.
64
- - P2.5 content-addressed blob store: `writeBlob`/`readBlob`/`readBlobMetadata` with SHA-256 dedup and metadata sidecars.
65
- - P2.6 dashboard panes for capability and cancellation: `renderCapabilityPane` and `renderCancellationPane`.
66
- - Resume scaffold run fix: preserves scaffold mode from original manifest when workers not disabled.
67
-
68
- ### Partial / not safe to mark complete
69
-
70
- - P1.4 reserve worker control channel before spawn: controller metadata persistence during startup not yet implemented.
71
- - P2.7 event-first UI: render coalescing and snapshot caches exist, but live UI still relies on durable file polling as a primary source in several panes.
72
- - P2.8 shared raw scan-entry cache: not yet implemented.
73
-
74
- ### Completed / no longer backlog
75
-
76
- - P2.7 event-first UI — RunEventBus wired into appendEvent; dashboard, widget, sidebar auto-invalidate on events; snapshot cache invalidates on events.
77
- - P2.8 shared raw scan-entry cache — SharedScanCache implemented and wired into manifest reads (run-index) and active-run-registry (active manifest reads).
78
- - P3.1 tarball-install smoke — `scripts/release-smoke.mjs` verified; `npm run smoke:release` added.
79
- - Hook lifecycle — All hooks wired: `before_run_start`, `before_task_start`, `before_cancel`, `before_forget`, `before_cleanup`, `before_publish`, `task_result`, `run_recovery`. Only `session_before_switch` remains (no cwd switch mechanism in current codebase).
80
-
81
- ### Remaining items
82
-
83
- - `session_before_switch` hook — no cwd/session switch mechanism in current codebase; placeholder for future.
84
- - P3.2 CI gate — integrate `smoke:release` into CI pipeline (requires CI config).
85
-
86
- ## Priority Legend
87
-
88
- - **P0**: correctness/safety issue; should be addressed before next release if feasible.
89
- - **P1**: high user-visible value or reliability gain; good patch-release candidates.
90
- - **P2**: larger subsystem work; should be planned and sequenced.
91
- - **P3**: polish/UX/longer-term architecture.
92
-
93
- ## P0 — Prevent Ineffective Completed Runs
94
-
95
- ### P0.1 Enforce effectiveness policy for non-scaffold workers
96
-
97
- **Problem**
98
-
99
- `summary/status` now surface effectiveness evidence, but non-scaffold `child-process`/`live-session` runs can still end `completed` when task evidence is weak unless the existing mutation guard fires.
100
-
101
- **Target behavior**
102
-
103
- - For real workers, a run with completed tasks but no observable worker activity should be `blocked` or `failed`, not silently `completed`.
104
- - Keep explicit scaffold dry-runs allowed, but label them as dry-runs.
105
- - Policy should be configurable:
106
- - `runtime.effectivenessGuard = "off" | "warn" | "block" | "fail"`
107
- - default candidate: `warn` for read-only roles, `block` for mutating roles.
108
-
109
- **Suggested files**
110
-
111
- - `src/runtime/team-runner.ts`
112
- - `src/runtime/completion-guard.ts`
113
- - `src/state/types.ts` if storing guard result on manifest/tasks
114
- - `src/schema/config-schema.ts`
115
- - `src/config/config.ts`
116
- - `test/unit/summary.test.ts`
117
- - `test/unit/team-runner-merge.test.ts` or new `test/unit/effectiveness-guard.test.ts`
118
-
119
- **Implementation sketch**
120
-
121
- 1. Extract run effectiveness calculation into a reusable exported helper, e.g.:
122
-
123
- ```ts
124
- export interface RunEffectivenessSummary {
125
- completed: number;
126
- observable: number;
127
- noObservedWorkTaskIds: string[];
128
- needsAttentionTaskIds: string[];
129
- workerExecution: "enabled" | "disabled/scaffold";
130
- severity: "ok" | "warning" | "blocked" | "failed";
131
- }
132
- ```
133
-
134
- 2. Use this helper for:
135
- - `progress.md`
136
- - `summary.md`
137
- - `status`
138
- - policy enforcement before `run.completed`.
139
-
140
- 3. For non-scaffold runs, if mutating tasks have no mutation/tool/model/transcript evidence:
141
- - append `policy.action` with `reason: "ineffective_worker"`;
142
- - set run `blocked` or `failed` depending config;
143
- - include task IDs in `data`.
144
-
145
- **Acceptance criteria** ✅
146
-
147
- - ✅ A mocked child-process run with no tool/model/transcript evidence does not report clean `completed` by default.
148
- - ✅ Scaffold run still completes as explicit dry-run and displays `Worker execution: disabled/scaffold`.
149
- - ✅ `status` clearly lists `noObservedWork` and `needsAttention` task IDs.
150
- - ✅ Unit tests cover warn/block/fail modes.
151
- - ✅ Default guard escalates `warn` to `blocked` for mutating-role tasks.
152
-
153
- **Verification**
154
-
155
- ```bash
156
- npx tsc --noEmit
157
- node --experimental-strip-types --test --test-concurrency=1 --test-timeout=30000 test/unit/effectiveness-guard.test.ts test/unit/summary.test.ts
158
- npm run test:unit
159
- ```
160
-
161
- ### P0.2 Make runtime safety visible in manifest and run events
162
-
163
- **Problem**
164
-
165
- `runtime.safety` exists in runtime resolution, but it is not persisted as first-class run metadata. Debugging currently requires reading events or inferred artifacts.
166
-
167
- **Target behavior**
168
-
169
- - Manifest records resolved runtime:
170
-
171
- ```json
172
- {
173
- "runtimeResolution": {
174
- "kind": "child-process",
175
- "requestedMode": "auto",
176
- "safety": "trusted",
177
- "fallback": "child-process",
178
- "reason": "..."
179
- }
180
- }
181
- ```
182
-
183
- - `run.running` or `run.blocked` event includes the same resolution.
184
-
185
- **Suggested files**
186
-
187
- - `src/state/types.ts`
188
- - `src/extension/team-tool/run.ts`
189
- - `src/runtime/background-runner.ts`
190
- - `src/extension/team-tool/status.ts`
191
- - `test/unit/team-run.test.ts`
192
- - `test/unit/runtime-resolver.test.ts`
193
-
194
- **Acceptance criteria** ✅
195
-
196
- - ✅ `status` shows `Runtime safety: trusted|explicit_dry_run|blocked`.
197
- - ✅ Blocked disabled-worker runs persist enough evidence to explain why no subagents spawned.
198
- - ✅ Existing manifest schema remains backward compatible.
199
- - ✅ `runtimeResolution` persisted on manifest; `runtime.resolved` event emitted.
200
-
201
- ## P1 — Steering/Follow-up Semantics Beyond Live Control
202
-
203
- ### P1.1 Persist separate steering and follow-up queues in mailbox state
204
-
205
- **Current state**
206
-
207
- `follow-up-agent` exists in live-control, but durable mailbox is still generic inbox/outbox and `respond` still has waiting-task semantics.
208
-
209
- **Target behavior**
210
-
211
- - Mailbox messages can carry semantic kind:
212
-
213
- ```ts
214
- kind?: "message" | "steer" | "follow-up" | "response" | "group_join";
215
- priority?: "urgent" | "normal" | "low";
216
- deliveryMode?: "interrupt" | "next_turn";
217
- ```
218
-
219
- - `steer-agent` appends durable steering queue entry when no live session is present.
220
- - `follow-up-agent` appends durable follow-up queue entry, deliverable after task stop/resume.
221
- - UI/status separates urgent steering from follow-up backlog.
222
-
223
- **Suggested files**
224
-
225
- - `src/state/mailbox.ts`
226
- - `src/runtime/live-agent-control.ts`
227
- - `src/runtime/live-agent-manager.ts`
228
- - `src/extension/team-tool/api.ts`
229
- - `src/extension/team-tool/respond.ts`
230
- - `src/ui/dashboard-panes/mailbox-pane.ts`
231
- - `test/unit/mailbox-api.test.ts`
232
- - `test/unit/live-agent-control.test.ts`
233
- - `test/unit/respond-tool.test.ts`
234
-
235
- **Acceptance criteria** ✅ (partially — kind filter and API done; UI pane separation remaining)
236
-
237
- - ✅ Steering and follow-up can be inspected separately via `readMailbox` kind filter and API `config.kind`.
238
- - ✅ Existing inbox/outbox JSONL remains readable.
239
- - ✅ Kind filter survives process/session switch (durable mailbox).
240
- - ✅ UI/status separates urgent steering from follow-up backlog (mailbox pane shows kind breakdown with urgency indicators).
241
-
242
- ### P1.2 Clarify `respond` vs `follow-up` UX
243
-
244
- **Problem**
245
-
246
- `respond` is currently a waiting-task resume primitive. Users may expect it to send a general follow-up.
247
-
248
- **Target behavior**
249
-
250
- - `/team-respond` remains only for `waiting` tasks.
251
- - `/team-follow-up` or `api operation=follow-up-agent` is documented as continuation prompt.
252
- - Error messages recommend the correct command.
253
-
254
- **Suggested files**
255
-
256
- - `src/extension/registration/commands.ts`
257
- - `src/extension/help.ts`
258
- - `docs/usage.md`
259
- - `test/unit/registration-commands-coverage.test.ts`
260
- - `test/unit/respond-tool.test.ts`
261
-
262
- ## P1 — Worker Lifecycle and Process Reliability
263
-
264
- ### P1.3 Two-phase child process teardown
265
-
266
- **Current state**
267
-
268
- Child workers have improved post-exit stdio guards and bounded drains, but cancellation semantics can be made more deterministic.
269
-
270
- **Target behavior**
271
-
272
- Worker process cancellation returns structured status:
273
-
274
- ```ts
275
- interface WorkerExitStatus {
276
- exitCode: number | null;
277
- cancelled: boolean;
278
- timedOut: boolean;
279
- killed: boolean;
280
- signal?: string;
281
- cleanupErrors: string[];
282
- finalDrainMs: number;
283
- }
284
- ```
285
-
286
- Process lifecycle:
287
-
288
- 1. graceful cancel/TERM;
289
- 2. wait grace window;
290
- 3. hard kill process tree;
291
- 4. bounded stdout/stderr drain;
292
- 5. mark session non-reusable.
293
-
294
- **Suggested files**
295
-
296
- - `src/runtime/child-pi.ts`
297
- - `src/runtime/pi-spawn.ts`
298
- - `src/runtime/post-exit-stdio-guard.ts`
299
- - `src/runtime/task-runner.ts`
300
- - `src/runtime/cancellation.ts`
301
- - `test/unit/child-pi*.test.ts`
302
- - `test/integration/mock-child-run.test.ts`
303
-
304
- **Acceptance criteria**
305
-
306
- - Cancelled worker always produces terminal task event.
307
- - Output drains are bounded.
308
- - Status includes `cancelled/timedOut/killed`.
309
- - No zombie/stale running task after cancellation.
310
-
311
- ### P1.4 Reserve worker control channel before spawn
312
-
313
- **Problem**
314
-
315
- There can be a short window where a task is logically starting but cancel/steer cannot target a controller yet.
316
-
317
- **Target behavior**
318
-
319
- - Synchronously create a `WorkerRunCore`/controller before async spawn.
320
- - Persist controller metadata in agent status.
321
- - Cancel/steer requests can be queued immediately while startup is in progress.
322
- - Controller is cleared in `finally`.
323
-
324
- **Suggested files**
325
-
326
- - `src/runtime/task-runner.ts`
327
- - `src/runtime/agent-control.ts`
328
- - `src/runtime/live-agent-control.ts`
329
- - `src/runtime/crew-agent-records.ts`
330
- - `src/extension/team-tool/api.ts`
331
-
332
- **Acceptance criteria**
333
-
334
- - Starting worker can be cancelled immediately.
335
- - Durable control request written during startup is applied or recorded as terminal no-op with reason.
336
- - Tests simulate control request before child process emits first output.
337
-
338
- ## P1 — Cancellation and Attempt History
339
-
340
- ### P1.5 Add event-tree provenance: `parentEventId`, `attemptId`, `branchId`
341
-
342
- **Current state**
343
-
344
- Retry attempts have `attemptId`, and deadletters link to final attempt. Event log has sequence and terminal fingerprints but no general event tree.
345
-
346
- **Target behavior**
347
-
348
- - `TeamEvent.metadata` supports:
349
-
350
- ```ts
351
- parentEventId?: string;
352
- attemptId?: string;
353
- branchId?: string;
354
- causationId?: string;
355
- correlationId?: string;
356
- ```
357
-
358
- - Retry events, task started/completed/failed, deadletter, recovery events link by `attemptId`.
359
- - UI/status can show attempt timeline.
360
-
361
- **Suggested files**
362
-
363
- - `src/state/event-log.ts`
364
- - `src/state/types.ts`
365
- - `src/runtime/team-runner.ts`
366
- - `src/runtime/retry-executor.ts`
367
- - `src/runtime/recovery-recipes.ts`
368
- - `src/extension/team-tool/status.ts`
369
- - `test/unit/event-metadata.test.ts`
370
- - `test/unit/retry-executor.test.ts`
371
-
372
- **Acceptance criteria** ✅
373
-
374
- - ✅ Retry attempt events and terminal task events share attempt provenance.
375
- - ✅ Deadletter records can be traced back to event sequence.
376
- - ✅ Existing JSONL readers ignore missing provenance fields.
377
- - ✅ `TeamEventMetadata` extended with `parentEventId`, `attemptId`, `branchId`, `causationId`, `correlationId`.
378
-
379
- ### P1.6 Synthetic terminal results for cancelled in-flight operations
380
-
381
- **Problem**
382
-
383
- Run/task cancellation events are now structured, but worker/tool sub-operations can still lack synthetic terminal records if cancelled mid-operation.
384
-
385
- **Target behavior**
386
-
387
- - If a task started a worker/tool/model call and cancellation occurs, append a synthetic terminal record:
388
- - `tool.cancelled` or `worker.cancelled`
389
- - reason code/message
390
- - startedAt/finishedAt
391
- - attemptId if available
392
-
393
- **Suggested files**
394
-
395
- - `src/runtime/task-runner.ts`
396
- - `src/runtime/task-runner/progress.ts`
397
- - `src/runtime/child-pi.ts`
398
- - `src/runtime/cancellation.ts`
399
- - `src/state/contracts.ts`
400
- - `test/unit/cancellation.test.ts`
401
-
402
- **Acceptance criteria** ✅
403
-
404
- - ✅ No started tool/model operation is left without terminal evidence after cancellation.
405
- - ✅ Status/diagnostics can distinguish user cancel vs timeout vs shutdown.
406
- - ✅ `buildSyntheticTerminalEvidence()` in `cancellation.ts` produces `"worker"`/`"cancelled"` records.
407
-
408
- ## P1 — Capability Inventory and Control Center
409
-
410
- ### P1.7 Build run/project capability inventory view
411
-
412
- **Current state**
413
-
414
- Per-task capability artifacts exist. There is no unified project/run inventory UI/API yet.
415
-
416
- **Target behavior**
417
-
418
- `/team-settings` or new `/team-control` shows normalized inventory:
419
-
420
- ```ts
421
- interface CapabilityItem {
422
- id: string;
423
- kind: "team" | "workflow" | "agent" | "skill" | "tool" | "hook" | "runtime" | "provider";
424
- name: string;
425
- source: "builtin" | "project" | "user" | "runtime";
426
- path?: string;
427
- state: "active" | "disabled" | "shadowed" | "missing";
428
- disabledReason?: string;
429
- shadowedBy?: string;
430
- }
431
- ```
432
-
433
- **Suggested files**
434
-
435
- - `src/extension/team-tool/handle-settings.ts`
436
- - `src/extension/management.ts`
437
- - `src/agents/discover-agents.ts`
438
- - `src/teams/discover-teams.ts`
439
- - `src/workflows/discover-workflows.ts`
440
- - `src/runtime/skill-instructions.ts`
441
- - `docs/resource-formats.md`
442
- - `test/unit/management.test.ts`
443
-
444
- **Acceptance criteria**
445
-
446
- - ✅ Inventory is stable and sorted.
447
- - ✅ Shadowed project/user/builtin resources are visible in capability inventory (state="shadowed", shadowedBy field).
448
- - ✅ Skill disabled/budget state is visible in capability inventory (skills enumerated via discoverSkills).
449
- - ✅ No file path is used as the only stable ID (uses `kind:name` IDs).
450
-
451
- ### P1.8 Persist capability disables by stable ID
452
-
453
- **Target behavior**
454
-
455
- - Operator can disable a skill/agent/team by capability ID.
456
- - Disable config survives path relocation when resource identity remains stable.
457
- - Status explains disabled reason.
458
-
459
- **Suggested files**
460
-
461
- - `src/config/config.ts`
462
- - `src/schema/config-schema.ts`
463
- - discovery modules
464
- - `test/unit/config-schema-validation.test.ts`
465
-
466
- ## P2 — Typed Hook Lifecycle
467
-
468
- ### P2.1 Introduce typed hook contract
469
-
470
- **Target behavior**
471
-
472
- Define typed lifecycle gates:
473
-
474
- - `before_run_start`
475
- - `before_task_start`
476
- - `task_result`
477
- - `before_cancel`
478
- - `before_forget`
479
- - `before_cleanup`
480
- - `before_publish`
481
- - `session_before_switch`
482
- - `run_recovery`
483
-
484
- Each hook declares:
485
-
486
- ```ts
487
- type HookMode = "blocking" | "non_blocking";
488
- type HookOutcome = "allow" | "block" | "modify" | "diagnostic";
489
- ```
490
-
491
- Errors are recorded in diagnostics/events, not uncontrolled exceptions.
492
-
493
- **Suggested files**
494
-
495
- - new `src/hooks/*`
496
- - `src/extension/register.ts`
497
- - `src/runtime/team-runner.ts`
498
- - `src/extension/team-tool/cancel.ts`
499
- - `src/extension/team-tool/lifecycle-actions.ts`
500
- - `docs/resource-formats.md`
501
- - `test/unit/hooks*.test.ts`
502
-
503
- **Acceptance criteria** ✅ (partial — `before_cancel` not yet wired for async)
504
-
505
- - ✅ Blocking hook can stop a run before worker start with clear event and status.
506
- - ✅ Non-blocking hook failure records diagnostic and does not crash run.
507
- - ✅ Hook context is redacted and bounded.
508
- - ✅ `before_cancel` hook wired (async handleCancel conversion done).
509
- - ✅ `before_forget` hook wired (async handleForget conversion done).
510
- - ✅ `before_cleanup` hook wired (async handleCleanup conversion done).
511
- - ✅ `task_result` hook wired in task-runner before completed/failed event.
512
- - ✅ `before_publish` hook wired in handleExport.
513
- - ✅ `run_recovery` hook wired in crash-recovery `applyRecoveryPlan`.
514
- - ☐ `session_before_switch` not yet wired (no cwd switch mechanism in current codebase; placeholder for future Pi lifecycle integration).
515
-
516
- ### P2.2 Require intent via policy/hook for destructive actions
517
-
518
- **Current state**
519
-
520
- Intent is optional for cancel/cleanup/forget/prune.
521
-
522
- **Target behavior**
523
-
524
- - Optional config:
525
-
526
- ```json
527
- {
528
- "policy": {
529
- "requireIntentForDestructiveActions": true
530
- }
531
- }
532
- ```
533
-
534
- - Actions requiring intent:
535
- - cancel
536
- - forget
537
- - prune
538
- - cleanup with force
539
- - publish/release helpers if added
540
- - worktree removal
541
-
542
- **Acceptance criteria**
543
-
544
- - Missing intent blocks action with actionable error.
545
- - Existing tests can opt out or provide intent.
546
- - Audit trail includes intent after approval.
547
-
548
- ## P2 — Durable History vs Prompt Projection
549
-
550
- ### P2.3 Separate durable run history projection from worker prompt text
551
-
552
- **Current state**
553
-
554
- Prompt pipeline artifacts exist, but context projection logic is still coupled to prompt construction in multiple places.
555
-
556
- **Target behavior**
557
-
558
- Introduce explicit projection functions:
559
-
560
- ```ts
561
- transformRunContextBeforeWorkerStart(...)
562
- convertRunHistoryToWorkerPrompt(...)
563
- ```
564
-
565
- Rules:
566
-
567
- - Durable history retains events, mailbox, artifacts, UI/runtime metadata.
568
- - Worker prompt gets a bounded projection.
569
- - UI/runtime events are not prompt text unless explicitly selected.
570
-
571
- **Suggested files**
572
-
573
- - `src/runtime/task-runner/prompt-pipeline.ts`
574
- - `src/runtime/task-runner/prompt-builder.ts`
575
- - `src/runtime/task-output-context.ts`
576
- - `src/runtime/task-runner.ts`
577
- - `test/unit/task-runner-prompt-pipeline.test.ts`
578
-
579
- **Acceptance criteria**
580
-
581
- - Prompt pipeline artifact identifies every projection source.
582
- - Large event/mailbox history is summarized or referenced, not blindly embedded.
583
- - Tests verify UI/runtime events are not injected as instructions.
584
-
585
- ## P2 — Cooperative Cancellation for Internal Scans
586
-
587
- ### P2.4 Add internal `CancellationToken`
588
-
589
- **Target behavior**
590
-
591
- A utility for long internal loops:
592
-
593
- ```ts
594
- interface CancellationToken {
595
- readonly aborted: boolean;
596
- readonly reason?: CancellationReason;
597
- heartbeat(stage?: string): void;
598
- throwIfCancelled(): void;
599
- wait(ms: number): Promise<void>;
600
- }
601
- ```
602
-
603
- Use it in:
604
-
605
- - run index scans
606
- - artifact cleanup
607
- - mailbox validation/replay
608
- - worktree cleanup
609
- - diagnostic export
610
- - large transcript/event reads
611
-
612
- **Suggested files**
613
-
614
- - new `src/runtime/cancellation-token.ts`
615
- - `src/extension/run-index.ts`
616
- - `src/extension/registration/artifact-cleanup.ts`
617
- - `src/state/mailbox.ts`
618
- - `src/ui/run-snapshot-cache.ts`
619
- - `test/unit/cancellation-token.test.ts`
620
-
621
- **Acceptance criteria** ✅
622
-
623
- - ✅ Long scan can abort within bounded cadence (`AbortSignal` wired into `collectRuns`, `validateMailbox`, `readAllMailboxMessages`, `pruneFinishedRuns`, `cleanupRunWorktrees`).
624
- - ✅ `CancellationToken.heartbeat(stage)` wired into `collectRuns` and `pruneFinishedRuns` with stage diagnostics.
625
- - ✅ Existing APIs can pass no token/signal and keep current behavior.
626
-
627
- ## P2 — Artifact Store Improvements
628
-
629
- ### P2.5 Content-addressed blob artifacts
630
-
631
- **Target behavior**
632
-
633
- Large logs/transcripts/results are stored as blobs:
634
-
635
- ```text
636
- artifacts/blobs/sha256/<hash>
637
- artifacts/blob-metadata/<hash>.json
638
- ```
639
-
640
- Metadata includes:
641
-
642
- - runId/taskId
643
- - MIME/type
644
- - producer
645
- - original path/name
646
- - size/hash
647
- - redaction status
648
- - retention policy
649
-
650
- **Suggested files**
651
-
652
- - `src/state/artifact-store.ts`
653
- - `src/runtime/task-runner.ts`
654
- - `src/ui/transcript-viewer.ts`
655
- - `src/extension/run-export.ts`
656
- - `src/extension/run-import.ts`
657
- - `test/unit/artifact-store*.test.ts`
658
-
659
- **Acceptance criteria**
660
-
661
- - Artifacts above threshold are blob-referenced.
662
- - Run export/import preserves blobs.
663
- - GC removes unreferenced blobs after retention.
664
- - Path traversal protections remain intact.
665
-
666
- ## P2 — UI and Dashboard Upgrades
667
-
668
- ### P2.6 Show capability/effectiveness/cancellation panels in dashboard
669
-
670
- **Target behavior**
671
-
672
- Dashboard panes expose:
673
-
674
- - run effectiveness score and no-observed-work tasks;
675
- - cancellation reason and intent;
676
- - capability inventory for selected task;
677
- - attempt/deadletter timeline.
678
-
679
- **Suggested files**
680
-
681
- - `src/ui/run-dashboard.ts`
682
- - `src/ui/dashboard-panes/*`
683
- - `src/ui/snapshot-types.ts`
684
- - `src/ui/run-snapshot-cache.ts`
685
- - `test/unit/run-dashboard.test.ts`
686
- - new pane tests
687
-
688
- **Acceptance criteria**
689
-
690
- - No heavy synchronous scans in render path.
691
- - Pane output is width-safe.
692
- - Snapshot cache provides precomputed compact data.
693
-
694
- ### P2.7 Event-first UI stream
695
-
696
- **Target behavior**
697
-
698
- Move more live UI updates from file polling to semantic events:
699
-
700
- - `task_started`
701
- - `task_completed`
702
- - `worker_status`
703
- - `mailbox_updated`
704
- - `effectiveness_changed`
705
-
706
- **Acceptance criteria**
707
-
708
- - Render scheduler remains coalesced and overlap-safe.
709
- - UI still recovers from durable files after restart.
710
- - File polling is fallback, not the hot path.
711
-
712
- ## P2 — Raw Scan Entry Cache
713
-
714
- ### P2.8 Cache raw entries, not final semantic query results
715
-
716
- **Target behavior**
717
-
718
- Shared raw scan cache for:
719
-
720
- - runs
721
- - artifacts
722
- - mailbox files
723
- - transcript chunks
724
- - worktree roots
725
-
726
- Then apply filters/sorts after retrieval.
727
-
728
- **Suggested files**
729
-
730
- - `src/runtime/manifest-cache.ts`
731
- - `src/ui/run-snapshot-cache.ts`
732
- - `src/extension/run-index.ts`
733
- - `src/utils/file-coalescer.ts`
734
-
735
- **Acceptance criteria**
736
-
737
- - Deterministic sort order.
738
- - State mutation invalidates relevant raw entries.
739
- - Large workspaces do not trigger full rescans on every render/status.
740
-
741
- ## P3 — Release/Install Hardening
742
-
743
- ### P3.1 Tarball install smoke before publish
744
-
745
- **Target behavior**
746
-
747
- Release workflow requires:
748
-
749
- ```bash
750
- npm run ci
751
- npm pack --dry-run
752
- npm pack
753
- # install tarball in temp project
754
- # verify pi extension load smoke
755
- # verify npm package files and version/tag consistency
756
- ```
757
-
758
- **Suggested files**
759
-
760
- - `docs/publishing.md`
761
- - `package.json` scripts
762
- - `.github/workflows/*` if CI is added
763
- - optional `scripts/release-smoke.mjs`
764
-
765
- **Acceptance criteria**
766
-
767
- - Packed tarball loads extension in temp Pi home.
768
- - Version in package, changelog, tag, npm view are consistent.
769
- - Release instructions include rollback notes.
770
-
771
- ## Suggested Implementation Order
772
-
773
- 1. ~~**P0.1 Effectiveness policy enforcement**~~ ✅ Completed — default guard escalates `warn` to `blocked` for mutating-role tasks.
774
- 2. ~~**P0.2 Persist runtime safety**~~ ✅ Completed — manifests persist `runtimeResolution`; `runtime.resolved` event emitted.
775
- 3. **P1.3 Two-phase worker teardown** — reduces stale/zombie worker risk.
776
- 4. ~~**P1.1 Durable steering/follow-up queues**~~ ✅ Completed — `readMailbox` kind filter; API `read-mailbox` supports `config.kind`.
777
- 5. ~~**P1.5 Event-tree provenance**~~ ✅ Completed — `TeamEventMetadata` extended with `parentEventId`/`attemptId`/`branchId`/`causationId`/`correlationId`.
778
- 6. ~~**P1.7 Capability inventory view**~~ ✅ Completed — `buildCapabilityInventory()` + API `operation=inventory` + dashboard pane.
779
- 7. ~~**P2.3 Durable history projection**~~ ✅ Completed — `transformRunContextBeforeWorkerStart()` + `convertRunHistoryToWorkerPrompt()`.
780
- 8. ~~**P2.4 CancellationToken**~~ ✅ Completed — wired into `collectRuns`/`validateMailbox`/`pruneFinishedRuns`/`cleanupRunWorktrees` etc.
781
- 9. ~~**P2.5 Blob artifacts**~~ ✅ Completed — content-addressed blob store with SHA-256 dedup and metadata sidecars.
782
- 10. ~~**P2.6 Dashboard panels**~~ ✅ Completed — capability and cancellation panes.
783
-
784
- Also completed (not in original order list):
785
- - ~~**P1.6 Synthetic terminal results**~~ ✅ — `buildSyntheticTerminalEvidence()` for cancelled in-flight tasks.
786
- - ~~**P2.1 Typed hook lifecycle**~~ ✅ — `before_run_start`/`before_task_start` wired into team-runner.
787
-
788
- ## Release Guidance
789
-
790
- Before publishing a patch with these upgrades:
791
-
792
- ```bash
793
- npx tsc --noEmit
794
- npm run test:unit
795
- npm run test:integration
796
- npm pack --dry-run
797
- ```
798
-
799
- For runtime/process changes also run targeted child-worker integration tests:
800
-
801
- ```bash
802
- node --experimental-strip-types --test --test-concurrency=1 --test-timeout=60000 \
803
- test/integration/mock-child-run.test.ts \
804
- test/integration/mock-child-json-run.test.ts \
805
- test/integration/phase6-runtime-hardening.test.ts
806
- ```
807
-
808
- Do not publish without explicit user confirmation and a green verification pass.