oh-my-codex 0.7.4 → 0.7.6

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 (140) hide show
  1. package/README.md +14 -0
  2. package/dist/cli/__tests__/index.test.js +25 -1
  3. package/dist/cli/__tests__/index.test.js.map +1 -1
  4. package/dist/cli/__tests__/ralph.test.d.ts +2 -0
  5. package/dist/cli/__tests__/ralph.test.d.ts.map +1 -0
  6. package/dist/cli/__tests__/ralph.test.js +64 -0
  7. package/dist/cli/__tests__/ralph.test.js.map +1 -0
  8. package/dist/cli/__tests__/team-decompose.test.d.ts +2 -0
  9. package/dist/cli/__tests__/team-decompose.test.d.ts.map +1 -0
  10. package/dist/cli/__tests__/team-decompose.test.js +67 -0
  11. package/dist/cli/__tests__/team-decompose.test.js.map +1 -0
  12. package/dist/cli/index.d.ts +6 -0
  13. package/dist/cli/index.d.ts.map +1 -1
  14. package/dist/cli/index.js +25 -3
  15. package/dist/cli/index.js.map +1 -1
  16. package/dist/cli/ralph.d.ts +12 -0
  17. package/dist/cli/ralph.d.ts.map +1 -1
  18. package/dist/cli/ralph.js +58 -1
  19. package/dist/cli/ralph.js.map +1 -1
  20. package/dist/cli/team.d.ts +18 -0
  21. package/dist/cli/team.d.ts.map +1 -1
  22. package/dist/cli/team.js +108 -16
  23. package/dist/cli/team.js.map +1 -1
  24. package/dist/config/generator.d.ts.map +1 -1
  25. package/dist/config/generator.js +8 -0
  26. package/dist/config/generator.js.map +1 -1
  27. package/dist/hooks/__tests__/notify-fallback-watcher.test.js +10 -7
  28. package/dist/hooks/__tests__/notify-fallback-watcher.test.js.map +1 -1
  29. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js +11 -7
  30. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js.map +1 -1
  31. package/dist/hooks/__tests__/notify-hook-tmux-heal.test.js +199 -0
  32. package/dist/hooks/__tests__/notify-hook-tmux-heal.test.js.map +1 -1
  33. package/dist/hooks/__tests__/notify-hook-visual-verdict.test.d.ts +11 -0
  34. package/dist/hooks/__tests__/notify-hook-visual-verdict.test.d.ts.map +1 -0
  35. package/dist/hooks/__tests__/notify-hook-visual-verdict.test.js +266 -0
  36. package/dist/hooks/__tests__/notify-hook-visual-verdict.test.js.map +1 -0
  37. package/dist/hooks/__tests__/notify-hook-worker-idle.test.js +4 -5
  38. package/dist/hooks/__tests__/notify-hook-worker-idle.test.js.map +1 -1
  39. package/dist/hooks/__tests__/tmux-hook-engine.test.js +36 -1
  40. package/dist/hooks/__tests__/tmux-hook-engine.test.js.map +1 -1
  41. package/dist/mcp/__tests__/team-server-cleanup.test.d.ts +2 -0
  42. package/dist/mcp/__tests__/team-server-cleanup.test.d.ts.map +1 -0
  43. package/dist/mcp/__tests__/team-server-cleanup.test.js +219 -0
  44. package/dist/mcp/__tests__/team-server-cleanup.test.js.map +1 -0
  45. package/dist/mcp/bootstrap.d.ts +1 -1
  46. package/dist/mcp/bootstrap.d.ts.map +1 -1
  47. package/dist/mcp/bootstrap.js +1 -0
  48. package/dist/mcp/bootstrap.js.map +1 -1
  49. package/dist/mcp/state-server.d.ts.map +1 -1
  50. package/dist/mcp/state-server.js +11 -2
  51. package/dist/mcp/state-server.js.map +1 -1
  52. package/dist/mcp/team-server.d.ts +24 -0
  53. package/dist/mcp/team-server.d.ts.map +1 -0
  54. package/dist/mcp/team-server.js +419 -0
  55. package/dist/mcp/team-server.js.map +1 -0
  56. package/dist/notifications/__tests__/verbosity.test.js +35 -0
  57. package/dist/notifications/__tests__/verbosity.test.js.map +1 -1
  58. package/dist/notifications/config.d.ts.map +1 -1
  59. package/dist/notifications/config.js +4 -2
  60. package/dist/notifications/config.js.map +1 -1
  61. package/dist/notifications/tmux.d.ts.map +1 -1
  62. package/dist/notifications/tmux.js +11 -2
  63. package/dist/notifications/tmux.js.map +1 -1
  64. package/dist/notifications/types.d.ts +4 -0
  65. package/dist/notifications/types.d.ts.map +1 -1
  66. package/dist/openclaw/__tests__/index.test.js +40 -0
  67. package/dist/openclaw/__tests__/index.test.js.map +1 -1
  68. package/dist/openclaw/index.d.ts.map +1 -1
  69. package/dist/openclaw/index.js +1 -0
  70. package/dist/openclaw/index.js.map +1 -1
  71. package/dist/openclaw/types.d.ts +2 -0
  72. package/dist/openclaw/types.d.ts.map +1 -1
  73. package/dist/team/__tests__/role-router.test.d.ts +2 -0
  74. package/dist/team/__tests__/role-router.test.d.ts.map +1 -0
  75. package/dist/team/__tests__/role-router.test.js +204 -0
  76. package/dist/team/__tests__/role-router.test.js.map +1 -0
  77. package/dist/team/__tests__/runtime-cli.test.d.ts +2 -0
  78. package/dist/team/__tests__/runtime-cli.test.d.ts.map +1 -0
  79. package/dist/team/__tests__/runtime-cli.test.js +72 -0
  80. package/dist/team/__tests__/runtime-cli.test.js.map +1 -0
  81. package/dist/team/__tests__/runtime.test.js +194 -5
  82. package/dist/team/__tests__/runtime.test.js.map +1 -1
  83. package/dist/team/__tests__/scaling.test.js +132 -2
  84. package/dist/team/__tests__/scaling.test.js.map +1 -1
  85. package/dist/team/__tests__/tmux-session.test.js +86 -7
  86. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  87. package/dist/team/__tests__/worker-bootstrap.test.js +38 -0
  88. package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
  89. package/dist/team/__tests__/worktree.test.js +27 -1
  90. package/dist/team/__tests__/worktree.test.js.map +1 -1
  91. package/dist/team/idle-nudge.d.ts +53 -0
  92. package/dist/team/idle-nudge.d.ts.map +1 -0
  93. package/dist/team/idle-nudge.js +140 -0
  94. package/dist/team/idle-nudge.js.map +1 -0
  95. package/dist/team/mcp-comm.d.ts +1 -1
  96. package/dist/team/mcp-comm.d.ts.map +1 -1
  97. package/dist/team/role-router.d.ts +32 -0
  98. package/dist/team/role-router.d.ts.map +1 -0
  99. package/dist/team/role-router.js +137 -0
  100. package/dist/team/role-router.js.map +1 -0
  101. package/dist/team/runtime-cli.d.ts +18 -0
  102. package/dist/team/runtime-cli.d.ts.map +1 -0
  103. package/dist/team/runtime-cli.js +238 -0
  104. package/dist/team/runtime-cli.js.map +1 -0
  105. package/dist/team/runtime.d.ts +4 -0
  106. package/dist/team/runtime.d.ts.map +1 -1
  107. package/dist/team/runtime.js +108 -42
  108. package/dist/team/runtime.js.map +1 -1
  109. package/dist/team/scaling.d.ts +1 -0
  110. package/dist/team/scaling.d.ts.map +1 -1
  111. package/dist/team/scaling.js +41 -20
  112. package/dist/team/scaling.js.map +1 -1
  113. package/dist/team/state.d.ts +2 -1
  114. package/dist/team/state.d.ts.map +1 -1
  115. package/dist/team/state.js.map +1 -1
  116. package/dist/team/tmux-session.d.ts +42 -2
  117. package/dist/team/tmux-session.d.ts.map +1 -1
  118. package/dist/team/tmux-session.js +219 -65
  119. package/dist/team/tmux-session.js.map +1 -1
  120. package/dist/team/worker-bootstrap.d.ts +2 -0
  121. package/dist/team/worker-bootstrap.d.ts.map +1 -1
  122. package/dist/team/worker-bootstrap.js +29 -5
  123. package/dist/team/worker-bootstrap.js.map +1 -1
  124. package/dist/team/worktree.d.ts +5 -1
  125. package/dist/team/worktree.d.ts.map +1 -1
  126. package/dist/team/worktree.js +28 -16
  127. package/dist/team/worktree.js.map +1 -1
  128. package/package.json +1 -1
  129. package/scripts/notify-hook/log.js +5 -0
  130. package/scripts/notify-hook/team-dispatch.js +44 -8
  131. package/scripts/notify-hook/team-worker.js +26 -4
  132. package/scripts/notify-hook/tmux-injection.js +45 -4
  133. package/scripts/notify-hook/visual-verdict.js +109 -0
  134. package/scripts/notify-hook.js +26 -0
  135. package/scripts/tmux-hook-engine.js +24 -0
  136. package/skills/autopilot/SKILL.md +2 -2
  137. package/skills/doctor/SKILL.md +1 -1
  138. package/skills/help/SKILL.md +3 -3
  139. package/skills/skill/SKILL.md +32 -32
  140. package/skills/team/SKILL.md +43 -0
@@ -1 +1 @@
1
- {"version":3,"file":"worker-bootstrap.d.ts","sourceRoot":"","sources":["../../src/team/worker-bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA6B3C;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAiC9D;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB7F;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAY5E;AAWD;;;;;;GAMG;AACH,wBAAsB,+BAA+B,CACnD,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAmBjB;AAED;;GAEG;AACH,wBAAsB,gCAAgC,CACpD,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAGf;AAuED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,QAAQ,EAAE,EACjB,OAAO,GAAE;IACP,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,GACL,MAAM,CAgDR;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,GACtB,MAAM,CAsBR;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAiBlF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEnF;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGzG"}
1
+ {"version":3,"file":"worker-bootstrap.d.ts","sourceRoot":"","sources":["../../src/team/worker-bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA6B3C;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA2C9D;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB7F;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAY5E;AAWD;;;;;;GAMG;AACH,wBAAsB,+BAA+B,CACnD,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAmBjB;AAED;;GAEG;AACH,wBAAsB,gCAAgC,CACpD,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAGf;AAuED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,QAAQ,EAAE,EACjB,OAAO,GAAE;IACP,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACvB,GACL,MAAM,CA+DR;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,GACtB,MAAM,CAsBR;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAiBlF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEnF;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGzG"}
@@ -48,11 +48,21 @@ You are a team worker in team "${teamName}". Your identity and assigned tasks ar
48
48
  7. Request a claim via the state API (claimTask); do not directly set status to "in_progress" in the task file
49
49
  8. Do the work using your tools
50
50
  9. On completion: write {"status": "completed", "result": "summary of what was done"} to the task file
51
- 10. Update your status: write {"state": "idle"} to <team_state_root>/team/${teamName}/workers/{your-name}/status.json
51
+ 10. Update your status: write {"state": "idle", "updated_at": "<current ISO timestamp>"} to <team_state_root>/team/${teamName}/workers/{your-name}/status.json
52
52
  11. Wait for new instructions (the lead will send them via your terminal)
53
53
  12. Check your mailbox for messages at <team_state_root>/team/${teamName}/mailbox/{your-name}.json
54
54
  13. For team_* MCP tools, do not pass workingDirectory unless the lead explicitly tells you to
55
55
 
56
+ ## Message Protocol
57
+ When calling team_send_message, you MUST always include:
58
+ - from_worker: "<your-worker-name>" (your identity — check your inbox file for your worker name, never omit this)
59
+ - to_worker: "leader-fixed" (to message the leader) or "worker-N" (for peers)
60
+
61
+ Example:
62
+ team_send_message({ team_name: "${teamName}", from_worker: "<your-worker-name>", to_worker: "leader-fixed", body: "Task completed" })
63
+
64
+ CRITICAL: Never omit from_worker. The MCP server cannot auto-detect your identity.
65
+
56
66
  ## Rules
57
67
  - Do NOT edit files outside the paths listed in your task description
58
68
  - If you need to modify a shared file, report to the lead by writing to your status file with state "blocked"
@@ -220,15 +230,22 @@ export function generateInitialInbox(workerName, teamName, agentType, tasks, opt
220
230
  if (t.blocked_by && t.blocked_by.length > 0) {
221
231
  entry += `\n Blocked by: ${t.blocked_by.join(', ')}`;
222
232
  }
233
+ if (t.role) {
234
+ entry += `\n Role: ${t.role}`;
235
+ }
223
236
  return entry;
224
237
  })
225
238
  .join('\n');
226
239
  const teamStateRoot = options.teamStateRoot || '<team_state_root>';
227
240
  const leaderCwd = options.leaderCwd || '<leader_cwd>';
241
+ const displayRole = options.workerRole ?? agentType;
242
+ const specializationSection = options.rolePromptContent
243
+ ? `\n## Your Specialization\n\nYou are operating as a **${displayRole}** agent. Follow these behavioral guidelines:\n\n${options.rolePromptContent}\n`
244
+ : '';
228
245
  return `# Worker Assignment: ${workerName}
229
246
 
230
247
  **Team:** ${teamName}
231
- **Role:** ${agentType}
248
+ **Role:** ${displayRole}
232
249
  **Worker Name:** ${workerName}
233
250
 
234
251
  ## Your Assigned Tasks
@@ -247,10 +264,17 @@ ${taskList}
247
264
  7. Request a claim via state API (\`claimTask\`) to claim it
248
265
  8. Complete the work described in the task
249
266
  9. Write \`{"status": "completed", "result": "brief summary"}\` to the task file
250
- 10. Write \`{"state": "idle"}\` to \`${teamStateRoot}/team/${teamName}/workers/${workerName}/status.json\`
267
+ 10. Write \`{"state": "idle", "updated_at": "<current ISO timestamp>"}\` to \`${teamStateRoot}/team/${teamName}/workers/${workerName}/status.json\`
251
268
  11. Wait for the next instruction from the lead
252
269
  12. For team_* MCP tools, do not pass \`workingDirectory\` unless the lead explicitly asks (if resolution fails, use leader cwd: \`${leaderCwd}\`)
253
270
 
271
+ ## Message Protocol
272
+ When using team_send_message MCP tool, ALWAYS include from_worker with YOUR worker name:
273
+ - from_worker: "${workerName}"
274
+ - to_worker: "leader-fixed" (for leader) or "worker-N" (for peers)
275
+
276
+ Example: team_send_message({ team_name: "${teamName}", from_worker: "${workerName}", to_worker: "leader-fixed", body: "ACK: initialized" })
277
+
254
278
  ${buildVerificationSection('each assigned task')}
255
279
 
256
280
  ## Scope Rules
@@ -258,7 +282,7 @@ ${buildVerificationSection('each assigned task')}
258
282
  - Do NOT edit files that belong to other workers
259
283
  - If you need to modify a shared/common file, write \`{"state": "blocked", "reason": "need to edit shared file X"}\` to your status file and wait
260
284
  - Do NOT spawn sub-agents (no \`spawn_agent\`). Complete work in this worker session.
261
- `;
285
+ ${specializationSection}`;
262
286
  }
263
287
  /**
264
288
  * Generate inbox content for a follow-up task assignment.
@@ -281,7 +305,7 @@ ${taskDescription}
281
305
  3. Request a claim via state API (\`claimTask\`)
282
306
  4. Complete the work
283
307
  5. Write \`{"status": "completed", "result": "brief summary"}\` when done
284
- 6. Write \`{"state": "idle"}\` to your status file
308
+ 6. Write \`{"state": "idle", "updated_at": "<current ISO timestamp>"}\` to your status file
285
309
 
286
310
  ${buildVerificationSection(taskDescription)}
287
311
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"worker-bootstrap.js","sourceRoot":"","sources":["../../src/team/worker-bootstrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-bootstrap.js","sourceRoot":"","sources":["../../src/team/worker-bootstrap.ts"],"names":[],"mappings":"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"}
@@ -48,7 +48,11 @@ export declare function ensureWorktree(plan: PlannedWorktreeTarget | {
48
48
  }): EnsureWorktreeResult | {
49
49
  enabled: false;
50
50
  };
51
+ export interface RollbackWorktreeOptions {
52
+ /** When true, skip `git branch -D` for branches created during provisioning (ralph policy). */
53
+ skipBranchDeletion?: boolean;
54
+ }
51
55
  export declare function rollbackProvisionedWorktrees(results: Array<EnsureWorktreeResult | {
52
56
  enabled: false;
53
- }>): void;
57
+ }>, options?: RollbackWorktreeOptions): Promise<void>;
54
58
  //# sourceMappingURL=worktree.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../src/team/worktree.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,YAAY,GACpB;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,GAClB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAC7C;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,YAAY,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,IAAI,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;CACxB;AAiID,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAmDpE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,qBAAqB,GAAG;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,CAoBvG;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,qBAAqB,GAAG;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,GAAG,oBAAoB,GAAG;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,CAuE1H;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,KAAK,CAAC,oBAAoB,GAAG;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC,GAAG,IAAI,CAuC5G"}
1
+ {"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../src/team/worktree.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,YAAY,GACpB;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,GAClB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAC7C;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,YAAY,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,IAAI,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;CACxB;AAiID,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAmDpE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,qBAAqB,GAAG;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,CAoBvG;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,qBAAqB,GAAG;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,GAAG,oBAAoB,GAAG;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,CAuE1H;AAED,MAAM,WAAW,uBAAuB;IACtC,+FAA+F;IAC/F,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,KAAK,CAAC,oBAAoB,GAAG;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC,EACzD,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,IAAI,CAAC,CA4Cf"}
@@ -1,6 +1,8 @@
1
- import { execFileSync, spawnSync } from 'child_process';
1
+ import { execFile as execFileCb, execFileSync, spawnSync } from 'child_process';
2
2
  import { existsSync, mkdirSync } from 'fs';
3
3
  import { basename, dirname, join, resolve } from 'path';
4
+ import { promisify } from 'util';
5
+ const execFilePromise = promisify(execFileCb);
4
6
  const BRANCH_IN_USE_PATTERN = /already checked out|already used by worktree|is already checked out/i;
5
7
  function sanitizePathToken(value) {
6
8
  const normalized = value
@@ -238,34 +240,44 @@ export function ensureWorktree(plan) {
238
240
  createdBranch: Boolean(plan.branchName && !branchAlreadyExisted),
239
241
  };
240
242
  }
241
- export function rollbackProvisionedWorktrees(results) {
243
+ export async function rollbackProvisionedWorktrees(results, options = {}) {
242
244
  const created = results
243
245
  .filter((result) => result.enabled === true && result.created)
244
246
  .reverse();
245
247
  const errors = [];
246
248
  for (const result of created) {
247
- const removeResult = spawnSync('git', ['worktree', 'remove', '--force', result.worktreePath], {
248
- cwd: result.repoRoot,
249
- encoding: 'utf-8',
250
- });
251
- if (removeResult.status !== 0) {
252
- const stderr = (removeResult.stderr || '').trim();
253
- errors.push(`remove:${result.worktreePath}:${stderr || `exit_${removeResult.status}`}`);
249
+ try {
250
+ await execFilePromise('git', ['worktree', 'remove', '--force', result.worktreePath], {
251
+ cwd: result.repoRoot,
252
+ encoding: 'utf-8',
253
+ });
254
+ }
255
+ catch (err) {
256
+ const stderr = (err.stderr ?? '').trim();
257
+ const exitCode = err.code;
258
+ errors.push(`remove:${result.worktreePath}:${stderr || `exit_${exitCode}`}`);
254
259
  continue;
255
260
  }
261
+ if (options.skipBranchDeletion)
262
+ continue;
256
263
  if (!result.createdBranch || !result.branchName)
257
264
  continue;
258
265
  const entriesAfterRemove = listWorktrees(result.repoRoot);
259
266
  const stillCheckedOut = hasBranchInUse(entriesAfterRemove, result.branchName, result.worktreePath);
260
267
  if (stillCheckedOut)
261
268
  continue;
262
- const deleteBranchResult = spawnSync('git', ['branch', '-D', result.branchName], {
263
- cwd: result.repoRoot,
264
- encoding: 'utf-8',
265
- });
266
- if (deleteBranchResult.status !== 0 && branchExists(result.repoRoot, result.branchName)) {
267
- const stderr = (deleteBranchResult.stderr || '').trim();
268
- errors.push(`delete_branch:${result.branchName}:${stderr || `exit_${deleteBranchResult.status}`}`);
269
+ try {
270
+ await execFilePromise('git', ['branch', '-D', result.branchName], {
271
+ cwd: result.repoRoot,
272
+ encoding: 'utf-8',
273
+ });
274
+ }
275
+ catch (err) {
276
+ if (branchExists(result.repoRoot, result.branchName)) {
277
+ const stderr = (err.stderr ?? '').trim();
278
+ const exitCode = err.code;
279
+ errors.push(`delete_branch:${result.branchName}:${stderr || `exit_${exitCode}`}`);
280
+ }
269
281
  }
270
282
  }
271
283
  if (errors.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"worktree.js","sourceRoot":"","sources":["../../src/team/worktree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAgDxD,MAAM,qBAAqB,GAAG,sEAAsE,CAAC;AAErG,SAAS,iBAAiB,CAAC,KAAa;IACtC,MAAM,UAAU,GAAG,KAAK;SACrB,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACzB,OAAO,UAAU,IAAI,SAAS,CAAC;AACjC,CAAC;AAED,SAAS,OAAO,CAAC,QAAgB,EAAE,IAAc;IAC/C,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE;YAC/B,GAAG,EAAE,QAAQ;YACb,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC,IAAI,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,KAA6D,CAAC;QAC1E,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;YAC3C,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE;YACnB,CAAC,CAAC,GAAG,CAAC,MAAM,YAAY,MAAM;gBAC5B,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE;gBACrC,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB,EAAE,UAAkB;IAC9D,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,kBAAkB,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE;QAC5E,GAAG,EAAE,QAAQ;QACb,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAChC,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,2BAA2B,UAAU,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB,EAAE,UAAkB;IACxD,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,UAAU,EAAE,CAAC,EAAE;QAC/F,GAAG,EAAE,QAAQ;QACb,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB;IACrC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IACnE,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IAEpB,MAAM,OAAO,GAAuB,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,GAAG;SACf,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SAC5B,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,KAAK;aAChB,KAAK,CAAC,OAAO,CAAC;aACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC1B,MAAM,CAAC,OAAO,CAAC,CAAC;QACnB,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QAChE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,YAAY,IAAI,CAAC,QAAQ;YAAE,SAAS;QAEzC,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACrD,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;YAC3C,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;YACxE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU;SACpD,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAwB;IACjD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE5D,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACnD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;AAC5C,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAwB,EAAE,QAAgB;IACrE,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAErD,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,UAAU,IAAI,QAAQ,CAAC,CAAC;IACnE,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,QAAQ,IAAI,UAAU,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,kBAAkB,CAAC,OAA2B,EAAE,YAAoB;IAC3E,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACvC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC;AAC3E,CAAC;AAED,SAAS,cAAc,CAAC,OAA2B,EAAE,UAAkB,EAAE,YAAoB;IAC3F,MAAM,WAAW,GAAG,cAAc,UAAU,EAAE,CAAC;IAC/C,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,YAAY,CAAC,CAAC;AAC1G,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAc;IAC9C,IAAI,IAAI,GAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5C,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAEjC,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACzC,uEAAuE;YACvE,wEAAwE;YACxE,wEAAwE;YACxE,0DAA0D;YAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChG,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBACtD,CAAC,IAAI,CAAC,CAAC;YACT,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACvD,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YACrD,IAAI,GAAG,KAAK;gBACV,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;gBACjD,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAClD,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7C,IAAI,GAAG,KAAK;gBACV,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;gBACjD,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAClD,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,GAAG,KAAK;gBACV,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;gBACjD,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAClD,SAAS;QACX,CAAC;QAED,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAwB;IACzD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAEnD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAE5C,IAAI,UAAU,EAAE,CAAC;QACf,kBAAkB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ;QACR,YAAY,EAAE,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC;QAClD,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ;QAC7B,OAAO;QACP,UAAU;KACX,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAgD;IAC7E,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAE7C,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,cAAc,GAAG,kBAAkB,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3E,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAEnF,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,cAAc,CAAC,QAAQ,IAAI,cAAc,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;gBACrE,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;aAAM,IAAI,cAAc,CAAC,SAAS,KAAK,iBAAiB,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;YACxC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,KAAK;SACrB,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,IAAI,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACxF,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,MAAM,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAEpG,MAAM,OAAO,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACpC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;SAAM,IAAI,oBAAoB,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAoB,CAAC,CAAC;IAC7D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAoB,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE;QACvC,GAAG,EAAE,IAAI,CAAC,QAAQ;QAClB,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,IAAI,CAAC,UAAU,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,uBAAuB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;QACxC,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,KAAK;QACb,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,oBAAoB,CAAC;KACjE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,OAAyD;IACpG,MAAM,OAAO,GAAG,OAAO;SACpB,MAAM,CAAC,CAAC,MAAM,EAAkC,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC;SAC7F,OAAO,EAAE,CAAC;IAEb,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE;YAC5F,GAAG,EAAE,MAAM,CAAC,QAAQ;YACpB,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QAEH,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,CAAC,YAAY,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,YAAY,IAAI,MAAM,IAAI,QAAQ,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACxF,SAAS;QACX,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,UAAU;YAAE,SAAS;QAE1D,MAAM,kBAAkB,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1D,MAAM,eAAe,GAAG,cAAc,CAAC,kBAAkB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QACnG,IAAI,eAAe;YAAE,SAAS;QAE9B,MAAM,kBAAkB,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE;YAC/E,GAAG,EAAE,MAAM,CAAC,QAAQ;YACpB,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QAEH,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YACxF,MAAM,MAAM,GAAG,CAAC,kBAAkB,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,UAAU,IAAI,MAAM,IAAI,QAAQ,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"worktree.js","sourceRoot":"","sources":["../../src/team/worktree.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-codex",
3
- "version": "0.7.4",
3
+ "version": "0.7.6",
4
4
  "description": "Multi-agent orchestration layer for OpenAI Codex CLI",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -9,3 +9,8 @@ export async function logTmuxHookEvent(logsDir, event) {
9
9
  const file = join(logsDir, `tmux-hook-${new Date().toISOString().split('T')[0]}.jsonl`);
10
10
  await appendFile(file, JSON.stringify(event) + '\n').catch(() => {});
11
11
  }
12
+
13
+ export async function logNotifyHookEvent(logsDir, event) {
14
+ const file = join(logsDir, `notify-hook-${new Date().toISOString().split('T')[0]}.jsonl`);
15
+ await appendFile(file, JSON.stringify(event) + '\n').catch(() => {});
16
+ }
@@ -122,8 +122,15 @@ function defaultInjectTarget(request, config) {
122
122
  const worker = config.workers.find((candidate) => Number(candidate?.index) === request.worker_index);
123
123
  if (worker?.pane_id) return { type: 'pane', value: worker.pane_id };
124
124
  }
125
+ // Leader-fixed fallback: use config.leader_pane_id when request has no
126
+ // pane_id or worker_index (leader is not a worker). Without this, leader
127
+ // dispatch falls through to the session target which hits the active pane
128
+ // (likely a worker). Fixes #433.
129
+ if (request.to_worker === 'leader-fixed' && config.leader_pane_id) {
130
+ return { type: 'pane', value: config.leader_pane_id };
131
+ }
125
132
  if (typeof request.worker_index === 'number' && config.tmux_session) {
126
- return { type: 'pane', value: `${config.tmux_session}:${request.worker_index}` };
133
+ return { type: 'pane', value: `${config.tmux_session}.${request.worker_index}` };
127
134
  }
128
135
  if (config.tmux_session) return { type: 'session', value: config.tmux_session };
129
136
  return null;
@@ -149,6 +156,21 @@ function capturedPaneContainsTrigger(captured, trigger) {
149
156
  return normalizeCaptureText(captured).includes(normalizeCaptureText(trigger));
150
157
  }
151
158
 
159
+ // Ported from src/team/tmux-session.ts:949-963 — detects active CLI task indicators.
160
+ function paneHasActiveTask(captured) {
161
+ const lines = safeString(captured)
162
+ .split('\n')
163
+ .map((line) => line.replace(/\r/g, '').trim())
164
+ .filter((line) => line.length > 0);
165
+ const tail = lines.slice(-40);
166
+ if (tail.some((line) => /esc to interrupt/i.test(line))) return true;
167
+ if (tail.some((line) => /\bbackground terminal running\b/i.test(line))) return true;
168
+ if (tail.some((line) => /^•\s.+\(.+•\s*esc to interrupt\)$/i.test(line))) return true;
169
+ // Claude active generation lines
170
+ if (tail.some((line) => /^[·✻]\s+[A-Za-z][A-Za-z0-9''-]*(?:\s+[A-Za-z][A-Za-z0-9''-]*){0,3}(?:…|\.{3})$/u.test(line))) return true;
171
+ return false;
172
+ }
173
+
152
174
  const INJECT_VERIFY_DELAY_MS = 250;
153
175
  const INJECT_VERIFY_ROUNDS = 3;
154
176
 
@@ -183,16 +205,23 @@ async function injectDispatchRequest(request, config, cwd) {
183
205
  let preCaptureHasTrigger = false;
184
206
  if (attemptCountAtStart >= 1) {
185
207
  try {
186
- const preCapture = await runProcess('tmux', buildCapturePaneArgv(resolution.paneTarget), 2000);
208
+ // Narrow capture (8 lines) to scope check to input area, not scrollback output
209
+ const preCapture = await runProcess('tmux', buildCapturePaneArgv(resolution.paneTarget, 8), 2000);
187
210
  preCaptureHasTrigger = capturedPaneContainsTrigger(preCapture.stdout, request.trigger_message);
188
211
  } catch {
189
212
  preCaptureHasTrigger = false;
190
213
  }
191
214
  }
192
215
 
193
- const shouldTypePrompt = attemptCountAtStart === 0
194
- || (attemptCountAtStart === 1 && !preCaptureHasTrigger);
216
+ // Retype whenever trigger text is NOT in the narrow input area, regardless of attempt count.
217
+ // Pre-0.7.4 bug: 80-line capture matched trigger in scrollback output, falsely skipping retype.
218
+ const shouldTypePrompt = attemptCountAtStart === 0 || !preCaptureHasTrigger;
195
219
  if (shouldTypePrompt) {
220
+ if (attemptCountAtStart >= 1) {
221
+ // Clear stale text in input buffer before retyping (mirrors sync path tmux-session.ts:1270)
222
+ await runProcess('tmux', ['send-keys', '-t', resolution.paneTarget, 'C-u'], 1000).catch(() => {});
223
+ await new Promise((r) => setTimeout(r, 50));
224
+ }
196
225
  await runProcess('tmux', argv.typeArgv, 3000);
197
226
  }
198
227
 
@@ -203,18 +232,25 @@ async function injectDispatchRequest(request, config, cwd) {
203
232
  // Post-injection verification: confirm the trigger text was consumed.
204
233
  // Fixes #391: without this, dispatch marks 'notified' even when the worker
205
234
  // pane is sitting on an unsent draft (C-m was not effectively applied).
206
- const captureArgv = buildCapturePaneArgv(resolution.paneTarget);
235
+ const verifyNarrowArgv = buildCapturePaneArgv(resolution.paneTarget, 8);
236
+ const verifyWideArgv = buildCapturePaneArgv(resolution.paneTarget);
207
237
  for (let round = 0; round < INJECT_VERIFY_ROUNDS; round++) {
208
238
  await new Promise((r) => setTimeout(r, INJECT_VERIFY_DELAY_MS));
209
239
  try {
210
- const cap = await runProcess('tmux', captureArgv, 2000);
211
- if (!capturedPaneContainsTrigger(cap.stdout, request.trigger_message)) {
240
+ // Primary: trigger text no longer in narrow input area
241
+ const narrowCap = await runProcess('tmux', verifyNarrowArgv, 2000);
242
+ if (!capturedPaneContainsTrigger(narrowCap.stdout, request.trigger_message)) {
212
243
  return { ok: true, reason: 'tmux_send_keys_confirmed', pane: resolution.paneTarget };
213
244
  }
245
+ // Secondary: worker is actively processing (mirrors sync path tmux-session.ts:1292-1294)
246
+ const wideCap = await runProcess('tmux', verifyWideArgv, 2000);
247
+ if (paneHasActiveTask(wideCap.stdout)) {
248
+ return { ok: true, reason: 'tmux_send_keys_confirmed_active_task', pane: resolution.paneTarget };
249
+ }
214
250
  } catch {
215
251
  // capture failed; fall through to retry C-m
216
252
  }
217
- // Draft still visible — retry C-m
253
+ // Draft still visible and no active task — retry C-m
218
254
  for (const submit of argv.submitArgv) {
219
255
  await runProcess('tmux', submit, 3000).catch(() => {});
220
256
  }
@@ -2,7 +2,7 @@
2
2
  * Team worker: heartbeat, idle detection, and leader notification.
3
3
  */
4
4
 
5
- import { readFile, writeFile, mkdir, appendFile, rename } from 'fs/promises';
5
+ import { readFile, writeFile, mkdir, appendFile, rename, stat } from 'fs/promises';
6
6
  import { existsSync } from 'fs';
7
7
  import { join, resolve as resolvePath } from 'path';
8
8
  import { asNumber, safeString } from './utils.js';
@@ -127,7 +127,18 @@ async function readWorkerStatusSnapshot(stateDir, teamName, workerName, nowMs =
127
127
  const parsed = JSON.parse(raw);
128
128
  const state = parsed && typeof parsed.state === 'string' ? parsed.state : 'unknown';
129
129
  const updatedAt = parsed && typeof parsed.updated_at === 'string' ? parsed.updated_at : null;
130
- const fresh = isFreshIso(updatedAt, resolveStatusStaleMs(), nowMs);
130
+ let fresh = false;
131
+ if (updatedAt) {
132
+ fresh = isFreshIso(updatedAt, resolveStatusStaleMs(), nowMs);
133
+ } else {
134
+ // Fallback: if worker omits updated_at, use file mtime as staleness proxy
135
+ try {
136
+ const st = await stat(statusPath);
137
+ fresh = (nowMs - st.mtimeMs) <= resolveStatusStaleMs();
138
+ } catch {
139
+ fresh = false;
140
+ }
141
+ }
131
142
  return { state, updated_at: updatedAt, fresh };
132
143
  } catch {
133
144
  return { state: 'unknown', updated_at: null, fresh: false };
@@ -314,7 +325,18 @@ export async function maybeNotifyLeaderWorkerIdle({ cwd, stateDir, logsDir, pars
314
325
  if (parsed && typeof parsed.state === 'string') currentState = parsed.state;
315
326
  if (parsed && typeof parsed.current_task_id === 'string') currentTaskId = parsed.current_task_id;
316
327
  if (parsed && typeof parsed.reason === 'string') currentReason = parsed.reason;
317
- statusFresh = isFreshIso(parsed && typeof parsed.updated_at === 'string' ? parsed.updated_at : null, resolveStatusStaleMs(), nowMs);
328
+ const updatedAtField = parsed && typeof parsed.updated_at === 'string' ? parsed.updated_at : null;
329
+ if (updatedAtField) {
330
+ statusFresh = isFreshIso(updatedAtField, resolveStatusStaleMs(), nowMs);
331
+ } else {
332
+ // Fallback: use file mtime when worker omits updated_at
333
+ try {
334
+ const st = await stat(statusPath);
335
+ statusFresh = (nowMs - st.mtimeMs) <= resolveStatusStaleMs();
336
+ } catch {
337
+ statusFresh = false;
338
+ }
339
+ }
318
340
  }
319
341
  } catch { /* ignore */ }
320
342
 
@@ -339,7 +361,7 @@ export async function maybeNotifyLeaderWorkerIdle({ cwd, stateDir, logsDir, pars
339
361
  // Only fire on working->idle transition (non-idle to idle)
340
362
  if (currentState !== 'idle') return;
341
363
  if (!statusFresh) return;
342
- if (prevState === 'idle' || prevState === 'done' || prevState === 'unknown') return;
364
+ if (prevState === 'idle' || prevState === 'done') return;
343
365
 
344
366
  const heartbeat = await readWorkerHeartbeatSnapshot(stateDir, teamName, workerName, nowMs);
345
367
  if (!heartbeat.fresh) return;
@@ -22,6 +22,8 @@ import {
22
22
  evaluateInjectionGuards,
23
23
  buildSendKeysArgv,
24
24
  buildPaneInModeArgv,
25
+ buildPaneCurrentCommandArgv,
26
+ isPaneRunningShell,
25
27
  } from '../tmux-hook-engine.js';
26
28
 
27
29
  export async function resolveSessionToPane(sessionName) {
@@ -188,9 +190,14 @@ export async function handleTmuxInjection({
188
190
 
189
191
  const activeModes = [];
190
192
  const activeModeStates = {};
191
- try {
192
- const scopedDirs = await getScopedStateDirsForCurrentSession(stateDir);
193
- for (const scopedDir of scopedDirs) {
193
+ const scannedStateDirs = new Set();
194
+ const payloadSessionId = safeString(payload.session_id || payload['session-id'] || '');
195
+ const scanActiveModeStateDirs = async (dirs, preserveExisting = false) => {
196
+ for (const scopedDir of dirs) {
197
+ const resolvedScopedDir = resolvePath(scopedDir);
198
+ if (scannedStateDirs.has(resolvedScopedDir)) continue;
199
+ scannedStateDirs.add(resolvedScopedDir);
200
+
194
201
  const files = await readdir(scopedDir).catch(() => []);
195
202
  for (const file of files) {
196
203
  if (!file.endsWith('-state.json') || file === 'tmux-hook-state.json') continue;
@@ -199,10 +206,20 @@ export async function handleTmuxInjection({
199
206
  if (parsed && parsed.active) {
200
207
  const modeName = file.replace('-state.json', '');
201
208
  activeModes.push(modeName);
202
- activeModeStates[modeName] = parsed;
209
+ if (!preserveExisting || !activeModeStates[modeName]) {
210
+ activeModeStates[modeName] = parsed;
211
+ }
203
212
  }
204
213
  }
205
214
  }
215
+ };
216
+ try {
217
+ const scopedDirs = await getScopedStateDirsForCurrentSession(stateDir, payloadSessionId);
218
+ await scanActiveModeStateDirs(scopedDirs);
219
+
220
+ if (!pickActiveMode(activeModes, config.allowed_modes) && !scannedStateDirs.has(resolvePath(stateDir))) {
221
+ await scanActiveModeStateDirs([stateDir], true);
222
+ }
206
223
  } catch {
207
224
  // Non-fatal
208
225
  }
@@ -356,6 +373,30 @@ export async function handleTmuxInjection({
356
373
  }
357
374
  }
358
375
 
376
+ // Shell-detection guard: skip injection when the agent process has exited
377
+ // and the pane has returned to an interactive shell (zsh, bash, etc.).
378
+ // Sending the inject marker to a shell causes glob errors like
379
+ // "zsh: no matches found: [OMX_TMUX_INJECT]". See #441.
380
+ try {
381
+ const cmdResult = await runProcess('tmux', buildPaneCurrentCommandArgv(paneTarget), 1000);
382
+ const currentCmd = safeString(cmdResult.stdout).trim();
383
+ if (isPaneRunningShell(currentCmd)) {
384
+ state.last_reason = 'agent_not_running';
385
+ state.last_event_at = nowIso;
386
+ await writeFile(hookStatePath, JSON.stringify(state, null, 2)).catch(() => {});
387
+ await logTmuxHookEvent(logsDir, {
388
+ ...baseLog,
389
+ event: 'injection_skipped',
390
+ reason: 'agent_not_running',
391
+ pane_target: paneTarget,
392
+ pane_current_command: currentCmd,
393
+ });
394
+ return;
395
+ }
396
+ } catch {
397
+ // Non-fatal: if querying pane command fails, proceed with injection.
398
+ }
399
+
359
400
  if (config.dry_run) {
360
401
  updateStateForAttempt(false, 'dry_run');
361
402
  await writeFile(hookStatePath, JSON.stringify(state, null, 2)).catch(() => {});
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Visual verdict extraction and persistence.
3
+ *
4
+ * Parses PASS / FAIL / INCOMPLETE verdicts from verifier agent output
5
+ * and persists them to stateDir/verdicts/latest-verdict.json.
6
+ *
7
+ * All failures are logged with structured context (issue #421) rather
8
+ * than silently swallowed.
9
+ */
10
+
11
+ import { writeFile, mkdir } from 'fs/promises';
12
+ import { join } from 'path';
13
+ import { logNotifyHookEvent } from './log.js';
14
+ import { safeString } from './utils.js';
15
+
16
+ /** Structured patterns that reliably indicate a verification verdict. */
17
+ const VERDICT_PATTERNS = [
18
+ /\*\*Status\*\*:\s*(PASS|FAIL|INCOMPLETE)/i,
19
+ /\bVerdict:\s*(PASS|FAIL|INCOMPLETE)\b/i,
20
+ ];
21
+
22
+ /**
23
+ * Heuristic: output contains verdict-like markers but no structured match.
24
+ * Used to emit a debug-level log for candidate parse failures.
25
+ */
26
+ const VERDICT_CANDIDATE_RE = /(?:\*\*Status\*\*\s*:|Verdict\s*:)/i;
27
+
28
+ /**
29
+ * Attempt to extract a structured verdict from free-form text.
30
+ * Returns `{ verdict, raw }` on success, `null` otherwise.
31
+ */
32
+ export function parseVisualVerdict(text) {
33
+ if (!text || typeof text !== 'string') return null;
34
+ for (const pattern of VERDICT_PATTERNS) {
35
+ const match = text.match(pattern);
36
+ if (match) {
37
+ return { verdict: match[1].toUpperCase(), raw: match[0] };
38
+ }
39
+ }
40
+ return null;
41
+ }
42
+
43
+ /**
44
+ * Parse a visual verdict from the agent payload output and persist it.
45
+ *
46
+ * Logs structured warnings/debug events instead of silently swallowing
47
+ * errors (addresses issue #421):
48
+ * - debug: candidate markers found but no structured verdict matched
49
+ * - warn: verdict file write failure (with turn/session context)
50
+ *
51
+ * Module import failure is handled by the caller in notify-hook.js.
52
+ */
53
+ export async function maybePersistVisualVerdict({ payload, stateDir, logsDir, sessionId, turnId }) {
54
+ const output = safeString(
55
+ payload?.['last-assistant-message'] || payload?.last_assistant_message || '',
56
+ );
57
+ if (!output) return;
58
+
59
+ const parsed = parseVisualVerdict(output);
60
+
61
+ if (!parsed) {
62
+ // Debug level: verdict-like markers present but no structured match
63
+ if (VERDICT_CANDIDATE_RE.test(output)) {
64
+ await logNotifyHookEvent(logsDir, {
65
+ timestamp: new Date().toISOString(),
66
+ level: 'debug',
67
+ type: 'visual_verdict_parse_no_match',
68
+ session_id: sessionId,
69
+ turn_id: turnId,
70
+ });
71
+ }
72
+ return;
73
+ }
74
+
75
+ // Persist the extracted verdict
76
+ try {
77
+ const verdictDir = join(stateDir, 'verdicts');
78
+ await mkdir(verdictDir, { recursive: true });
79
+
80
+ const entry = {
81
+ timestamp: new Date().toISOString(),
82
+ verdict: parsed.verdict,
83
+ raw_match: parsed.raw,
84
+ session_id: sessionId,
85
+ turn_id: turnId,
86
+ };
87
+
88
+ await writeFile(
89
+ join(verdictDir, 'latest-verdict.json'),
90
+ JSON.stringify(entry, null, 2),
91
+ );
92
+
93
+ await logNotifyHookEvent(logsDir, {
94
+ ...entry,
95
+ level: 'info',
96
+ type: 'visual_verdict_persisted',
97
+ });
98
+ } catch (err) {
99
+ // Warn level: persistence write failure with turn/session context
100
+ await logNotifyHookEvent(logsDir, {
101
+ timestamp: new Date().toISOString(),
102
+ level: 'warn',
103
+ type: 'visual_verdict_write_failure',
104
+ error: err?.message || String(err),
105
+ session_id: sessionId,
106
+ turn_id: turnId,
107
+ });
108
+ }
109
+ }