@telora/daemon 0.22.87 → 0.22.97

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 (190) hide show
  1. package/build-info.json +6 -3
  2. package/dist/backends/index.d.ts +1 -1
  3. package/dist/backends/index.d.ts.map +1 -1
  4. package/dist/backends/index.js +1 -1
  5. package/dist/backends/index.js.map +1 -1
  6. package/dist/backends/resolve.d.ts +37 -8
  7. package/dist/backends/resolve.d.ts.map +1 -1
  8. package/dist/backends/resolve.js +62 -28
  9. package/dist/backends/resolve.js.map +1 -1
  10. package/dist/cli/connect/config-write.d.ts +7 -4
  11. package/dist/cli/connect/config-write.d.ts.map +1 -1
  12. package/dist/cli/connect/config-write.js +13 -7
  13. package/dist/cli/connect/config-write.js.map +1 -1
  14. package/dist/cli/connect.d.ts.map +1 -1
  15. package/dist/cli/connect.js +11 -1
  16. package/dist/cli/connect.js.map +1 -1
  17. package/dist/cli/update-commands.d.ts.map +1 -1
  18. package/dist/cli/update-commands.js +2 -1
  19. package/dist/cli/update-commands.js.map +1 -1
  20. package/dist/completion/event-phases.js +5 -5
  21. package/dist/completion/event-phases.js.map +1 -1
  22. package/dist/completion/event.d.ts +7 -0
  23. package/dist/completion/event.d.ts.map +1 -1
  24. package/dist/completion/event.js.map +1 -1
  25. package/dist/completion/review-exit-phase.d.ts.map +1 -1
  26. package/dist/completion/review-exit-phase.js +2 -1
  27. package/dist/completion/review-exit-phase.js.map +1 -1
  28. package/dist/delivery/external-hold.js +1 -1
  29. package/dist/delivery/external-hold.js.map +1 -1
  30. package/dist/delivery/operator-hold.d.ts +14 -0
  31. package/dist/delivery/operator-hold.d.ts.map +1 -1
  32. package/dist/delivery/operator-hold.js +31 -1
  33. package/dist/delivery/operator-hold.js.map +1 -1
  34. package/dist/directive/directive-dispatch.js +2 -2
  35. package/dist/directive/directive-dispatch.js.map +1 -1
  36. package/dist/directive/directive-executor.d.ts.map +1 -1
  37. package/dist/directive/directive-executor.js +2 -1
  38. package/dist/directive/directive-executor.js.map +1 -1
  39. package/dist/directive/directive-verify-hold-gate.d.ts +32 -8
  40. package/dist/directive/directive-verify-hold-gate.d.ts.map +1 -1
  41. package/dist/directive/directive-verify-hold-gate.js +20 -21
  42. package/dist/directive/directive-verify-hold-gate.js.map +1 -1
  43. package/dist/drift/staleness-sensor.d.ts +6 -0
  44. package/dist/drift/staleness-sensor.d.ts.map +1 -1
  45. package/dist/drift/staleness-sensor.js +24 -20
  46. package/dist/drift/staleness-sensor.js.map +1 -1
  47. package/dist/drift/staleness.d.ts +18 -5
  48. package/dist/drift/staleness.d.ts.map +1 -1
  49. package/dist/drift/staleness.js +28 -15
  50. package/dist/drift/staleness.js.map +1 -1
  51. package/dist/focus/focus-engine.d.ts.map +1 -1
  52. package/dist/focus/focus-engine.js +6 -9
  53. package/dist/focus/focus-engine.js.map +1 -1
  54. package/dist/focus/focus-executor.js +2 -2
  55. package/dist/focus/focus-executor.js.map +1 -1
  56. package/dist/focus/listener-spawn.d.ts +31 -0
  57. package/dist/focus/listener-spawn.d.ts.map +1 -1
  58. package/dist/focus/listener-spawn.js +44 -22
  59. package/dist/focus/listener-spawn.js.map +1 -1
  60. package/dist/focus/listener.d.ts.map +1 -1
  61. package/dist/focus/listener.js +4 -0
  62. package/dist/focus/listener.js.map +1 -1
  63. package/dist/focus/team-actionable-work.d.ts +76 -20
  64. package/dist/focus/team-actionable-work.d.ts.map +1 -1
  65. package/dist/focus/team-actionable-work.js +85 -20
  66. package/dist/focus/team-actionable-work.js.map +1 -1
  67. package/dist/nexus/incoming.js +1 -1
  68. package/dist/nexus/incoming.js.map +1 -1
  69. package/dist/nexus/pending-returns.d.ts +124 -0
  70. package/dist/nexus/pending-returns.d.ts.map +1 -0
  71. package/dist/nexus/pending-returns.js +194 -0
  72. package/dist/nexus/pending-returns.js.map +1 -0
  73. package/dist/nexus/return-routing.d.ts +89 -0
  74. package/dist/nexus/return-routing.d.ts.map +1 -0
  75. package/dist/nexus/return-routing.js +148 -0
  76. package/dist/nexus/return-routing.js.map +1 -0
  77. package/dist/nexus/return.d.ts +66 -89
  78. package/dist/nexus/return.d.ts.map +1 -1
  79. package/dist/nexus/return.js +116 -279
  80. package/dist/nexus/return.js.map +1 -1
  81. package/dist/prompt/focus-prompt-builder.d.ts.map +1 -1
  82. package/dist/prompt/focus-prompt-builder.js +1 -0
  83. package/dist/prompt/focus-prompt-builder.js.map +1 -1
  84. package/dist/queries/delivery-gate-state.d.ts +23 -0
  85. package/dist/queries/delivery-gate-state.d.ts.map +1 -1
  86. package/dist/queries/delivery-gate-state.js +31 -4
  87. package/dist/queries/delivery-gate-state.js.map +1 -1
  88. package/dist/queries/focus-discovery.d.ts +7 -1
  89. package/dist/queries/focus-discovery.d.ts.map +1 -1
  90. package/dist/queries/focus-discovery.js +9 -3
  91. package/dist/queries/focus-discovery.js.map +1 -1
  92. package/dist/queries/requests.d.ts +51 -3
  93. package/dist/queries/requests.d.ts.map +1 -1
  94. package/dist/queries/requests.js +63 -10
  95. package/dist/queries/requests.js.map +1 -1
  96. package/dist/queries/shared.js +1 -1
  97. package/dist/queries/verification.d.ts.map +1 -1
  98. package/dist/queries/verification.js +1 -0
  99. package/dist/queries/verification.js.map +1 -1
  100. package/dist/shell/heartbeat-metadata.d.ts +18 -0
  101. package/dist/shell/heartbeat-metadata.d.ts.map +1 -1
  102. package/dist/shell/heartbeat-metadata.js +24 -0
  103. package/dist/shell/heartbeat-metadata.js.map +1 -1
  104. package/dist/shell/heartbeat.d.ts.map +1 -1
  105. package/dist/shell/heartbeat.js +6 -17
  106. package/dist/shell/heartbeat.js.map +1 -1
  107. package/dist/shell/model-resolution.d.ts +9 -4
  108. package/dist/shell/model-resolution.d.ts.map +1 -1
  109. package/dist/shell/model-resolution.js +46 -7
  110. package/dist/shell/model-resolution.js.map +1 -1
  111. package/dist/shell/unified-init.d.ts +24 -0
  112. package/dist/shell/unified-init.d.ts.map +1 -1
  113. package/dist/shell/unified-init.js +22 -17
  114. package/dist/shell/unified-init.js.map +1 -1
  115. package/dist/spawn/model-id-guards.d.ts +50 -0
  116. package/dist/spawn/model-id-guards.d.ts.map +1 -0
  117. package/dist/spawn/model-id-guards.js +110 -0
  118. package/dist/spawn/model-id-guards.js.map +1 -0
  119. package/dist/spawn/model-routing.d.ts +1 -43
  120. package/dist/spawn/model-routing.d.ts.map +1 -1
  121. package/dist/spawn/model-routing.js +3 -94
  122. package/dist/spawn/model-routing.js.map +1 -1
  123. package/dist/spawn/prompt-assembly.js +1 -1
  124. package/dist/spawn/prompt-assembly.js.map +1 -1
  125. package/dist/spawn/respawn-cycle-escalation.d.ts.map +1 -1
  126. package/dist/spawn/respawn-cycle-escalation.js +11 -3
  127. package/dist/spawn/respawn-cycle-escalation.js.map +1 -1
  128. package/dist/spawn/review-hold-park.d.ts +31 -0
  129. package/dist/spawn/review-hold-park.d.ts.map +1 -0
  130. package/dist/spawn/review-hold-park.js +120 -0
  131. package/dist/spawn/review-hold-park.js.map +1 -0
  132. package/dist/spawn/shared.d.ts +1 -1
  133. package/dist/spawn/shared.d.ts.map +1 -1
  134. package/dist/spawn/spawn-cooldown.d.ts +27 -4
  135. package/dist/spawn/spawn-cooldown.d.ts.map +1 -1
  136. package/dist/spawn/spawn-cooldown.js +88 -3
  137. package/dist/spawn/spawn-cooldown.js.map +1 -1
  138. package/dist/spawn/spawn-decision.d.ts +1 -0
  139. package/dist/spawn/spawn-decision.d.ts.map +1 -1
  140. package/dist/spawn/spawn-decision.js +7 -0
  141. package/dist/spawn/spawn-decision.js.map +1 -1
  142. package/dist/spawn/worktree-session.d.ts +4 -0
  143. package/dist/spawn/worktree-session.d.ts.map +1 -1
  144. package/dist/spawn/worktree-session.js +19 -15
  145. package/dist/spawn/worktree-session.js.map +1 -1
  146. package/dist/types/index.js +1 -1
  147. package/dist/update/auto-update-idle.d.ts.map +1 -1
  148. package/dist/update/auto-update-idle.js +2 -1
  149. package/dist/update/auto-update-idle.js.map +1 -1
  150. package/dist/update/auto-update.d.ts +20 -3
  151. package/dist/update/auto-update.d.ts.map +1 -1
  152. package/dist/update/auto-update.js +8 -24
  153. package/dist/update/auto-update.js.map +1 -1
  154. package/dist/update/self-update.d.ts +43 -4
  155. package/dist/update/self-update.d.ts.map +1 -1
  156. package/dist/update/self-update.js +61 -38
  157. package/dist/update/self-update.js.map +1 -1
  158. package/dist/update/version-check.d.ts +29 -45
  159. package/dist/update/version-check.d.ts.map +1 -1
  160. package/dist/update/version-check.js +48 -79
  161. package/dist/update/version-check.js.map +1 -1
  162. package/dist/verify/failure-signature.d.ts.map +1 -1
  163. package/dist/verify/failure-signature.js +1 -0
  164. package/dist/verify/failure-signature.js.map +1 -1
  165. package/dist/verify/verification-checkout.d.ts +58 -0
  166. package/dist/verify/verification-checkout.d.ts.map +1 -0
  167. package/dist/verify/verification-checkout.js +266 -0
  168. package/dist/verify/verification-checkout.js.map +1 -0
  169. package/dist/verify/verification-default-on.d.ts +27 -3
  170. package/dist/verify/verification-default-on.d.ts.map +1 -1
  171. package/dist/verify/verification-default-on.js +98 -5
  172. package/dist/verify/verification-default-on.js.map +1 -1
  173. package/dist/verify/verification-deps.d.ts +11 -0
  174. package/dist/verify/verification-deps.d.ts.map +1 -1
  175. package/dist/verify/verification-deterministic.d.ts +22 -1
  176. package/dist/verify/verification-deterministic.d.ts.map +1 -1
  177. package/dist/verify/verification-deterministic.js +6 -7
  178. package/dist/verify/verification-deterministic.js.map +1 -1
  179. package/dist/verify/verification-engine.d.ts.map +1 -1
  180. package/dist/verify/verification-engine.js +10 -8
  181. package/dist/verify/verification-engine.js.map +1 -1
  182. package/dist/verify/verification-feedback.d.ts +3 -0
  183. package/dist/verify/verification-feedback.d.ts.map +1 -1
  184. package/dist/verify/verification-feedback.js +5 -2
  185. package/dist/verify/verification-feedback.js.map +1 -1
  186. package/dist/worktree/verify-interlock.d.ts +9 -1
  187. package/dist/worktree/verify-interlock.d.ts.map +1 -1
  188. package/dist/worktree/verify-interlock.js +40 -3
  189. package/dist/worktree/verify-interlock.js.map +1 -1
  190. package/package.json +3 -3
@@ -1,6 +1,30 @@
1
+ /**
2
+ * Directive executor's read of the ONE actionable-work world-model.
3
+ *
4
+ * The directive dispatcher has two spawn-PRODUCING paths: the no-active-team
5
+ * fallback in executeInjectDirective (which stashes a PendingSpawnDirective for
6
+ * the listener to spawn) and executeSpawnDirective (which terminates the live
7
+ * team and stashes a respawn). Both would drive a team into a focus with NO
8
+ * team-actionable work -- one whose verify hold covers the only non-terminal
9
+ * work -- which is exactly the respawn class that produced the 2026-09-06 storm
10
+ * (a lead spawned, ran one turn, found nothing it could commit or advance, and
11
+ * exited, 80 times).
12
+ *
13
+ * This module gives the directive executor the SAME verdict the spawn gate
14
+ * (focus/listener-spawn.ts) and the team-exit classifier read: the one predicate
15
+ * in focus/team-actionable-work.ts, fed the delivery-scoped hold facts
16
+ * (resolveFocusVerifyHoldFacts). So all four controllers cannot disagree about
17
+ * whether a focus has actionable work -- the "one world-model" this focus
18
+ * converges -- including the f1 shape (2026-09-13), where a sibling delivery's
19
+ * open work stays actionable while another delivery is under verify.
20
+ *
21
+ * @module directive/directive-verify-hold-gate
22
+ */
23
+ import { type VerifyHoldFacts } from '../focus/team-actionable-work.js';
1
24
  /** Injectable seam so callers unit-test the gate without a live verify. */
2
25
  export interface DirectiveVerifyHoldDeps {
3
- focusUnderVerifyHold?: (focusId: string) => boolean;
26
+ /** Resolve the focus's hold facts; defaults to resolveFocusVerifyHoldFacts. */
27
+ verifyHoldFacts?: (focusId: string) => VerifyHoldFacts | Promise<VerifyHoldFacts>;
4
28
  /**
5
29
  * The session lineage of the directive being dispatched. A review-lineage
6
30
  * directive is NEVER blocked by a verify hold: a review is exactly the work
@@ -13,21 +37,21 @@ export interface DirectiveVerifyHoldDeps {
13
37
  }
14
38
  /**
15
39
  * True when a stage directive that would SPAWN (or respawn) a team for this
16
- * focus must be suppressed because the focus has no team-actionable work: its
17
- * worktree is held by an in-flight verify. Reads the one canonical predicate
40
+ * focus must be suppressed because the focus has no team-actionable work: a
41
+ * verify hold covers its only open work. Reads the one canonical predicate
18
42
  * (focus/team-actionable-work.ts) shared with the spawn gate and the team-exit
19
43
  * classifier.
20
44
  *
21
45
  * `hasUnheldActionableWork` is true by construction at this call site -- the
22
46
  * directive executor only reaches a spawn-producing path for a focus it already
23
- * decided has a directive to run; the hold is the only thing that can flip the
24
- * shared verdict to "no actionable work". An inject to an already-live team is
25
- * NOT a spawn and is never gated here; callers apply this only on their
26
- * spawn-producing branches.
47
+ * decided has a directive to run; a hold with no work outside the verified
48
+ * delivery is the only thing that can flip the shared verdict to "no actionable
49
+ * work". An inject to an already-live team is NOT a spawn and is never gated
50
+ * here; callers apply this only on their spawn-producing branches.
27
51
  *
28
52
  * The one exception is LINEAGE: a review-lineage directive is never blocked (see
29
53
  * DirectiveVerifyHoldDeps.lineage) -- the review is the work that clears the very
30
54
  * hold, so gating it on the hold would deadlock the focus in verify.
31
55
  */
32
- export declare function directiveSpawnBlockedByVerifyHold(focusId: string, deps?: DirectiveVerifyHoldDeps): boolean;
56
+ export declare function directiveSpawnBlockedByVerifyHold(focusId: string, deps?: DirectiveVerifyHoldDeps): Promise<boolean>;
33
57
  //# sourceMappingURL=directive-verify-hold-gate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"directive-verify-hold-gate.d.ts","sourceRoot":"","sources":["../../src/directive/directive-verify-hold-gate.ts"],"names":[],"mappings":"AAgCA,2EAA2E;AAC3E,MAAM,WAAW,uBAAuB;IACtC,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACpD;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,uBAA4B,GACjC,OAAO,CAUT"}
1
+ {"version":3,"file":"directive-verify-hold-gate.d.ts","sourceRoot":"","sources":["../../src/directive/directive-verify-hold-gate.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,kCAAkC,CAAC;AAE1C,2EAA2E;AAC3E,MAAM,WAAW,uBAAuB;IACtC,+EAA+E;IAC/E,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAClF;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,iCAAiC,CACrD,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,uBAA4B,GACjC,OAAO,CAAC,OAAO,CAAC,CAOlB"}
@@ -9,49 +9,48 @@
9
9
  * The directive dispatcher has two spawn-PRODUCING paths: the no-active-team
10
10
  * fallback in executeInjectDirective (which stashes a PendingSpawnDirective for
11
11
  * the listener to spawn) and executeSpawnDirective (which terminates the live
12
- * team and stashes a respawn). Both would drive a team into a focus whose
13
- * worktree is currently held by an in-flight verify -- a focus with NO
14
- * team-actionable work -- which is exactly the respawn class that produced the
15
- * 2026-09-06 storm (a lead spawned, ran one turn, found nothing it could commit
16
- * or advance, and exited, 80 times).
12
+ * team and stashes a respawn). Both would drive a team into a focus with NO
13
+ * team-actionable work -- one whose verify hold covers the only non-terminal
14
+ * work -- which is exactly the respawn class that produced the 2026-09-06 storm
15
+ * (a lead spawned, ran one turn, found nothing it could commit or advance, and
16
+ * exited, 80 times).
17
17
  *
18
18
  * This module gives the directive executor the SAME verdict the spawn gate
19
19
  * (focus/listener-spawn.ts) and the team-exit classifier read: the one predicate
20
- * in focus/team-actionable-work.ts, with the verify-interlock hold as an input.
21
- * So all four controllers cannot disagree about whether a focus has actionable
22
- * work -- the "one world-model" this focus converges.
20
+ * in focus/team-actionable-work.ts, fed the delivery-scoped hold facts
21
+ * (resolveFocusVerifyHoldFacts). So all four controllers cannot disagree about
22
+ * whether a focus has actionable work -- the "one world-model" this focus
23
+ * converges -- including the f1 shape (2026-09-13), where a sibling delivery's
24
+ * open work stays actionable while another delivery is under verify.
23
25
  *
24
26
  * @module directive/directive-verify-hold-gate
25
27
  */
26
- import { focusHasTeamActionableWork, focusUnderVerifyHold, } from '../focus/team-actionable-work.js';
28
+ import { focusHasTeamActionableWork, resolveFocusVerifyHoldFacts, } from '../focus/team-actionable-work.js';
27
29
  /**
28
30
  * True when a stage directive that would SPAWN (or respawn) a team for this
29
- * focus must be suppressed because the focus has no team-actionable work: its
30
- * worktree is held by an in-flight verify. Reads the one canonical predicate
31
+ * focus must be suppressed because the focus has no team-actionable work: a
32
+ * verify hold covers its only open work. Reads the one canonical predicate
31
33
  * (focus/team-actionable-work.ts) shared with the spawn gate and the team-exit
32
34
  * classifier.
33
35
  *
34
36
  * `hasUnheldActionableWork` is true by construction at this call site -- the
35
37
  * directive executor only reaches a spawn-producing path for a focus it already
36
- * decided has a directive to run; the hold is the only thing that can flip the
37
- * shared verdict to "no actionable work". An inject to an already-live team is
38
- * NOT a spawn and is never gated here; callers apply this only on their
39
- * spawn-producing branches.
38
+ * decided has a directive to run; a hold with no work outside the verified
39
+ * delivery is the only thing that can flip the shared verdict to "no actionable
40
+ * work". An inject to an already-live team is NOT a spawn and is never gated
41
+ * here; callers apply this only on their spawn-producing branches.
40
42
  *
41
43
  * The one exception is LINEAGE: a review-lineage directive is never blocked (see
42
44
  * DirectiveVerifyHoldDeps.lineage) -- the review is the work that clears the very
43
45
  * hold, so gating it on the hold would deadlock the focus in verify.
44
46
  */
45
- export function directiveSpawnBlockedByVerifyHold(focusId, deps = {}) {
47
+ export async function directiveSpawnBlockedByVerifyHold(focusId, deps = {}) {
46
48
  // Review is always spawnable, hold or not -- it releases the deliveries the
47
49
  // hold is holding. Read the lineage before the hold so a review directive is
48
50
  // never suppressed.
49
51
  if (deps.lineage === 'review')
50
52
  return false;
51
- const underVerifyHold = (deps.focusUnderVerifyHold ?? focusUnderVerifyHold)(focusId);
52
- return !focusHasTeamActionableWork({
53
- hasUnheldActionableWork: true,
54
- underVerifyHold,
55
- });
53
+ const facts = await (deps.verifyHoldFacts ?? resolveFocusVerifyHoldFacts)(focusId);
54
+ return !focusHasTeamActionableWork({ hasUnheldActionableWork: true, ...facts });
56
55
  }
57
56
  //# sourceMappingURL=directive-verify-hold-gate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"directive-verify-hold-gate.js","sourceRoot":"","sources":["../../src/directive/directive-verify-hold-gate.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,+EAA+E;AAC/E,gFAAgF;AAChF,2DAA2D;AAC3D,gBAAgB;AAEhB;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,kCAAkC,CAAC;AAgB1C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,iCAAiC,CAC/C,OAAe,EACf,OAAgC,EAAE;IAElC,4EAA4E;IAC5E,6EAA6E;IAC7E,oBAAoB;IACpB,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,oBAAoB,IAAI,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC;IACrF,OAAO,CAAC,0BAA0B,CAAC;QACjC,uBAAuB,EAAE,IAAI;QAC7B,eAAe;KAChB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"directive-verify-hold-gate.js","sourceRoot":"","sources":["../../src/directive/directive-verify-hold-gate.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,+EAA+E;AAC/E,gFAAgF;AAChF,2DAA2D;AAC3D,gBAAgB;AAEhB;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,GAE5B,MAAM,kCAAkC,CAAC;AAiB1C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,iCAAiC,CACrD,OAAe,EACf,OAAgC,EAAE;IAElC,4EAA4E;IAC5E,6EAA6E;IAC7E,oBAAoB;IACpB,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,IAAI,2BAA2B,CAAC,CAAC,OAAO,CAAC,CAAC;IACnF,OAAO,CAAC,0BAA0B,CAAC,EAAE,uBAAuB,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;AAClF,CAAC"}
@@ -74,6 +74,12 @@ export declare function recordAndCheckGapWedged(store: Map<string, number>, caus
74
74
  * legitimately-busy daemon that will drain-and-update on its own is never flagged.
75
75
  */
76
76
  export declare const DEFAULT_STALENESS_WEDGE_THRESHOLD_HOURS = 12;
77
+ /**
78
+ * The exact operator command that closes the gap when the machine cannot. It pins
79
+ * the @telora scope to the update channel, so running it on a host whose ~/.npmrc
80
+ * scopes @telora to Gitea still installs the release.
81
+ */
82
+ export declare function readyUpdateCommand(newest: string, channel: string): string;
77
83
  /** Minimal open-escalation row shape the sensor's dedup / resolve reads. */
78
84
  interface StalenessEscalationRow {
79
85
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"staleness-sensor.d.ts","sourceRoot":"","sources":["../../src/drift/staleness-sensor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"staleness-sensor.d.ts","sourceRoot":"","sources":["../../src/drift/staleness-sensor.ts"],"names":[],"mappings":"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"}
@@ -6,21 +6,21 @@
6
6
  *
7
7
  * The differential instrument this focus is named for: it computes
8
8
  * newest-available MINUS actually-running for a tracked target. Its first (and
9
- * directly observable) target is the running daemon vs the INSTALL registry --
10
- * the registry npm resolves for `npm install -g @telora/daemon@latest`, which is
11
- * npmjs or Gitea or a mirror depending on the host's npm config, NOT a fixed host:
9
+ * directly observable) target is the running daemon vs the UPDATE CHANNEL -- the
10
+ * registry every daemon install pins the @telora scope to (npmjs, unless
11
+ * TELORA_REGISTRY_URL overrides it; never the host's ~/.npmrc scope):
12
12
  *
13
13
  * running = ~/.telora/daemon.meta.json .version (this daemon's own build)
14
14
  * newest = the warm version cache .latestVersion (dist-tags.latest from the
15
- * registry checkForUpdates resolved, kept fresh by
15
+ * channel checkForUpdates read, kept fresh by
16
16
  * startVersionCacheRefreshLoop)
17
17
  *
18
18
  * ATTRIBUTED readings only. The cache records WHICH registry produced `newest`;
19
- * a reading is trusted only when that registry is the one npm resolves for an
20
- * install. A reading from any other registry (an operator's TELORA_REGISTRY_URL
21
- * override, a legacy cache with no registry) is reported UNMEASURED, never
22
- * "in sync" -- a host cannot certify the installed version is current by reading
23
- * a registry the installer does not use.
19
+ * a reading is trusted only when that registry is the update channel. A reading
20
+ * from any other registry (a cache stamped with the Gitea URL, a legacy cache
21
+ * with no registry) is reported UNMEASURED, never "in sync" -- a host cannot
22
+ * certify the installed version is current by reading a registry installs do
23
+ * not use.
24
24
  *
25
25
  * CLOSING the gap, not reporting it. The daemon-version gap is machine-closable:
26
26
  * the safe-seam auto-update controller (auto-update.ts) already installs a newer
@@ -66,7 +66,7 @@ import { hostname as osHostname } from 'node:os';
66
66
  import { configForProduct } from '../shell/config.js';
67
67
  import { readFreshVersionCache } from './staleness.js';
68
68
  import { readDaemonMeta } from '../shell/daemon-process.js';
69
- import { isNewerVersion, versionDistance, resolveInstallRegistryUrl, isReadingAttributable, } from '../update/version-check.js';
69
+ import { isNewerVersion, versionDistance, resolveUpdateChannelUrl, scopedInstallCommand, isReadingAttributable, } from '../update/version-check.js';
70
70
  import { createEscalation, markEscalationResolved } from '../queries/escalations.js';
71
71
  import { callApi } from '../queries/shared.js';
72
72
  import { daemonStalenessCauseKey } from '../queries/cause-key.js';
@@ -180,9 +180,13 @@ function loadWedgeThresholdMs() {
180
180
  function formatDistance(d) {
181
181
  return `${d.major}.${d.minor}.${d.patch}`;
182
182
  }
183
- /** The exact operator command that closes the gap when the machine cannot. */
184
- function readyUpdateCommand(newest) {
185
- return `npm install -g @telora/daemon@${newest} # then restart the daemon`;
183
+ /**
184
+ * The exact operator command that closes the gap when the machine cannot. It pins
185
+ * the @telora scope to the update channel, so running it on a host whose ~/.npmrc
186
+ * scopes @telora to Gitea still installs the release.
187
+ */
188
+ export function readyUpdateCommand(newest, channel) {
189
+ return `${scopedInstallCommand(`@telora/daemon@${newest}`, channel)} # then restart the daemon`;
186
190
  }
187
191
  /**
188
192
  * Whether the auto-update controller can close the daemon-version gap itself.
@@ -339,7 +343,7 @@ const defaultDeps = {
339
343
  readRunningVersion: () => readDaemonMeta()?.version ?? null,
340
344
  readNewestAvailable: () => readFreshVersionCache()?.latestVersion ?? null,
341
345
  readReadingRegistry: () => readFreshVersionCache()?.registryUrl ?? null,
342
- readInstallRegistry: () => resolveInstallRegistryUrl(),
346
+ readInstallRegistry: () => resolveUpdateChannelUrl(),
343
347
  patchThreshold: DEFAULT_STALENESS_PATCH_THRESHOLD,
344
348
  canMachineCloseGap: defaultCanMachineCloseGap,
345
349
  hasOpenStalenessEscalation: defaultHasOpenStalenessEscalation,
@@ -357,7 +361,7 @@ const defaultDeps = {
357
361
  async function applyStalenessAction(args) {
358
362
  const { action, diff, pc, canMachineClose, installRegistry, counts, deps } = args;
359
363
  if (action === 'hand-over') {
360
- const readyCommand = readyUpdateCommand(diff.newest);
364
+ const readyCommand = readyUpdateCommand(diff.newest, installRegistry);
361
365
  // canMachineClose + hand-over can only mean wedged (decideStalenessAction);
362
366
  // !canMachineClose means auto-update is disabled.
363
367
  const reason = canMachineClose ? 'auto_update_wedged' : 'auto_update_disabled';
@@ -434,12 +438,12 @@ export async function runStalenessSensorTick(config, deps = defaultDeps) {
434
438
  `cannot compute the propagation gap -- the version cache may not be warm yet.`);
435
439
  return counts;
436
440
  }
437
- // Attribution gate: the `newest` reading must be attributable to the registry
438
- // npm resolves for an install. A reading from any other registry (a
439
- // TELORA_REGISTRY_URL override, a legacy cache with no registry) is UNMEASURED
441
+ // Attribution gate: the `newest` reading must be attributable to the update
442
+ // channel every install pins to. A reading from any other registry (a cache
443
+ // stamped with the Gitea URL, a legacy cache with no registry) is UNMEASURED
440
444
  // -- reporting "in sync" here would certify the installed version against a
441
- // registry the installer does not use (the mars false-negative, on the
442
- // platform). Silence still means "measured and in sync", never "not measured".
445
+ // registry installs do not use (the mars false-negative, on the platform).
446
+ // Silence still means "measured and in sync", never "not measured".
443
447
  const readingRegistry = deps.readReadingRegistry();
444
448
  const installRegistry = deps.readInstallRegistry();
445
449
  if (!isReadingAttributable(readingRegistry, installRegistry)) {
@@ -1 +1 @@
1
- {"version":3,"file":"staleness-sensor.js","sourceRoot":"","sources":["../../src/drift/staleness-sensor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"staleness-sensor.js","sourceRoot":"","sources":["../../src/drift/staleness-sensor.ts"],"names":[],"mappings":"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"}
@@ -41,15 +41,25 @@ export interface StalenessDeps {
41
41
  }
42
42
  export declare function resolveVersionCheckCachePath(): string;
43
43
  /**
44
- * Read the version-check cache only when it is FRESH (within the TTL).
44
+ * True when `cache` is within the TTL AND its reading came from `channel` (the
45
+ * update channel). A cache stamped with another registry -- e.g. a Gitea reading
46
+ * left over from before the daemon declared its channel -- or an unstamped legacy
47
+ * cache is NOT fresh: its latestVersion would name a version the channel install
48
+ * may not serve (a Gitea 0.22.87 candidate installing npmjs @latest 0.22.85 is a
49
+ * downgrade), so it must never drive an update decision.
50
+ */
51
+ export declare function isFreshChannelReading(cache: VersionCheckCache, nowMs: number, channel: string): boolean;
52
+ /**
53
+ * Read the version-check cache only when it is FRESH (within the TTL) and read
54
+ * from the update channel ({@link isFreshChannelReading}).
45
55
  *
46
56
  * The running daemon keeps this cache warm via {@link startVersionCacheRefreshLoop};
47
57
  * the auto-update controller reads the candidate version from here instead of
48
58
  * issuing a registry call on every idle edge, so rapid idle flapping cannot
49
- * produce a registry-call storm. An expired cache returns null -- a stale
50
- * answer must never drive an update decision.
59
+ * produce a registry-call storm. An expired or off-channel cache returns null --
60
+ * a stale answer must never drive an update decision.
51
61
  */
52
- export declare function readFreshVersionCache(now?: () => number): VersionCheckCache | null;
62
+ export declare function readFreshVersionCache(now?: () => number, channel?: string): VersionCheckCache | null;
53
63
  /** Options for {@link getStalenessInfoCore} / {@link getStalenessInfo}. */
54
64
  export interface StalenessOptions {
55
65
  /**
@@ -79,10 +89,13 @@ export interface CacheRefreshDeps {
79
89
  readCache: () => VersionCheckCache | null;
80
90
  writeCache: (cache: VersionCheckCache) => void;
81
91
  checkForUpdates: (currentVersion: string) => Promise<VersionCheckResult | null>;
92
+ /** The update channel a cached reading must come from to count as fresh. */
93
+ channel: string;
82
94
  now?: () => number;
83
95
  }
84
96
  /**
85
- * Refresh the version-check cache when it is missing or expired.
97
+ * Refresh the version-check cache when it is missing, expired, or read from a
98
+ * registry other than the update channel.
86
99
  * Returns true when a fresh registry answer was written, false when the
87
100
  * cache was already fresh or the registry was unreachable (no write -- an
88
101
  * expired cache stays expired rather than being re-stamped with old data).
@@ -1 +1 @@
1
- {"version":3,"file":"staleness.d.ts","sourceRoot":"","sources":["../../src/drift/staleness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"staleness.d.ts","sourceRoot":"","sources":["../../src/drift/staleness.ts"],"names":[],"mappings":"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"}
@@ -33,7 +33,7 @@
33
33
  import { existsSync, readFileSync, writeFileSync } from 'node:fs';
34
34
  import { join } from 'node:path';
35
35
  import { ensureGlobalStateDir, getDaemonStatus, readDaemonMeta, resolveGlobalStateDir, } from '../shell/daemon-process.js';
36
- import { checkForUpdates, isNewerVersion } from '../update/version-check.js';
36
+ import { checkForUpdates, isNewerVersion, isReadingAttributable, resolveUpdateChannelUrl, scopedInstallCommand, } from '../update/version-check.js';
37
37
  import { createLogger } from '../shell/log.js';
38
38
  const log = createLogger({ module: 'staleness' });
39
39
  /** Cache freshness window. Within this, no network call is made. */
@@ -47,24 +47,34 @@ export function resolveVersionCheckCachePath() {
47
47
  return join(resolveGlobalStateDir(), VERSION_CHECK_CACHE_FILE);
48
48
  }
49
49
  /**
50
- * Read the version-check cache only when it is FRESH (within the TTL).
50
+ * True when `cache` is within the TTL AND its reading came from `channel` (the
51
+ * update channel). A cache stamped with another registry -- e.g. a Gitea reading
52
+ * left over from before the daemon declared its channel -- or an unstamped legacy
53
+ * cache is NOT fresh: its latestVersion would name a version the channel install
54
+ * may not serve (a Gitea 0.22.87 candidate installing npmjs @latest 0.22.85 is a
55
+ * downgrade), so it must never drive an update decision.
56
+ */
57
+ export function isFreshChannelReading(cache, nowMs, channel) {
58
+ const checkedAtMs = Date.parse(cache.checkedAt);
59
+ if (!Number.isFinite(checkedAtMs) || nowMs - checkedAtMs >= VERSION_CHECK_CACHE_TTL_MS)
60
+ return false;
61
+ return isReadingAttributable(cache.registryUrl, channel);
62
+ }
63
+ /**
64
+ * Read the version-check cache only when it is FRESH (within the TTL) and read
65
+ * from the update channel ({@link isFreshChannelReading}).
51
66
  *
52
67
  * The running daemon keeps this cache warm via {@link startVersionCacheRefreshLoop};
53
68
  * the auto-update controller reads the candidate version from here instead of
54
69
  * issuing a registry call on every idle edge, so rapid idle flapping cannot
55
- * produce a registry-call storm. An expired cache returns null -- a stale
56
- * answer must never drive an update decision.
70
+ * produce a registry-call storm. An expired or off-channel cache returns null --
71
+ * a stale answer must never drive an update decision.
57
72
  */
58
- export function readFreshVersionCache(now = Date.now) {
73
+ export function readFreshVersionCache(now = Date.now, channel = resolveUpdateChannelUrl()) {
59
74
  const cache = readCacheFile();
60
75
  if (!cache)
61
76
  return null;
62
- const checkedAtMs = Date.parse(cache.checkedAt);
63
- if (!Number.isFinite(checkedAtMs))
64
- return null;
65
- if (now() - checkedAtMs >= VERSION_CHECK_CACHE_TTL_MS)
66
- return null;
67
- return cache;
77
+ return isFreshChannelReading(cache, now(), channel) ? cache : null;
68
78
  }
69
79
  function readCacheFile() {
70
80
  const path = resolveVersionCheckCachePath();
@@ -160,7 +170,8 @@ export async function getStalenessInfo(opts = {}) {
160
170
  }
161
171
  }
162
172
  /**
163
- * Refresh the version-check cache when it is missing or expired.
173
+ * Refresh the version-check cache when it is missing, expired, or read from a
174
+ * registry other than the update channel.
164
175
  * Returns true when a fresh registry answer was written, false when the
165
176
  * cache was already fresh or the registry was unreachable (no write -- an
166
177
  * expired cache stays expired rather than being re-stamped with old data).
@@ -168,8 +179,9 @@ export async function getStalenessInfo(opts = {}) {
168
179
  export async function maybeRefreshVersionCheckCacheCore(deps, currentVersion) {
169
180
  const cache = deps.readCache();
170
181
  if (cache) {
171
- const checkedAtMs = Date.parse(cache.checkedAt);
172
- const withinTtl = Number.isFinite(checkedAtMs) && (deps.now ?? Date.now)() - checkedAtMs < VERSION_CHECK_CACHE_TTL_MS;
182
+ // Off-channel readings (a Gitea-stamped or unstamped cache) are refreshed
183
+ // immediately regardless of age, so a channel switch heals on the first tick.
184
+ const withinTtl = isFreshChannelReading(cache, (deps.now ?? Date.now)(), deps.channel);
173
185
  // A cache entry whose latestVersion is at/below the running version carries
174
186
  // zero actionable signal. After a self-update restart the running version can
175
187
  // leapfrog the cached latest (e.g. running 0.17.53 > cached 0.17.48); the TTL
@@ -201,6 +213,7 @@ export async function maybeRefreshVersionCheckCache(currentVersion) {
201
213
  readCache: readCacheFile,
202
214
  writeCache: writeCacheFile,
203
215
  checkForUpdates,
216
+ channel: resolveUpdateChannelUrl(),
204
217
  now: Date.now,
205
218
  }, currentVersion);
206
219
  }
@@ -251,7 +264,7 @@ export function formatStalenessWarning(info) {
251
264
  if (info.installMode === 'npx' && info.autoUpdateEnabled === false) {
252
265
  line +=
253
266
  ' Daemon runs from an npx cache with auto-update disabled; self-update cannot replace an npx-cached binary.' +
254
- ' Install globally (npm install -g @telora/daemon) and run `telora-daemon restart`.';
267
+ ` Install globally (${scopedInstallCommand('@telora/daemon', resolveUpdateChannelUrl())}) and run \`telora-daemon restart\`.`;
255
268
  }
256
269
  return line;
257
270
  }
@@ -1 +1 @@
1
- {"version":3,"file":"staleness.js","sourceRoot":"","sources":["../../src/drift/staleness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"staleness.js","sourceRoot":"","sources":["../../src/drift/staleness.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"focus-engine.d.ts","sourceRoot":"","sources":["../../src/focus/focus-engine.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,aAAa,EACb,UAAU,EACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAA2B,gBAAgB,EAAoC,MAAM,qBAAqB,CAAC;AAClH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAkEtD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAOT;AAMD,qBAAa,WAAY,YAAW,eAAe;IACjD,QAAQ,CAAC,IAAI,WAAW;IAExB,wCAAwC;IACxC,OAAO,CAAC,MAAM,CAA6B;IAE3C;;;;OAIG;IACH,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IAEzC;;;;OAIG;IACH,SAAS,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,EAAE,CAAM;IAEjD,8EAA8E;IAC9E,OAAO,CAAC,qBAAqB,CAA6B;IAE1D;;;OAGG;IACH,WAAW,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI;IAUlC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAgGjE,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAsEjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA2FtB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;YAiE1C,wBAAwB;IA+BtC,IAAI,IAAI,IAAI;IAeN,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IA+F/B,WAAW,IAAI,YAAY;IA8C3B,gBAAgB,IAAI,aAAa;IAsBjC;;;OAGG;IACH,OAAO,CAAC,aAAa;CAStB"}
1
+ {"version":3,"file":"focus-engine.d.ts","sourceRoot":"","sources":["../../src/focus/focus-engine.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,aAAa,EACb,UAAU,EACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAA2B,gBAAgB,EAAoC,MAAM,qBAAqB,CAAC;AAClH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAkEtD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAOT;AAMD,qBAAa,WAAY,YAAW,eAAe;IACjD,QAAQ,CAAC,IAAI,WAAW;IAExB,wCAAwC;IACxC,OAAO,CAAC,MAAM,CAA6B;IAE3C;;;;OAIG;IACH,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IAEzC;;;;OAIG;IACH,SAAS,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,EAAE,CAAM;IAEjD,8EAA8E;IAC9E,OAAO,CAAC,qBAAqB,CAA6B;IAE1D;;;OAGG;IACH,WAAW,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI;IAUlC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA2FjE,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAsEjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA2FtB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;YAiE1C,wBAAwB;IA+BtC,IAAI,IAAI,IAAI;IAeN,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IA+F/B,WAAW,IAAI,YAAY;IA8C3B,gBAAgB,IAAI,aAAa;IAsBjC;;;OAGG;IACH,OAAO,CAAC,aAAa;CAStB"}
@@ -122,15 +122,12 @@ export class FocusEngine {
122
122
  log.info('Initializing Supabase client...');
123
123
  initSupabase(this.config);
124
124
  // Wire the durable spawn-cooldown write-through. Registered once, after the
125
- // Supabase client exists: recordFocusTeardown / clearSpawnCooldown now
126
- // persist the teardown streak + `exhausted` latch to product_focuses
127
- // (best-effort, fire-and-forget) so a deliberate halt and a spent terminating
128
- // budget survive the auto-updater's routine daemon re-exec.
129
- setSpawnCooldownPersister((focusId, state) => {
130
- updateFocusSpawnCooldown(focusId, state).catch((err) => {
131
- log.warn(`[spawn-cooldown] failed to persist teardown state for focus ${focusId.slice(0, 8)}: ${err.message}`);
132
- });
133
- });
125
+ // Supabase client exists: recordFocusTeardown / clearSpawnCooldown persist
126
+ // the teardown streak + `exhausted` latch to product_focuses (best-effort;
127
+ // spawn-cooldown.ts logs a failed write) so a deliberate halt and a spent
128
+ // terminating budget survive the auto-updater's routine daemon re-exec. The
129
+ // write's promise is returned so clearSpawnCooldownDurably can await it.
130
+ setSpawnCooldownPersister((focusId, state) => updateFocusSpawnCooldown(focusId, state));
134
131
  // Same write-through for the other two terminating bounds (TEL-2): the
135
132
  // cross-respawn no-progress watchdog and the below-coverage drift budget.
136
133
  setDeliveryAdvancementPersister((focusId, state) => {