@entelligentsia/forgecli 1.0.21 → 1.0.25

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 (232) hide show
  1. package/CHANGELOG.md +88 -0
  2. package/dist/CHANGELOG-forge-plugin.md +118 -0
  3. package/dist/extensions/forgecli/forge-tools.d.ts +1 -0
  4. package/dist/extensions/forgecli/forge-tools.js +73 -0
  5. package/dist/extensions/forgecli/forge-tools.js.map +1 -1
  6. package/dist/extensions/forgecli/lib/forge-root.d.ts +5 -0
  7. package/dist/extensions/forgecli/lib/forge-root.js +14 -1
  8. package/dist/extensions/forgecli/lib/forge-root.js.map +1 -1
  9. package/dist/extensions/forgecli/orchestrators/fix-bug.d.ts +1 -0
  10. package/dist/extensions/forgecli/orchestrators/fix-bug.js +26 -0
  11. package/dist/extensions/forgecli/orchestrators/fix-bug.js.map +1 -1
  12. package/dist/extensions/forgecli/orchestrators/run-sprint.js +49 -0
  13. package/dist/extensions/forgecli/orchestrators/run-sprint.js.map +1 -1
  14. package/dist/forge-payload/.base-pack/workflows/_fragments/event-emission-schema.md +4 -0
  15. package/dist/forge-payload/.base-pack/workflows/_fragments/event-vocabulary.md +88 -0
  16. package/dist/forge-payload/.base-pack/workflows/commit_task.md +41 -38
  17. package/dist/forge-payload/.base-pack/workflows/implement_plan.md +3 -3
  18. package/dist/forge-payload/.base-pack/workflows-js/wfl-fix-bug.js +42 -6
  19. package/dist/forge-payload/.base-pack/workflows-js/wfl-run-task.js +32 -1
  20. package/dist/forge-payload/.claude-plugin/plugin.json +1 -1
  21. package/dist/forge-payload/.schemas/enum-catalog.json +2 -2
  22. package/dist/forge-payload/.schemas/event.schema.json +8 -3
  23. package/dist/forge-payload/.schemas/migrations.json +56 -0
  24. package/dist/forge-payload/integrity.json +3 -3
  25. package/dist/forge-payload/meta/store-schema/event.schema.md +7 -0
  26. package/dist/forge-payload/meta/workflows/_fragments/event-emission-schema.md +4 -0
  27. package/dist/forge-payload/meta/workflows/_fragments/event-vocabulary.md +88 -0
  28. package/dist/forge-payload/meta/workflows/meta-commit.md +46 -43
  29. package/dist/forge-payload/meta/workflows/meta-fix-bug.md +7 -2
  30. package/dist/forge-payload/meta/workflows/meta-implement.md +3 -3
  31. package/dist/forge-payload/meta/workflows/meta-orchestrate.md +4 -1
  32. package/dist/forge-payload/schemas/enum-catalog.json +2 -2
  33. package/dist/forge-payload/schemas/event.schema.json +8 -3
  34. package/dist/forge-payload/schemas/structure-manifest.json +4 -2
  35. package/dist/forge-payload/tools/commit-task.cjs +218 -0
  36. package/dist/forge-payload/tools/store-cli.cjs +6 -1
  37. package/node_modules/@mariozechner/clipboard/package.json +2 -1
  38. package/node_modules/@mariozechner/clipboard-linux-x64-musl/README.md +3 -0
  39. package/node_modules/@mariozechner/clipboard-linux-x64-musl/package.json +25 -0
  40. package/package.json +2 -2
  41. package/dist/extensions/forgecli/add-pipeline.d.ts +0 -19
  42. package/dist/extensions/forgecli/add-pipeline.js +0 -143
  43. package/dist/extensions/forgecli/add-pipeline.js.map +0 -1
  44. package/dist/extensions/forgecli/add-task.d.ts +0 -20
  45. package/dist/extensions/forgecli/add-task.js +0 -154
  46. package/dist/extensions/forgecli/add-task.js.map +0 -1
  47. package/dist/extensions/forgecli/approve.d.ts +0 -22
  48. package/dist/extensions/forgecli/approve.js +0 -152
  49. package/dist/extensions/forgecli/approve.js.map +0 -1
  50. package/dist/extensions/forgecli/banner.d.ts +0 -10
  51. package/dist/extensions/forgecli/banner.js +0 -36
  52. package/dist/extensions/forgecli/banner.js.map +0 -1
  53. package/dist/extensions/forgecli/calibrate.d.ts +0 -64
  54. package/dist/extensions/forgecli/calibrate.js +0 -481
  55. package/dist/extensions/forgecli/calibrate.js.map +0 -1
  56. package/dist/extensions/forgecli/collate.d.ts +0 -22
  57. package/dist/extensions/forgecli/collate.js +0 -134
  58. package/dist/extensions/forgecli/collate.js.map +0 -1
  59. package/dist/extensions/forgecli/commit.d.ts +0 -22
  60. package/dist/extensions/forgecli/commit.js +0 -152
  61. package/dist/extensions/forgecli/commit.js.map +0 -1
  62. package/dist/extensions/forgecli/config-command.d.ts +0 -8
  63. package/dist/extensions/forgecli/config-command.js +0 -67
  64. package/dist/extensions/forgecli/config-command.js.map +0 -1
  65. package/dist/extensions/forgecli/config-layer.d.ts +0 -53
  66. package/dist/extensions/forgecli/config-layer.js +0 -72
  67. package/dist/extensions/forgecli/config-layer.js.map +0 -1
  68. package/dist/extensions/forgecli/config-writer.d.ts +0 -16
  69. package/dist/extensions/forgecli/config-writer.js +0 -69
  70. package/dist/extensions/forgecli/config-writer.js.map +0 -1
  71. package/dist/extensions/forgecli/enhance.d.ts +0 -27
  72. package/dist/extensions/forgecli/enhance.js +0 -199
  73. package/dist/extensions/forgecli/enhance.js.map +0 -1
  74. package/dist/extensions/forgecli/fix-bug.d.ts +0 -85
  75. package/dist/extensions/forgecli/fix-bug.js +0 -1580
  76. package/dist/extensions/forgecli/fix-bug.js.map +0 -1
  77. package/dist/extensions/forgecli/forge-header.d.ts +0 -12
  78. package/dist/extensions/forgecli/forge-header.js +0 -114
  79. package/dist/extensions/forgecli/forge-header.js.map +0 -1
  80. package/dist/extensions/forgecli/forge-init.d.ts +0 -26
  81. package/dist/extensions/forgecli/forge-init.js +0 -514
  82. package/dist/extensions/forgecli/forge-init.js.map +0 -1
  83. package/dist/extensions/forgecli/forge-root.d.ts +0 -10
  84. package/dist/extensions/forgecli/forge-root.js +0 -62
  85. package/dist/extensions/forgecli/forge-root.js.map +0 -1
  86. package/dist/extensions/forgecli/forge-update-command.d.ts +0 -100
  87. package/dist/extensions/forgecli/forge-update-command.js +0 -435
  88. package/dist/extensions/forgecli/forge-update-command.js.map +0 -1
  89. package/dist/extensions/forgecli/friction-emit.d.ts +0 -99
  90. package/dist/extensions/forgecli/friction-emit.js +0 -245
  91. package/dist/extensions/forgecli/friction-emit.js.map +0 -1
  92. package/dist/extensions/forgecli/implement.d.ts +0 -22
  93. package/dist/extensions/forgecli/implement.js +0 -170
  94. package/dist/extensions/forgecli/implement.js.map +0 -1
  95. package/dist/extensions/forgecli/init-context.d.ts +0 -99
  96. package/dist/extensions/forgecli/init-context.js +0 -178
  97. package/dist/extensions/forgecli/init-context.js.map +0 -1
  98. package/dist/extensions/forgecli/init-progress.d.ts +0 -39
  99. package/dist/extensions/forgecli/init-progress.js +0 -117
  100. package/dist/extensions/forgecli/init-progress.js.map +0 -1
  101. package/dist/extensions/forgecli/input-router.d.ts +0 -33
  102. package/dist/extensions/forgecli/input-router.js +0 -136
  103. package/dist/extensions/forgecli/input-router.js.map +0 -1
  104. package/dist/extensions/forgecli/lib/halt-advisor.d.ts +0 -59
  105. package/dist/extensions/forgecli/lib/halt-advisor.js +0 -113
  106. package/dist/extensions/forgecli/lib/halt-advisor.js.map +0 -1
  107. package/dist/extensions/forgecli/lib/orchestrator-preflight.d.ts +0 -46
  108. package/dist/extensions/forgecli/lib/orchestrator-preflight.js +0 -64
  109. package/dist/extensions/forgecli/lib/orchestrator-preflight.js.map +0 -1
  110. package/dist/extensions/forgecli/materialize.d.ts +0 -16
  111. package/dist/extensions/forgecli/materialize.js +0 -195
  112. package/dist/extensions/forgecli/materialize.js.map +0 -1
  113. package/dist/extensions/forgecli/migrate.d.ts +0 -22
  114. package/dist/extensions/forgecli/migrate.js +0 -260
  115. package/dist/extensions/forgecli/migrate.js.map +0 -1
  116. package/dist/extensions/forgecli/migration-engine.d.ts +0 -117
  117. package/dist/extensions/forgecli/migration-engine.js +0 -563
  118. package/dist/extensions/forgecli/migration-engine.js.map +0 -1
  119. package/dist/extensions/forgecli/model-registry.d.ts +0 -61
  120. package/dist/extensions/forgecli/model-registry.js +0 -127
  121. package/dist/extensions/forgecli/model-registry.js.map +0 -1
  122. package/dist/extensions/forgecli/model-resolver.d.ts +0 -32
  123. package/dist/extensions/forgecli/model-resolver.js +0 -65
  124. package/dist/extensions/forgecli/model-resolver.js.map +0 -1
  125. package/dist/extensions/forgecli/model-validator.d.ts +0 -29
  126. package/dist/extensions/forgecli/model-validator.js +0 -107
  127. package/dist/extensions/forgecli/model-validator.js.map +0 -1
  128. package/dist/extensions/forgecli/orchestrator-status-bar.d.ts +0 -26
  129. package/dist/extensions/forgecli/orchestrator-status-bar.js +0 -213
  130. package/dist/extensions/forgecli/orchestrator-status-bar.js.map +0 -1
  131. package/dist/extensions/forgecli/plan.d.ts +0 -22
  132. package/dist/extensions/forgecli/plan.js +0 -167
  133. package/dist/extensions/forgecli/plan.js.map +0 -1
  134. package/dist/extensions/forgecli/quiz-agent.d.ts +0 -17
  135. package/dist/extensions/forgecli/quiz-agent.js +0 -98
  136. package/dist/extensions/forgecli/quiz-agent.js.map +0 -1
  137. package/dist/extensions/forgecli/read-command.d.ts +0 -2
  138. package/dist/extensions/forgecli/read-command.js +0 -100
  139. package/dist/extensions/forgecli/read-command.js.map +0 -1
  140. package/dist/extensions/forgecli/regenerate.d.ts +0 -40
  141. package/dist/extensions/forgecli/regenerate.js +0 -438
  142. package/dist/extensions/forgecli/regenerate.js.map +0 -1
  143. package/dist/extensions/forgecli/remove-command.d.ts +0 -17
  144. package/dist/extensions/forgecli/remove-command.js +0 -124
  145. package/dist/extensions/forgecli/remove-command.js.map +0 -1
  146. package/dist/extensions/forgecli/report-bug.d.ts +0 -25
  147. package/dist/extensions/forgecli/report-bug.js +0 -159
  148. package/dist/extensions/forgecli/report-bug.js.map +0 -1
  149. package/dist/extensions/forgecli/retrospective.d.ts +0 -20
  150. package/dist/extensions/forgecli/retrospective.js +0 -126
  151. package/dist/extensions/forgecli/retrospective.js.map +0 -1
  152. package/dist/extensions/forgecli/review-code.d.ts +0 -35
  153. package/dist/extensions/forgecli/review-code.js +0 -196
  154. package/dist/extensions/forgecli/review-code.js.map +0 -1
  155. package/dist/extensions/forgecli/review-plan.d.ts +0 -35
  156. package/dist/extensions/forgecli/review-plan.js +0 -200
  157. package/dist/extensions/forgecli/review-plan.js.map +0 -1
  158. package/dist/extensions/forgecli/run-sprint.d.ts +0 -27
  159. package/dist/extensions/forgecli/run-sprint.js +0 -716
  160. package/dist/extensions/forgecli/run-sprint.js.map +0 -1
  161. package/dist/extensions/forgecli/run-task.d.ts +0 -204
  162. package/dist/extensions/forgecli/run-task.js +0 -1403
  163. package/dist/extensions/forgecli/run-task.js.map +0 -1
  164. package/dist/extensions/forgecli/skill-curation-flag.d.ts +0 -21
  165. package/dist/extensions/forgecli/skill-curation-flag.js +0 -71
  166. package/dist/extensions/forgecli/skill-curation-flag.js.map +0 -1
  167. package/dist/extensions/forgecli/skill-curator-subagent.d.ts +0 -102
  168. package/dist/extensions/forgecli/skill-curator-subagent.js +0 -339
  169. package/dist/extensions/forgecli/skill-curator-subagent.js.map +0 -1
  170. package/dist/extensions/forgecli/skill-retriever.d.ts +0 -84
  171. package/dist/extensions/forgecli/skill-retriever.js +0 -246
  172. package/dist/extensions/forgecli/skill-retriever.js.map +0 -1
  173. package/dist/extensions/forgecli/skill-usage-tracker.d.ts +0 -91
  174. package/dist/extensions/forgecli/skill-usage-tracker.js +0 -224
  175. package/dist/extensions/forgecli/skill-usage-tracker.js.map +0 -1
  176. package/dist/extensions/forgecli/sprint-intake.d.ts +0 -10
  177. package/dist/extensions/forgecli/sprint-intake.js +0 -91
  178. package/dist/extensions/forgecli/sprint-intake.js.map +0 -1
  179. package/dist/extensions/forgecli/sprint-plan.d.ts +0 -14
  180. package/dist/extensions/forgecli/sprint-plan.js +0 -122
  181. package/dist/extensions/forgecli/sprint-plan.js.map +0 -1
  182. package/dist/extensions/forgecli/status-command.d.ts +0 -19
  183. package/dist/extensions/forgecli/status-command.js +0 -140
  184. package/dist/extensions/forgecli/status-command.js.map +0 -1
  185. package/dist/extensions/forgecli/store-error-remediation.d.ts +0 -65
  186. package/dist/extensions/forgecli/store-error-remediation.js +0 -307
  187. package/dist/extensions/forgecli/store-error-remediation.js.map +0 -1
  188. package/dist/extensions/forgecli/store-query.d.ts +0 -22
  189. package/dist/extensions/forgecli/store-query.js +0 -107
  190. package/dist/extensions/forgecli/store-query.js.map +0 -1
  191. package/dist/extensions/forgecli/store-repair.d.ts +0 -17
  192. package/dist/extensions/forgecli/store-repair.js +0 -123
  193. package/dist/extensions/forgecli/store-repair.js.map +0 -1
  194. package/dist/extensions/forgecli/store-resolver.d.ts +0 -56
  195. package/dist/extensions/forgecli/store-resolver.js +0 -263
  196. package/dist/extensions/forgecli/store-resolver.js.map +0 -1
  197. package/dist/extensions/forgecli/store-validator.d.ts +0 -16
  198. package/dist/extensions/forgecli/store-validator.js +0 -32
  199. package/dist/extensions/forgecli/store-validator.js.map +0 -1
  200. package/dist/extensions/forgecli/test-orchestrate.d.ts +0 -2
  201. package/dist/extensions/forgecli/test-orchestrate.js +0 -182
  202. package/dist/extensions/forgecli/test-orchestrate.js.map +0 -1
  203. package/dist/extensions/forgecli/thread-switcher.d.ts +0 -5
  204. package/dist/extensions/forgecli/thread-switcher.js +0 -189
  205. package/dist/extensions/forgecli/thread-switcher.js.map +0 -1
  206. package/dist/extensions/forgecli/transition-guard.d.ts +0 -20
  207. package/dist/extensions/forgecli/transition-guard.js +0 -89
  208. package/dist/extensions/forgecli/transition-guard.js.map +0 -1
  209. package/dist/extensions/forgecli/update-check.d.ts +0 -37
  210. package/dist/extensions/forgecli/update-check.js +0 -185
  211. package/dist/extensions/forgecli/update-check.js.map +0 -1
  212. package/dist/extensions/forgecli/update-tools.d.ts +0 -23
  213. package/dist/extensions/forgecli/update-tools.js +0 -135
  214. package/dist/extensions/forgecli/update-tools.js.map +0 -1
  215. package/dist/extensions/forgecli/validate.d.ts +0 -22
  216. package/dist/extensions/forgecli/validate.js +0 -152
  217. package/dist/extensions/forgecli/validate.js.map +0 -1
  218. package/dist/extensions/forgecli/viewport-events.d.ts +0 -78
  219. package/dist/extensions/forgecli/viewport-events.js +0 -243
  220. package/dist/extensions/forgecli/viewport-events.js.map +0 -1
  221. package/dist/extensions/forgecli/viewport-renderer.d.ts +0 -83
  222. package/dist/extensions/forgecli/viewport-renderer.js +0 -233
  223. package/dist/extensions/forgecli/viewport-renderer.js.map +0 -1
  224. package/dist/extensions/forgecli/viewport-theme.d.ts +0 -11
  225. package/dist/extensions/forgecli/viewport-theme.js +0 -128
  226. package/dist/extensions/forgecli/viewport-theme.js.map +0 -1
  227. package/dist/extensions/forgecli/whats-new-widget.d.ts +0 -26
  228. package/dist/extensions/forgecli/whats-new-widget.js +0 -376
  229. package/dist/extensions/forgecli/whats-new-widget.js.map +0 -1
  230. package/dist/extensions/forgecli/whats-new.d.ts +0 -120
  231. package/dist/extensions/forgecli/whats-new.js +0 -470
  232. package/dist/extensions/forgecli/whats-new.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -7,6 +7,94 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.0.25] — 2026-06-06
11
+
12
+ Coordinated release matching forge plugin **v1.2.21**. Both changes come from
13
+ the first live firing of the deterministic commit phase (HELLO-BUG-002
14
+ transcript analysis).
15
+
16
+ ### Added
17
+
18
+ - **`forge_commit` named tool** — the commit phase's primary invocation
19
+ surface on forgecli: typed TypeBox params (`entity`, `id`, `message`,
20
+ `trailer`, `also[]`, `dryRun`, `skipGate`; deliberately **no `force`** —
21
+ operator-gated, never reachable from a subagent), argv-array spawn of
22
+ `commit-task.cjs` (no shell-quoting of the commit message), terminal-status
23
+ phase-ownership guard, full hook/governor visibility. Injected into every
24
+ subagent via the standard `ForgeToolDefs` surface.
25
+
26
+ ### Fixed
27
+
28
+ - **fix-bug pipeline now performs the orchestrator-owned post-triage status
29
+ transitions** (`reported → triaged → in-progress`, per `meta-fix-bug.md`
30
+ step 2). Previously unimplemented: every bug reached the commit phase still
31
+ `reported`, tripping `commit-task`'s status guard and sending the subagent
32
+ through an illegal-transition recovery loop. Idempotent on resume
33
+ (`postTriageTransitions` helper, unit-tested).
34
+ - Re-vendored plugin payload at **v1.2.21** (commit-task check-ignore
35
+ pre-filter + nothing-to-commit no-op success).
36
+
37
+ ## [1.0.24] — 2026-06-06
38
+
39
+ ### Added
40
+
41
+ - **`forgeRoot` self-heal** (testbench clone-portability). A git-tracked
42
+ `.forge/config.json` may carry a `paths.forgeRoot` stamped on another
43
+ machine (global npm prefix, Claude plugin cache). When the configured path
44
+ does not exist, `discoverForgeConfig` now falls back to this forgecli's
45
+ bundled payload instead of handing callers a dangling root that breaks
46
+ `forge_store` (and every Forge command) on a fresh clone. The original
47
+ path is preserved in `healedFrom` for diagnostics. Enables the
48
+ forge-testbench *clone → main → run* contract.
49
+
50
+ ## [1.0.23] — 2026-06-06
51
+
52
+ Coordinated release matching forge plugin **v1.2.20** (deterministic commit
53
+ choreography — forge-engineering#40).
54
+
55
+ ### Changed
56
+
57
+ - **Commit phase cost collapse.** `forge.bundledVersion` 1.2.18 → 1.2.20:
58
+ the bundled `commit_task.md` now routes the entire commit choreography
59
+ through the new `commit-task.cjs` (added to `TOOLS_TO_COPY`) — preflight
60
+ gate, status precondition, staging from `files_changed` provenance,
61
+ commit-boundary guard, `git commit`, terminal transition in ONE tool call.
62
+ The commit phase, previously the most expensive phase of the pipeline
63
+ (15–31% of run input tokens; 25–55 turns on glm-4.7), shrinks to
64
+ inspect-once → craft message → one tool call. The generated workflow also
65
+ shrank 5.2KB → 3.9KB of per-turn context.
66
+ - New allowlist pin: workflow-referenced tools (invisible to the TS
67
+ source-scan) are now asserted present in `TOOLS_TO_COPY` —
68
+ `commit-task.cjs` is the first entry.
69
+
70
+ ## [1.0.22] — 2026-06-06
71
+
72
+ Coordinated release matching forge plugin **v1.2.18** (event-type vocabulary
73
+ spec owner — forge-engineering#39).
74
+
75
+ ### Fixed
76
+
77
+ - **Bug-pipeline fail events are no longer dropped.** `BUG_TYPE_TOKENS`'
78
+ `fix-revision-requested` (approve fail) and `bug-commit-failed` (commit
79
+ fail) were rejected by the bundled event schema since their introduction —
80
+ every fix-bug approve-revision/commit-failure event and its token telemetry
81
+ was silently discarded (warn-and-continue). The re-vendored v1.2.18 payload
82
+ accepts them; `forge.bundledVersion` pin moved 1.0.10 → 1.2.18.
83
+
84
+ ### Added
85
+
86
+ - **Sprint-grain lifecycle events.** `forge:run-sprint` now store-emits
87
+ `sprint-start` (once, before the task loop, fresh starts only) and
88
+ `task-dispatch` (before each task dispatch), completing the four-token
89
+ sprint vocabulary it already half-emitted (`sprint-complete`/
90
+ `sprint-halted`) — parity with the `wfl:run-sprint` JS driver.
91
+ - **Event-vocabulary contract test**
92
+ (`test/extensions/forgecli/event-vocabulary-contract.test.ts`): every
93
+ store-emitted `type` token in the orchestrators and skill-curation
94
+ emitters must be a member of the vendored schema enum. This is the
95
+ recurrence guard for the #39 drift class — an invented token now fails CI
96
+ instead of silently dropping events at runtime.
97
+
10
98
  ## [1.0.21] — 2026-06-05
11
99
 
12
100
  The transcript-archive release: every orchestrator run is now permanently
@@ -5,6 +5,124 @@ Format: newest first. Breaking changes are marked **△ Breaking**.
5
5
 
6
6
  ---
7
7
 
8
+ ## [1.2.21] — 2026-06-06
9
+
10
+ ### Fixed
11
+
12
+ - **`commit-task.cjs` hardened from its first live firing** (HELLO-BUG-002
13
+ transcript analysis, forge-engineering#40):
14
+ - Gitignored staging paths are pre-filtered (`git check-ignore`) and
15
+ warn-skipped — one ignored path no longer aborts the all-or-nothing
16
+ `git add` (the agent had retried the identical failing command).
17
+ - A clean staging set is now a **no-op success**: the tool still seals the
18
+ record's terminal status and returns
19
+ `{ok:true, committed:false, reason:"nothing-to-commit"}` — a bug whose
20
+ fix is already at HEAD ends `fixed` without the agent improvising manual
21
+ transitions. Result JSON gains an explicit `committed` flag.
22
+
23
+ ### Changed
24
+
25
+ - **`meta-commit.md`: `forge_commit` named tool is the primary surface on
26
+ forgecli** — typed arguments, no shell-quoting of the commit message, full
27
+ hook/governor visibility. The `node .forge/tools/commit-task.cjs` bash form
28
+ remains the Claude Code fallback. The no-op outcome is documented as
29
+ success ("do not 'fix' a no-op by staging things yourself").
30
+
31
+ ---
32
+
33
+ ## [1.2.20] — 2026-06-06
34
+
35
+ ### Added
36
+
37
+ - **`tools/commit-task.cjs` — deterministic commit choreography**
38
+ (forge-engineering#40). The commit phase was the most expensive phase of
39
+ the pipeline (15–31% of run input tokens across nine instrumented runs)
40
+ because an LLM re-derived deterministic choreography turn-by-turn. The new
41
+ tool owns the whole sequence in one call: preflight gate → status
42
+ precondition (task `approved` / bug `in-progress`) → staging-set derivation
43
+ (record artifact dir + implementation `files_changed` provenance +
44
+ validated `--also` extras) → commit-boundary guard (aborts loudly when the
45
+ index already has staged changes) → `git commit` → terminal transition
46
+ (task → `committed`, bug → `fixed`). `--dry-run` honored, argv-array
47
+ spawns only, `--force` operator-gated transitively via store-cli's
48
+ `FORGE_ALLOW_FORCE`. 11 tests.
49
+ - **Implementation file provenance.** `PHASE_SUMMARY_SCHEMA` gains optional
50
+ `files_changed` (≤100 repo-relative paths); `meta-implement.md` instructs
51
+ recording every created/modified/deleted source path in
52
+ `IMPLEMENTATION-SUMMARY.json` — the commit phase no longer re-derives the
53
+ change surface from git.
54
+
55
+ ### Fixed
56
+
57
+ - **`meta-commit.md` no longer commands an impossible store write.** The old
58
+ step 5 said *"Write the SUMMARY and return"* — but `commit` is not in
59
+ `VALID_SUMMARY_PHASES`, so obedient agents hunted for a format that doesn't
60
+ exist and then burned the 3-retry write-verification loop on a write that
61
+ can never validate. The workflow now states the no-summary contract
62
+ explicitly.
63
+ - **Commit-phase flail loops closed at the prompt layer**: batched inspection
64
+ (`git diff --stat` once, one combined diff — never per-file), staging policy
65
+ owned by the tool (manual `git add`/`git commit`/`git reset` forbidden), and
66
+ the premature-commit/reset/redo loop explicitly banned.
67
+
68
+ ---
69
+
70
+ ## [1.2.19] — 2026-06-06
71
+
72
+ ### Fixed
73
+
74
+ - **JS workflow drivers no longer let subagents guess event `type` tokens**
75
+ (forge-engineering#39 Phase 3). `wfl-run-task.js` / `wfl-fix-bug.js` now
76
+ carry `TASK_TYPE_TOKENS` / `BUG_TYPE_TOKENS` maps (verbatim ports of
77
+ `_fragments/event-vocabulary.md`) and inject explicit per-phase guidance
78
+ into the emit instructions: start events MUST NOT carry `type`, complete
79
+ events set the exact pass/fail token, and copying the action value
80
+ (`start`/`complete`) into `type` is explicitly forbidden — that guess-leak
81
+ produced the schema-rejected `type:"start"`/`type:"complete"` store
82
+ residue observed in `events/bugs/`.
83
+ - **`wfl-run-task.js` `emitSkip()` skip events are no longer silently
84
+ rejected** — the event carried `iteration: 0` against the schema's
85
+ `minimum: 1`; every pre-task SKIP_STATUS event was dropped. Now `1`.
86
+
87
+ ---
88
+
89
+ ## [1.2.18] — 2026-06-06
90
+
91
+ ### Added
92
+
93
+ - **Event-type vocabulary now has a spec owner** (forge-engineering#39). New
94
+ canonical fragment `_fragments/event-vocabulary.md` defines the phase→`type`
95
+ token tables for task, bug, and sprint events (pass/fail tokens per phase,
96
+ conditional field requirements, kebab-case convention). The schema enum in
97
+ `event.schema.json` mirrors the fragment; emitters never invent tokens.
98
+ `meta-fix-bug.md`, `meta-orchestrate.md`, `event-emission-schema.md`, and
99
+ the store-schema docs reference it.
100
+
101
+ ### Fixed
102
+
103
+ - **Bug-pipeline fail events are no longer silently dropped.**
104
+ `event.schema.json` now accepts `fix-revision-requested` (approve fail) and
105
+ `bug-commit-failed` (commit fail) — the tokens forge-cli's fix-bug
106
+ orchestrator has emitted since 2026-05-15 but the enum rejected, discarding
107
+ the events and their token telemetry (observed live on testbench
108
+ CART-BUG-001).
109
+ - **`bug-skipped` pre-loop skip event is now schema-valid.** New enum token +
110
+ conditional (requires `bugId`, no phase/iteration). The base-pack
111
+ `wfl-fix-bug.js` skip emit was triple-broken: underscore `bug_skipped`
112
+ token (not in enum), missing required `eventId`/`model`/`provider`, and an
113
+ undeclared `reason` key (`additionalProperties: false`). It now emits a
114
+ valid event with the skip reason in `notes` and `model`/`provider` `"n/a"`.
115
+ `meta-fix-bug.md` step 1 references the canonical shape.
116
+
117
+ ### Removed
118
+
119
+ - **`bug-fixed` enum token retired** — defined since the bug-pipeline schema
120
+ landed, emitted by no surface, zero occurrences in any store. The
121
+ vocabulary fragment's invariant (every enum token has a named emitter)
122
+ forbids dead tokens.
123
+
124
+ ---
125
+
8
126
  ## [1.2.17] — 2026-06-04
9
127
 
10
128
  ### Fixed
@@ -1,6 +1,7 @@
1
1
  import type { ExtensionAPI, ToolDefinition } from "@earendil-works/pi-coding-agent";
2
2
  export interface ForgeToolDefs {
3
3
  store: ToolDefinition;
4
+ commit: ToolDefinition;
4
5
  collate: ToolDefinition;
5
6
  validateStore: ToolDefinition;
6
7
  config: ToolDefinition;
@@ -116,6 +116,7 @@ export function registerForgeTools(pi, forgeRoot, projectRoot) {
116
116
  const defs = {
117
117
  collate: buildForgeCollate(toolDir, projectRoot),
118
118
  store: buildForgeStore(toolDir, projectRoot),
119
+ commit: buildForgeCommit(toolDir, projectRoot),
119
120
  validateStore: buildForgeValidateStore(toolDir, projectRoot),
120
121
  config: buildForgeConfig(toolDir, projectRoot),
121
122
  storeDescribe: buildForgeStoreDescribe(toolDir, projectRoot),
@@ -210,6 +211,78 @@ function buildForgeCollate(toolDir, projectRoot) {
210
211
  },
211
212
  };
212
213
  }
214
+ // ── forge_commit ─────────────────────────────────────────────────────────────
215
+ function buildForgeCommit(toolDir, projectRoot) {
216
+ return {
217
+ name: "forge_commit",
218
+ label: "Forge Commit",
219
+ description: "Direct exec of forge/tools/commit-task.cjs — the deterministic commit choreography " +
220
+ "(forge-engineering#40). ONE call owns: preflight gate, status precondition " +
221
+ "(task 'approved' / bug 'in-progress'), staging-set derivation (record artifact dir + " +
222
+ "summaries.implementation.files_changed provenance + 'also' extras; gitignored paths " +
223
+ "warn-skipped), commit-boundary guard (aborts on a pre-staged index), git commit, and the " +
224
+ "terminal status transition (task→committed / bug→fixed).\n\n" +
225
+ "Success JSON: {ok:true, committed:true, sha, staged[]} — or the no-op success " +
226
+ "{ok:true, committed:false, reason:'nothing-to-commit'} when the staging set is already " +
227
+ "clean (e.g. the fix was at HEAD): the record is STILL sealed; do not improvise staging.\n\n" +
228
+ "Never run git add / git commit / git reset yourself in the commit phase.",
229
+ promptSnippet: "Commit phase: inspect once (git diff --stat), craft the message, then call forge_commit " +
230
+ "ONCE. Typed args — never pass the commit message through a bash string. " +
231
+ "committed:false with reason nothing-to-commit is SUCCESS.",
232
+ parameters: Type.Object({
233
+ entity: Type.Union([Type.Literal("task"), Type.Literal("bug")], {
234
+ description: "Record kind to seal.",
235
+ }),
236
+ id: Type.String({ description: "Record id, e.g. FORGE-S01-T01 or FORGE-BUG-001." }),
237
+ message: Type.String({
238
+ description: "Commit message (subject [+ body]). Include the record id; follow project conventions.",
239
+ }),
240
+ trailer: Type.Optional(Type.String({ description: "Optional Co-authored-by trailer line." })),
241
+ also: Type.Optional(Type.Array(Type.String(), {
242
+ description: "Extra repo-relative paths to stage — used when the implementation summary lacks files_changed provenance.",
243
+ })),
244
+ dryRun: Type.Optional(Type.Boolean({ description: "Print the staging plan without writing." })),
245
+ skipGate: Type.Optional(Type.Boolean({ description: "Skip the embedded preflight gate (orchestrator already ran it)." })),
246
+ // NOTE: no `force` parameter by design — --force is operator-gated
247
+ // (FORGE_ALLOW_FORCE) and must never be reachable from a subagent.
248
+ }, { additionalProperties: false }),
249
+ async execute(_toolCallId, _params, signal) {
250
+ const params = _params;
251
+ // Terminal-status ownership: forge_commit performs the terminal
252
+ // update-status internally — only the commit phase (or the
253
+ // orchestrator) may seal a record. Mirrors the forge_store
254
+ // update-status guard for `fixed`.
255
+ try {
256
+ if (params.entity === "bug" && !params.dryRun) {
257
+ assertBugStatusOwnership("forge_commit", "fixed");
258
+ }
259
+ }
260
+ catch (err) {
261
+ if (err instanceof PhaseOwnershipError)
262
+ return errResult(err.message);
263
+ throw err;
264
+ }
265
+ const toolPath = path.join(toolDir, "commit-task.cjs");
266
+ const argv = [`--${params.entity}`, params.id, "--message", params.message];
267
+ if (params.trailer)
268
+ argv.push("--trailer", params.trailer);
269
+ for (const p of params.also ?? [])
270
+ argv.push("--also", p);
271
+ if (params.dryRun)
272
+ argv.push("--dry-run");
273
+ if (params.skipGate)
274
+ argv.push("--skip-gate");
275
+ try {
276
+ const { stdout } = await runCjs(toolPath, argv, signal, 30_000, projectRoot);
277
+ return okResult(stdout);
278
+ }
279
+ catch (err) {
280
+ const e = err;
281
+ return errResult(`forge_commit failed: ${e.message ?? "unknown error"}`);
282
+ }
283
+ },
284
+ };
285
+ }
213
286
  // ── forge_store ──────────────────────────────────────────────────────────────
214
287
  function buildForgeStore(toolDir, projectRoot) {
215
288
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"forge-tools.js","sourceRoot":"","sources":["../../../src/extensions/forgecli/forge-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forge-tools.js","sourceRoot":"","sources":["../../../src/extensions/forgecli/forge-tools.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,11 @@
1
1
  export interface ForgeConfig {
2
2
  forgeRoot: string;
3
3
  configPath: string;
4
+ /** Set when the configured forgeRoot did not exist and resolution fell
5
+ * back to this forgecli's bundled payload (testbench clone-portability:
6
+ * tracked configs carry another machine's global npm / plugin-cache
7
+ * path). Carries the original dangling path for diagnostics. */
8
+ healedFrom?: string;
4
9
  }
5
10
  /**
6
11
  * Discover the forge plugin root AND return the config path so callers can
@@ -8,7 +8,8 @@
8
8
  // `subagent/agents.ts:96-106`.
9
9
  import * as fs from "node:fs";
10
10
  import * as path from "node:path";
11
- import { isFile } from "./shared-fs-utils.js";
11
+ import { resolveBundledPayloadRoot } from "./catalog-loader.js";
12
+ import { isDirectory, isFile } from "./shared-fs-utils.js";
12
13
  function findNearestForgeConfig(cwd) {
13
14
  let currentDir = cwd;
14
15
  while (true) {
@@ -57,6 +58,18 @@ export function discoverForgeConfig(cwd = process.cwd()) {
57
58
  // `<projectDir>/forge/forge`.
58
59
  const projectDir = path.dirname(path.dirname(configPath));
59
60
  const resolved = path.isAbsolute(forgeRootValue) ? forgeRootValue : path.resolve(projectDir, forgeRootValue);
61
+ // Self-heal a dangling forgeRoot (forge-engineering testbench parity):
62
+ // a git-tracked config may carry a path stamped on another machine
63
+ // (global npm prefix, Claude plugin cache). Handing callers a nonexistent
64
+ // root breaks forge_store (tools spawn from forgeRoot/tools) on every
65
+ // fresh clone. Fall back to this forgecli's bundled payload, which always
66
+ // exists in an installed or built package.
67
+ if (!isDirectory(resolved)) {
68
+ const bundled = resolveBundledPayloadRoot();
69
+ if (isDirectory(bundled)) {
70
+ return { forgeRoot: bundled, configPath, healedFrom: resolved };
71
+ }
72
+ }
60
73
  return { forgeRoot: resolved, configPath };
61
74
  }
62
75
  //# sourceMappingURL=forge-root.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"forge-root.js","sourceRoot":"","sources":["../../../../src/extensions/forgecli/lib/forge-root.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,2EAA2E;AAC3E,yEAAyE;AACzE,uGAAuG;AACvG,oEAAoE;AACpE,EAAE;AACF,uDAAuD;AACvD,+BAA+B;AAE/B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,SAAS,sBAAsB,CAAC,GAAW;IAC1C,IAAI,UAAU,GAAG,GAAG,CAAC;IACrB,OAAO,IAAI,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QACjE,IAAI,MAAM,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QAExC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,SAAS,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC;QAC1C,UAAU,GAAG,SAAS,CAAC;IACxB,CAAC;AACF,CAAC;AAOD;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IAC9D,MAAM,UAAU,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAE7B,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACJ,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,cAAc,GACnB,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,IAAI,MAAM;QACxD,CAAC,CAAE,MAA8C,CAAC,KAAK,EAAE,SAAS;QAClE,CAAC,CAAC,SAAS,CAAC;IAEd,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvE,OAAO,IAAI,CAAC;IACb,CAAC;IAED,0EAA0E;IAC1E,uEAAuE;IACvE,sEAAsE;IACtE,2DAA2D;IAC3D,8BAA8B;IAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAE7G,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"forge-root.js","sourceRoot":"","sources":["../../../../src/extensions/forgecli/lib/forge-root.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,2EAA2E;AAC3E,yEAAyE;AACzE,uGAAuG;AACvG,oEAAoE;AACpE,EAAE;AACF,uDAAuD;AACvD,+BAA+B;AAE/B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE3D,SAAS,sBAAsB,CAAC,GAAW;IAC1C,IAAI,UAAU,GAAG,GAAG,CAAC;IACrB,OAAO,IAAI,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QACjE,IAAI,MAAM,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QAExC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,SAAS,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC;QAC1C,UAAU,GAAG,SAAS,CAAC;IACxB,CAAC;AACF,CAAC;AAYD;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IAC9D,MAAM,UAAU,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAE7B,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACJ,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,cAAc,GACnB,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,IAAI,MAAM;QACxD,CAAC,CAAE,MAA8C,CAAC,KAAK,EAAE,SAAS;QAClE,CAAC,CAAC,SAAS,CAAC;IAEd,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvE,OAAO,IAAI,CAAC;IACb,CAAC;IAED,0EAA0E;IAC1E,uEAAuE;IACvE,sEAAsE;IACtE,2DAA2D;IAC3D,8BAA8B;IAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAE7G,uEAAuE;IACvE,mEAAmE;IACnE,0EAA0E;IAC1E,sEAAsE;IACtE,0EAA0E;IAC1E,2CAA2C;IAC3C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,yBAAyB,EAAE,CAAC;QAC5C,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;QACjE,CAAC;IACF,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAC5C,CAAC"}
@@ -8,6 +8,7 @@ export declare const BUG_TYPE_TOKENS: Record<string, {
8
8
  pass: string;
9
9
  fail: string;
10
10
  }>;
11
+ export declare function postTriageTransitions(status: string | undefined): string[];
11
12
  export interface RunBugState {
12
13
  bugId: string;
13
14
  phaseIndex: number;
@@ -110,6 +110,21 @@ export const BUG_TYPE_TOKENS = {
110
110
  // `approved` and `verified` enum values were dropped in forge v0.44.0
111
111
  // (FORGE-BUG-002 trap). The canonical source is store-cli.cjs.
112
112
  const BUG_TERMINAL_STATES = new Set(["fixed"]);
113
+ // Post-triage status transitions the ORCHESTRATOR owns (meta-fix-bug.md
114
+ // step 2: "On return, orchestrator transitions status: triaged then
115
+ // in-progress" — a required two-step state-machine contract; the FSM
116
+ // forbids the one-step reported → in-progress jump). First live firing of
117
+ // commit-task.cjs exposed this as unimplemented: bugs reached the commit
118
+ // phase still 'reported' and the terminal-status guard fired every run.
119
+ // Returns the ordered list of statuses to write from the given status —
120
+ // idempotent on resume (already in-progress / terminal → no-op).
121
+ export function postTriageTransitions(status) {
122
+ if (status === "reported")
123
+ return ["triaged", "in-progress"];
124
+ if (status === "triaged")
125
+ return ["in-progress"];
126
+ return [];
127
+ }
113
128
  function bugStateFilePath(cwd, bugId, sessionId) {
114
129
  if (!validateId(bugId)) {
115
130
  throw new Error(`Invalid bugId for state file path: ${bugId}`);
@@ -1391,6 +1406,17 @@ async function runBugPipelineInner(opts, onOrchestratorTranscript) {
1391
1406
  // bug status proves the work happened.
1392
1407
  if (phase.role === "triage") {
1393
1408
  const bugAfterTriage = readBugRecord(bugId, storeCli, cwd);
1409
+ // Orchestrator-owned post-triage transitions (meta-fix-bug.md
1410
+ // step 2). Two sequential writes through store-cli (the FSM
1411
+ // authority); failure warns but does not halt — the commit
1412
+ // phase's status guard is the backstop.
1413
+ for (const target of postTriageTransitions(bugAfterTriage?.status)) {
1414
+ const upd = spawnSync("node", [storeCli, "update-status", "bug", bugId, "status", target], { cwd, encoding: "utf8" });
1415
+ if (upd.status !== 0) {
1416
+ ctx.ui.notify(`⚠ forge:fix-bug — post-triage transition to '${target}' failed: ${(upd.stderr ?? "").toString().trim()}`, "warning");
1417
+ break;
1418
+ }
1419
+ }
1394
1420
  const triageSummary = bugAfterTriage?.summaries?.triage;
1395
1421
  const route = triageSummary?.route;
1396
1422
  if (route === "A") {