cli-jaw 2.17.50 → 2.17.51

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.
@@ -71,7 +71,11 @@ export function initAlertDelivery() {
71
71
  continue;
72
72
  // An operational alert belongs in the channel configured to receive
73
73
  // one, not in whichever conversation spoke most recently (#438).
74
- void sendChannelOutput({ type: 'text', text, channel: ch, preferConfiguredTarget: true })
74
+ void sendChannelOutput({
75
+ type: 'text', text, channel: ch,
76
+ preferConfiguredTarget: true,
77
+ allowActiveFallback: false,
78
+ })
75
79
  .then((result) => {
76
80
  if (!result.ok) {
77
81
  console.warn(`[jaw:alert] delivery to ${ch} failed:`, result.error);
@@ -1 +1 @@
1
- {"version":3,"file":"alert-escalation.js","sourceRoot":"","sources":["../../../src/agent/alert-escalation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"alert-escalation.js","sourceRoot":"","sources":["../../../src/agent/alert-escalation.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,9 @@ export async function drainPendingWebAiNotifications(sender = sendChannelOutput)
12
12
  text: formatWebAiNotification(event),
13
13
  // Drained when a watcher finishes, which can be long after the request
14
14
  // that started it — by then last-active names an unrelated thread (#438).
15
+ // Missing configured dest is failed delivery, not last-active.
15
16
  preferConfiguredTarget: true,
17
+ allowActiveFallback: false,
16
18
  });
17
19
  if (result.ok) {
18
20
  sent += 1;
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../../../src/browser/web-ai/notifications.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../../../src/browser/web-ai/notifications.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,11 @@ export async function dispatchReminderNotification(reminder, options = {}) {
32
32
  // A reminder fires on a schedule, so "the active conversation" at that moment
33
33
  // is whoever happened to message the bot last — not the person who set the
34
34
  // reminder. Resolve to the configured channel instead (#438).
35
- const result = await send({ channel: 'active', type: 'text', text: reminderText(reminder), preferConfiguredTarget: true });
35
+ const result = await send({
36
+ channel: 'active', type: 'text', text: reminderText(reminder),
37
+ preferConfiguredTarget: true,
38
+ allowActiveFallback: false,
39
+ });
36
40
  const status = statusFromSendResult(result);
37
41
  const error = result.ok ? null : result.error || 'send failed';
38
42
  if (status !== 'delivered')
@@ -1 +1 @@
1
- {"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../../../src/manager/reminders/dispatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../../../src/manager/reminders/dispatcher.ts"],"names":[],"mappings":"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"}
@@ -49,7 +49,10 @@ export function resolveHeartbeatBinding(destination) {
49
49
  const dest = destination;
50
50
  const base = targetFromChatId(dest.channel, dest.targetId);
51
51
  const threadId = dest.threadId?.trim();
52
- return { state: 'bound', target: threadId ? { ...base, threadId } : base };
52
+ // A pure parse proves the destination is well formed, never that the
53
+ // conversation still exists. Saying `unverified` here is what lets a caller
54
+ // tell this result from one that came back through the live check.
55
+ return { state: 'bound', target: threadId ? { ...base, threadId } : base, verification: 'unverified' };
53
56
  }
54
57
  /** Operator-facing explanation. Never includes tokens or report content. */
55
58
  export function heartbeatHoldMessage(reason) {
@@ -86,8 +89,11 @@ export async function verifyHeartbeatThreadBindingLive(destination, options) {
86
89
  if (binding.state === 'held')
87
90
  return binding;
88
91
  const { target } = binding;
92
+ // No live check exists for these shapes: only Slack has threads to read, and a
93
+ // `channel_root` job names the channel itself. `unsupported` says that, rather
94
+ // than leaving a healthy job looking unverified forever.
89
95
  if (target.channel !== 'slack' || !target.threadId)
90
- return binding;
96
+ return { ...binding, verification: 'unsupported' };
91
97
  if (!options.token.trim())
92
98
  return { state: 'held', reason: 'live_lookup_failed' };
93
99
  try {
@@ -109,7 +115,7 @@ export async function verifyHeartbeatThreadBindingLive(destination, options) {
109
115
  return { state: 'held', reason: 'live_lookup_failed' };
110
116
  }
111
117
  return result.messages[0]?.ts === target.threadId
112
- ? binding
118
+ ? { ...binding, verification: 'verified' }
113
119
  : { state: 'held', reason: 'thread_channel_mismatch' };
114
120
  }
115
121
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeat-destination.js","sourceRoot":"","sources":["../../../src/memory/heartbeat-destination.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"heartbeat-destination.js","sourceRoot":"","sources":["../../../src/memory/heartbeat-destination.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,7 @@ export async function runMentionWatchTick(ns, job, watch, deps) {
50
50
  const result = {
51
51
  answered: 0, quiet: 0, failed: 0,
52
52
  unreadable: [], unauthorized: [], overflow: [],
53
+ scanIncomplete: false, hitCapReached: false,
53
54
  };
54
55
  const { allowed, rejected } = authorizedChannels(watch.channelIds, deps.allowlist);
55
56
  result.unauthorized = rejected;
@@ -84,6 +85,9 @@ export async function runMentionWatchTick(ns, job, watch, deps) {
84
85
  });
85
86
  result.unreadable = scan.failed.map(f => f.channelId);
86
87
  result.overflow = scan.overflowChannels;
88
+ // Computed by the scanner and, until now, dropped on the floor here.
89
+ result.scanIncomplete = scan.truncated;
90
+ result.hitCapReached = scan.hitCapReached;
87
91
  if (scan.overflowChannels.length) {
88
92
  log(`mention watch: ${scan.overflowChannels.length} channel(s) past the scanner ceiling were not read: ${scan.overflowChannels.join(', ')}`);
89
93
  }
@@ -98,11 +102,21 @@ export async function runMentionWatchTick(ns, job, watch, deps) {
98
102
  for (const [channelId, bound] of scan.resumeBounds) {
99
103
  setResumeBefore(ns, channelId, bound, now());
100
104
  }
105
+ // The answering clock starts HERE, after the scan, for the reason given on
106
+ // `answerBudgetMs`.
107
+ const answeringSince = now();
101
108
  for (const hit of scan.hits) {
102
109
  if (deps.signal?.aborted) {
103
110
  result.stoppedBecause = 'aborted';
104
111
  break;
105
112
  }
113
+ // Before the answer, never after: checking afterwards would spend a full
114
+ // orchestrator turn to discover the tick was already over. An unanswered
115
+ // hit keeps no receipt, so the next tick has it.
116
+ if (deps.answerBudgetMs !== undefined && now() - answeringSince >= deps.answerBudgetMs) {
117
+ result.stoppedBecause = 'budget';
118
+ break;
119
+ }
106
120
  // Re-checked per item, not once for the batch: the previous answer may
107
121
  // have taken minutes, and a user who started typing during it outranks
108
122
  // the rest of this backlog.
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeat-mention-watch.js","sourceRoot":"","sources":["../../../src/memory/heartbeat-mention-watch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"heartbeat-mention-watch.js","sourceRoot":"","sources":["../../../src/memory/heartbeat-mention-watch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ // ─── Heartbeat run record ────────────────────────────
2
+ // What one tick actually did, kept apart from whether it was delivered.
3
+ //
4
+ // The heartbeat had exactly one durable trace of a tick: `insertHeartbeatAnchor`,
5
+ // written only when a send succeeded. Every other outcome — a held destination, an
6
+ // unreservable grant, a refused mention watch, a thrown runner — produced a log
7
+ // line and nothing else, so a job that failed on every tick for a week was
8
+ // indistinguishable from a job that had nothing to say.
9
+ //
10
+ // The split below is borrowed from openclaw's cron, which separates execution
11
+ // status from delivery status precisely because 'the model finished' and 'the
12
+ // recipient got it' are different claims and conflating them makes a green run
13
+ // meaningless as evidence.
14
+ /** Ticks in a row before a job is called failing.
15
+ *
16
+ * openclaw auto-disables at ten, but its jobs also carry exponential backoff. This
17
+ * scheduler has none, so a five-minute job reaches five in twenty-five minutes, and
18
+ * twenty-five minutes of silent failure is already longer than a heartbeat is useful
19
+ * for. Nothing is disabled at the threshold — the job keeps its timer, exactly as a
20
+ * live destination hold does, because silently stopping a job is the failure #745
21
+ * was about. It becomes VISIBLE. */
22
+ export const HEARTBEAT_FAILURE_HOLD_THRESHOLD = 5;
23
+ /** Fold one tick's outcome into the running record.
24
+ *
25
+ * Three rules, each of which exists because collapsing it produced a wrong answer:
26
+ *
27
+ * - A delivery failure does NOT increment the failure streak. The work succeeded;
28
+ * the transport did not. Counting it as an execution failure makes a flaky
29
+ * channel look like a broken job.
30
+ * - A skip gets its OWN counter rather than being ignored. A job that refuses every
31
+ * tick — an unverifiable workspace, a grant that never reserves — would otherwise
32
+ * sit at zero forever and never become visible, which is the same invisibility
33
+ * this record exists to end.
34
+ * - A superseded run carries both counters through untouched. Letting a late `ok`
35
+ * reset a streak, or a post-abort throw increment one, describes a schedule the
36
+ * operator already replaced. */
37
+ export function foldRunRecord(previous, next) {
38
+ const failures = previous?.consecutiveFailures ?? 0;
39
+ const skips = previous?.consecutiveSkips ?? 0;
40
+ if (next.superseded)
41
+ return { ...next, consecutiveFailures: failures, consecutiveSkips: skips };
42
+ if (next.execution === 'error')
43
+ return { ...next, consecutiveFailures: failures + 1, consecutiveSkips: skips };
44
+ if (next.execution === 'skipped')
45
+ return { ...next, consecutiveFailures: failures, consecutiveSkips: skips + 1 };
46
+ return { ...next, consecutiveFailures: 0, consecutiveSkips: 0 };
47
+ }
48
+ /** Either counter at the threshold. A skip and a crash need different operator
49
+ * responses, which is why they are counted apart — but neither may be invisible. */
50
+ export function isHeartbeatJobFailing(record) {
51
+ if (!record)
52
+ return false;
53
+ return record.consecutiveFailures >= HEARTBEAT_FAILURE_HOLD_THRESHOLD
54
+ || record.consecutiveSkips >= HEARTBEAT_FAILURE_HOLD_THRESHOLD;
55
+ }
56
+ //# sourceMappingURL=heartbeat-run-record.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heartbeat-run-record.js","sourceRoot":"","sources":["../../../src/memory/heartbeat-run-record.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,wEAAwE;AACxE,EAAE;AACF,kFAAkF;AAClF,mFAAmF;AACnF,gFAAgF;AAChF,2EAA2E;AAC3E,wDAAwD;AACxD,EAAE;AACF,8EAA8E;AAC9E,8EAA8E;AAC9E,+EAA+E;AAC/E,2BAA2B;AAyB3B;;;;;;;qCAOqC;AACrC,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAElD;;;;;;;;;;;;;mCAamC;AACnC,MAAM,UAAU,aAAa,CACzB,QAAwC,EACxC,IAA0E;IAE1E,MAAM,QAAQ,GAAG,QAAQ,EAAE,mBAAmB,IAAI,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,QAAQ,EAAE,gBAAgB,IAAI,CAAC,CAAC;IAC9C,IAAI,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC;IAChG,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,mBAAmB,EAAE,QAAQ,GAAG,CAAC,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC;IAC/G,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;IACjH,OAAO,EAAE,GAAG,IAAI,EAAE,mBAAmB,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC;AACpE,CAAC;AAED;qFACqF;AACrF,MAAM,UAAU,qBAAqB,CAAC,MAAsC;IACxE,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,OAAO,MAAM,CAAC,mBAAmB,IAAI,gCAAgC;WAC9D,MAAM,CAAC,gBAAgB,IAAI,gCAAgC,CAAC;AACvE,CAAC"}