commandmate 0.42.1 → 0.42.2

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 (210) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +98 -98
  3. package/.next/app-path-routes-manifest.json +21 -21
  4. package/.next/build-manifest.json +2 -2
  5. package/.next/prerender-manifest.json +12 -12
  6. package/.next/required-server-files.json +1 -1
  7. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
  9. package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
  10. package/.next/server/app/api/app/release-notes/route_client-reference-manifest.js +1 -1
  11. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  12. package/.next/server/app/api/app/update-check/route.js +1 -1
  13. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/capabilities/route.js +1 -1
  18. package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  24. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/hooks/agent-event/route.js +1 -1
  27. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/hooks/claude-done/route.js +1 -1
  29. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  31. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
  40. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/settings/default-agents/route.js +1 -1
  50. package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
  52. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  55. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  60. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  64. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  66. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  68. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
  70. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
  72. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
  75. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  76. package/.next/server/app/api/worktrees/[id]/direct-input/route.js +1 -1
  77. package/.next/server/app/api/worktrees/[id]/direct-input/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  79. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  85. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  88. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  91. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  100. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  103. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
  106. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  108. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  109. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  110. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  112. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  116. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
  118. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
  119. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
  120. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  121. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  123. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  124. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  126. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  127. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  131. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
  132. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  133. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +1 -1
  134. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  135. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  139. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  144. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/worktrees/[id]/tasks/route.js +1 -1
  146. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
  148. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  149. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  151. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  152. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  153. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  154. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  155. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/worktrees/[id]/verify/config/route.js +1 -1
  157. package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
  158. package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  160. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js +1 -1
  161. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  163. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  164. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  165. package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
  166. package/.next/server/app/api/worktrees/route.js +1 -1
  167. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  168. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  169. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  170. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  171. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  172. package/.next/server/app/page_client-reference-manifest.js +1 -1
  173. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  174. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  175. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  176. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  177. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  178. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  179. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  180. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  181. package/.next/server/app/worktrees/[id]/page.js +1 -1
  182. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  183. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  184. package/.next/server/app-paths-manifest.json +21 -21
  185. package/.next/server/chunks/1501.js +3 -3
  186. package/.next/server/chunks/434.js +1 -1
  187. package/.next/server/chunks/5775.js +1 -1
  188. package/.next/server/chunks/6130.js +1 -1
  189. package/.next/server/chunks/8583.js +1 -1
  190. package/.next/server/chunks/8728.js +1 -1
  191. package/.next/server/chunks/9627.js +1 -1
  192. package/.next/server/chunks/964.js +1 -1
  193. package/.next/server/middleware-manifest.json +5 -5
  194. package/.next/server/pages/500.html +1 -1
  195. package/.next/server/server-reference-manifest.json +1 -1
  196. package/.next/static/chunks/{2407-21fbf12d753b8d4d.js → 2407-6b9e12c099fa598c.js} +1 -1
  197. package/.next/static/chunks/app/{layout-8ff4c7c08ef1f621.js → layout-5b95e1236dcd9ef6.js} +1 -1
  198. package/.next/static/chunks/app/worktrees/[id]/{page-3c946bd2875391fd.js → page-59f5337e031518c6.js} +1 -1
  199. package/.next/trace +13 -13
  200. package/dist/cli/commands/verify.d.ts.map +1 -1
  201. package/dist/cli/commands/verify.js +9 -0
  202. package/dist/cli/types/index.d.ts +2 -0
  203. package/dist/cli/types/index.d.ts.map +1 -1
  204. package/dist/server/src/lib/db/worktree-db.js +1 -1
  205. package/dist/server/src/lib/verification/env-clean-gate.js +141 -4
  206. package/dist/server/src/lib/verification/env-snapshot.js +65 -1
  207. package/package.json +1 -1
  208. package/release-notes/0.42.2.json +20 -0
  209. /package/.next/static/{3M_S0B7dhEDdVE2XSJz1Y → MXZXkcFAnpELZnxxHB4iJ}/_buildManifest.js +0 -0
  210. /package/.next/static/{3M_S0B7dhEDdVE2XSJz1Y → MXZXkcFAnpELZnxxHB4iJ}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC,OAAO,KAAK,EAMV,uBAAuB,EAExB,MAAM,wBAAwB,CAAC;AAmChC;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,uBAAuB,GAAG,IAAI,CA8BrG;AAyED,wBAAgB,mBAAmB,IAAI,OAAO,CA2D7C"}
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC,OAAO,KAAK,EAMV,uBAAuB,EAExB,MAAM,wBAAwB,CAAC;AAsChC;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,uBAAuB,GAAG,IAAI,CA8BrG;AAyED,wBAAgB,mBAAmB,IAAI,OAAO,CAsE7C"}
@@ -34,6 +34,8 @@ const MAX_HISTORY_DAYS = 90;
34
34
  const MAX_HISTORY_LIMIT = 500;
35
35
  /** Gate statuses that mean the gate did not pass. `skipped` is not a failure. */
36
36
  const FAILED_GATE_STATUSES = new Set(['failed', 'timeout', 'error']);
37
+ /** crypto.randomUUID() output; mirrors TASK_ID_PATTERN in task.ts and API routes. */
38
+ const TASK_ID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
37
39
  // =============================================================================
38
40
  // Scope-gate evidence (Issue #1841)
39
41
  // =============================================================================
@@ -168,6 +170,7 @@ function createVerifyCommand() {
168
170
  .description('Run the verification gates declared in .commandmate/verify.yaml for a worktree')
169
171
  .argument('<worktree-id>', 'Worktree ID to verify')
170
172
  .option('--instance <id>', 'Agent instance ID the run is attributed to (e.g. codex-2)')
173
+ .option('--task <id>', "Verify against this task (re-verify a succeeded/failed task instead of the worktree's latest)")
171
174
  .option('--gates <ids>', 'Comma-separated gate ids to run (default: work-evidence plus every declared gate)')
172
175
  .option('--json', 'Print the run and its gate results as JSON on stdout')
173
176
  .option('--timeout <seconds>', 'Stop polling after this many seconds (exit 124)', parseInt)
@@ -184,6 +187,11 @@ function createVerifyCommand() {
184
187
  process.exit(types_1.ExitCode.CONFIG_ERROR);
185
188
  return;
186
189
  }
190
+ if (options.task && !TASK_ID_PATTERN.test(options.task)) {
191
+ console.error('Error: Invalid --task. Must be a UUID (crypto.randomUUID() format).');
192
+ process.exit(types_1.ExitCode.CONFIG_ERROR);
193
+ return;
194
+ }
187
195
  const gateIds = (0, verify_runner_1.parseGateIds)(options.gates);
188
196
  if (gateIds === null) {
189
197
  console.error('Error: --gates must name at least one gate id.');
@@ -195,6 +203,7 @@ function createVerifyCommand() {
195
203
  worktreeId,
196
204
  trigger: 'manual',
197
205
  instanceId: options.instance,
206
+ taskId: options.task,
198
207
  gateIds,
199
208
  timeoutSec: options.timeout,
200
209
  suppressResultLine: options.json,
@@ -262,6 +262,8 @@ export declare const WAIT_EXIT_CODE_PRIORITY: readonly number[];
262
262
  export interface VerifyOptions {
263
263
  /** Agent instance the run is attributed to. */
264
264
  instance?: string;
265
+ /** Verify against this task (re-verify a succeeded/failed task instead of the worktree's latest) [Issue #2927] */
266
+ task?: string;
265
267
  /** Comma-separated gate ids; omitted means work-evidence plus every declared gate. */
266
268
  gates?: string;
267
269
  json?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/types/index.ts"],"names":[],"mappings":"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"}
@@ -352,7 +352,7 @@ function upsertWorktree(db, worktree) {
352
352
  -- Issue #1003: keep the last known branch when a non-sync writer omits it.
353
353
  branch = COALESCE(excluded.branch, worktrees.branch)
354
354
  `);
355
- stmt.run(worktree.id, worktree.name, worktree.path, worktree.repositoryPath || null, worktree.repositoryName || null, worktree.description || null, worktree.lastUserMessage || null, worktree.lastUserMessageAt?.getTime() || null, worktree.lastMessageSummary || null, worktree.updatedAt?.getTime() || null, worktree.cliToolId || 'claude', worktree.branch || null);
355
+ stmt.run(worktree.id, worktree.name, worktree.path, worktree.repositoryPath || null, worktree.repositoryName || null, worktree.description || null, worktree.lastUserMessage || null, worktree.lastUserMessageAt?.getTime() || null, worktree.lastMessageSummary || null, worktree.updatedAt?.getTime() || null, worktree.cliToolId ?? null, worktree.branch || null);
356
356
  });
357
357
  run();
358
358
  }
@@ -17,7 +17,9 @@
17
17
  * counted, and it is the single failure this gate must not reproduce.
18
18
  * 2. **Additions and removals are judged asymmetrically.** Everything that
19
19
  * existed at task start must still exist, whoever it belonged to — that is
20
- * the pkill (#1739) and `kill-server` (#1624) case. New things are a
20
+ * the pkill (#1739) and `kill-server` (#1624) case — with one exception: a
21
+ * tmux session the baseline recorded as *another CommandMate server's*
22
+ * (#2627), which that server may close whenever it likes. New things are a
21
23
  * violation *unless they are attributable to another worker*, because
22
24
  * parallel delegations legitimately start their own sessions and servers
23
25
  * inside each other's measurement windows — or unless they are the one
@@ -36,6 +38,10 @@ exports.attributeAnchor = attributeAnchor;
36
38
  exports.resolveTaskSessionName = resolveTaskSessionName;
37
39
  exports.recordTaskSession = recordTaskSession;
38
40
  exports.readTaskSession = readTaskSession;
41
+ exports.currentSessionServer = currentSessionServer;
42
+ exports.isOtherServerSession = isOtherServerSession;
43
+ exports.recordOtherServerSessions = recordOtherServerSessions;
44
+ exports.readOtherServerSessions = readOtherServerSessions;
39
45
  exports.diffEnvSnapshots = diffEnvSnapshots;
40
46
  exports.formatEnvCleanReport = formatEnvCleanReport;
41
47
  exports.envCleanNoBaseline = envCleanNoBaseline;
@@ -166,8 +172,12 @@ function resolveTaskSessionName(task) {
166
172
  }
167
173
  }
168
174
  /** A freshly captured baseline, stamped with its task's own agent session. */
169
- function recordTaskSession(snapshot, task) {
170
- return { ...snapshot, taskSession: resolveTaskSessionName(task) };
175
+ function recordTaskSession(snapshot, task, server = currentSessionServer()) {
176
+ return {
177
+ ...snapshot,
178
+ taskSession: resolveTaskSessionName(task),
179
+ otherServerSessions: recordOtherServerSessions(snapshot, server),
180
+ };
171
181
  }
172
182
  /**
173
183
  * The session a baseline excuses: its name, `null` when it was recorded as
@@ -180,6 +190,106 @@ function readTaskSession(baseline) {
180
190
  const recorded = baseline.taskSession;
181
191
  return typeof recorded === 'string' && recorded !== '' ? recorded : null;
182
192
  }
193
+ /**
194
+ * The identity of the server process this module runs in.
195
+ *
196
+ * The adoption table is read through `resolveSessionName`, which returns the
197
+ * adopted legacy name in place of the new-format one — this module may not
198
+ * reach into `lib/tmux` (#1922).
199
+ */
200
+ function currentSessionServer() {
201
+ return {
202
+ namespace: (0, session_name_1.getActiveSessionNamespace)(),
203
+ legacyAliasOf: (newName) => {
204
+ const parsed = (0, session_name_1.parseSessionName)(newName);
205
+ if (!parsed)
206
+ return undefined;
207
+ try {
208
+ const resolved = (0, session_name_1.resolveSessionName)(parsed.cliToolId, parsed.rest);
209
+ return resolved !== newName ? resolved : undefined;
210
+ }
211
+ catch {
212
+ return undefined;
213
+ }
214
+ },
215
+ };
216
+ }
217
+ /**
218
+ * Whether a session name positively belongs to a CommandMate server other than
219
+ * `server`.
220
+ *
221
+ * False whenever that cannot be shown: this server has no namespace (then every
222
+ * name could be its own), or the name is not a CommandMate session name at all.
223
+ */
224
+ function isOtherServerSession(name, server) {
225
+ if (server.namespace === null)
226
+ return false;
227
+ const parsed = (0, session_name_1.parseSessionName)(name);
228
+ if (!parsed)
229
+ return false;
230
+ if (parsed.namespace !== null)
231
+ return parsed.namespace !== server.namespace;
232
+ let ownName;
233
+ try {
234
+ ownName = (0, session_name_1.resolveNamespacedSessionName)(server.namespace, parsed.cliToolId, parsed.rest);
235
+ }
236
+ catch {
237
+ // A name this server could never have built is not one of its adoptions.
238
+ return true;
239
+ }
240
+ return server.legacyAliasOf(ownName) !== name;
241
+ }
242
+ /**
243
+ * The baseline's `mcbd-*` sessions that belonged to another CommandMate server
244
+ * at task creation.
245
+ *
246
+ * Recorded then, because only then is it knowable: this server's legacy
247
+ * adoptions are dropped when their session goes away, so by verification time
248
+ * a vanished adopted session would look like a stranger's.
249
+ *
250
+ * Why this is the line removals are excused on — the design note for #2627:
251
+ *
252
+ * - A removal is a violation because a worker may have killed someone else's
253
+ * session (#1624) or server (#1739). A session *of this server* — the
254
+ * sibling worktree in #1624, whose name carries this server's namespace —
255
+ * stays guarded exactly as before.
256
+ * - A session of *another server* is closed by that server's own lifecycle:
257
+ * the incident of 2026-09-17 was a global-install server's orchestrate
258
+ * finishing issue-107 and moving on to issue-108, with no kill of any kind
259
+ * in the three workers' transcripts. This task has no way to tell that
260
+ * from a worker's kill, and that server — not this gate — owns the fact.
261
+ * - The namespace is the designed marker of "which server" (#2866); nothing
262
+ * else here needs this server's database or a guess at the other
263
+ * repository's paths.
264
+ *
265
+ * Rejected: counting (`one other session gone is fine`) — that is the #1624
266
+ * shape, a sibling session disappearing while this worktree's stays; ignoring
267
+ * every `other` removal — that drops #1624 outright; the database's worktree
268
+ * table — the other server has a different database and the same worktree ids
269
+ * can exist in both, which is why #2866 exists; timing — the two snapshots do
270
+ * not say *when* inside the window something went away; the worker's command
271
+ * log — not recorded in a form the gate reads, and a kill run through a script
272
+ * would not name the session anyway.
273
+ *
274
+ * @returns the names, or null when `server` has no namespace to judge by
275
+ */
276
+ function recordOtherServerSessions(snapshot, server) {
277
+ if (server.namespace === null)
278
+ return null;
279
+ const sessions = snapshot.probes['tmux-sessions'];
280
+ if (!sessions || sessions.status !== 'ok')
281
+ return [];
282
+ return sessions.entries
283
+ .map((entry) => entry.key)
284
+ .filter((name) => isOtherServerSession(name, server));
285
+ }
286
+ /** The recorded other-server sessions of a baseline; empty when none was recorded. */
287
+ function readOtherServerSessions(baseline) {
288
+ const recorded = baseline.otherServerSessions;
289
+ if (!Array.isArray(recorded))
290
+ return new Set();
291
+ return new Set(recorded.filter((name) => typeof name === 'string'));
292
+ }
183
293
  function toChange(entry, owner) {
184
294
  return { key: entry.key, detail: entry.detail, owner };
185
295
  }
@@ -193,6 +303,7 @@ function toChange(entry, owner) {
193
303
  */
194
304
  function diffEnvSnapshots(baseline, final, context, options = {}) {
195
305
  const taskSession = readTaskSession(baseline);
306
+ const otherServerSessions = readOtherServerSessions(baseline);
196
307
  const ignoredHomeEntries = new Set(options.ignoreHomeEntries ?? []);
197
308
  const probes = env_snapshot_1.ENV_PROBE_IDS.map((probeId) => {
198
309
  const before = baseline.probes[probeId];
@@ -206,6 +317,7 @@ function diffEnvSnapshots(baseline, final, context, options = {}) {
206
317
  ignoredAdded: [],
207
318
  taskSessionAdded: [],
208
319
  removed: [],
320
+ removedByOtherServer: [],
209
321
  ignoredByConfig: [],
210
322
  };
211
323
  }
@@ -218,6 +330,7 @@ function diffEnvSnapshots(baseline, final, context, options = {}) {
218
330
  ignoredAdded: [],
219
331
  taskSessionAdded: [],
220
332
  removed: [],
333
+ removedByOtherServer: [],
221
334
  ignoredByConfig: [],
222
335
  };
223
336
  }
@@ -246,12 +359,29 @@ function diffEnvSnapshots(baseline, final, context, options = {}) {
246
359
  }
247
360
  (owner === 'other' ? ignoredAdded : added).push(toChange(entry, owner));
248
361
  }
362
+ // An excuse for another server's session presumes the tmux server lived
363
+ // through the task. When nothing from the baseline survived and the task's
364
+ // own session is gone too, the likeliest story is `kill-server` (#1624), and
365
+ // every removal is counted.
366
+ const tmuxServerSurvived = probeId === 'tmux-sessions' &&
367
+ after.entries.some((entry) => beforeKeys.has(entry.key) || (taskSession !== null && entry.key === taskSession));
249
368
  const removed = [];
369
+ const removedByOtherServer = [];
250
370
  for (const entry of before.entries) {
251
371
  if (afterKeys.has(entry.key))
252
372
  continue;
253
373
  const change = toChange(entry, attributeEntry(probeId, entry, context));
254
- (isIgnoredByConfig(entry) ? ignoredByConfig : removed).push(change);
374
+ if (isIgnoredByConfig(entry)) {
375
+ ignoredByConfig.push(change);
376
+ }
377
+ else if (tmuxServerSurvived &&
378
+ change.owner !== 'self' &&
379
+ otherServerSessions.has(entry.key)) {
380
+ removedByOtherServer.push(change);
381
+ }
382
+ else {
383
+ removed.push(change);
384
+ }
255
385
  }
256
386
  return {
257
387
  probeId,
@@ -261,6 +391,7 @@ function diffEnvSnapshots(baseline, final, context, options = {}) {
261
391
  ignoredAdded,
262
392
  taskSessionAdded,
263
393
  removed,
394
+ removedByOtherServer,
264
395
  ignoredByConfig,
265
396
  };
266
397
  });
@@ -318,6 +449,10 @@ function formatTaskSessionChanges(changes) {
318
449
  * session is: a verdict that silently discounted an entry would read exactly
319
450
  * like one that never saw it.
320
451
  */
452
+ /** Removals excused as another CommandMate server's sessions (#2627), one line each. */
453
+ function formatRemovedByOtherServer(changes) {
454
+ return changes.map((change) => ` · - ${change.key} (ignored: another CommandMate server's session, recorded at task start)`);
455
+ }
321
456
  function formatIgnoredByConfig(changes) {
322
457
  if (changes.length === 0)
323
458
  return [];
@@ -350,6 +485,7 @@ function formatEnvCleanReport(diff) {
350
485
  : '';
351
486
  lines.push(` ${probe.probeId} clean (${label})${excused}`);
352
487
  lines.push(...formatTaskSessionChanges(probe.taskSessionAdded));
488
+ lines.push(...formatRemovedByOtherServer(probe.removedByOtherServer));
353
489
  lines.push(...formatIgnoredByConfig(probe.ignoredByConfig));
354
490
  continue;
355
491
  }
@@ -357,6 +493,7 @@ function formatEnvCleanReport(diff) {
357
493
  lines.push(...formatChanges('+', probe.added));
358
494
  lines.push(...formatChanges('-', probe.removed));
359
495
  lines.push(...formatTaskSessionChanges(probe.taskSessionAdded));
496
+ lines.push(...formatRemovedByOtherServer(probe.removedByOtherServer));
360
497
  lines.push(...formatIgnoredByConfig(probe.ignoredByConfig));
361
498
  for (const excused of probe.ignoredAdded) {
362
499
  lines.push(` · ${excused.key} (ignored: belongs to another worktree)`);
@@ -23,6 +23,7 @@
23
23
  */
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
25
  exports.ENV_SNAPSHOT_RETENTION_MS = exports.ENV_SNAPSHOT_DIR_NAME = exports.VOLATILE_ENTRY_PATTERNS = exports.MCBD_SESSION_PREFIX = exports.COMMANDMATE_PROCESS_PATTERN = exports.DEFAULT_ENV_PROBE_DEPS = exports.ENV_PROBE_LABELS = exports.ENV_PROBE_IDS = exports.ENV_SNAPSHOT_VERSION = void 0;
26
+ exports.isCommandMateCommandLine = isCommandMateCommandLine;
26
27
  exports.probeListeners = probeListeners;
27
28
  exports.probeTmuxSessions = probeTmuxSessions;
28
29
  exports.probeHomeEntries = probeHomeEntries;
@@ -109,8 +110,71 @@ exports.DEFAULT_ENV_PROBE_DEPS = {
109
110
  * to "CommandMate 関連" for exactly that reason, so relevance is decided from
110
111
  * the owning process's command line rather than from the port number — a
111
112
  * developer's `commandmate start --port 3179` is as relevant as port 3000.
113
+ *
114
+ * This is only the vocabulary, and a cheap first filter. Matched against the
115
+ * whole command line it also hits a process that merely *mentions* a
116
+ * CommandMate path among its arguments — an editor's language server started
117
+ * with `--workspace_id …_commandmate_issue_2616` was recorded as a CommandMate
118
+ * listener and then read as "killed" when it exited (#2627). The decision is
119
+ * {@link isCommandMateCommandLine}'s, which looks only at the program.
112
120
  */
113
121
  exports.COMMANDMATE_PROCESS_PATTERN = /commandmate|dist\/server\/server\.js|next-server|next (dev|start)|server\.ts/i;
122
+ /**
123
+ * Executables that run a script named by a later argument. CommandMate is
124
+ * never a native binary of its own: every shape it runs as is one of these
125
+ * with a CommandMate script, or a process title set by one of them.
126
+ */
127
+ const SCRIPT_LAUNCHERS = new Set(['node', 'nodejs', 'bun', 'tsx', 'ts-node', 'npx', 'next']);
128
+ /** Executables that are CommandMate by their own name (process title or bin). */
129
+ const COMMANDMATE_EXECUTABLES = /^(commandmate(\.js)?|next-server)$/i;
130
+ /** A script argument that is CommandMate's server or CLI, judged by its path's end. */
131
+ function isCommandMateScript(token) {
132
+ const name = (0, path_1.basename)(token);
133
+ return (/(^|\/)dist\/server\/server\.js$/.test(token) ||
134
+ name === 'server.ts' ||
135
+ /^commandmate(\.js)?$/i.test(name));
136
+ }
137
+ /**
138
+ * Whether a `ps` command line is a CommandMate process (#2627).
139
+ *
140
+ * Judged on the program, never on free-form arguments:
141
+ *
142
+ * - the executable itself (`next-server (v14…)`, a `commandmate` bin run
143
+ * directly) — its basename, so a directory called `commandmate` in the
144
+ * executable's *path* does not count either;
145
+ * - or, when the executable is a script launcher (`node`, `tsx`, `next`, …),
146
+ * its positional arguments matched as whole paths by their end:
147
+ * `…/dist/server/server.js`, `server.ts`, a `commandmate` bin, or `next`
148
+ * followed by `dev` / `start`.
149
+ *
150
+ * Flags are dropped before matching, `--workspace=/x/commandmate` included,
151
+ * and a positional counts only as a whole token: `/x/commandmate-issue-1` is a
152
+ * path that mentions CommandMate, not CommandMate. Any other executable —
153
+ * `language_server_macos_arm`, Chrome, postgres — is not CommandMate whatever
154
+ * its arguments say.
155
+ *
156
+ * Why not `ps -o comm=` (the executable alone): `node dist/server/server.js` is
157
+ * `node` there, indistinguishable from every other node process, so the
158
+ * production server itself would stop being recorded.
159
+ */
160
+ function isCommandMateCommandLine(commandLine) {
161
+ if (!exports.COMMANDMATE_PROCESS_PATTERN.test(commandLine))
162
+ return false;
163
+ const [program, ...rest] = commandLine.trim().split(/\s+/);
164
+ if (!program)
165
+ return false;
166
+ const name = (0, path_1.basename)(program);
167
+ if (COMMANDMATE_EXECUTABLES.test(name))
168
+ return true;
169
+ if (!SCRIPT_LAUNCHERS.has(name.toLowerCase()))
170
+ return false;
171
+ const positionals = [name, ...rest.filter((token) => !token.startsWith('-'))];
172
+ return positionals.some((token, index) => {
173
+ if (index > 0 && isCommandMateScript(token))
174
+ return true;
175
+ return (0, path_1.basename)(token) === 'next' && /^(dev|start)$/.test(positionals[index + 1] ?? '');
176
+ });
177
+ }
114
178
  /** `ps` line: leading pid, then the full command line. */
115
179
  function parseProcessTable(stdout) {
116
180
  const table = new Map();
@@ -213,7 +277,7 @@ async function probeListeners(deps) {
213
277
  const table = parseProcessTable(processes.stdout);
214
278
  const relevant = blocks.filter((block) => {
215
279
  const commandLine = table.get(block.pid);
216
- return commandLine !== undefined && exports.COMMANDMATE_PROCESS_PATTERN.test(commandLine);
280
+ return commandLine !== undefined && isCommandMateCommandLine(commandLine);
217
281
  });
218
282
  if (relevant.length === 0)
219
283
  return ok([]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "commandmate",
3
- "version": "0.42.1",
3
+ "version": "0.42.2",
4
4
  "description": "A local control plane for agent CLIs — orchestration and visibility for Claude Code, Codex, Gemini CLI, and more across Git worktrees",
5
5
  "keywords": [
6
6
  "claude-code",
@@ -0,0 +1,20 @@
1
+ {
2
+ "version": "0.42.2",
3
+ "date": "2026-09-28",
4
+ "highlight": {
5
+ "ja": "ブランチごとに選んだ既定のエージェントが、同期のたびに Claude に戻ってしまう問題を直しました。",
6
+ "en": "Fixed the default agent chosen for a branch switching back to Claude every time branches were synced."
7
+ },
8
+ "added": [],
9
+ "improved": [],
10
+ "fixed": [
11
+ {
12
+ "ja": "ブランチごとに選んだ既定のエージェントが、同期のたびに Claude に戻ってしまう問題を直しました。",
13
+ "en": "Fixed the default agent chosen for a branch switching back to Claude every time branches were synced."
14
+ },
15
+ {
16
+ "ja": "commandmate verify でタスクを指定できるようになり、完了済みのタスクを検証し直せるようになりました。",
17
+ "en": "commandmate verify can now take a task, so a finished task can be verified again."
18
+ }
19
+ ]
20
+ }