@telora/daemon 0.22.160 → 0.22.181

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 (302) hide show
  1. package/build-info.json +10 -3
  2. package/dist/audit/audit-phase.d.ts +11 -1
  3. package/dist/audit/audit-phase.d.ts.map +1 -1
  4. package/dist/audit/audit-phase.js +2 -14
  5. package/dist/audit/audit-phase.js.map +1 -1
  6. package/dist/audit/audit-prompt.d.ts +7 -4
  7. package/dist/audit/audit-prompt.d.ts.map +1 -1
  8. package/dist/audit/audit-prompt.js +34 -23
  9. package/dist/audit/audit-prompt.js.map +1 -1
  10. package/dist/completion/advancement-stall-watchdog.d.ts +12 -0
  11. package/dist/completion/advancement-stall-watchdog.d.ts.map +1 -0
  12. package/dist/completion/advancement-stall-watchdog.js +79 -0
  13. package/dist/completion/advancement-stall-watchdog.js.map +1 -0
  14. package/dist/completion/arm-visible-progress-inputs.d.ts +51 -0
  15. package/dist/completion/arm-visible-progress-inputs.d.ts.map +1 -0
  16. package/dist/completion/arm-visible-progress-inputs.js +19 -0
  17. package/dist/completion/arm-visible-progress-inputs.js.map +1 -0
  18. package/dist/completion/commit-verdict-release.d.ts +37 -1
  19. package/dist/completion/commit-verdict-release.d.ts.map +1 -1
  20. package/dist/completion/commit-verdict-release.js +90 -15
  21. package/dist/completion/commit-verdict-release.js.map +1 -1
  22. package/dist/completion/delivery-advancement-guard.d.ts.map +1 -1
  23. package/dist/completion/delivery-advancement-guard.js +1 -0
  24. package/dist/completion/delivery-advancement-guard.js.map +1 -1
  25. package/dist/completion/event-entry-phases.d.ts.map +1 -1
  26. package/dist/completion/event-entry-phases.js +9 -2
  27. package/dist/completion/event-entry-phases.js.map +1 -1
  28. package/dist/completion/event-phases.d.ts +15 -8
  29. package/dist/completion/event-phases.d.ts.map +1 -1
  30. package/dist/completion/event-phases.js +26 -64
  31. package/dist/completion/event-phases.js.map +1 -1
  32. package/dist/completion/event.d.ts.map +1 -1
  33. package/dist/completion/event.js +7 -1
  34. package/dist/completion/event.js.map +1 -1
  35. package/dist/completion/review-exit-verdict-gate.d.ts +11 -5
  36. package/dist/completion/review-exit-verdict-gate.d.ts.map +1 -1
  37. package/dist/completion/review-exit-verdict-gate.js +6 -3
  38. package/dist/completion/review-exit-verdict-gate.js.map +1 -1
  39. package/dist/completion/shutdown-attribution.d.ts +107 -0
  40. package/dist/completion/shutdown-attribution.d.ts.map +1 -0
  41. package/dist/completion/shutdown-attribution.js +106 -0
  42. package/dist/completion/shutdown-attribution.js.map +1 -0
  43. package/dist/completion/team-lifecycle.d.ts.map +1 -1
  44. package/dist/completion/team-lifecycle.js +16 -0
  45. package/dist/completion/team-lifecycle.js.map +1 -1
  46. package/dist/delivery/commit-verdict-hold.d.ts.map +1 -1
  47. package/dist/delivery/commit-verdict-hold.js +2 -1
  48. package/dist/delivery/commit-verdict-hold.js.map +1 -1
  49. package/dist/delivery/delivery-lifecycle.d.ts.map +1 -1
  50. package/dist/delivery/delivery-lifecycle.js +1 -0
  51. package/dist/delivery/delivery-lifecycle.js.map +1 -1
  52. package/dist/directive/directive-assembly.d.ts +19 -1
  53. package/dist/directive/directive-assembly.d.ts.map +1 -1
  54. package/dist/directive/directive-assembly.js +15 -3
  55. package/dist/directive/directive-assembly.js.map +1 -1
  56. package/dist/directive/directive-dispatch.d.ts +67 -2
  57. package/dist/directive/directive-dispatch.d.ts.map +1 -1
  58. package/dist/directive/directive-dispatch.js +188 -45
  59. package/dist/directive/directive-dispatch.js.map +1 -1
  60. package/dist/directive/directive-executor.d.ts +2 -2
  61. package/dist/directive/directive-executor.d.ts.map +1 -1
  62. package/dist/directive/directive-executor.js +49 -12
  63. package/dist/directive/directive-executor.js.map +1 -1
  64. package/dist/directive/directive-queue.d.ts.map +1 -1
  65. package/dist/directive/directive-queue.js +1 -0
  66. package/dist/directive/directive-queue.js.map +1 -1
  67. package/dist/directive/stage-tracker.d.ts +20 -0
  68. package/dist/directive/stage-tracker.d.ts.map +1 -1
  69. package/dist/directive/stage-tracker.js +29 -1
  70. package/dist/directive/stage-tracker.js.map +1 -1
  71. package/dist/directive/stranded-review-reroute.js +1 -1
  72. package/dist/directive/stranded-review-reroute.js.map +1 -1
  73. package/dist/focus/focus-engine.d.ts.map +1 -1
  74. package/dist/focus/focus-engine.js +5 -1
  75. package/dist/focus/focus-engine.js.map +1 -1
  76. package/dist/focus/focus-executor.d.ts.map +1 -1
  77. package/dist/focus/focus-executor.js +14 -3
  78. package/dist/focus/focus-executor.js.map +1 -1
  79. package/dist/focus/focus-phase.d.ts +11 -1
  80. package/dist/focus/focus-phase.d.ts.map +1 -1
  81. package/dist/focus/focus-phase.js +12 -2
  82. package/dist/focus/focus-phase.js.map +1 -1
  83. package/dist/focus/focus-team-state.js +1 -1
  84. package/dist/focus/listener-auto-advance.d.ts.map +1 -1
  85. package/dist/focus/listener-auto-advance.js +1 -0
  86. package/dist/focus/listener-auto-advance.js.map +1 -1
  87. package/dist/focus/listener-spawn.d.ts.map +1 -1
  88. package/dist/focus/listener-spawn.js +33 -10
  89. package/dist/focus/listener-spawn.js.map +1 -1
  90. package/dist/focus/listener.d.ts.map +1 -1
  91. package/dist/focus/listener.js +21 -8
  92. package/dist/focus/listener.js.map +1 -1
  93. package/dist/focus/live-arm-facts.d.ts +10 -0
  94. package/dist/focus/live-arm-facts.d.ts.map +1 -0
  95. package/dist/focus/live-arm-facts.js +47 -0
  96. package/dist/focus/live-arm-facts.js.map +1 -0
  97. package/dist/focus/pending-review-approved-head.d.ts +1 -1
  98. package/dist/focus/pending-review-approved-head.d.ts.map +1 -1
  99. package/dist/focus/pending-review-approved-head.js +4 -3
  100. package/dist/focus/pending-review-approved-head.js.map +1 -1
  101. package/dist/focus/recorded-new-intent.d.ts +81 -0
  102. package/dist/focus/recorded-new-intent.d.ts.map +1 -0
  103. package/dist/focus/recorded-new-intent.js +147 -0
  104. package/dist/focus/recorded-new-intent.js.map +1 -0
  105. package/dist/focus/stage-watermark-seeding.d.ts +39 -0
  106. package/dist/focus/stage-watermark-seeding.d.ts.map +1 -0
  107. package/dist/focus/stage-watermark-seeding.js +60 -0
  108. package/dist/focus/stage-watermark-seeding.js.map +1 -0
  109. package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts +19 -1
  110. package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts.map +1 -1
  111. package/dist/focus-stage-lifecycle/wedge-watchdog.js +19 -3
  112. package/dist/focus-stage-lifecycle/wedge-watchdog.js.map +1 -1
  113. package/dist/prompt/focus-prompt-builder.d.ts +2 -1
  114. package/dist/prompt/focus-prompt-builder.d.ts.map +1 -1
  115. package/dist/prompt/focus-prompt-builder.js +10 -1
  116. package/dist/prompt/focus-prompt-builder.js.map +1 -1
  117. package/dist/prompt/team-prompt-base.d.ts.map +1 -1
  118. package/dist/prompt/team-prompt-base.js +4 -2
  119. package/dist/prompt/team-prompt-base.js.map +1 -1
  120. package/dist/prompt-sections/execution-sections.d.ts +22 -1
  121. package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
  122. package/dist/prompt-sections/execution-sections.js +23 -2
  123. package/dist/prompt-sections/execution-sections.js.map +1 -1
  124. package/dist/prompt-sections/shared.d.ts +9 -0
  125. package/dist/prompt-sections/shared.d.ts.map +1 -1
  126. package/dist/prompt-sections/shared.js +2 -1
  127. package/dist/prompt-sections/shared.js.map +1 -1
  128. package/dist/queries/arm-covered-targets.d.ts +84 -0
  129. package/dist/queries/arm-covered-targets.d.ts.map +1 -0
  130. package/dist/queries/arm-covered-targets.js +129 -0
  131. package/dist/queries/arm-covered-targets.js.map +1 -0
  132. package/dist/queries/deliveries.d.ts +3 -0
  133. package/dist/queries/deliveries.d.ts.map +1 -1
  134. package/dist/queries/deliveries.js +10 -3
  135. package/dist/queries/deliveries.js.map +1 -1
  136. package/dist/queries/delivery-gate-state.d.ts +10 -0
  137. package/dist/queries/delivery-gate-state.d.ts.map +1 -1
  138. package/dist/queries/delivery-gate-state.js +2 -2
  139. package/dist/queries/delivery-gate-state.js.map +1 -1
  140. package/dist/queries/delivery-write-discipline.d.ts.map +1 -1
  141. package/dist/queries/delivery-write-discipline.js +2 -1
  142. package/dist/queries/delivery-write-discipline.js.map +1 -1
  143. package/dist/queries/directive-undelivered.d.ts +104 -0
  144. package/dist/queries/directive-undelivered.d.ts.map +1 -0
  145. package/dist/queries/directive-undelivered.js +162 -0
  146. package/dist/queries/directive-undelivered.js.map +1 -0
  147. package/dist/queries/focus-discovery.d.ts +16 -0
  148. package/dist/queries/focus-discovery.d.ts.map +1 -1
  149. package/dist/queries/focus-discovery.js +3 -0
  150. package/dist/queries/focus-discovery.js.map +1 -1
  151. package/dist/queries/focuses.d.ts.map +1 -1
  152. package/dist/queries/focuses.js +3 -1
  153. package/dist/queries/focuses.js.map +1 -1
  154. package/dist/queries/issues.d.ts.map +1 -1
  155. package/dist/queries/issues.js +1 -0
  156. package/dist/queries/issues.js.map +1 -1
  157. package/dist/queries/recorded-targets-record.d.ts +46 -0
  158. package/dist/queries/recorded-targets-record.d.ts.map +1 -0
  159. package/dist/queries/recorded-targets-record.js +29 -0
  160. package/dist/queries/recorded-targets-record.js.map +1 -0
  161. package/dist/queries/schemas.d.ts +4 -0
  162. package/dist/queries/schemas.d.ts.map +1 -1
  163. package/dist/queries/schemas.js +14 -0
  164. package/dist/queries/schemas.js.map +1 -1
  165. package/dist/queries/shared.js +1 -1
  166. package/dist/queries/verification.js +1 -1
  167. package/dist/queries/workflows.d.ts.map +1 -1
  168. package/dist/queries/workflows.js +1 -0
  169. package/dist/queries/workflows.js.map +1 -1
  170. package/dist/resolvers/assembly-engine.d.ts +13 -0
  171. package/dist/resolvers/assembly-engine.d.ts.map +1 -1
  172. package/dist/resolvers/assembly-engine.js +1 -1
  173. package/dist/resolvers/assembly-engine.js.map +1 -1
  174. package/dist/resolvers/compose/loop-delivery-index-compose.d.ts +23 -3
  175. package/dist/resolvers/compose/loop-delivery-index-compose.d.ts.map +1 -1
  176. package/dist/resolvers/compose/loop-delivery-index-compose.js +90 -43
  177. package/dist/resolvers/compose/loop-delivery-index-compose.js.map +1 -1
  178. package/dist/resolvers/delivery-listing.d.ts +27 -0
  179. package/dist/resolvers/delivery-listing.d.ts.map +1 -1
  180. package/dist/resolvers/delivery-listing.js +52 -36
  181. package/dist/resolvers/delivery-listing.js.map +1 -1
  182. package/dist/resolvers/loop-delivery-index.d.ts +8 -0
  183. package/dist/resolvers/loop-delivery-index.d.ts.map +1 -1
  184. package/dist/resolvers/loop-delivery-index.js +68 -7
  185. package/dist/resolvers/loop-delivery-index.js.map +1 -1
  186. package/dist/resolvers/shared/loop.d.ts +7 -0
  187. package/dist/resolvers/shared/loop.d.ts.map +1 -1
  188. package/dist/resolvers/shared/loop.js.map +1 -1
  189. package/dist/resolvers/shared/review-window-commits.d.ts.map +1 -1
  190. package/dist/resolvers/shared/review-window-commits.js +2 -1
  191. package/dist/resolvers/shared/review-window-commits.js.map +1 -1
  192. package/dist/spawn/helpers.d.ts.map +1 -1
  193. package/dist/spawn/helpers.js +4 -2
  194. package/dist/spawn/helpers.js.map +1 -1
  195. package/dist/spawn/lead-continuation.d.ts.map +1 -1
  196. package/dist/spawn/lead-continuation.js +8 -2
  197. package/dist/spawn/lead-continuation.js.map +1 -1
  198. package/dist/spawn/lead-send.d.ts +97 -0
  199. package/dist/spawn/lead-send.d.ts.map +1 -0
  200. package/dist/spawn/lead-send.js +80 -0
  201. package/dist/spawn/lead-send.js.map +1 -0
  202. package/dist/spawn/process-group-kill.d.ts.map +1 -1
  203. package/dist/spawn/process-group-kill.js +12 -1
  204. package/dist/spawn/process-group-kill.js.map +1 -1
  205. package/dist/spawn/process-spawn.d.ts.map +1 -1
  206. package/dist/spawn/process-spawn.js +6 -0
  207. package/dist/spawn/process-spawn.js.map +1 -1
  208. package/dist/spawn/prompt-assembly.d.ts +8 -0
  209. package/dist/spawn/prompt-assembly.d.ts.map +1 -1
  210. package/dist/spawn/prompt-assembly.js +2 -1
  211. package/dist/spawn/prompt-assembly.js.map +1 -1
  212. package/dist/spawn/spawn-decision.d.ts +25 -1
  213. package/dist/spawn/spawn-decision.d.ts.map +1 -1
  214. package/dist/spawn/spawn-decision.js +19 -3
  215. package/dist/spawn/spawn-decision.js.map +1 -1
  216. package/dist/spawn/worktree-session.d.ts +3 -0
  217. package/dist/spawn/worktree-session.d.ts.map +1 -1
  218. package/dist/spawn/worktree-session.js +2 -1
  219. package/dist/spawn/worktree-session.js.map +1 -1
  220. package/dist/testing/fixtures/index.js +1 -1
  221. package/dist/types/focus.d.ts +19 -0
  222. package/dist/types/focus.d.ts.map +1 -1
  223. package/dist/types/index.js +1 -1
  224. package/dist/verify/commit-gate-configured.d.ts.map +1 -1
  225. package/dist/verify/commit-gate-configured.js +1 -1
  226. package/dist/verify/commit-gate-configured.js.map +1 -1
  227. package/dist/verify/commit-verdict-pull.d.ts +48 -0
  228. package/dist/verify/commit-verdict-pull.d.ts.map +1 -0
  229. package/dist/verify/commit-verdict-pull.js +148 -0
  230. package/dist/verify/commit-verdict-pull.js.map +1 -0
  231. package/dist/verify/commit-verdict-record.js +1 -1
  232. package/dist/verify/credit-rearm.js +1 -1
  233. package/dist/verify/credit-rearm.js.map +1 -1
  234. package/dist/verify/default-on-guards.d.ts +74 -0
  235. package/dist/verify/default-on-guards.d.ts.map +1 -0
  236. package/dist/verify/default-on-guards.js +305 -0
  237. package/dist/verify/default-on-guards.js.map +1 -0
  238. package/dist/verify/explicit-rearm.d.ts.map +1 -1
  239. package/dist/verify/explicit-rearm.js +1 -0
  240. package/dist/verify/explicit-rearm.js.map +1 -1
  241. package/dist/verify/gate-run-registry.d.ts.map +1 -1
  242. package/dist/verify/gate-run-registry.js +1 -0
  243. package/dist/verify/gate-run-registry.js.map +1 -1
  244. package/dist/verify/injection-stamp.d.ts +30 -0
  245. package/dist/verify/injection-stamp.d.ts.map +1 -1
  246. package/dist/verify/injection-stamp.js +37 -1
  247. package/dist/verify/injection-stamp.js.map +1 -1
  248. package/dist/verify/judged-ancestor.d.ts +41 -0
  249. package/dist/verify/judged-ancestor.d.ts.map +1 -0
  250. package/dist/verify/judged-ancestor.js +101 -0
  251. package/dist/verify/judged-ancestor.js.map +1 -0
  252. package/dist/verify/no-own-delta-verdict.d.ts +7 -2
  253. package/dist/verify/no-own-delta-verdict.d.ts.map +1 -1
  254. package/dist/verify/no-own-delta-verdict.js +14 -17
  255. package/dist/verify/no-own-delta-verdict.js.map +1 -1
  256. package/dist/verify/recorded-targets.d.ts +103 -0
  257. package/dist/verify/recorded-targets.d.ts.map +1 -0
  258. package/dist/verify/recorded-targets.js +159 -0
  259. package/dist/verify/recorded-targets.js.map +1 -0
  260. package/dist/verify/rework-attribution.d.ts +71 -0
  261. package/dist/verify/rework-attribution.d.ts.map +1 -0
  262. package/dist/verify/rework-attribution.js +263 -0
  263. package/dist/verify/rework-attribution.js.map +1 -0
  264. package/dist/verify/shortfall-rulings.d.ts.map +1 -1
  265. package/dist/verify/shortfall-rulings.js +3 -2
  266. package/dist/verify/shortfall-rulings.js.map +1 -1
  267. package/dist/verify/verification-boundary-env.d.ts +63 -15
  268. package/dist/verify/verification-boundary-env.d.ts.map +1 -1
  269. package/dist/verify/verification-boundary-env.js +81 -12
  270. package/dist/verify/verification-boundary-env.js.map +1 -1
  271. package/dist/verify/verification-commit-sharing.d.ts.map +1 -1
  272. package/dist/verify/verification-commit-sharing.js +2 -1
  273. package/dist/verify/verification-commit-sharing.js.map +1 -1
  274. package/dist/verify/verification-config.d.ts.map +1 -1
  275. package/dist/verify/verification-config.js +1 -0
  276. package/dist/verify/verification-config.js.map +1 -1
  277. package/dist/verify/verification-default-on.d.ts +0 -32
  278. package/dist/verify/verification-default-on.d.ts.map +1 -1
  279. package/dist/verify/verification-default-on.js +10 -234
  280. package/dist/verify/verification-default-on.js.map +1 -1
  281. package/dist/verify/verification-deps-default.d.ts.map +1 -1
  282. package/dist/verify/verification-deps-default.js +24 -2
  283. package/dist/verify/verification-deps-default.js.map +1 -1
  284. package/dist/verify/verification-deps.d.ts +17 -1
  285. package/dist/verify/verification-deps.d.ts.map +1 -1
  286. package/dist/verify/verification-engine.d.ts +2 -1
  287. package/dist/verify/verification-engine.d.ts.map +1 -1
  288. package/dist/verify/verification-engine.js +62 -50
  289. package/dist/verify/verification-engine.js.map +1 -1
  290. package/dist/verify/verification-feedback.d.ts +1 -1
  291. package/dist/verify/verification-feedback.d.ts.map +1 -1
  292. package/dist/verify/verification-feedback.js +5 -0
  293. package/dist/verify/verification-feedback.js.map +1 -1
  294. package/dist/verify/verification-rework-issue.d.ts +48 -7
  295. package/dist/verify/verification-rework-issue.d.ts.map +1 -1
  296. package/dist/verify/verification-rework-issue.js +111 -9
  297. package/dist/verify/verification-rework-issue.js.map +1 -1
  298. package/dist/verify/verify-restatement.d.ts +27 -33
  299. package/dist/verify/verify-restatement.d.ts.map +1 -1
  300. package/dist/verify/verify-restatement.js +74 -1
  301. package/dist/verify/verify-restatement.js.map +1 -1
  302. package/package.json +2 -2
@@ -0,0 +1,305 @@
1
+ // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
+ // Pinned by: packages/daemon/src/verify/commit-verdict-pull.test.ts,
3
+ // packages/daemon/src/verify/credit-rearm.test.ts, packages/daemon/src/verify/shortfall-rulings.test.ts,
4
+ // packages/daemon/src/verify/verification-default-on.test.ts,
5
+ // packages/daemon/src/verify/verification-run-config-source.test.ts,
6
+ // packages/daemon/src/verify/verify-unprovisioned-worktree.test.ts,
7
+ // packages/daemon/src/worktree/worktree-package-provisioning.test.ts
8
+ // PINNED-BY-END
9
+ /**
10
+ * The default-on scan's steady-state re-run guards: what a delivery sitting in
11
+ * verify has ALREADY been judged on, and what re-arms it.
12
+ *
13
+ * Three questions, asked in this order by collectDefaultOnVerifications
14
+ * (verify/verification-default-on.ts), each with its own memory:
15
+ *
16
+ * 1. alreadyPassed -- has this DELIVERY's verify passed? A pass is earned once
17
+ * and kept until the delivery genuinely re-enters verify. No commit is read.
18
+ * 2. ranOnCurrentHead -- does this delivery's dispatch already stand for the
19
+ * focus's current HEAD (in flight, or judged the commit HEAD still names)?
20
+ * 3. failedOnCurrentHead -- did its last verify FAIL on the commit HEAD names?
21
+ *
22
+ * The order is load-bearing: (1) answers a question about the DELIVERY, (2) and
23
+ * (3) about the COMMIT. Asked after (2), a sibling's commit would drop the run
24
+ * mark and log a re-arm that (1) then silently suppressed.
25
+ *
26
+ * Extracted from verification-default-on.ts (daemon 800-line limit) when the
27
+ * pass rule stopped being HEAD-keyed and grew the reasoning that goes with it.
28
+ * The guards are the rule; the scan is the loop that asks them. A leaf: it reads
29
+ * gate_state and logs, and imports nothing from the scan.
30
+ *
31
+ * @module verify/default-on-guards
32
+ */
33
+ import { judgedFailedSha, readVerificationHistory } from '../queries/delivery-gate-state.js';
34
+ import { createLogger } from '../shell/log.js';
35
+ const log = createLogger({ module: 'verification' });
36
+ /**
37
+ * A delivery synthesized by the default-on scan is NOT filtered server-side
38
+ * (the edge `daemon_get_pending_verifications` only returns explicit-method
39
+ * rows), so without a guard a delivery sitting in verify -- e.g. awaiting a
40
+ * review window -- would re-run the whole-repo suite on every verification
41
+ * tick. This map records deliveries whose default-on run has already been
42
+ * dispatched during THIS daemon run, with the commit that dispatch judged (null
43
+ * while in flight or when the run named no commit). A delivery is pruned the
44
+ * moment it is no longer observed in verify (so a genuine re-entry is selected
45
+ * again, unless one of the HEAD-keyed guards below already holds its verdict for
46
+ * the unchanged commit), and re-armed when a readable focus HEAD differs from the
47
+ * commit it was judged on: every delivery is judged on the focus HEAD, so a new
48
+ * commit on the focus branch is a new question for every delivery sitting in
49
+ * verify. Neither re-selection runs the gate twice for one commit -- the dispatch
50
+ * takes a verdict already recorded for that commit
51
+ * (verify/verification-commit-sharing.ts), which is also what makes a restart
52
+ * (this map empty) cost no run.
53
+ */
54
+ const defaultOnRan = new Map();
55
+ /**
56
+ * HEAD-keyed re-verify guard: delivery id -> the commit its last default-on
57
+ * verify FAILED on (the gate command exited non-zero at that sha).
58
+ *
59
+ * The steady-state guard above is keyed on STATUS re-entry, and a failed verify
60
+ * with every issue Done steps verify -> verify_failed -> coding -> verify within
61
+ * ~60s -- so the same unchanged commit re-ran the whole gate (one delivery
62
+ * re-verified 5x on one sha, f1 2026-09-13), and each run re-took the verify hold.
63
+ * A gate on an unchanged tree renders the same verdict; only a NEW commit on the
64
+ * focus branch can change it. So an entry here suppresses selection while the
65
+ * focus HEAD still equals the failed sha, survives the status round trip, and is
66
+ * dropped (re-armed) the first time a readable HEAD differs; an unreadable HEAD
67
+ * keeps it (fail closed). A pass clears it. A timed-out run records nothing (a
68
+ * kill is not a verdict about the tree; judgedFailedSha).
69
+ * A BLIND run (blind_zero_parse) IS held here, in-process only: its re-work stamps
70
+ * no durable record and no iteration_count, so this bounds a blind re-run loop at
71
+ * one sha. The restart shipping a parser fix clears it: the held delivery is
72
+ * re-judged at the same commit, with no new commit or status edit.
73
+ *
74
+ * This map is only the hot copy. The DURABLE record is gate_state
75
+ * `verificationHistory.failedAtSha`: the failure feedback stamps it on the
76
+ * rejection, every clearing writer carries it (carryVerificationHistory), and a
77
+ * pass resets it -- so a daemon restart does not re-arm the unchanged commit.
78
+ * Selection reads the map first, then that record; the map covers a rejection
79
+ * write that did not land.
80
+ */
81
+ const failedAtSha = new Map();
82
+ /** `${deliveryId}@${sha}` pairs whose suppression was already logged. */
83
+ const loggedShaSkips = new Set();
84
+ function forgetFailedSha(deliveryId, durableSha) {
85
+ for (const sha of [failedAtSha.get(deliveryId), durableSha]) {
86
+ if (sha !== undefined)
87
+ loggedShaSkips.delete(`${deliveryId}@${sha}`);
88
+ }
89
+ failedAtSha.delete(deliveryId);
90
+ }
91
+ /**
92
+ * Pass memory: delivery id -> the commit its last default-on verify PASSED on
93
+ * (an actual 'passed' outcome at a known judged sha).
94
+ *
95
+ * A DELIVERY EARNS ITS VERDICT ONCE. An entry here suppresses selection until the
96
+ * delivery genuinely re-enters verify -- NOT until the focus HEAD moves.
97
+ *
98
+ * It used to be HEAD-keyed, dropped the first time a readable HEAD differed, and
99
+ * its log line said so ("a new commit on the focus branch re-arms it"). But every
100
+ * delivery of a focus is judged on ONE branch, so a commit made for a SIBLING
101
+ * delivery moved the HEAD of a delivery whose own work had not changed, and
102
+ * re-armed it. Measured on focus 09fc9cc6, delivery 5d02a2d2 (2026-09-19/20): 8
103
+ * gate runs over 8 shas, ALL PASSED, ~3h of wall time, while its code stood still;
104
+ * 2026-09-20 across all foci, 20 runs and ~5.7h of gate wall time in one day.
105
+ *
106
+ * WHAT COUNTS AS "ITS OWN WORK" -- the rule is a genuine verify_failed -> coding
107
+ * -> verify re-entry, and nothing else. The alternative considered was a commit
108
+ * carrying this delivery's own Telora-Delivery trailer (verify/delivery-commit-set.ts
109
+ * already reads that set as stable patch ids, and verify/shortfall-park.ts already
110
+ * fingerprints it, so cost was not why it lost). It lost on SOUNDNESS: a trailer is
111
+ * an attribution claim about who a commit is FOR, not a statement about the code
112
+ * the gate judges. The gate runs a whole-repo command over the worktree, so a
113
+ * sibling's commit can break a passed delivery's verdict carrying no trailer of its
114
+ * own, and a commit trailered to a delivery can touch none of the code its verdict
115
+ * depended on. Trailer-keyed re-arm therefore buys imprecise EARLY feedback, not
116
+ * correctness -- and correctness is owned by the done route, which judges the exact
117
+ * tip it is waiting on whatever this rule says (see below). Adding it later is
118
+ * purely additive on top of this rule; nothing here forecloses it.
119
+ *
120
+ * THE BAR IS NOT LOWERED. completion/review-exit-verdict-gate.ts still refuses to
121
+ * converge a delivery with no PASSING verdict for the commit it is judged on, and
122
+ * verify/commit-verdict-pull.ts makes the held route cause the run that judges that
123
+ * commit. So this removes SPECULATIVE runs only: the commit a route actually needs
124
+ * answered is still answered, on demand, at the tip that turns out to matter.
125
+ *
126
+ * Dropped by a genuine re-entry (the prune sweep in collectDefaultOnVerifications,
127
+ * which sees the delivery leave verify), or when a later run FAILS at a judged sha.
128
+ * It survives a discarded (checkoutUnavailable) run -- not a verdict -- and a
129
+ * 'pending' is never a pass: a pass demoted because injection retirement threw
130
+ * records nothing.
131
+ *
132
+ * The HEAD is no longer read here at all, so the old unreadable-HEAD carve-out is
133
+ * gone with it: the question this guard answers is about the delivery, not about a
134
+ * commit.
135
+ *
136
+ * IN-MEMORY ONLY, deliberately, and re-examined under the narrowed rule. The
137
+ * durable counterpart would be a passed sha in gate_state's verificationHistory,
138
+ * beside failedAtSha. It was rejected: that field is written and cleared by every
139
+ * gate_state writer under the per-row write discipline, and the pass is exactly the
140
+ * moment the history is RESET (verify/verification-history-reset.ts), so the new
141
+ * key would have to be carved out of its own reset -- real perturbation of a
142
+ * load-bearing invariant. What it would buy is bounded and mostly not waste: after
143
+ * a restart this map is empty, so an in-verify delivery is selected once at the
144
+ * current HEAD, and the dispatch takes the recorded per-commit verdict where that
145
+ * commit was judged (verify/commit-verdict-record.ts, no run). Where it was NOT
146
+ * judged, the run that follows is the one the done route will ask for anyway as
147
+ * soon as review exits -- early, not wasted. So: at most one gate run per in-verify
148
+ * delivery per restart, usually needed. Making it durable is additive if that ever
149
+ * proves wrong.
150
+ */
151
+ const passedAtSha = new Map();
152
+ const passSkipKey = (deliveryId, sha) => `${deliveryId}@${sha}#passed`;
153
+ function forgetPassedSha(deliveryId) {
154
+ const sha = passedAtSha.get(deliveryId);
155
+ if (sha !== undefined)
156
+ loggedShaSkips.delete(passSkipKey(deliveryId, sha));
157
+ passedAtSha.delete(deliveryId);
158
+ }
159
+ /** Test-only: reset the default-on re-run guards (status- and HEAD-keyed). */
160
+ export function __resetDefaultOnGuardForTests() {
161
+ defaultOnRan.clear();
162
+ failedAtSha.clear();
163
+ passedAtSha.clear();
164
+ loggedShaSkips.clear();
165
+ }
166
+ /** Test-only: snapshot of the default-on re-run guard (delivery id -> the commit its dispatch judged). */
167
+ export function __getDefaultOnGuardForTests() {
168
+ return defaultOnRan;
169
+ }
170
+ /** Mark a delivery as already run this verify-entry (dispatch-time bookkeeping; the judged commit is noted after). */
171
+ export function markDefaultOnRan(deliveryId) {
172
+ defaultOnRan.set(deliveryId, null);
173
+ }
174
+ /** Test-only alias for markDefaultOnRan. */
175
+ export function __markDefaultOnRanForTests(deliveryId) {
176
+ markDefaultOnRan(deliveryId);
177
+ }
178
+ /** Drop a delivery's run mark so the next tick selects it again (its dispatch rendered nothing it may keep). */
179
+ export function releaseDefaultOnMark(deliveryId) {
180
+ defaultOnRan.delete(deliveryId);
181
+ }
182
+ /**
183
+ * Drop a delivery's recorded pass, so the pass guard no longer suppresses it.
184
+ * The demand pull (verify/commit-verdict-pull.ts) calls this for a delivery whose
185
+ * route is held for a verdict on the current HEAD: the recorded pass is about an
186
+ * earlier commit, and the held route needs THIS one judged.
187
+ */
188
+ export function forgetRecordedPass(deliveryId) {
189
+ forgetPassedSha(deliveryId);
190
+ }
191
+ /**
192
+ * Dispatch-result bookkeeping for a default-on run:
193
+ * - no checkout could be made, or the verdict was discarded because dependencies
194
+ * moved mid-run -> un-mark, so the next tick retries (no verdict exists to
195
+ * guard); any recorded pass or failure stands;
196
+ * - the run judged a known commit -> keep it on the run mark, so a later focus
197
+ * HEAD that differs re-arms the delivery;
198
+ * - the gate command FAILED at a known sha (non-zero exit, not a timeout, final
199
+ * outcome failed) -> record the sha so that commit is not re-verified, and
200
+ * forget any recorded pass;
201
+ * - a pass -> forget any recorded failure and, at a known judged sha, remember
202
+ * the pass so that commit is not re-verified either.
203
+ */
204
+ export function noteDefaultOnResult(deliveryId, result) {
205
+ if (result.checkoutUnavailable) {
206
+ defaultOnRan.delete(deliveryId);
207
+ return;
208
+ }
209
+ if (result.verifiedSha && defaultOnRan.has(deliveryId))
210
+ defaultOnRan.set(deliveryId, result.verifiedSha);
211
+ const failedSha = judgedFailedSha(result);
212
+ if (result.outcome === 'failed' && failedSha) {
213
+ failedAtSha.set(deliveryId, failedSha);
214
+ forgetPassedSha(deliveryId);
215
+ }
216
+ else if (result.outcome === 'passed') {
217
+ forgetFailedSha(deliveryId);
218
+ if (result.verifiedSha)
219
+ passedAtSha.set(deliveryId, result.verifiedSha);
220
+ }
221
+ }
222
+ /**
223
+ * True when the delivery's last default-on verify PASSED (skip it). The focus
224
+ * HEAD is NOT read: a delivery earns its verdict once and keeps it until it
225
+ * genuinely re-enters verify (see passedAtSha for the rule and what it replaced).
226
+ */
227
+ export function alreadyPassed(deliveryId) {
228
+ const passedSha = passedAtSha.get(deliveryId);
229
+ if (passedSha === undefined)
230
+ return false;
231
+ const key = passSkipKey(deliveryId, passedSha);
232
+ if (!loggedShaSkips.has(key)) {
233
+ loggedShaSkips.add(key);
234
+ log.info(`[verification] default-on: not re-verifying delivery ${deliveryId} -- its verify already passed on `
235
+ + `${passedSha.slice(0, 8)}; a sibling's commit does not re-arm it, only a re-entry into verify does`);
236
+ }
237
+ return true;
238
+ }
239
+ /**
240
+ * True when the delivery's last default-on verify failed on the focus's CURRENT
241
+ * HEAD (skip it). The failed sha is the in-memory copy, else the durable
242
+ * gate_state record. Only a readable HEAD that DIFFERS re-arms the delivery; an
243
+ * unreadable HEAD keeps it suppressed.
244
+ */
245
+ export function failedOnCurrentHead(delivery, readHead) {
246
+ const failedSha = failedAtSha.get(delivery.id) ?? readVerificationHistory(delivery.gateState).failedAtSha;
247
+ if (failedSha === undefined)
248
+ return false;
249
+ const head = readHead();
250
+ if (head !== null && head !== failedSha) {
251
+ forgetFailedSha(delivery.id, failedSha);
252
+ return false;
253
+ }
254
+ const key = `${delivery.id}@${failedSha}`;
255
+ if (!loggedShaSkips.has(key)) {
256
+ loggedShaSkips.add(key);
257
+ const why = head === null
258
+ ? `its last verify failed on ${failedSha.slice(0, 8)} and the focus HEAD is unreadable`
259
+ : `focus HEAD ${failedSha.slice(0, 8)} is the commit its last verify failed on`;
260
+ log.info(`[verification] default-on: not re-verifying delivery ${delivery.id} -- ${why}; `
261
+ + `a new commit on the focus branch re-arms it`);
262
+ }
263
+ return true;
264
+ }
265
+ /**
266
+ * True when the delivery's default-on dispatch already stands for the focus's
267
+ * current HEAD (skip it): it is in flight, judged no known commit, or judged the
268
+ * commit HEAD still names -- or HEAD is unreadable. Only a readable HEAD that
269
+ * DIFFERS from the judged commit re-arms it (the mark is dropped).
270
+ */
271
+ export function ranOnCurrentHead(deliveryId, readHead) {
272
+ if (!defaultOnRan.has(deliveryId))
273
+ return false;
274
+ const judgedSha = defaultOnRan.get(deliveryId) ?? null;
275
+ if (judgedSha === null)
276
+ return true;
277
+ const head = readHead();
278
+ if (head === null || head === judgedSha)
279
+ return true;
280
+ defaultOnRan.delete(deliveryId);
281
+ log.info(`[verification] default-on: re-arming delivery ${deliveryId} -- focus HEAD ${head.slice(0, 8)} is a new commit `
282
+ + `(its last verify judged ${judgedSha.slice(0, 8)})`);
283
+ return false;
284
+ }
285
+ /**
286
+ * Prune the guards of every delivery no longer observed in verify. The run mark
287
+ * and the recorded PASS both go: a genuine verify_failed -> coding -> verify
288
+ * re-entry is the ONLY thing that re-arms a passed delivery, so this sweep IS
289
+ * that rule -- without it a delivery would keep a pass earned on the code before
290
+ * its fix commits, which is the one way the narrowed rule could lower the bar.
291
+ *
292
+ * failedAtSha is deliberately NOT pruned: a recorded failure is durable in
293
+ * gate_state and survives the round trip on purpose, unchanged.
294
+ */
295
+ export function pruneGuardsOutsideVerify(observedInVerify) {
296
+ for (const id of [...defaultOnRan.keys()]) {
297
+ if (!observedInVerify.has(id))
298
+ defaultOnRan.delete(id);
299
+ }
300
+ for (const id of [...passedAtSha.keys()]) {
301
+ if (!observedInVerify.has(id))
302
+ forgetPassedSha(id);
303
+ }
304
+ }
305
+ //# sourceMappingURL=default-on-guards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-on-guards.js","sourceRoot":"","sources":["../../src/verify/default-on-guards.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"explicit-rearm.d.ts","sourceRoot":"","sources":["../../src/verify/explicit-rearm.ts"],"names":[],"mappings":"AAuDA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAsB,MAAM,4BAA4B,CAAC;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAShE,gFAAgF;AAChF,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,EAAE,OAAO,gBAAgB,CAAC;IAC1C,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;IAC9C,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CAC1D;AAwBD;;;;;GAKG;AACH,wBAAsB,mCAAmC,CACvD,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,EAC/B,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAoDhC;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,mBAAmB,GAAG,IAAI,CAGzE;AAED,wDAAwD;AACxD,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD"}
1
+ {"version":3,"file":"explicit-rearm.d.ts","sourceRoot":"","sources":["../../src/verify/explicit-rearm.ts"],"names":[],"mappings":"AAwDA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAsB,MAAM,4BAA4B,CAAC;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAShE,gFAAgF;AAChF,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,EAAE,OAAO,gBAAgB,CAAC;IAC1C,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;IAC9C,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CAC1D;AAwBD;;;;;GAKG;AACH,wBAAsB,mCAAmC,CACvD,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,EAC/B,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAoDhC;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,mBAAmB,GAAG,IAAI,CAGzE;AAED,wDAAwD;AACxD,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD"}
@@ -2,6 +2,7 @@
2
2
  // Pinned by: packages/daemon/src/integration/explicit-verdict-departure-during-removal.test.ts,
3
3
  // packages/daemon/src/integration/explicit-verdict-invalidation-restart.test.ts,
4
4
  // packages/daemon/src/integration/explicit-verdict-reuse.test.ts,
5
+ // packages/daemon/src/integration/held-route-pull-dispatch.test.ts,
5
6
  // packages/daemon/src/integration/shortfall-ruling-disposes-proposals-regression.test.ts,
6
7
  // packages/daemon/src/integration/shortfall-ruling-release.test.ts,
7
8
  // packages/daemon/src/verify/verification-commit-sharing.test.ts
@@ -1 +1 @@
1
- {"version":3,"file":"explicit-rearm.js","sourceRoot":"","sources":["../../src/verify/explicit-rearm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"explicit-rearm.js","sourceRoot":"","sources":["../../src/verify/explicit-rearm.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"gate-run-registry.d.ts","sourceRoot":"","sources":["../../src/verify/gate-run-registry.ts"],"names":[],"mappings":"AAmBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,kDAAkD;AAClD,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,mGAAmG;IACnG,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,2DAA2D;AAC3D,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,IAAI,CAAC;CACjB;AAED,wDAAwD;AACxD,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAStD,sIAAsI;AACtI,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,uHAAuH;IACvH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAQD,8FAA8F;AAC9F,wBAAgB,eAAe,CAAC,SAAS,EAAE,gBAAgB,GAAG,mBAAmB,CAShF;AAED,0HAA0H;AAC1H,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAIvE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAK9E;AAED,6HAA6H;AAC7H,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAK7D;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,uBAAuB,GAAG,IAAI,CAKzI;AAKD,iHAAiH;AACjH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAExE;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAErE;AAED,6HAA6H;AAC7H,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAEvI;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,uBAAuB,GAAG,IAAI,GAAG,SAAS,CAE1G;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,mBAAmB,GAAG,IAAI,CAI1G;AAED,iEAAiE;AACjE,wBAAgB,8BAA8B,IAAI,IAAI,CAGrD"}
1
+ {"version":3,"file":"gate-run-registry.d.ts","sourceRoot":"","sources":["../../src/verify/gate-run-registry.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,kDAAkD;AAClD,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,mGAAmG;IACnG,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,2DAA2D;AAC3D,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,IAAI,CAAC;CACjB;AAED,wDAAwD;AACxD,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAStD,sIAAsI;AACtI,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,uHAAuH;IACvH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAQD,8FAA8F;AAC9F,wBAAgB,eAAe,CAAC,SAAS,EAAE,gBAAgB,GAAG,mBAAmB,CAShF;AAED,0HAA0H;AAC1H,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAIvE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAK9E;AAED,6HAA6H;AAC7H,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAK7D;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,uBAAuB,GAAG,IAAI,CAKzI;AAKD,iHAAiH;AACjH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAExE;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAErE;AAED,6HAA6H;AAC7H,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAEvI;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,uBAAuB,GAAG,IAAI,GAAG,SAAS,CAE1G;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,mBAAmB,GAAG,IAAI,CAI1G;AAED,iEAAiE;AACjE,wBAAgB,8BAA8B,IAAI,IAAI,CAGrD"}
@@ -9,6 +9,7 @@
9
9
  // packages/daemon/src/integration/explicit-verdict-invalidation-restart.test.ts,
10
10
  // packages/daemon/src/integration/explicit-verdict-reuse.test.ts,
11
11
  // packages/daemon/src/integration/focus-commit-verdict-scenario.test.ts,
12
+ // packages/daemon/src/integration/held-route-pull-dispatch.test.ts,
12
13
  // packages/daemon/src/integration/review-rework-resume-verdict.test.ts,
13
14
  // packages/daemon/src/integration/shortfall-ruling-disposes-proposals-regression.test.ts,
14
15
  // packages/daemon/src/integration/shortfall-ruling-release.test.ts,
@@ -1 +1 @@
1
- {"version":3,"file":"gate-run-registry.js","sourceRoot":"","sources":["../../src/verify/gate-run-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gate-run-registry.js","sourceRoot":"","sources":["../../src/verify/gate-run-registry.ts"],"names":[],"mappings":"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"}
@@ -7,9 +7,39 @@ export declare const MAX_STAMP_RETRIES = 10;
7
7
  export interface InjectionStamp {
8
8
  restatements: TargetRestatement[];
9
9
  evidence: string;
10
+ /**
11
+ * Targets that must NOT flip with the injection: operator-EXCUSED shortfall
12
+ * nodes, AND the post-arm targets the reconciliation RECORDED rather than
13
+ * judged. See `stampWithheldNodeIds`.
14
+ */
10
15
  withheldNodeIds: readonly string[];
11
16
  realityTreeId?: string;
12
17
  }
18
+ /**
19
+ * Everything this stamp must NOT promote: the operator-EXCUSED shortfall nodes
20
+ * PLUS the targets the focus's arm did not cover.
21
+ *
22
+ * Both are the same act for the stamp even though they are different judgements
23
+ * upstream. An EXCUSED node was judged and let go; a RECORDED one was never
24
+ * judged at all -- the arm the human gave did not cover it, so the
25
+ * reconciliation set it aside and it waits for the next arm
26
+ * (verify/verify-restatement.ts narrowToArmCoverage). Neither may be flipped to
27
+ * `desired_effect` by this verify, and the stamp has exactly one way to say so.
28
+ *
29
+ * WHY THE STAMP CARRIES IT AT ALL, given the verify door now reads the arm rule
30
+ * itself (supabase/functions/product-api/handlers/reality-tree/verify-arm-coverage.ts):
31
+ * that read FAILS OPEN. A focus row it cannot read withholds nothing, and the run that DID
32
+ * reconcile is the one that knows which targets it declined to judge. Saying it
33
+ * explicitly costs one array and is the only signal that survives a read the
34
+ * edge could not make.
35
+ *
36
+ * Carried on the ledgered stamp like every other field, so the retries re-send
37
+ * exactly what the run authored rather than a set recomputed later.
38
+ *
39
+ * `recordedTargetNodeIds` is null when NO reconciliation ran -- the run learned
40
+ * nothing about coverage, so it withholds nothing on that account. Pure.
41
+ */
42
+ export declare function stampWithheldNodeIds(excusedNodeIds: readonly string[], recordedTargetNodeIds: readonly string[] | null): string[];
13
43
  type StampDeps = Pick<VerificationDeps, 'verifyInjection' | 'emitInwardDrift' | 'fileEscalation' | 'organizationId'>;
14
44
  /**
15
45
  * Stamp the injection of a delivery whose verify PASSED. Never throws and never
@@ -1 +1 @@
1
- {"version":3,"file":"injection-stamp.d.ts","sourceRoot":"","sources":["../../src/verify/injection-stamp.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAE3F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAK/D,yFAAyF;AACzF,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAWD,KAAK,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,gBAAgB,CAAC,CAAC;AA8CrH;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,SAAS,EACf,CAAC,EAAE,mBAAmB,EACtB,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,OAAO,CAAC,CAgBlB;AAED,sFAAsF;AACtF,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAE7F;AAED,sGAAsG;AACtG,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBxE;AAED,4CAA4C;AAC5C,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CAEnD;AAED,mCAAmC;AACnC,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD"}
1
+ {"version":3,"file":"injection-stamp.d.ts","sourceRoot":"","sources":["../../src/verify/injection-stamp.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAE3F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAK/D,yFAAyF;AACzF,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,oBAAoB,CAClC,cAAc,EAAE,SAAS,MAAM,EAAE,EACjC,qBAAqB,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,GAC9C,MAAM,EAAE,CASV;AAWD,KAAK,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,gBAAgB,CAAC,CAAC;AA8CrH;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,SAAS,EACf,CAAC,EAAE,mBAAmB,EACtB,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,OAAO,CAAC,CAgBlB;AAED,sFAAsF;AACtF,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAE7F;AAED,sGAAsG;AACtG,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBxE;AAED,4CAA4C;AAC5C,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CAEnD;AAED,mCAAmC;AACnC,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD"}
@@ -1,5 +1,6 @@
1
1
  // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
- // Pinned by: packages/daemon/src/verify/verification-commit-sharing.test.ts,
2
+ // Pinned by: packages/daemon/src/verify/stamp-withholds-recorded-targets.test.ts,
3
+ // packages/daemon/src/verify/verification-commit-sharing.test.ts,
3
4
  // packages/daemon/src/verify/verification-engine.test.ts
4
5
  // PINNED-BY-END
5
6
  /**
@@ -36,6 +37,41 @@ import { createLogger } from '../shell/log.js';
36
37
  const log = createLogger({ module: 'verification' });
37
38
  /** Ticks a ledgered stamp is re-attempted before only the durable safety nets remain. */
38
39
  export const MAX_STAMP_RETRIES = 10;
40
+ /**
41
+ * Everything this stamp must NOT promote: the operator-EXCUSED shortfall nodes
42
+ * PLUS the targets the focus's arm did not cover.
43
+ *
44
+ * Both are the same act for the stamp even though they are different judgements
45
+ * upstream. An EXCUSED node was judged and let go; a RECORDED one was never
46
+ * judged at all -- the arm the human gave did not cover it, so the
47
+ * reconciliation set it aside and it waits for the next arm
48
+ * (verify/verify-restatement.ts narrowToArmCoverage). Neither may be flipped to
49
+ * `desired_effect` by this verify, and the stamp has exactly one way to say so.
50
+ *
51
+ * WHY THE STAMP CARRIES IT AT ALL, given the verify door now reads the arm rule
52
+ * itself (supabase/functions/product-api/handlers/reality-tree/verify-arm-coverage.ts):
53
+ * that read FAILS OPEN. A focus row it cannot read withholds nothing, and the run that DID
54
+ * reconcile is the one that knows which targets it declined to judge. Saying it
55
+ * explicitly costs one array and is the only signal that survives a read the
56
+ * edge could not make.
57
+ *
58
+ * Carried on the ledgered stamp like every other field, so the retries re-send
59
+ * exactly what the run authored rather than a set recomputed later.
60
+ *
61
+ * `recordedTargetNodeIds` is null when NO reconciliation ran -- the run learned
62
+ * nothing about coverage, so it withholds nothing on that account. Pure.
63
+ */
64
+ export function stampWithheldNodeIds(excusedNodeIds, recordedTargetNodeIds) {
65
+ const out = [];
66
+ const seen = new Set();
67
+ for (const id of [...excusedNodeIds, ...(recordedTargetNodeIds ?? [])]) {
68
+ if (id === '' || seen.has(id))
69
+ continue;
70
+ seen.add(id);
71
+ out.push(id);
72
+ }
73
+ return out;
74
+ }
39
75
  /** Failed stamps awaiting a stamp-only retry, by delivery id. */
40
76
  const ledger = new Map();
41
77
  /** Attempt the stamp, then surface inward drift for what it flipped. Throws when the stamp does. */
@@ -1 +1 @@
1
- {"version":3,"file":"injection-stamp.js","sourceRoot":"","sources":["../../src/verify/injection-stamp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"injection-stamp.js","sourceRoot":"","sources":["../../src/verify/injection-stamp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { CommitVerdict, CommitVerdictGate, CommitVerdictReader } from './commit-verdict-record.js';
2
+ /** How many ancestors of the tip are searched for the newest judged one. */
3
+ export declare const ANCESTOR_SEARCH_DEPTH = 200;
4
+ /** Ancestors of `tip`, newest first, excluding `tip`; null when unreadable. */
5
+ export type AncestorLister = (worktreePath: string, tip: string, depth: number) => string[] | null;
6
+ export declare const defaultListAncestors: AncestorLister;
7
+ /**
8
+ * The newest ancestor of `tip` whose recorded verdict satisfies `accept`, with
9
+ * that verdict; null when none does, or when the ancestors are unreadable.
10
+ */
11
+ export declare function findJudgedAncestor(productId: string, focusId: string, tip: string, gate: CommitVerdictGate, deps: {
12
+ worktreePath: string;
13
+ readCommitVerdict: CommitVerdictReader;
14
+ listAncestors?: AncestorLister;
15
+ }, accept?: (verdict: CommitVerdict) => boolean): {
16
+ sha: string;
17
+ verdict: CommitVerdict;
18
+ } | null;
19
+ /**
20
+ * The newest ancestor of `tip` this gate judged PASSING: the commit up to which
21
+ * the gate's stages need not look. Null when none is found, which every caller
22
+ * reads as "keep the base you already had".
23
+ *
24
+ * A FAILED verdict never anchors -- the walk continues past it to an older green
25
+ * one. A failure says the tree was bad there, not that anything was covered.
26
+ */
27
+ export declare function findGreenAncestor(productId: string, focusId: string, tip: string, gate: CommitVerdictGate, deps: {
28
+ worktreePath: string;
29
+ readCommitVerdict: CommitVerdictReader;
30
+ listAncestors?: AncestorLister;
31
+ }): string | null;
32
+ /**
33
+ * True when `maybeAncestor` is an ancestor of `descendant` (or the same commit).
34
+ * Undetermined (`null`) when git cannot answer.
35
+ *
36
+ * Ancestry, never commit dates: every coding spawn rebases the focus worktree
37
+ * (spawn/worktree-session.ts), so author and commit dates are shuffled relative
38
+ * to branch order and would rank the two bases wrongly.
39
+ */
40
+ export declare function isAncestorOf(worktreePath: string, maybeAncestor: string, descendant: string): boolean | null;
41
+ //# sourceMappingURL=judged-ancestor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"judged-ancestor.d.ts","sourceRoot":"","sources":["../../src/verify/judged-ancestor.ts"],"names":[],"mappings":"AA8CA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAExG,4EAA4E;AAC5E,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC,+EAA+E;AAC/E,MAAM,MAAM,cAAc,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,EAAE,GAAG,IAAI,CAAC;AAEnG,eAAO,MAAM,oBAAoB,EAAE,cAIlC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,mBAAmB,CAAC;IAAC,aAAa,CAAC,EAAE,cAAc,CAAA;CAAE,EACtG,MAAM,GAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAoB,GACvD;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,GAAG,IAAI,CAWhD;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,mBAAmB,CAAC;IAAC,aAAa,CAAC,EAAE,cAAc,CAAA;CAAE,GACrG,MAAM,GAAG,IAAI,CAEf;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAU5G"}