pi-crew 0.9.50 → 0.9.52

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 (609) hide show
  1. package/CHANGELOG.md +150 -0
  2. package/README.md +216 -20
  3. package/dist/build-meta.json +2222 -1761
  4. package/dist/index.mjs +18636 -17603
  5. package/docs/actions-reference.md +431 -1
  6. package/package.json +19 -9
  7. package/schema.json +41 -0
  8. package/scripts/check-bundle-size.mjs +38 -0
  9. package/scripts/test-runner.mjs +11 -1
  10. package/skills/distill-software/SKILL.md +24 -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/README.md +0 -26
  66. package/docs/deep-review-report.md +0 -384
  67. package/docs/distillation/cybersecurity-patterns.md +0 -294
  68. package/docs/feature-analysis-subagent4.md +0 -305
  69. package/docs/fix-plan-disabletools-exit-null.md +0 -219
  70. package/docs/fixes/BATCH_A_H1_H2.md +0 -86
  71. package/docs/fixes/bug-006-foreground-cancel-concurrent.md +0 -78
  72. package/docs/fixes/bug-007-async-notifier-stale-ctx.md +0 -112
  73. package/docs/fixes/bug-008-child-process-silent-timeout.md +0 -100
  74. package/docs/fixes/bug-009-executor-yield-limit-needs-attention.md +0 -75
  75. package/docs/fixes/bug-010-child-process-api-key-filtered.md +0 -109
  76. package/docs/fixes/bug-011-spawn-pi-enoent.md +0 -92
  77. package/docs/fixes/bug-012-essential-env-stripped.md +0 -89
  78. package/docs/fixes/bug-013-background-runner-death.md +0 -84
  79. package/docs/fixes/bug-014-infinite-retry-loop-needs-attention.md +0 -82
  80. package/docs/fixes/bug-015-background-runner-sigterm.md +0 -65
  81. package/docs/fixes/bug-017-background-runner-session-shutdown.md +0 -66
  82. package/docs/fixes/bug-017-background-runner-sigkill-double-fork.md +0 -28
  83. package/docs/fixes/bug-018-child-pi-worker-stdin-hang.md +0 -61
  84. package/docs/fixes/bug-019-phantom-runs-temp-workspace.md +0 -52
  85. package/docs/fixes/bug-020-infinite-retry-loop-needs-attention.md +0 -47
  86. package/docs/fixes/v0.9.10/locks-fix-verify.md +0 -3
  87. package/docs/fixes/v0.9.10/smoke-test.md +0 -12
  88. package/docs/followup-plan-2026-05-12.md +0 -463
  89. package/docs/followup-review-2026-05-12.md +0 -297
  90. package/docs/goals.md +0 -59
  91. package/docs/implementation-plan-top3.md +0 -333
  92. package/docs/issue-29-analysis.md +0 -189
  93. package/docs/live-mailbox-runtime.md +0 -36
  94. package/docs/migration/atomic-write-v2-migration.md +0 -299
  95. package/docs/next-upgrade-roadmap.md +0 -808
  96. package/docs/oh-my-pi-research.md +0 -509
  97. package/docs/optimization-plan-2026-07.md +0 -366
  98. package/docs/optimization-plan.md +0 -644
  99. package/docs/patterns/command-agent-skill.md +0 -71
  100. package/docs/perf/baseline-2026-05.md +0 -113
  101. package/docs/perf/final-report-2026-05.md +0 -206
  102. package/docs/perf/optimization-plan-2026-07-verified.md +0 -396
  103. package/docs/perf/performance-audit-report-2026-07.md +0 -948
  104. package/docs/perf/performance-review-2026-07.md +0 -287
  105. package/docs/perf/sprint-1-report.md +0 -71
  106. package/docs/perf/sprint-2-report.md +0 -81
  107. package/docs/perf/sprint-2.5-report.md +0 -53
  108. package/docs/perf/sprint-3-report.md +0 -36
  109. package/docs/perf/sprint-4-report.md +0 -47
  110. package/docs/perf/sprint-5-report.md +0 -51
  111. package/docs/perf/sprint-6-report.md +0 -94
  112. package/docs/perf/sprint-7-report.md +0 -74
  113. package/docs/perf/upgrade-plan-2026-05.md +0 -147
  114. package/docs/performance-optimization-execution-plan.md +0 -520
  115. package/docs/phase4-triage.md +0 -58
  116. package/docs/pi-crew-investigation-report.md +0 -411
  117. package/docs/product/README.md +0 -31
  118. package/docs/product/platform.md +0 -27
  119. package/docs/product/runtime-safety.md +0 -37
  120. package/docs/product/team-run.md +0 -39
  121. package/docs/product/team-tool.md +0 -37
  122. package/docs/runtime-analysis-child-vs-live.md +0 -171
  123. package/docs/runtime-migration-in-process-analysis.md +0 -250
  124. package/docs/skills/REFERENCE.md +0 -138
  125. package/docs/stories/README.md +0 -32
  126. package/docs/stories/US-DEPS-major-upgrade.md +0 -62
  127. package/docs/stories/backlog.md +0 -36
  128. package/docs/superpowers/plans/2026-06-09-fallow-patterns-adoption.md +0 -1270
  129. package/docs/templates/decision.md +0 -27
  130. package/docs/templates/story.md +0 -44
  131. package/docs/templates/validation-report.md +0 -32
  132. package/docs/ui-optimization-plan.md +0 -447
  133. package/src/adapters/claude-adapter.ts +0 -23
  134. package/src/adapters/codex-adapter.ts +0 -21
  135. package/src/adapters/cursor-adapter.ts +0 -17
  136. package/src/adapters/export-util.ts +0 -143
  137. package/src/adapters/index.ts +0 -15
  138. package/src/adapters/registry.ts +0 -18
  139. package/src/adapters/types.ts +0 -23
  140. package/src/agents/agent-config.ts +0 -194
  141. package/src/agents/agent-search.ts +0 -98
  142. package/src/agents/agent-serializer.ts +0 -38
  143. package/src/agents/discover-agents.ts +0 -623
  144. package/src/benchmark/benchmark-runner.ts +0 -313
  145. package/src/benchmark/feedback-loop.ts +0 -73
  146. package/src/config/config.ts +0 -1269
  147. package/src/config/defaults.ts +0 -193
  148. package/src/config/drift-detector.ts +0 -290
  149. package/src/config/markers.ts +0 -330
  150. package/src/config/resilient-parser.ts +0 -117
  151. package/src/config/role-tools.ts +0 -118
  152. package/src/config/suggestions.ts +0 -75
  153. package/src/config/types.ts +0 -278
  154. package/src/errors.ts +0 -194
  155. package/src/extension/action-suggestions.ts +0 -117
  156. package/src/extension/async-notifier.ts +0 -179
  157. package/src/extension/autonomous-policy.ts +0 -209
  158. package/src/extension/command-completions.ts +0 -120
  159. package/src/extension/context-status-injection.ts +0 -185
  160. package/src/extension/crew-autocomplete.ts +0 -131
  161. package/src/extension/crew-cleanup.ts +0 -168
  162. package/src/extension/crew-input-router.ts +0 -93
  163. package/src/extension/crew-shortcuts.ts +0 -87
  164. package/src/extension/crew-vibes/cat-frames.ts +0 -18
  165. package/src/extension/crew-vibes/config.ts +0 -195
  166. package/src/extension/crew-vibes/figures.ts +0 -101
  167. package/src/extension/crew-vibes/font-detect.ts +0 -71
  168. package/src/extension/crew-vibes/footer.ts +0 -292
  169. package/src/extension/crew-vibes/index.ts +0 -432
  170. package/src/extension/crew-vibes/provider-usage.ts +0 -396
  171. package/src/extension/crew-vibes/render.ts +0 -206
  172. package/src/extension/crew-vibes/speed.ts +0 -286
  173. package/src/extension/cross-extension-rpc.ts +0 -350
  174. package/src/extension/help.ts +0 -62
  175. package/src/extension/import-index.ts +0 -74
  176. package/src/extension/knowledge-injection.ts +0 -402
  177. package/src/extension/management.ts +0 -571
  178. package/src/extension/message-renderers.ts +0 -108
  179. package/src/extension/notification-router.ts +0 -152
  180. package/src/extension/notification-sink.ts +0 -54
  181. package/src/extension/pi-api.ts +0 -56
  182. package/src/extension/plan-orchestrate.ts +0 -302
  183. package/src/extension/project-init.ts +0 -170
  184. package/src/extension/register.ts +0 -113
  185. package/src/extension/registration/artifact-cleanup.ts +0 -20
  186. package/src/extension/registration/command-registration.ts +0 -58
  187. package/src/extension/registration/command-utils.ts +0 -58
  188. package/src/extension/registration/commands.ts +0 -1228
  189. package/src/extension/registration/compaction-guard.ts +0 -333
  190. package/src/extension/registration/context-builder.ts +0 -135
  191. package/src/extension/registration/crash-recovery-cache.ts +0 -54
  192. package/src/extension/registration/foreground-run-controller.ts +0 -238
  193. package/src/extension/registration/hook-registration.ts +0 -119
  194. package/src/extension/registration/lazy-configurers.ts +0 -124
  195. package/src/extension/registration/lifecycle-handlers.ts +0 -923
  196. package/src/extension/registration/lifecycle.ts +0 -259
  197. package/src/extension/registration/observability.ts +0 -322
  198. package/src/extension/registration/registration-types.ts +0 -158
  199. package/src/extension/registration/runtime-cleanup.ts +0 -230
  200. package/src/extension/registration/subagent-helpers.ts +0 -125
  201. package/src/extension/registration/subagent-manager-setup.ts +0 -330
  202. package/src/extension/registration/subagent-tools.ts +0 -456
  203. package/src/extension/registration/team-tool.ts +0 -220
  204. package/src/extension/registration/tool-registration.ts +0 -50
  205. package/src/extension/registration/ui.ts +0 -172
  206. package/src/extension/registration/viewers.ts +0 -121
  207. package/src/extension/registration/wire-cross-extension.ts +0 -37
  208. package/src/extension/result-watcher.ts +0 -139
  209. package/src/extension/rpc-hmac.ts +0 -256
  210. package/src/extension/run-bundle-schema.ts +0 -104
  211. package/src/extension/run-export.ts +0 -97
  212. package/src/extension/run-import.ts +0 -168
  213. package/src/extension/run-index.ts +0 -131
  214. package/src/extension/run-maintenance.ts +0 -190
  215. package/src/extension/session-summary.ts +0 -18
  216. package/src/extension/team-manager-command.ts +0 -153
  217. package/src/extension/team-onboard.ts +0 -177
  218. package/src/extension/team-recommendation.ts +0 -288
  219. package/src/extension/team-tool/anchor.ts +0 -172
  220. package/src/extension/team-tool/api.ts +0 -1244
  221. package/src/extension/team-tool/auto-summarize.ts +0 -142
  222. package/src/extension/team-tool/cache-control.ts +0 -19
  223. package/src/extension/team-tool/cancel.ts +0 -337
  224. package/src/extension/team-tool/chain-dispatch.ts +0 -95
  225. package/src/extension/team-tool/chain-executor.ts +0 -379
  226. package/src/extension/team-tool/config-patch.ts +0 -50
  227. package/src/extension/team-tool/context.ts +0 -149
  228. package/src/extension/team-tool/destructive-gate.ts +0 -52
  229. package/src/extension/team-tool/doctor.ts +0 -431
  230. package/src/extension/team-tool/explain.ts +0 -282
  231. package/src/extension/team-tool/failure-patterns.ts +0 -118
  232. package/src/extension/team-tool/goal-wrap.ts +0 -330
  233. package/src/extension/team-tool/goal.ts +0 -556
  234. package/src/extension/team-tool/handle-schedule.ts +0 -332
  235. package/src/extension/team-tool/handle-settings.ts +0 -520
  236. package/src/extension/team-tool/health-monitor.ts +0 -481
  237. package/src/extension/team-tool/inspect.ts +0 -88
  238. package/src/extension/team-tool/intent-policy.ts +0 -45
  239. package/src/extension/team-tool/lifecycle-actions.ts +0 -615
  240. package/src/extension/team-tool/orchestrate.ts +0 -98
  241. package/src/extension/team-tool/parallel-dispatch.ts +0 -183
  242. package/src/extension/team-tool/plan.ts +0 -50
  243. package/src/extension/team-tool/respond.ts +0 -150
  244. package/src/extension/team-tool/run-not-found.ts +0 -49
  245. package/src/extension/team-tool/run.ts +0 -1035
  246. package/src/extension/team-tool/status.ts +0 -260
  247. package/src/extension/team-tool/workflow-manage.ts +0 -261
  248. package/src/extension/team-tool-types.ts +0 -26
  249. package/src/extension/team-tool.ts +0 -1116
  250. package/src/extension/tool-result.ts +0 -16
  251. package/src/extension/validate-resources.ts +0 -108
  252. package/src/hooks/registry.ts +0 -200
  253. package/src/hooks/types.ts +0 -69
  254. package/src/i18n.ts +0 -212
  255. package/src/observability/correlation.ts +0 -50
  256. package/src/observability/event-bus.ts +0 -86
  257. package/src/observability/event-to-metric.ts +0 -170
  258. package/src/observability/exporters/adapter.ts +0 -27
  259. package/src/observability/exporters/otlp-exporter.ts +0 -356
  260. package/src/observability/exporters/prometheus-exporter.ts +0 -54
  261. package/src/observability/metric-registry.ts +0 -100
  262. package/src/observability/metric-retention.ts +0 -64
  263. package/src/observability/metric-sink.ts +0 -99
  264. package/src/observability/metrics-primitives.ts +0 -219
  265. package/src/plugins/plugin-define.ts +0 -6
  266. package/src/plugins/plugin-registry.ts +0 -32
  267. package/src/plugins/plugins/index.ts +0 -3
  268. package/src/plugins/plugins/nextjs.ts +0 -19
  269. package/src/plugins/plugins/vite.ts +0 -10
  270. package/src/plugins/plugins/vitest.ts +0 -9
  271. package/src/prompt/prompt-runtime.ts +0 -380
  272. package/src/runtime/adaptive-plan.ts +0 -563
  273. package/src/runtime/agent-control.ts +0 -215
  274. package/src/runtime/agent-memory.ts +0 -81
  275. package/src/runtime/agent-observability.ts +0 -122
  276. package/src/runtime/anchor-manager.ts +0 -475
  277. package/src/runtime/async-marker.ts +0 -32
  278. package/src/runtime/async-runner.ts +0 -381
  279. package/src/runtime/attention-events.ts +0 -28
  280. package/src/runtime/auto-summarize.ts +0 -344
  281. package/src/runtime/background-runner.ts +0 -837
  282. package/src/runtime/batch-barrier.ts +0 -147
  283. package/src/runtime/broker-issuer.ts +0 -37
  284. package/src/runtime/cancellation-token.ts +0 -99
  285. package/src/runtime/cancellation.ts +0 -99
  286. package/src/runtime/capability-inventory.ts +0 -137
  287. package/src/runtime/chain-parser.ts +0 -237
  288. package/src/runtime/chain-runner.ts +0 -606
  289. package/src/runtime/checkpoint.ts +0 -291
  290. package/src/runtime/child-pi-constants.ts +0 -42
  291. package/src/runtime/child-pi-kill.ts +0 -180
  292. package/src/runtime/child-pi-pool.ts +0 -68
  293. package/src/runtime/child-pi-spawn.ts +0 -287
  294. package/src/runtime/child-pi-steering.ts +0 -128
  295. package/src/runtime/child-pi-streams.ts +0 -296
  296. package/src/runtime/child-pi-transcript.ts +0 -169
  297. package/src/runtime/child-pi.ts +0 -1105
  298. package/src/runtime/coalesce-tasks.ts +0 -268
  299. package/src/runtime/code-summary.ts +0 -292
  300. package/src/runtime/command-trace.ts +0 -105
  301. package/src/runtime/compact-pipeline.ts +0 -56
  302. package/src/runtime/compact-stages/ansi-strip-stage.ts +0 -25
  303. package/src/runtime/compact-stages/blank-collapse-stage.ts +0 -31
  304. package/src/runtime/compact-stages/deduplicate-stage.ts +0 -34
  305. package/src/runtime/compact-stages/head-snap-stage.ts +0 -57
  306. package/src/runtime/compact-stages/index.ts +0 -23
  307. package/src/runtime/compact-stages/tail-capture-stage.ts +0 -77
  308. package/src/runtime/compact-stages/truncation-stage.ts +0 -74
  309. package/src/runtime/compaction-summary.ts +0 -278
  310. package/src/runtime/completion-guard.ts +0 -207
  311. package/src/runtime/concurrency.ts +0 -58
  312. package/src/runtime/crash-classification.ts +0 -229
  313. package/src/runtime/crash-recovery.ts +0 -577
  314. package/src/runtime/crew-agent-records.ts +0 -593
  315. package/src/runtime/crew-agent-runtime.ts +0 -62
  316. package/src/runtime/crew-broker-child.ts +0 -88
  317. package/src/runtime/crew-broker-client.ts +0 -673
  318. package/src/runtime/crew-broker-tokens.ts +0 -84
  319. package/src/runtime/crew-broker.ts +0 -1276
  320. package/src/runtime/crew-hooks.ts +0 -227
  321. package/src/runtime/cross-extension-rpc.ts +0 -143
  322. package/src/runtime/custom-tools/irc-tool.ts +0 -282
  323. package/src/runtime/custom-tools/submit-result-tool.ts +0 -102
  324. package/src/runtime/deadletter.ts +0 -47
  325. package/src/runtime/delivery-coordinator.ts +0 -211
  326. package/src/runtime/delta-conflict.ts +0 -348
  327. package/src/runtime/deterministic-ast.ts +0 -161
  328. package/src/runtime/diagnostic-export.ts +0 -171
  329. package/src/runtime/direct-run.ts +0 -45
  330. package/src/runtime/dwf-state-store.ts +0 -102
  331. package/src/runtime/dynamic-workflow-context.ts +0 -1016
  332. package/src/runtime/dynamic-workflow-runner.ts +0 -310
  333. package/src/runtime/effectiveness.ts +0 -90
  334. package/src/runtime/errors/crew-errors.ts +0 -162
  335. package/src/runtime/event-stream-bridge.ts +0 -98
  336. package/src/runtime/foreground-control.ts +0 -193
  337. package/src/runtime/foreground-watchdog.ts +0 -132
  338. package/src/runtime/global-worker-cap.ts +0 -96
  339. package/src/runtime/goal-achievement.ts +0 -148
  340. package/src/runtime/goal-evaluator.ts +0 -361
  341. package/src/runtime/goal-loop-runner.ts +0 -828
  342. package/src/runtime/goal-state-store.ts +0 -219
  343. package/src/runtime/green-contract.ts +0 -55
  344. package/src/runtime/group-join.ts +0 -267
  345. package/src/runtime/handoff-manager.ts +0 -598
  346. package/src/runtime/heartbeat-gradient.ts +0 -36
  347. package/src/runtime/heartbeat-watcher.ts +0 -239
  348. package/src/runtime/hidden-handoff.ts +0 -407
  349. package/src/runtime/important-line-classifier.ts +0 -140
  350. package/src/runtime/intercom-bridge.ts +0 -187
  351. package/src/runtime/iteration-hooks.ts +0 -305
  352. package/src/runtime/live-agent-control.ts +0 -136
  353. package/src/runtime/live-agent-manager.ts +0 -704
  354. package/src/runtime/live-control-realtime.ts +0 -56
  355. package/src/runtime/live-extension-bridge.ts +0 -148
  356. package/src/runtime/live-irc.ts +0 -97
  357. package/src/runtime/live-session-health.ts +0 -108
  358. package/src/runtime/live-session-runtime.ts +0 -1139
  359. package/src/runtime/loop-gates.ts +0 -128
  360. package/src/runtime/manifest-cache.ts +0 -375
  361. package/src/runtime/mcp-proxy.ts +0 -105
  362. package/src/runtime/metric-parser.ts +0 -36
  363. package/src/runtime/model-fallback.ts +0 -409
  364. package/src/runtime/model-resolver.ts +0 -126
  365. package/src/runtime/model-scope.ts +0 -158
  366. package/src/runtime/orphan-worker-registry.ts +0 -465
  367. package/src/runtime/output-validator.ts +0 -202
  368. package/src/runtime/overflow-recovery.ts +0 -206
  369. package/src/runtime/parallel-research.ts +0 -68
  370. package/src/runtime/parallel-utils.ts +0 -160
  371. package/src/runtime/parent-guard.ts +0 -134
  372. package/src/runtime/path-overlap.ts +0 -150
  373. package/src/runtime/peer-dep.ts +0 -292
  374. package/src/runtime/per-write-validator.ts +0 -181
  375. package/src/runtime/phase-progress.ts +0 -217
  376. package/src/runtime/phase-tracker.ts +0 -385
  377. package/src/runtime/pi-args.ts +0 -655
  378. package/src/runtime/pi-json-output.ts +0 -170
  379. package/src/runtime/pi-spawn.ts +0 -273
  380. package/src/runtime/pipeline-runner.ts +0 -523
  381. package/src/runtime/plan-templates.ts +0 -201
  382. package/src/runtime/policy-engine.ts +0 -115
  383. package/src/runtime/post-checks.ts +0 -142
  384. package/src/runtime/post-exit-stdio-guard.ts +0 -104
  385. package/src/runtime/process-lifecycle.ts +0 -491
  386. package/src/runtime/process-status.ts +0 -154
  387. package/src/runtime/progress-event-coalescer.ts +0 -44
  388. package/src/runtime/progress-tracker.ts +0 -124
  389. package/src/runtime/prose-compressor.ts +0 -162
  390. package/src/runtime/recovery-recipes.ts +0 -203
  391. package/src/runtime/replace.ts +0 -570
  392. package/src/runtime/resilient-edit.ts +0 -153
  393. package/src/runtime/result-extractor.ts +0 -213
  394. package/src/runtime/retry-executor.ts +0 -100
  395. package/src/runtime/retry-runner.ts +0 -336
  396. package/src/runtime/role-permission.ts +0 -59
  397. package/src/runtime/run-coalesced-task-group.ts +0 -308
  398. package/src/runtime/run-drift.ts +0 -219
  399. package/src/runtime/run-tracker.ts +0 -116
  400. package/src/runtime/runtime-policy.ts +0 -29
  401. package/src/runtime/runtime-resolver.ts +0 -172
  402. package/src/runtime/runtime-warmup.ts +0 -160
  403. package/src/runtime/scheduler.ts +0 -353
  404. package/src/runtime/semaphore.ts +0 -141
  405. package/src/runtime/sensitive-paths.ts +0 -93
  406. package/src/runtime/session-resources.ts +0 -25
  407. package/src/runtime/session-snapshot.ts +0 -59
  408. package/src/runtime/session-usage.ts +0 -79
  409. package/src/runtime/settings-store.ts +0 -155
  410. package/src/runtime/sidechain-output.ts +0 -35
  411. package/src/runtime/single-agent-compose.ts +0 -84
  412. package/src/runtime/skill-effectiveness.ts +0 -524
  413. package/src/runtime/skill-instructions.ts +0 -391
  414. package/src/runtime/stale-reconciler.ts +0 -680
  415. package/src/runtime/stream-preview.ts +0 -184
  416. package/src/runtime/streaming-output.ts +0 -50
  417. package/src/runtime/subagent-manager.ts +0 -561
  418. package/src/runtime/subprocess-tool-registry.ts +0 -70
  419. package/src/runtime/supervisor-contact.ts +0 -64
  420. package/src/runtime/task-display.ts +0 -52
  421. package/src/runtime/task-graph-scheduler.ts +0 -227
  422. package/src/runtime/task-graph.ts +0 -290
  423. package/src/runtime/task-health.ts +0 -83
  424. package/src/runtime/task-id.ts +0 -161
  425. package/src/runtime/task-output-context.ts +0 -602
  426. package/src/runtime/task-packet.ts +0 -268
  427. package/src/runtime/task-quality.ts +0 -199
  428. package/src/runtime/task-runner/capabilities.ts +0 -78
  429. package/src/runtime/task-runner/context-retrieval.ts +0 -163
  430. package/src/runtime/task-runner/live-executor.ts +0 -227
  431. package/src/runtime/task-runner/output-splitter.ts +0 -152
  432. package/src/runtime/task-runner/progress.ts +0 -157
  433. package/src/runtime/task-runner/prompt-builder.ts +0 -278
  434. package/src/runtime/task-runner/prompt-pipeline.ts +0 -88
  435. package/src/runtime/task-runner/result-utils.ts +0 -16
  436. package/src/runtime/task-runner/retrieval-orchestrator.ts +0 -310
  437. package/src/runtime/task-runner/run-projection.ts +0 -125
  438. package/src/runtime/task-runner/state-helpers.ts +0 -176
  439. package/src/runtime/task-runner/tail-read.ts +0 -34
  440. package/src/runtime/task-runner.ts +0 -1420
  441. package/src/runtime/team-runner-artifacts.ts +0 -13
  442. package/src/runtime/team-runner.ts +0 -1993
  443. package/src/runtime/tool-output-pruner.ts +0 -333
  444. package/src/runtime/tool-progress.ts +0 -278
  445. package/src/runtime/usage-tracker.ts +0 -73
  446. package/src/runtime/verification-gates.ts +0 -571
  447. package/src/runtime/verification-integrity.ts +0 -105
  448. package/src/runtime/verification-worktree.ts +0 -186
  449. package/src/runtime/worker-heartbeat.ts +0 -25
  450. package/src/runtime/worker-startup.ts +0 -83
  451. package/src/runtime/workflow-state.ts +0 -195
  452. package/src/runtime/workspace-lock.ts +0 -443
  453. package/src/runtime/workspace-tree.ts +0 -312
  454. package/src/runtime/yield-handler.ts +0 -224
  455. package/src/runtime/zombie-scanner.ts +0 -298
  456. package/src/schema/config-schema.ts +0 -327
  457. package/src/schema/team-tool-schema.ts +0 -415
  458. package/src/schema/validation-types.ts +0 -159
  459. package/src/skills/discover-skills.ts +0 -197
  460. package/src/skills/skill-templates.ts +0 -456
  461. package/src/skills/validate.ts +0 -285
  462. package/src/state/active-run-registry.ts +0 -439
  463. package/src/state/artifact-store.ts +0 -176
  464. package/src/state/atomic-write.ts +0 -903
  465. package/src/state/blob-store.ts +0 -308
  466. package/src/state/contracts.ts +0 -158
  467. package/src/state/crew-init.ts +0 -269
  468. package/src/state/decision-ledger.ts +0 -345
  469. package/src/state/event-log-rotation.ts +0 -342
  470. package/src/state/event-log.ts +0 -1311
  471. package/src/state/event-reconstructor.ts +0 -229
  472. package/src/state/gitignore-manager.ts +0 -46
  473. package/src/state/health-store.ts +0 -79
  474. package/src/state/hook-instinct-bridge.ts +0 -94
  475. package/src/state/hook-integrations.ts +0 -51
  476. package/src/state/instinct-store.ts +0 -275
  477. package/src/state/jsonl-writer.ts +0 -107
  478. package/src/state/locks.ts +0 -562
  479. package/src/state/mailbox.ts +0 -916
  480. package/src/state/observation-store.ts +0 -176
  481. package/src/state/run-cache.ts +0 -193
  482. package/src/state/run-graph.ts +0 -183
  483. package/src/state/run-metrics.ts +0 -165
  484. package/src/state/schedule.ts +0 -166
  485. package/src/state/session-state-map.ts +0 -51
  486. package/src/state/state-store.ts +0 -958
  487. package/src/state/task-claims.ts +0 -61
  488. package/src/state/tiered-eval.ts +0 -480
  489. package/src/state/types-eval.ts +0 -58
  490. package/src/state/types.ts +0 -440
  491. package/src/state/usage.ts +0 -138
  492. package/src/state/worker-atomic-writer.ts +0 -194
  493. package/src/subagents/async-entry.ts +0 -1
  494. package/src/subagents/index.ts +0 -3
  495. package/src/subagents/live/control.ts +0 -1
  496. package/src/subagents/live/manager.ts +0 -1
  497. package/src/subagents/live/realtime.ts +0 -1
  498. package/src/subagents/live/session-runtime.ts +0 -1
  499. package/src/subagents/manager.ts +0 -1
  500. package/src/subagents/spawn.ts +0 -1
  501. package/src/teams/discover-teams.ts +0 -187
  502. package/src/teams/team-config.ts +0 -27
  503. package/src/teams/team-serializer.ts +0 -38
  504. package/src/tools/safe-bash-extension.ts +0 -54
  505. package/src/tools/safe-bash.ts +0 -505
  506. package/src/types/diff.d.ts +0 -18
  507. package/src/types/new-api-types.ts +0 -35
  508. package/src/ui/agent-management-overlay.ts +0 -160
  509. package/src/ui/card-colors.ts +0 -139
  510. package/src/ui/crew-footer.ts +0 -102
  511. package/src/ui/crew-select-list.ts +0 -111
  512. package/src/ui/dashboard-panes/agents-pane.ts +0 -164
  513. package/src/ui/dashboard-panes/cancellation-pane.ts +0 -66
  514. package/src/ui/dashboard-panes/capability-pane.ts +0 -77
  515. package/src/ui/dashboard-panes/health-pane.ts +0 -31
  516. package/src/ui/dashboard-panes/mailbox-pane.ts +0 -35
  517. package/src/ui/dashboard-panes/metrics-pane.ts +0 -37
  518. package/src/ui/dashboard-panes/progress-pane.ts +0 -38
  519. package/src/ui/dashboard-panes/transcript-pane.ts +0 -10
  520. package/src/ui/deploy-bundled-themes.ts +0 -71
  521. package/src/ui/dwf-phase-display.ts +0 -151
  522. package/src/ui/dynamic-border.ts +0 -35
  523. package/src/ui/heartbeat-aggregator.ts +0 -74
  524. package/src/ui/key-utils.ts +0 -42
  525. package/src/ui/keybinding-map.ts +0 -248
  526. package/src/ui/layout-primitives.ts +0 -106
  527. package/src/ui/live-conversation-overlay.ts +0 -183
  528. package/src/ui/live-duration.ts +0 -55
  529. package/src/ui/live-run-sidebar.ts +0 -301
  530. package/src/ui/loaders.ts +0 -176
  531. package/src/ui/mascot.ts +0 -436
  532. package/src/ui/overlays/agent-picker-overlay.ts +0 -65
  533. package/src/ui/overlays/confirm-overlay.ts +0 -60
  534. package/src/ui/overlays/help-overlay.ts +0 -177
  535. package/src/ui/overlays/mailbox-compose-overlay.ts +0 -181
  536. package/src/ui/overlays/mailbox-compose-preview.ts +0 -78
  537. package/src/ui/overlays/mailbox-detail-overlay.ts +0 -154
  538. package/src/ui/pi-ui-compat.ts +0 -68
  539. package/src/ui/powerbar-publisher.ts +0 -459
  540. package/src/ui/render-coalescer.ts +0 -101
  541. package/src/ui/render-diff.ts +0 -160
  542. package/src/ui/render-scheduler.ts +0 -224
  543. package/src/ui/run-action-dispatcher.ts +0 -182
  544. package/src/ui/run-dashboard.ts +0 -913
  545. package/src/ui/run-event-bus.ts +0 -381
  546. package/src/ui/run-snapshot-cache.ts +0 -1057
  547. package/src/ui/settings-overlay.ts +0 -1067
  548. package/src/ui/snapshot-types.ts +0 -90
  549. package/src/ui/spinner.ts +0 -17
  550. package/src/ui/status-colors.ts +0 -143
  551. package/src/ui/syntax-highlight.ts +0 -136
  552. package/src/ui/terminal-status.ts +0 -269
  553. package/src/ui/theme-adapter.ts +0 -271
  554. package/src/ui/theme-discovery.ts +0 -199
  555. package/src/ui/tool-progress-formatter.ts +0 -93
  556. package/src/ui/tool-render.ts +0 -453
  557. package/src/ui/tool-renderers/brief-mode.ts +0 -225
  558. package/src/ui/tool-renderers/index.ts +0 -726
  559. package/src/ui/transcript-cache.ts +0 -128
  560. package/src/ui/transcript-entries.ts +0 -256
  561. package/src/ui/transcript-viewer.ts +0 -424
  562. package/src/ui/widget/index.ts +0 -357
  563. package/src/ui/widget/widget-formatters.ts +0 -182
  564. package/src/ui/widget/widget-model.ts +0 -110
  565. package/src/ui/widget/widget-renderer.ts +0 -182
  566. package/src/ui/widget/widget-types.ts +0 -36
  567. package/src/utils/bm25-search.ts +0 -235
  568. package/src/utils/completion-dedupe.ts +0 -63
  569. package/src/utils/conflict-detect.ts +0 -668
  570. package/src/utils/env-allowlist.ts +0 -30
  571. package/src/utils/env-filter.ts +0 -155
  572. package/src/utils/file-coalescer.ts +0 -98
  573. package/src/utils/fingerprint.ts +0 -180
  574. package/src/utils/frontmatter.ts +0 -70
  575. package/src/utils/fs-watch.ts +0 -37
  576. package/src/utils/gh-protocol.ts +0 -556
  577. package/src/utils/git.ts +0 -260
  578. package/src/utils/guards.ts +0 -107
  579. package/src/utils/ids.ts +0 -24
  580. package/src/utils/incremental-reader.ts +0 -220
  581. package/src/utils/internal-error.ts +0 -10
  582. package/src/utils/names.ts +0 -36
  583. package/src/utils/ndjson.ts +0 -115
  584. package/src/utils/paths.ts +0 -227
  585. package/src/utils/project-detector.ts +0 -160
  586. package/src/utils/redaction.ts +0 -347
  587. package/src/utils/resolve-shell.ts +0 -36
  588. package/src/utils/run-watcher-registry.ts +0 -152
  589. package/src/utils/safe-paths.ts +0 -383
  590. package/src/utils/scan-cache.ts +0 -144
  591. package/src/utils/session-utils.ts +0 -110
  592. package/src/utils/sleep.ts +0 -54
  593. package/src/utils/socket-path.ts +0 -127
  594. package/src/utils/sse-parser.ts +0 -129
  595. package/src/utils/task-name-generator.ts +0 -337
  596. package/src/utils/timings.ts +0 -33
  597. package/src/utils/token-counter.ts +0 -200
  598. package/src/utils/visual.ts +0 -207
  599. package/src/workflows/cost-estimator.ts +0 -34
  600. package/src/workflows/discover-workflows.ts +0 -290
  601. package/src/workflows/intermediate-store.ts +0 -166
  602. package/src/workflows/preflight-validator.ts +0 -168
  603. package/src/workflows/topology-analyzer.ts +0 -203
  604. package/src/workflows/validate-workflow.ts +0 -50
  605. package/src/workflows/workflow-config.ts +0 -70
  606. package/src/workflows/workflow-serializer.ts +0 -32
  607. package/src/worktree/branch-freshness.ts +0 -112
  608. package/src/worktree/cleanup.ts +0 -341
  609. 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.