commandmate 0.17.0 → 0.18.0

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 (218) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +100 -100
  3. package/.next/app-path-routes-manifest.json +20 -20
  4. package/.next/build-manifest.json +2 -2
  5. package/.next/prerender-manifest.json +15 -15
  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/app/update/route_client-reference-manifest.js +1 -1
  9. package/.next/server/app/api/app/update-check/route.js +1 -1
  10. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  11. package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
  12. package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
  13. package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  24. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.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/metrics/vibe/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/push/subscriptions/route.js +1 -1
  33. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js +1 -1
  37. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/repositories/[id]/todos/route.js +1 -1
  39. package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
  40. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  52. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  55. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/tasks/[taskId]/route.js +1 -1
  57. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  60. package/.next/server/app/api/todos/route.js +1 -1
  61. package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/verification/runs/[runId]/route.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.js +1 -1
  65. package/.next/server/app/api/verification/runs/route_client-reference-manifest.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_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
  69. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  70. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +1 -1
  71. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  72. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
  74. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +1 -1
  76. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  79. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
  81. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
  84. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  85. package/.next/server/app/api/worktrees/[id]/git/diff/route.js +1 -1
  86. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  88. package/.next/server/app/api/worktrees/[id]/git/log/route.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.js +1 -1
  93. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
  95. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js +1 -1
  97. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
  100. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  103. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
  105. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  106. package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
  107. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  108. package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
  109. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  110. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
  112. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
  116. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/worktrees/[id]/logs/route.js +1 -1
  118. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  119. package/.next/server/app/api/worktrees/[id]/marp-render/route.js +1 -1
  120. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
  122. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  123. package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
  124. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
  126. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  127. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +1 -1
  131. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
  133. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/worktrees/[id]/schedules/route.js +1 -1
  135. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  139. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/worktrees/[id]/skills/route.js +1 -1
  144. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
  146. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/api/worktrees/[id]/start-polling/route_client-reference-manifest.js +1 -1
  149. package/.next/server/app/api/worktrees/[id]/tasks/route.js +1 -1
  150. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  151. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  152. package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
  153. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  154. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  155. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
  156. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  157. package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
  158. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -1
  160. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  161. package/.next/server/app/api/worktrees/[id]/tree/route.js +1 -1
  162. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  163. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  164. package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
  165. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  166. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js +1 -1
  167. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  168. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js +1 -1
  169. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  170. package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  172. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  173. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  174. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  175. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  176. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  177. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  178. package/.next/server/app/page_client-reference-manifest.js +1 -1
  179. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  180. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  181. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  182. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  183. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  184. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  185. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  186. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  187. package/.next/server/app/worktrees/[id]/page.js +1 -1
  188. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  189. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  190. package/.next/server/app-paths-manifest.json +20 -20
  191. package/.next/server/chunks/1117.js +1 -1
  192. package/.next/server/chunks/3042.js +1 -1
  193. package/.next/server/chunks/5959.js +1 -1
  194. package/.next/server/chunks/6130.js +1 -1
  195. package/.next/server/chunks/6274.js +8 -8
  196. package/.next/server/chunks/8681.js +1 -1
  197. package/.next/server/chunks/8807.js +18 -16
  198. package/.next/server/chunks/8856.js +1 -1
  199. package/.next/server/middleware-manifest.json +5 -5
  200. package/.next/server/pages/500.html +1 -1
  201. package/.next/server/server-reference-manifest.json +1 -1
  202. package/.next/static/chunks/{6488-f4e447464c9e0e22.js → 6488-109e3825c7249e47.js} +1 -1
  203. package/.next/static/chunks/app/worktrees/[id]/{page-5ffc84094830babb.js → page-12b3c5f32fc6094e.js} +1 -1
  204. package/.next/trace +12 -12
  205. package/dist/cli/commands/send.d.ts.map +1 -1
  206. package/dist/cli/commands/send.js +30 -11
  207. package/dist/cli/commands/wait.d.ts.map +1 -1
  208. package/dist/cli/commands/wait.js +55 -5
  209. package/dist/cli/types/api-responses.d.ts +10 -0
  210. package/dist/cli/types/api-responses.d.ts.map +1 -1
  211. package/dist/cli/utils/verify-runner.d.ts +6 -0
  212. package/dist/cli/utils/verify-runner.d.ts.map +1 -1
  213. package/dist/cli/utils/verify-runner.js +1 -0
  214. package/dist/server/src/lib/db/tasks-db.js +46 -1
  215. package/dist/server/src/lib/db/verification-db.js +21 -3
  216. package/package.json +1 -1
  217. /package/.next/static/{gR8Sh86RrTynJON8SWkWK → -BSmW0Ae2YsxyCl_ue7_d}/_buildManifest.js +0 -0
  218. /package/.next/static/{gR8Sh86RrTynJON8SWkWK → -BSmW0Ae2YsxyCl_ue7_d}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/send.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8IpC,wBAAgB,iBAAiB,IAAI,OAAO,CAmJ3C"}
1
+ {"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/send.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4JpC,wBAAgB,iBAAiB,IAAI,OAAO,CA4J3C"}
@@ -13,22 +13,33 @@ const duration_constants_1 = require("../config/duration-constants");
13
13
  const cli_tool_ids_1 = require("../config/cli-tool-ids");
14
14
  const model_validation_1 = require("../config/model-validation");
15
15
  const agent_instances_1 = require("../utils/agent-instances");
16
+ /** Auto-yes duration used when --duration is omitted. */
17
+ const DEFAULT_AUTO_YES_DURATION = '1h';
16
18
  /**
17
- * Build auto-yes request body and send it to the API (DRY extraction).
18
- * Validates duration and exits on invalid input.
19
+ * Resolve --duration to milliseconds, exiting on an invalid value.
19
20
  *
20
- * @param client - API client instance
21
- * @param worktreeId - Target worktree ID
22
- * @param options - Send command options containing auto-yes settings
21
+ * Issue #1608: this is called from the option-validation block at the top of
22
+ * the action, not from enableAutoYes(). enableAutoYes() runs after --contract
23
+ * has already created the task row, so validating there left a `pending` task
24
+ * behind for a message that was never sent.
23
25
  */
24
- async function enableAutoYes(client, worktreeId, options) {
25
- const durationMs = options.duration
26
- ? (0, duration_constants_1.parseDurationToMs)(options.duration)
27
- : (0, duration_constants_1.parseDurationToMs)('1h'); // default 1h
26
+ function resolveAutoYesDurationMs(duration) {
27
+ const durationMs = (0, duration_constants_1.parseDurationToMs)(duration ?? DEFAULT_AUTO_YES_DURATION);
28
28
  if (durationMs === null) {
29
29
  console.error(`Error: Invalid duration. Must be one of: ${duration_constants_1.ALLOWED_DURATIONS.join(', ')}`);
30
30
  process.exit(types_1.ExitCode.CONFIG_ERROR);
31
31
  }
32
+ return durationMs;
33
+ }
34
+ /**
35
+ * Build auto-yes request body and send it to the API (DRY extraction).
36
+ *
37
+ * @param client - API client instance
38
+ * @param worktreeId - Target worktree ID
39
+ * @param options - Send command options containing auto-yes settings
40
+ * @param durationMs - Duration already validated by resolveAutoYesDurationMs()
41
+ */
42
+ async function enableAutoYes(client, worktreeId, options, durationMs) {
32
43
  const autoYesBody = {
33
44
  enabled: true,
34
45
  duration: durationMs,
@@ -187,6 +198,14 @@ function createSendCommand() {
187
198
  process.exit(types_1.ExitCode.CONFIG_ERROR);
188
199
  }
189
200
  }
201
+ // Issue #1608: every option that can be judged from its own value is
202
+ // judged here, before the first side effect. --duration used to be the
203
+ // exception: enableAutoYes() validated it, and that runs after
204
+ // --contract has already created the task row, so `--duration 2h` left
205
+ // a `pending` task for a message that was never sent. Validated
206
+ // unconditionally, like --stop-pattern and --model above: a value the
207
+ // CLI cannot honour is an error whether or not --auto-yes accompanies it.
208
+ const autoYesDurationMs = resolveAutoYesDurationMs(options.duration);
190
209
  const client = new api_client_1.ApiClient({ token: options.token });
191
210
  // Issue #1545: resolve the contract before anything with a side effect,
192
211
  // so an invalid contract cannot leave auto-yes enabled for a message
@@ -202,7 +221,7 @@ function createSendCommand() {
202
221
  }
203
222
  // --auto-yes: enable auto-yes first (unless --model is specified, then after send) [DR2-02]
204
223
  if (options.autoYes && !options.model) {
205
- await enableAutoYes(client, worktreeId, options);
224
+ await enableAutoYes(client, worktreeId, options, autoYesDurationMs);
206
225
  }
207
226
  // [DR2-05] Send API uses "content" not "message"
208
227
  const sendBody = { content };
@@ -240,7 +259,7 @@ function createSendCommand() {
240
259
  // Issue #576: Enable auto-yes AFTER send when --model is specified
241
260
  // This avoids auto-yes interfering with the /model command interaction
242
261
  if (options.autoYes && options.model) {
243
- await enableAutoYes(client, worktreeId, options);
262
+ await enableAutoYes(client, worktreeId, options, autoYesDurationMs);
244
263
  }
245
264
  }
246
265
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/wait.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkKpC,wBAAgB,iBAAiB,IAAI,OAAO,CA6F3C"}
1
+ {"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/wait.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2NpC,wBAAgB,iBAAiB,IAAI,OAAO,CAuG3C"}
@@ -102,13 +102,56 @@ function sleep(ms) {
102
102
  function verifyRequested(options) {
103
103
  return Boolean(options.verify || options.requireWork);
104
104
  }
105
+ /**
106
+ * Task statuses that mean "this wait is about that task".
107
+ *
108
+ * Mirrors ACTIVE_TASK_STATUSES in src/lib/db/tasks-db.ts. Deliberately narrower
109
+ * than the set the server will attach a run to: this is a guess made from a
110
+ * worktree id alone, and a task that had already finished before the wait began
111
+ * is a different delegation, not this one.
112
+ */
113
+ const IN_FLIGHT_TASK_STATUSES = new Set([
114
+ 'running',
115
+ 'waiting_input',
116
+ 'verifying',
117
+ ]);
118
+ /**
119
+ * Read the task this wait is about, before waiting for it (Issue #1620).
120
+ *
121
+ * Timing is the whole point. Agents are asked to run the gates themselves
122
+ * before reporting completion, and doing so moves their task to a terminal
123
+ * status — after which a verification run started with only a worktree id has
124
+ * no contract to resolve, judges no scope, and still reports `passed`. Read
125
+ * while the task is still in flight, the id survives that transition and the
126
+ * run that follows is judged against the contract it was supposed to judge.
127
+ *
128
+ * Never throws: an unreadable ledger costs the attribution, and refusing to
129
+ * verify over it would cost every gate.
130
+ *
131
+ * @returns the task id, or undefined to leave resolution to the server
132
+ */
133
+ async function resolveWaitedTaskId(client, worktreeId) {
134
+ try {
135
+ const data = await client.get(`/api/worktrees/${worktreeId}/tasks?limit=1`);
136
+ const task = data?.tasks?.[0];
137
+ if (!task || !IN_FLIGHT_TASK_STATUSES.has(task.status))
138
+ return undefined;
139
+ return task.id;
140
+ }
141
+ catch (error) {
142
+ console.error(`Note: could not read the task ledger for ${worktreeId} ` +
143
+ `(${error instanceof Error ? error.message : String(error)}); ` +
144
+ 'verification will resolve its own task.');
145
+ return undefined;
146
+ }
147
+ }
105
148
  /**
106
149
  * Run verification for one worktree after its completion was detected.
107
150
  *
108
151
  * Swallows ApiError into an exit code: with several worktrees in flight, one
109
152
  * unreachable run must not abort the verdicts of the others.
110
153
  */
111
- async function verifyAfterWait(client, worktreeId, options) {
154
+ async function verifyAfterWait(client, worktreeId, options, taskId) {
112
155
  // --verify runs every gate, and work-evidence is always part of "every gate",
113
156
  // so combining it with --require-work is a superset rather than a conflict.
114
157
  const gateIds = options.verify ? undefined : [verify_runner_1.WORK_EVIDENCE_GATE_ID];
@@ -117,6 +160,7 @@ async function verifyAfterWait(client, worktreeId, options) {
117
160
  worktreeId,
118
161
  trigger: 'wait',
119
162
  instanceId: options.instance,
163
+ taskId,
120
164
  gateIds,
121
165
  // stdout stays reserved for the prompt JSON contract.
122
166
  resultStream: 'stderr',
@@ -178,6 +222,12 @@ function createWaitCommand() {
178
222
  return;
179
223
  }
180
224
  const client = new api_client_1.ApiClient({ token: options.token });
225
+ // Issue #1620: resolved before any polling starts. Once the agent stops
226
+ // there is no reliable way left to tell which contract this wait was
227
+ // about — the agent's own verification may have closed it by then.
228
+ const boundTaskIds = verifyRequested(options)
229
+ ? await Promise.all(worktreeIds.map(id => resolveWaitedTaskId(client, id)))
230
+ : worktreeIds.map(() => undefined);
181
231
  if (worktreeIds.length === 1) {
182
232
  // Single worktree
183
233
  const result = await pollWorktree(client, worktreeIds[0], options);
@@ -188,7 +238,7 @@ function createWaitCommand() {
188
238
  // Issue #1544: only a detected completion is worth verifying — a
189
239
  // prompt or a timeout means the agent never claimed to be done.
190
240
  const exitCode = result.exitCode === types_1.WaitExitCode.SUCCESS && verifyRequested(options)
191
- ? await verifyAfterWait(client, worktreeIds[0], options)
241
+ ? await verifyAfterWait(client, worktreeIds[0], options, boundTaskIds[0])
192
242
  : result.exitCode;
193
243
  process.exit(exitCode);
194
244
  return;
@@ -205,7 +255,7 @@ function createWaitCommand() {
205
255
  outputs.push(result.value.output);
206
256
  }
207
257
  if (result.value.exitCode === types_1.WaitExitCode.SUCCESS && verifyRequested(options)) {
208
- verifyTargets.push(worktreeIds[index]);
258
+ verifyTargets.push({ id: worktreeIds[index], taskId: boundTaskIds[index] });
209
259
  return;
210
260
  }
211
261
  finalExitCode = mergeExitCode(finalExitCode, result.value.exitCode);
@@ -218,8 +268,8 @@ function createWaitCommand() {
218
268
  // Issue #1544: serial on purpose. The server caps concurrent runs
219
269
  // process-wide, so firing them together only queues them behind each
220
270
  // other while every gate competes for the same machine.
221
- for (const id of verifyTargets) {
222
- finalExitCode = mergeExitCode(finalExitCode, await verifyAfterWait(client, id, options));
271
+ for (const target of verifyTargets) {
272
+ finalExitCode = mergeExitCode(finalExitCode, await verifyAfterWait(client, target.id, options, target.taskId));
223
273
  }
224
274
  if (outputs.length > 0) {
225
275
  console.log(JSON.stringify(outputs));
@@ -448,6 +448,16 @@ export interface VerificationGateResultView {
448
448
  logTail: string | null;
449
449
  startedAt: string;
450
450
  finishedAt: string | null;
451
+ /**
452
+ * Whether `startedAt`/`finishedAt` bracket the execution `durationMs` counted
453
+ * (Issue #1625).
454
+ *
455
+ * Rows written before #1625 stamped both at write time, and history is never
456
+ * rewritten, so a consumer reading old runs must check this before treating
457
+ * the timestamps as timing. `durationMs` was always correct and needs no such
458
+ * check. Absent on responses from a server older than #1625.
459
+ */
460
+ timingsMeasured?: boolean;
451
461
  }
452
462
  /** Mirrors: src/lib/db/verification-db.ts VerificationRunWithGates. */
453
463
  export interface VerificationRunView {
@@ -1 +1 @@
1
- {"version":3,"file":"api-responses.d.ts","sourceRoot":"","sources":["../../../src/cli/types/api-responses.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-responses.d.ts","sourceRoot":"","sources":["../../../src/cli/types/api-responses.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,12 @@ export interface VerificationRequest {
21
21
  /** 'manual' for the verify command, 'wait' when chained after wait. */
22
22
  trigger: 'manual' | 'wait';
23
23
  instanceId?: string;
24
+ /**
25
+ * Task the run judges. Omitted lets the server resolve the worktree's own
26
+ * task, which is enough while that task is still open — `wait` names one
27
+ * because the agent may close it before the run starts (#1620).
28
+ */
29
+ taskId?: string;
24
30
  /** Omitted means work-evidence plus every gate declared in verify.yaml. */
25
31
  gateIds?: string[];
26
32
  /** Seconds before the CLI stops polling and reports TIMEOUT. */
@@ -1 +1 @@
1
- {"version":3,"file":"verify-runner.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/verify-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAEV,qBAAqB,EACrB,mBAAmB,EAGpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,SAAS,EAAiC,MAAM,cAAc,CAAC;AAExE,8EAA8E;AAC9E,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C,0FAA0F;AAC1F,eAAO,MAAM,qBAAqB,kBAAkB,CAAC;AAErD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACnC,iFAAiF;IACjF,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,GAAG,CAAC,EAAE,mBAAmB,CAAC;CAC3B;AAUD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAW1E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,CAOnF;AAqED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,mBAAmB,CAAC,CAwD9B"}
1
+ {"version":3,"file":"verify-runner.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/verify-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAEV,qBAAqB,EACrB,mBAAmB,EAGpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,SAAS,EAAiC,MAAM,cAAc,CAAC;AAExE,8EAA8E;AAC9E,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C,0FAA0F;AAC1F,eAAO,MAAM,qBAAqB,kBAAkB,CAAC;AAErD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACnC,iFAAiF;IACjF,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,GAAG,CAAC,EAAE,mBAAmB,CAAC;CAC3B;AAUD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAW1E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,CAOnF;AAqED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,mBAAmB,CAAC,CAyD9B"}
@@ -133,6 +133,7 @@ async function runVerification(client, request) {
133
133
  trigger: request.trigger,
134
134
  instanceId: request.instanceId,
135
135
  gateIds: request.gateIds,
136
+ taskId: request.taskId,
136
137
  });
137
138
  runId = (0, api_client_1.assertResponseShape)(started, ['runId'], `POST /api/worktrees/${worktreeId}/verify`).runId;
138
139
  }
@@ -13,13 +13,14 @@
13
13
  * failure `verification-db.ts` guards against.
14
14
  */
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.ACTIVE_TASK_STATUSES = exports.TERMINAL_TASK_STATUSES = exports.TASK_STATUSES = void 0;
16
+ exports.VERIFIABLE_TASK_STATUSES = exports.ACTIVE_TASK_STATUSES = exports.TERMINAL_TASK_STATUSES = exports.TASK_STATUSES = void 0;
17
17
  exports.isTerminalTaskStatus = isTerminalTaskStatus;
18
18
  exports.createTask = createTask;
19
19
  exports.getTask = getTask;
20
20
  exports.listTasks = listTasks;
21
21
  exports.updateTaskStatus = updateTaskStatus;
22
22
  exports.getActiveTask = getActiveTask;
23
+ exports.getVerifiableTask = getVerifiableTask;
23
24
  exports.getActiveTaskForInstance = getActiveTaskForInstance;
24
25
  const crypto_1 = require("crypto");
25
26
  /**
@@ -61,6 +62,27 @@ exports.ACTIVE_TASK_STATUSES = [
61
62
  'waiting_input',
62
63
  'verifying',
63
64
  ];
65
+ /**
66
+ * Statuses a verification run that has to *discover* its task may attach to.
67
+ *
68
+ * The active three plus the two the state machine explicitly reopens:
69
+ * `transitionTask` accepts `verify_started` from `failed` and `not_started`
70
+ * because a task can fail on one run and pass on the retry. Resolving only the
71
+ * active three meant that reopening was reachable only by a caller that already
72
+ * knew the task id — so the retry every agent performs after a red gate found
73
+ * no contract, and with it no scope to judge (#1620).
74
+ *
75
+ * `succeeded` and `cancelled` stay out: those are closed for good, and a run
76
+ * that silently adopted one would be judging work against a verdict already
77
+ * given. {@link ACTIVE_TASK_STATUSES} keeps its narrower meaning for the
78
+ * callers that ask "what is this agent working on right now" (Auto-Yes, prompt
79
+ * events), where a finished task must not answer.
80
+ */
81
+ exports.VERIFIABLE_TASK_STATUSES = [
82
+ ...exports.ACTIVE_TASK_STATUSES,
83
+ 'failed',
84
+ 'not_started',
85
+ ];
64
86
  function isTerminalTaskStatus(status) {
65
87
  return exports.TERMINAL_TASK_STATUSES.includes(status);
66
88
  }
@@ -185,6 +207,29 @@ function getActiveTask(db, worktreeId, cliToolId, instanceId) {
185
207
  .get(...params, ...exports.ACTIVE_TASK_STATUSES);
186
208
  return row ? mapTaskRow(row) : null;
187
209
  }
210
+ /**
211
+ * The task a verification run should attach to when the caller cannot name one.
212
+ *
213
+ * Worktree-scoped for the same reason {@link getActiveTask} is: the gates run
214
+ * over the whole working tree, so there is nothing finer to narrow by. Ordered
215
+ * like {@link getActiveTask} — most recently updated first, insertion order
216
+ * breaking a same-millisecond tie — so the answer is the last task to have
217
+ * moved, not whichever row SQLite happened to reach first.
218
+ *
219
+ * @see VERIFIABLE_TASK_STATUSES for why this is wider than "active"
220
+ */
221
+ function getVerifiableTask(db, worktreeId) {
222
+ const placeholders = exports.VERIFIABLE_TASK_STATUSES.map(() => '?').join(', ');
223
+ const row = db
224
+ .prepare(`
225
+ SELECT ${TASK_COLUMNS} FROM tasks
226
+ WHERE worktree_id = ? AND status IN (${placeholders})
227
+ ORDER BY updated_at DESC, created_at DESC, rowid DESC
228
+ LIMIT 1
229
+ `)
230
+ .get(worktreeId, ...exports.VERIFIABLE_TASK_STATUSES);
231
+ return row ? mapTaskRow(row) : null;
232
+ }
188
233
  /**
189
234
  * The active task governing one agent instance, or null.
190
235
  *
@@ -10,6 +10,11 @@
10
10
  * leaves a `running` row behind, which is recoverable evidence, whereas a
11
11
  * single write-on-completion would leave nothing at all.
12
12
  *
13
+ * The timestamps describe the *execution*, not the writes (Issue #1625): a
14
+ * caller that measured a gate closes the row with the window it measured, so
15
+ * `finished_at - started_at` equals `duration_ms` instead of the gap between
16
+ * two adjacent INSERT/UPDATE statements.
17
+ *
13
18
  * The finish* functions throw when the target row does not exist. A silent
14
19
  * no-op would let a caller believe it recorded a verdict it never recorded —
15
20
  * exactly the failure this table exists to make impossible.
@@ -64,6 +69,9 @@ function mapGateRow(row) {
64
69
  logTail: row.log_tail,
65
70
  startedAt: new Date(row.started_at),
66
71
  finishedAt: row.finished_at === null ? null : new Date(row.finished_at),
72
+ timingsMeasured: row.finished_at !== null &&
73
+ row.duration_ms !== null &&
74
+ row.finished_at - row.started_at === row.duration_ms,
67
75
  };
68
76
  }
69
77
  /** Open a run in `running` state. */
@@ -113,15 +121,25 @@ function createGateResult(db, runId, input) {
113
121
  }
114
122
  return mapGateRow(row);
115
123
  }
116
- /** Close a gate result with its outcome, stamping `finished_at`. */
124
+ /**
125
+ * Close a gate result with its outcome and the interval it occupied.
126
+ *
127
+ * `started_at` is rewritten only when the caller declares an
128
+ * {@link FinishGateResultPatch.executionWindow}: the value written when the row
129
+ * was opened is a placeholder for "this gate was entered", and the measured
130
+ * start is a few milliseconds later — after the insert this call is closing.
131
+ * Leaving the placeholder would put that gap inside the reported window.
132
+ */
117
133
  function finishGateResult(db, gateResultId, patch) {
118
134
  const info = db
119
135
  .prepare(`
120
136
  UPDATE verification_gate_results
121
- SET status = ?, exit_code = ?, duration_ms = ?, log_tail = ?, finished_at = ?
137
+ SET status = ?, exit_code = ?, duration_ms = ?, log_tail = ?,
138
+ started_at = COALESCE(?, started_at),
139
+ finished_at = ?
122
140
  WHERE id = ?
123
141
  `)
124
- .run(patch.status, patch.exitCode ?? null, patch.durationMs ?? null, patch.logTail ?? null, Date.now(), gateResultId);
142
+ .run(patch.status, patch.exitCode ?? null, patch.durationMs ?? null, patch.logTail ?? null, patch.executionWindow?.startedAt ?? null, patch.executionWindow?.finishedAt ?? Date.now(), gateResultId);
125
143
  if (info.changes === 0) {
126
144
  throw new Error(`Verification gate result ${gateResultId} not found`);
127
145
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "commandmate",
3
- "version": "0.17.0",
3
+ "version": "0.18.0",
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",