@coralai/sps-cli 0.36.1 → 0.37.1

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 (47) hide show
  1. package/dist/commands/pipelineTick.d.ts.map +1 -1
  2. package/dist/commands/pipelineTick.js +1 -7
  3. package/dist/commands/pipelineTick.js.map +1 -1
  4. package/dist/commands/projectInit.d.ts.map +1 -1
  5. package/dist/commands/projectInit.js +41 -96
  6. package/dist/commands/projectInit.js.map +1 -1
  7. package/dist/commands/qaTick.d.ts.map +1 -1
  8. package/dist/commands/qaTick.js +1 -8
  9. package/dist/commands/qaTick.js.map +1 -1
  10. package/dist/commands/tick.d.ts.map +1 -1
  11. package/dist/commands/tick.js +56 -23
  12. package/dist/commands/tick.js.map +1 -1
  13. package/dist/commands/workerLaunch.d.ts.map +1 -1
  14. package/dist/commands/workerLaunch.js +1 -7
  15. package/dist/commands/workerLaunch.js.map +1 -1
  16. package/dist/core/projectPipelineAdapter.d.ts +3 -1
  17. package/dist/core/projectPipelineAdapter.d.ts.map +1 -1
  18. package/dist/core/projectPipelineAdapter.js +30 -24
  19. package/dist/core/projectPipelineAdapter.js.map +1 -1
  20. package/dist/engines/StageEngine.d.ts +0 -4
  21. package/dist/engines/StageEngine.d.ts.map +1 -1
  22. package/dist/engines/StageEngine.js +14 -191
  23. package/dist/engines/StageEngine.js.map +1 -1
  24. package/dist/interfaces/TaskBackend.d.ts +2 -0
  25. package/dist/interfaces/TaskBackend.d.ts.map +1 -1
  26. package/dist/manager/worker-manager-impl.d.ts +0 -15
  27. package/dist/manager/worker-manager-impl.d.ts.map +1 -1
  28. package/dist/manager/worker-manager-impl.js +9 -160
  29. package/dist/manager/worker-manager-impl.js.map +1 -1
  30. package/dist/manager/worker-manager-impl.test.js +2 -18
  31. package/dist/manager/worker-manager-impl.test.js.map +1 -1
  32. package/dist/models/types.d.ts +2 -0
  33. package/dist/models/types.d.ts.map +1 -1
  34. package/dist/providers/MarkdownTaskBackend.d.ts +2 -0
  35. package/dist/providers/MarkdownTaskBackend.d.ts.map +1 -1
  36. package/dist/providers/MarkdownTaskBackend.js +16 -0
  37. package/dist/providers/MarkdownTaskBackend.js.map +1 -1
  38. package/dist/providers/PlaneTaskBackend.d.ts +2 -0
  39. package/dist/providers/PlaneTaskBackend.d.ts.map +1 -1
  40. package/dist/providers/PlaneTaskBackend.js +10 -0
  41. package/dist/providers/PlaneTaskBackend.js.map +1 -1
  42. package/dist/providers/TrelloTaskBackend.d.ts +2 -0
  43. package/dist/providers/TrelloTaskBackend.d.ts.map +1 -1
  44. package/dist/providers/TrelloTaskBackend.js +2 -0
  45. package/dist/providers/TrelloTaskBackend.js.map +1 -1
  46. package/package.json +1 -1
  47. package/skills/sps-pipeline/SKILL.md +18 -10
@@ -209,38 +209,59 @@ function loadProjectPipelineYaml(projectName, projectDir) {
209
209
  return null;
210
210
  }
211
211
  function buildFromYaml(yaml, config) {
212
- // Card states: merge YAML over defaults
212
+ // Card states: merge YAML over defaults (pm.card_states is optional)
213
213
  const states = {
214
214
  ...DEFAULT_STATES,
215
- ...(yaml.pm?.card_states || {}),
215
+ ...(yaml.pm?.card_states || yaml.states || {}),
216
216
  };
217
217
  // Stages: build from YAML or use defaults
218
218
  let stages;
219
219
  if (yaml.stages && Array.isArray(yaml.stages) && yaml.stages.length > 0) {
220
220
  const yamlStages = yaml.stages;
221
+ // Auto-generate stage states from on_complete chain
222
+ // First stage trigger = states.ready, active = 'Inprogress' (or explicit card_state)
223
+ // Subsequent stages: trigger = previous stage's on_complete target
221
224
  stages = yamlStages.map((s, idx) => {
222
- // Default on_complete fallback: next stage's trigger state, or done for last stage
225
+ // Determine trigger state
226
+ let triggerState;
227
+ if (s.trigger) {
228
+ triggerState = parseTrigger(s.trigger) || states.ready;
229
+ }
230
+ else if (idx === 0) {
231
+ triggerState = states.ready;
232
+ }
233
+ else {
234
+ // Auto: previous stage's on_complete target
235
+ const prevComplete = parseOnComplete(yamlStages[idx - 1].on_complete, '');
236
+ triggerState = prevComplete || states.ready;
237
+ }
238
+ // Determine active state (must differ from trigger to show progress)
239
+ const activeState = s.card_state || (idx === 0 ? states.active : triggerState);
240
+ // Default on_complete: next stage trigger or Done for last
223
241
  const nextTrigger = idx < yamlStages.length - 1
224
242
  ? (parseTrigger(yamlStages[idx + 1].trigger) || yamlStages[idx + 1].card_state || states.done)
225
243
  : states.done;
244
+ // Parse on_fail halt config
245
+ const onFailRaw = s.on_fail;
246
+ const halt = onFailRaw?.halt !== false; // default true
226
247
  return {
227
248
  name: s.name,
228
- triggerState: parseTrigger(s.trigger) || s.card_state || states.ready,
229
- activeState: s.card_state || states.active,
249
+ triggerState,
250
+ activeState,
230
251
  agent: s.agent || config.WORKER_TOOL || 'claude',
231
252
  profile: s.profile,
232
- completion: s.completion || 'git-evidence',
253
+ completion: s.completion || 'exit-code', // Default: exit-code (single worker model)
233
254
  onCompleteState: parseOnComplete(s.on_complete, nextTrigger),
234
255
  onFailLabel: parseOnFailLabel(s.on_fail),
235
256
  onFailComment: parseOnFailComment(s.on_fail),
236
- queue: s.queue,
257
+ queue: undefined, // Ignored: single worker, no queue
237
258
  timeout: s.timeout,
259
+ halt, // Failure halt: default true
238
260
  };
239
261
  });
240
262
  }
241
263
  else {
242
264
  stages = defaultStages(config);
243
- // Remap default stages to use custom state names
244
265
  stages[0].triggerState = states.ready;
245
266
  stages[0].activeState = states.active;
246
267
  stages[0].onCompleteState = states.review;
@@ -261,23 +282,8 @@ function buildFromYaml(yaml, config) {
261
282
  activeStateSet.add(stage.activeState);
262
283
  }
263
284
  const activeStates = Array.from(activeStateSet);
264
- // Git mode: default true, can be disabled via YAML
285
+ // Git mode: default true (commit+push), false (no git ops)
265
286
  const gitEnabled = yaml.git !== false;
266
- // Validate: git-dependent completion strategies require git
267
- if (!gitEnabled) {
268
- for (const stage of stages) {
269
- if (stage.completion === 'git-evidence' || stage.completion === 'fast-forward-merge') {
270
- throw new Error(`Stage "${stage.name}" uses completion: ${stage.completion} but git is disabled (git: false). ` +
271
- `Use completion: exit-code when git: false.`);
272
- }
273
- }
274
- // Default completion for git:false — override any implicit git-evidence defaults
275
- for (const stage of stages) {
276
- if (!stage.completion || stage.completion === 'git-evidence') {
277
- stage.completion = 'exit-code';
278
- }
279
- }
280
- }
281
287
  return {
282
288
  gitEnabled,
283
289
  states,
@@ -1 +1 @@
1
- {"version":3,"file":"projectPipelineAdapter.js","sourceRoot":"","sources":["../../src/core/projectPipelineAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1F,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAmD1C,oEAAoE;AAEpE,MAAM,cAAc,GAAe;IACjC,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,MAAM;CACb,CAAC;AAEF,MAAM,wBAAwB,GAAG;IAC/B,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,sBAAsB,EAAE,eAAe,EAAE,SAAS;CACvF,CAAC;AAEF,SAAS,aAAa,CAAC,MAAqB;IAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC;IAC5C,OAAO;QACL;YACE,IAAI,EAAE,SAAS;YACf,YAAY,EAAE,MAAM;YACpB,WAAW,EAAE,YAAY;YACzB,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,cAAc;YAC1B,eAAe,EAAE,IAAI;YACrB,WAAW,EAAE,WAAW;YACxB,aAAa,EAAE,qCAAqC;SACrD;QACD;YACE,IAAI,EAAE,WAAW;YACjB,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;YAC/B,UAAU,EAAE,oBAAoB;YAChC,eAAe,EAAE,MAAM;YACvB,KAAK,EAAE,MAAM;SACd;KACF,CAAC;AACJ,CAAC;AAED,mEAAmE;AAEnE,MAAM,OAAO,sBAAsB;IACxB,QAAQ,CAA0B;IAE3C,YAAY,MAAqB,EAAE,UAAmB;QACpD,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAE5E,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;IAClC,CAAC;IAED,2BAA2B;IAC3B,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,gCAAgC;IAChC,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,yBAAyB;IACzB,QAAQ,CAAC,IAAY;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,gEAAgE;IAChE,iBAAiB,CAAC,OAAe;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC;IACpE,CAAC;IAED,uEAAuE;IACvE,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,qEAAqE;IACrE,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC;eACpD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,kEAAkE;IAClE,qBAAqB,CAAC,OAAe;QACnC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,OAAO,CAAC,CAAC;IACnE,CAAC;IAED,kEAAkE;IAClE,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,qDAAqD;IACrD,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;IACvC,CAAC;IAED,uCAAuC;IACvC,aAAa,CAAC,UAAkB,EAAE,cAAuB;QACvD,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC/B,QAAQ,UAAU,EAAE,CAAC;YACnB,KAAK,QAAQ,CAAC;YACd,KAAK,WAAW;gBACd,OAAO,CAAC,CAAC,KAAK,CAAC;YACjB,KAAK,QAAQ;gBACX,OAAO,CAAC,CAAC,MAAM,CAAC;YAClB,KAAK,SAAS,CAAC;YACf,KAAK,oBAAoB,CAAC;YAC1B,KAAK,SAAS;gBACZ,OAAO,CAAC,CAAC,MAAM,CAAC;YAClB,KAAK,sBAAsB;gBACzB,OAAO,cAAc,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC3D;gBACE,OAAO,CAAC,CAAC,KAAK,CAAC;QACnB,CAAC;IACH,CAAC;CACF;AAED,mEAAmE;AAEnE,sFAAsF;AACtF,SAAS,mBAAmB,CAAC,WAAmB,EAAE,UAAmB;IACnE,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IACpF,IAAI,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC1C,0CAA0C;IAC1C,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC3D,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8CAA8C;AAC9C,SAAS,kBAAkB,CAAC,WAAmB;IAC7C,OAAO,OAAO,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;AAClF,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,qBAAqB,CAAC,WAAmB;IACvD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7E,OAAO,MAAM,IAAI,IAAI,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AAC1B,CAAC;AAED,mCAAmC;AACnC,MAAM,UAAU,iBAAiB,CAAC,WAAmB,EAAE,IAAY;IACjE,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAClE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,aAAa,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,uBAAuB,CAAC,WAAmB,EAAE,UAAmB;IACvE,MAAM,YAAY,GAAG,mBAAmB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAClE,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAE/B,0CAA0C;IAC1C,MAAM,UAAU,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;IACtD,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,EAAE,UAAU,GAAG,GAAG,CAAC,CAAC;YACzD,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;oBAC1D,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS;wBAAE,OAAO,MAAM,CAAC;gBAChD,CAAC;gBAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/F,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;gBAC/D,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;gBAC9B,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS;oBAAE,OAAO,MAAM,CAAC;YAChD,CAAC;YAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAEhC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,IAAS,EAAE,MAAqB;IACrD,wCAAwC;IACxC,MAAM,MAAM,GAAe;QACzB,GAAG,cAAc;QACjB,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,IAAI,EAAE,CAAC;KAChC,CAAC;IAEF,0CAA0C;IAC1C,IAAI,MAAyB,CAAC;IAC9B,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxE,MAAM,UAAU,GAAG,IAAI,CAAC,MAAe,CAAC;QACxC,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,GAAW,EAAE,EAAE;YAC9C,mFAAmF;YACnF,MAAM,WAAW,GAAG,GAAG,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC;gBAC7C,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC;gBAC9F,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;YAChB,OAAO;gBACL,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK;gBACrE,WAAW,EAAE,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM;gBAC1C,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,WAAW,IAAI,QAAQ;gBAChD,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,cAAc;gBAC1C,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC;gBAC5D,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC;gBACxC,aAAa,EAAE,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC5C,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,OAAO,EAAE,CAAC,CAAC,OAAO;aACnB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAC/B,iDAAiD;QACjD,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC;QACtC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;QACtC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;QAC1C,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;QACvC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;QACtC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC;IAC1C,CAAC;IAED,wDAAwD;IACxD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IACzC,IAAI,MAAM,CAAC,QAAQ;QAAE,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzD,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,YAAY;YAAE,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC/D,IAAI,KAAK,CAAC,WAAW;YAAE,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAEhD,mDAAmD;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC;IAEtC,4DAA4D;IAC5D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,UAAU,KAAK,cAAc,IAAI,KAAK,CAAC,UAAU,KAAK,oBAAoB,EAAE,CAAC;gBACrF,MAAM,IAAI,KAAK,CACb,UAAU,KAAK,CAAC,IAAI,sBAAsB,KAAK,CAAC,UAAU,qCAAqC;oBAC/F,4CAA4C,CAC7C,CAAC;YACJ,CAAC;QACH,CAAC;QACD,iFAAiF;QACjF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,KAAK,cAAc,EAAE,CAAC;gBAC7D,KAAK,CAAC,UAAU,GAAG,WAAW,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,UAAU;QACV,MAAM;QACN,MAAM;QACN,YAAY;QACZ,eAAe,EAAE,wBAAwB;KAC1C,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,MAAqB;IAC1C,OAAO;QACL,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,EAAE,GAAG,cAAc,EAAE;QAC7B,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC;QAC7B,YAAY,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC;QACjE,eAAe,EAAE,wBAAwB;KAC1C,CAAC;AACJ,CAAC;AAED,mEAAmE;AAEnE,0CAA0C;AAC1C,SAAS,YAAY,CAAC,GAAY;IAChC,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC9D,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAChC,CAAC;AAED,gGAAgG;AAChG,SAAS,eAAe,CAAC,GAAQ,EAAE,aAAqB;IACtD,IAAI,CAAC,GAAG;QAAE,OAAO,aAAa,CAAC;IAC/B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAC5D,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAChC,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACnE,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;IAC1C,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,6BAA6B;AAC7B,SAAS,gBAAgB,CAAC,GAAQ;IAChC,IAAI,CAAC,GAAG;QAAE,OAAO,WAAW,CAAC;IAC7B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACxD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC/D,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,+BAA+B;AAC/B,SAAS,kBAAkB,CAAC,GAAQ;IAClC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IAC/D,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"projectPipelineAdapter.js","sourceRoot":"","sources":["../../src/core/projectPipelineAdapter.ts"],"names":[],"mappings":"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"}
@@ -53,7 +53,6 @@ export declare class StageEngine {
53
53
  /** Whether this is the last stage (responsible for release: worktree cleanup) */
54
54
  get isLastStage(): boolean;
55
55
  /** Whether this stage uses FIFO queue for serialization */
56
- get usesQueue(): boolean;
57
56
  tick(opts?: {
58
57
  dryRun?: boolean;
59
58
  }): Promise<CommandResult>;
@@ -74,11 +73,8 @@ export declare class StageEngine {
74
73
  private derivePmStateFromLease;
75
74
  private buildStagePrompt;
76
75
  private loadSkillProfiles;
77
- private cleanupWorktrees;
78
- private isMergedToBase;
79
76
  private shouldSkip;
80
77
  private cleanAuxiliaryLabels;
81
- private buildBranchName;
82
78
  private findRuntimeSlotName;
83
79
  private releaseSlot;
84
80
  private releaseSlotForStage;
@@ -1 +1 @@
1
- {"version":3,"file":"StageEngine.d.ts","sourceRoot":"","sources":["../../src/engines/StageEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAKjG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,KAAK,EAAmC,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACnG,OAAO,KAAK,EAAsC,aAAa,EAAqB,MAAM,oBAAoB,CAAC;AAM/G;;;;;;;;;GASG;AACH,qBAAa,WAAW;IAKpB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,QAAQ,CAAC;IAZnB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,YAAY,CAAe;gBAGzB,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,sBAAsB,EACvC,QAAQ,CAAC,EAAE,QAAQ,YAAA;IAM7B,2BAA2B;IAC3B,IAAI,IAAI,IAAI,MAAM,CAA4B;IAE9C,mFAAmF;IACnF,IAAI,YAAY,IAAI,OAAO,CAAkC;IAE7D,iFAAiF;IACjF,IAAI,WAAW,IAAI,OAAO,CAAqD;IAE/E,2DAA2D;IAC3D,IAAI,SAAS,IAAI,OAAO,CAAwC;IAE1D,IAAI,CAAC,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,aAAa,CAAC;YAgIrD,gBAAgB;YAwDhB,kBAAkB;YAyElB,gBAAgB;YAwGhB,kBAAkB;IAkChC;;;OAGG;YACW,cAAc;YAmId,eAAe;YAgDf,WAAW;YAoDX,YAAY;YA+GZ,2BAA2B;YAe3B,4BAA4B;IA6C1C,OAAO,CAAC,sBAAsB;IA6B9B,OAAO,CAAC,gBAAgB;IA6CxB,OAAO,CAAC,iBAAiB;YA0BX,gBAAgB;IAkD9B,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,UAAU;YAIJ,oBAAoB;IAclC,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,WAAW;YAWL,mBAAmB;YAyBnB,YAAY;YAQZ,YAAY;YAMZ,WAAW;YAMX,UAAU;IAKxB,OAAO,CAAC,QAAQ;IAYhB;;;OAGG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,aAAa,CAAC;CA4DzF"}
1
+ {"version":3,"file":"StageEngine.d.ts","sourceRoot":"","sources":["../../src/engines/StageEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAKjG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,KAAK,EAAmC,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACnG,OAAO,KAAK,EAAsC,aAAa,EAAqB,MAAM,oBAAoB,CAAC;AAM/G;;;;;;;;;GASG;AACH,qBAAa,WAAW;IAKpB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,QAAQ,CAAC;IAZnB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,YAAY,CAAe;gBAGzB,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,sBAAsB,EACvC,QAAQ,CAAC,EAAE,QAAQ,YAAA;IAM7B,2BAA2B;IAC3B,IAAI,IAAI,IAAI,MAAM,CAA4B;IAE9C,mFAAmF;IACnF,IAAI,YAAY,IAAI,OAAO,CAAkC;IAE7D,iFAAiF;IACjF,IAAI,WAAW,IAAI,OAAO,CAAqD;IAE/E,2DAA2D;IAGrD,IAAI,CAAC,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,aAAa,CAAC;YA2HrD,gBAAgB;YAgChB,kBAAkB;YAgElB,gBAAgB;YAwGhB,kBAAkB;IAkChC;;;OAGG;YACW,cAAc;YA4Fd,eAAe;YAmDf,WAAW;YAuBX,YAAY;YA4GZ,2BAA2B;YAe3B,4BAA4B;IA6C1C,OAAO,CAAC,sBAAsB;IA6B9B,OAAO,CAAC,gBAAgB;IA6CxB,OAAO,CAAC,iBAAiB;IA4BzB,OAAO,CAAC,UAAU;YAIJ,oBAAoB;IAclC,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,WAAW;YAWL,mBAAmB;YAyBnB,YAAY;YAQZ,YAAY;YAMZ,WAAW;YAMX,UAAU;IAKxB,OAAO,CAAC,QAAQ;IAYhB;;;OAGG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,aAAa,CAAC;CA4DzF"}
@@ -16,18 +16,15 @@
16
16
  * @stateTransition stage.from → stage.to (由 StageDefinition 配置驱动)
17
17
  * @workflow tick → prepare (first stage) → claim → launch worker → complete → release (last stage)
18
18
  */
19
- import { execFileSync } from 'node:child_process';
20
19
  import { existsSync, readFileSync } from 'node:fs';
21
20
  import { resolve } from 'node:path';
22
21
  import { resolveGitlabProjectId, resolveWorkflowTransport } from '../core/config.js';
23
22
  import { Logger } from '../core/logger.js';
24
23
  import { buildFullMemoryContext, buildMemoryWriteInstructions } from '../core/memory.js';
25
- import { resolveWorktreePath } from '../core/paths.js';
26
24
  import { readQueue } from '../core/queue.js';
27
25
  import { RuntimeStore } from '../core/runtimeStore.js';
28
26
  import { buildPhasePrompt, buildTaskPrompt } from '../core/taskPrompts.js';
29
- import { IntegrationQueue } from '../manager/integration-queue.js';
30
- import { branchCommitsAhead, branchPushed } from '../providers/outputParser.js';
27
+ // branchPushed/branchCommitsAhead removed no worktree/branch management
31
28
  const SKIP_LABELS = ['BLOCKED', 'NEEDS-FIX', 'CONFLICT', 'WAITING-CONFIRMATION', 'STALE-RUNTIME'];
32
29
  const CLEANUP_LABELS = [...SKIP_LABELS, 'CLAIMED'];
33
30
  /**
@@ -72,7 +69,7 @@ export class StageEngine {
72
69
  /** Whether this is the last stage (responsible for release: worktree cleanup) */
73
70
  get isLastStage() { return this.stageIndex === this.totalStages - 1; }
74
71
  /** Whether this stage uses FIFO queue for serialization */
75
- get usesQueue() { return this.stage.queue === 'fifo'; }
72
+ // usesQueue removed single worker, no queue needed
76
73
  async tick(opts = {}) {
77
74
  const actions = [];
78
75
  const recommendedActions = [];
@@ -190,10 +187,6 @@ export class StageEngine {
190
187
  result.exitCode = 1;
191
188
  result.details = { error: msg };
192
189
  }
193
- // Last stage: always run worktree cleanup
194
- if (this.isLastStage) {
195
- await this.cleanupWorktrees(actions);
196
- }
197
190
  if (actions.some((a) => a.result === 'fail') && result.status === 'ok') {
198
191
  result.status = this.isLastStage ? 'degraded' : 'fail';
199
192
  result.exitCode = 1;
@@ -205,28 +198,8 @@ export class StageEngine {
205
198
  const seq = card.seq;
206
199
  const state = this.runtimeStore.readState();
207
200
  const runtime = this.runtimeStore.getTask(seq, state);
208
- const branchName = runtime.lease?.branch ||
209
- runtime.evidence?.branch ||
210
- this.buildBranchName(card);
211
- const worktree = runtime.lease?.worktree ||
212
- runtime.evidence?.worktree ||
213
- resolveWorktreePath(this.ctx.projectName, seq, this.ctx.config.WORKTREE_DIR);
214
- if (this.pipelineAdapter.gitEnabled && (!worktree || !existsSync(worktree))) {
215
- await this.markNeedsFix(seq, `${this.stage.name} task has no usable worktree`);
216
- actions.push({
217
- action: 'mark-needs-fix',
218
- entity: `seq:${seq}`,
219
- result: 'ok',
220
- message: `No usable worktree for ${this.stage.name} task`,
221
- });
222
- return;
223
- }
224
- // For stages with fast-forward-merge completion: check if already merged (git only)
225
- if (this.pipelineAdapter.gitEnabled && this.stage.completion === 'fast-forward-merge' && this.isMergedToBase(worktree, branchName)) {
226
- this.log.info(`seq ${seq}: integration already complete, proceeding to release`);
227
- await this.completeAndAdvance(card, actions);
228
- return;
229
- }
201
+ const worktree = this.ctx.paths.repoDir;
202
+ const branchName = `task-${seq}`;
230
203
  // Check if worker is already running for this card
231
204
  const activeStatus = await this.inspectStageWorker(card, runtime.slotName, worktree, branchName, actions);
232
205
  if (activeStatus === 'active' || activeStatus === 'waiting' || activeStatus === 'done') {
@@ -285,18 +258,8 @@ export class StageEngine {
285
258
  return 'active';
286
259
  }
287
260
  if (snapshot.state === 'completed') {
288
- // For fast-forward-merge: check if actually merged
289
- if (this.stage.completion === 'fast-forward-merge') {
290
- if (this.isMergedToBase(worktree, branchName)) {
291
- await this.completeAndAdvance(card, actions);
292
- return 'done';
293
- }
294
- }
295
- else {
296
- // Other completion strategies: worker completed = stage done
297
- await this.completeAndAdvance(card, actions);
298
- return 'done';
299
- }
261
+ await this.completeAndAdvance(card, actions);
262
+ return 'done';
300
263
  }
301
264
  // 'failed' or 'completed' without expected completion
302
265
  await this.releaseSlotForStage(card.seq, slotName);
@@ -513,46 +476,6 @@ export class StageEngine {
513
476
  const msg = err instanceof Error ? err.message : String(err);
514
477
  this.log.debug(`seq ${seq}: Worker cleanup: ${msg}`);
515
478
  }
516
- // Step 4b: Clear from IntegrationQueue
517
- if (this.usesQueue) {
518
- try {
519
- const iq = new IntegrationQueue(this.ctx.paths.stateFile, this.ctx.config.MAX_CONCURRENT_WORKERS);
520
- const active = iq.getActive(this.ctx.projectName, this.ctx.mergeBranch);
521
- if (active && active.taskId === seq) {
522
- iq.dequeueNext(this.ctx.projectName, this.ctx.mergeBranch);
523
- this.log.ok(`seq ${seq}: Integration queue advanced`);
524
- }
525
- }
526
- catch (err) {
527
- const msg = err instanceof Error ? err.message : String(err);
528
- this.log.warn(`seq ${seq}: Failed to advance integration queue: ${msg}`);
529
- }
530
- }
531
- // Step 5: Mark worktree for cleanup (git only)
532
- if (!this.pipelineAdapter.gitEnabled) {
533
- // No worktree to clean up
534
- }
535
- else
536
- try {
537
- const freshState = this.runtimeStore.readState();
538
- const branchName = this.buildBranchName(card);
539
- const worktreePath = runtime.lease?.worktree ||
540
- runtime.evidence?.worktree ||
541
- resolveWorktreePath(this.ctx.projectName, seq, this.ctx.config.WORKTREE_DIR);
542
- const cleanup = freshState.worktreeCleanup ?? [];
543
- const alreadyMarked = cleanup.some((e) => e.branch === branchName);
544
- if (!alreadyMarked) {
545
- cleanup.push({ branch: branchName, worktreePath, markedAt: new Date().toISOString() });
546
- this.runtimeStore.updateState('stage-worktree-mark', (draft) => {
547
- draft.worktreeCleanup = cleanup;
548
- });
549
- }
550
- }
551
- catch (err) {
552
- const msg = err instanceof Error ? err.message : String(err);
553
- this.log.error(`seq ${seq}: Failed to mark worktree for cleanup: ${msg}`);
554
- errors.push(`worktree-mark: ${msg}`);
555
- }
556
479
  // Notify
557
480
  if (errors.length === 0) {
558
481
  await this.notifySafe(`✅ [${this.ctx.projectName}] seq:${seq} completed and released successfully`);
@@ -610,61 +533,32 @@ export class StageEngine {
610
533
  return null;
611
534
  }
612
535
  // ─── First stage: prepare (Backlog → Ready) ────────────────────
536
+ // ─── First stage: prepare (Backlog → Ready) ─────────────────
537
+ // Single worker model: no branch/worktree creation. Just move card to Ready.
613
538
  async prepareCard(card, opts) {
614
539
  const seq = card.seq;
615
- const gitEnabled = this.pipelineAdapter.gitEnabled;
616
540
  if (opts.dryRun) {
617
541
  return { action: 'prepare', entity: `seq:${seq}`, result: 'ok', message: 'dry-run' };
618
542
  }
619
- if (gitEnabled) {
620
- const branchName = this.buildBranchName(card);
621
- const worktreePath = resolveWorktreePath(this.ctx.projectName, seq, this.ctx.config.WORKTREE_DIR);
622
- // Step 1: Create branch
623
- try {
624
- await this.repoBackend.ensureBranch(this.ctx.paths.repoDir, branchName, this.ctx.mergeBranch);
625
- this.log.ok(`Step 1: Branch ${branchName} created for seq ${seq}`);
626
- }
627
- catch (err) {
628
- const msg = err instanceof Error ? err.message : String(err);
629
- this.log.error(`Step 1 failed (branch) for seq ${seq}: ${msg}`);
630
- this.logEvent('prepare-branch', seq, 'fail', { error: msg });
631
- return { action: 'prepare', entity: `seq:${seq}`, result: 'fail', message: `Branch creation failed: ${msg}` };
632
- }
633
- // Step 2: Create worktree
634
- try {
635
- await this.repoBackend.ensureWorktree(this.ctx.paths.repoDir, branchName, worktreePath);
636
- this.log.ok(`Step 2: Worktree created for seq ${seq} at ${worktreePath}`);
637
- }
638
- catch (err) {
639
- const msg = err instanceof Error ? err.message : String(err);
640
- this.log.error(`Step 2 failed (worktree) for seq ${seq}: ${msg}`);
641
- this.logEvent('prepare-worktree', seq, 'fail', { error: msg });
642
- return { action: 'prepare', entity: `seq:${seq}`, result: 'fail', message: `Worktree creation failed: ${msg}` };
643
- }
644
- }
645
- // Move card to Ready (git or not)
646
543
  try {
647
544
  await this.taskBackend.move(seq, this.pipelineAdapter.states.ready);
648
- this.log.ok(`Step 3: Moved seq ${seq} ${this.pipelineAdapter.states.backlog} → ${this.pipelineAdapter.states.ready}`);
545
+ this.log.ok(`Moved seq ${seq} ${this.pipelineAdapter.states.backlog} → ${this.pipelineAdapter.states.ready}`);
649
546
  this.logEvent('prepare', seq, 'ok');
650
- await this.notifySafe(`ℹ️ [${this.ctx.projectName}] seq:${seq} environment ready (${this.pipelineAdapter.states.backlog} → ${this.pipelineAdapter.states.ready})`);
547
+ await this.notifySafe(`ℹ️ [${this.ctx.projectName}] seq:${seq} ready (${this.pipelineAdapter.states.backlog} → ${this.pipelineAdapter.states.ready})`);
651
548
  return { action: 'prepare', entity: `seq:${seq}`, result: 'ok', message: `${this.pipelineAdapter.states.backlog} → ${this.pipelineAdapter.states.ready}` };
652
549
  }
653
550
  catch (err) {
654
551
  const msg = err instanceof Error ? err.message : String(err);
655
- this.log.error(`Step 3 failed (move) for seq ${seq}: ${msg}`);
656
- this.logEvent('prepare-move', seq, 'fail', { error: msg });
552
+ this.log.error(`Prepare failed for seq ${seq}: ${msg}`);
553
+ this.logEvent('prepare', seq, 'fail', { error: msg });
657
554
  return { action: 'prepare', entity: `seq:${seq}`, result: 'fail', message: `Move to ${this.pipelineAdapter.states.ready} failed: ${msg}` };
658
555
  }
659
556
  }
660
557
  // ─── First stage: launch worker (Ready → Active) ───────────────
661
558
  async launchWorker(card, opts, failedSlots = new Set()) {
662
559
  const seq = card.seq;
663
- const gitEnabled = this.pipelineAdapter.gitEnabled;
664
- const branchName = gitEnabled ? this.buildBranchName(card) : `task-${seq}`;
665
- const worktreePath = gitEnabled
666
- ? resolveWorktreePath(this.ctx.projectName, seq, this.ctx.config.WORKTREE_DIR)
667
- : this.ctx.paths.repoDir;
560
+ const worktreePath = this.ctx.paths.repoDir; // Single worker: always use PROJECT_DIR
561
+ const branchName = `task-${seq}`; // Logical identifier, not a git branch
668
562
  if (opts.dryRun) {
669
563
  return { action: 'launch', entity: `seq:${seq}`, result: 'ok', message: 'dry-run' };
670
564
  }
@@ -900,69 +794,6 @@ export class StageEngine {
900
794
  }
901
795
  // loadProjectKnowledge removed — replaced by memory system (buildMemoryContext)
902
796
  // ─── Worktree cleanup (last stage only) ────────────────────────
903
- async cleanupWorktrees(actions) {
904
- const state = this.runtimeStore.readState();
905
- const queue = state.worktreeCleanup ?? [];
906
- if (queue.length === 0)
907
- return;
908
- const now = Date.now();
909
- const ready = queue.filter(e => now - new Date(e.markedAt).getTime() >= 30_000);
910
- const deferred = queue.filter(e => now - new Date(e.markedAt).getTime() < 30_000);
911
- if (ready.length === 0) {
912
- if (deferred.length > 0) {
913
- this.log.debug(`${deferred.length} worktree(s) deferred — waiting for worker shutdown`);
914
- }
915
- return;
916
- }
917
- this.log.info(`Cleaning up ${ready.length} worktree(s)`);
918
- const remaining = [...deferred];
919
- for (const entry of ready) {
920
- try {
921
- await this.repoBackend.removeWorktree(this.ctx.paths.repoDir, entry.worktreePath, entry.branch);
922
- this.log.ok(`Cleaned up worktree: ${entry.branch}`);
923
- actions.push({
924
- action: 'worktree-cleanup',
925
- entity: entry.branch,
926
- result: 'ok',
927
- message: `Removed worktree ${entry.worktreePath}`,
928
- });
929
- this.logEvent('worktree-cleanup', entry.branch, 'ok');
930
- }
931
- catch (err) {
932
- const msg = err instanceof Error ? err.message : String(err);
933
- this.log.warn(`Failed to clean up worktree ${entry.branch}: ${msg}`);
934
- remaining.push(entry);
935
- actions.push({
936
- action: 'worktree-cleanup',
937
- entity: entry.branch,
938
- result: 'fail',
939
- message: `Cleanup failed: ${msg}`,
940
- });
941
- }
942
- }
943
- this.runtimeStore.updateState('stage-worktree-cleanup', (freshState) => {
944
- freshState.worktreeCleanup = remaining;
945
- });
946
- }
947
- // ─── Merge detection ───────────────────────────────────────────
948
- isMergedToBase(worktree, branchName) {
949
- try {
950
- execFileSync('git', ['-C', worktree, 'fetch', 'origin', this.ctx.mergeBranch], { stdio: 'ignore' });
951
- }
952
- catch { /* best effort */ }
953
- try {
954
- execFileSync('git', ['-C', worktree, 'merge-base', '--is-ancestor', branchName, `origin/${this.ctx.mergeBranch}`], { stdio: 'ignore' });
955
- }
956
- catch {
957
- return false;
958
- }
959
- const pushed = branchPushed(worktree, branchName);
960
- const localAhead = branchCommitsAhead(worktree, branchName, this.ctx.mergeBranch);
961
- if (pushed || localAhead > 0)
962
- return true;
963
- this.log.debug(`branch ${branchName}: ancestor of ${this.ctx.mergeBranch} but no artifacts — not a real merge`);
964
- return false;
965
- }
966
797
  // ─── Common helpers ────────────────────────────────────────────
967
798
  shouldSkip(card) {
968
799
  return SKIP_LABELS.some((label) => card.labels.includes(label));
@@ -981,14 +812,6 @@ export class StageEngine {
981
812
  }
982
813
  }
983
814
  }
984
- buildBranchName(card) {
985
- const slug = card.name
986
- .toLowerCase()
987
- .replace(/[^a-z0-9]+/g, '-')
988
- .replace(/^-|-$/g, '')
989
- .slice(0, 40);
990
- return `feature/${card.seq}-${slug}`;
991
- }
992
815
  findRuntimeSlotName(state, seq, lease) {
993
816
  if (lease?.slot && state.workers[lease.slot])
994
817
  return lease.slot;