@feigi/fleet-ctl 3.23.14 → 3.23.15

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@feigi/fleet-ctl",
3
- "version": "3.23.14",
3
+ "version": "3.23.15",
4
4
  "description": "Agent fleet: run-team controller, merge bot, PR reviewer, and the ticket pipeline they share",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -499,7 +499,16 @@ const FILES = [
499
499
  // other number straight back in, and this file already carried the
500
500
  // identical stale number at two independent sites.
501
501
  path: ["scripts", "fleet-heartbeat.mjs"],
502
- stale: [/run-merge-bot\.md:\d+/],
502
+ // #2667. The header once said run-merge-bot.md's CI gate holds its wait
503
+ // "and re-issuing it", and the several-holds paragraph once called the
504
+ // heartbeat "the same remedy the CI gate reached for". The CI wait holds
505
+ // in one `eval` cell and re-issues nothing. Tolerant of a re-wrap: the
506
+ // comment is hard-wrapped, so either phrase can break across a `//` line.
507
+ stale: [
508
+ /run-merge-bot\.md:\d+/,
509
+ /re-issuing\s+(?:\/\/\s*)?it\b/,
510
+ /same remedy the\s+(?:\/\/\s*)?CI gate/,
511
+ ],
503
512
  // One needle per SITE — either can revert independently of the other.
504
513
  live: [
505
514
  "run-merge-bot.md's CI wait rule already states",
@@ -18,7 +18,7 @@
18
18
  // roughly two hours; neither ever woke it. run-merge-bot.md's CI gate states
19
19
  // the same rule as a rule — "whatever wakes you is external and may never
20
20
  // come" — and cures it the same way this file does, by holding the wait
21
- // inside one blocking command and re-issuing it.
21
+ // inside one blocking call.
22
22
  //
23
23
  // So the heartbeat is not a Monitor, not a cron entry and not a paragraph of
24
24
  // prose. A cron entry that ran the reconcile would print its rows to nobody:
@@ -66,9 +66,8 @@ export function interval({ quiet, base, ceiling, multiplier }) {
66
66
  // rule already states.
67
67
  //
68
68
  // So a long interval is served by SEVERAL holds, and the elapsed total is
69
- // persisted rather than counted in prose. That is the same remedy the CI gate
70
- // reached for, made mechanical: the script says how much remains, so the
71
- // controller re-issues without tracking arithmetic across turns.
69
+ // persisted rather than counted in prose: the script says how much remains, so
70
+ // the controller re-issues without tracking arithmetic across turns.
72
71
  export function heldThisCall({ elapsed, target, hold }) {
73
72
  return Math.min(hold, Math.max(0, target - elapsed));
74
73
  }