claudelink 1.4.0 → 1.4.3

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.
@@ -48,26 +48,39 @@ const LOG_PATH = path_1.default.join(NEXUS_DIR, "recovery-watcher.log");
48
48
  // output from prose that merely DISCUSSES rate-limiting (agent conversations,
49
49
  // docs, log inspection). Without this, the watcher false-fires whenever any
50
50
  // agent talks about rate-limiting.
51
+ // Note: gap classes use [\s\S]{0,N}? (lazy any-char including newline)
52
+ // rather than [^\n]*, because iTerm2's `contents of session` returns
53
+ // soft-wrapped errors with real \n at the wrap. A long error like
54
+ // `API Error: 529 {"type":"error","error":{"type":"overloaded_error",...}}`
55
+ // arrives in scrollback as multiple lines; [^\n]* would never bridge the
56
+ // gap and the pattern wouldn't fire. The tight upper bound (60-200 chars)
57
+ // keeps the false-positive surface narrow — we still need an error
58
+ // prefix on the same VISUAL block as the keyword, just not the same
59
+ // pre-wrap line.
51
60
  const ERROR_PATTERNS = [
52
61
  // Claude Code's full rate-limit error line — distinctive enough to be
53
62
  // its own pattern. Still subject to position filter below.
54
63
  /API\s*Error:\s*Server is temporarily limiting requests/i,
55
- // Claude Code other API errors — require "API Error:" prefix in the
56
- // same line as the keyword.
57
- /API\s*Error:[^\n]*\brate[ _-]?limit/i,
58
- /API\s*Error:[^\n]*\boverload/i,
59
- /API\s*Error:[^\n]*\b(529|503|429)\b/i,
60
- /API\s*Error:[^\n]*\b(rate_limit_error|overloaded_error)\b/i,
61
- // OpenAI/Codex CLI shapes — require an "error" prefix in the same line.
62
- /\bOpenAI\s*API\s*(error|exception):[^\n]*\b(rate_limit|overload)/i,
63
- /\berror\b[^\n]{0,60}\brate_limit_exceeded\b/i,
64
- // Bare HTTP status lines (still distinctive because they include the
64
+ // Claude Code other API errors — require "API Error:" prefix near the
65
+ // keyword (with bounded any-char gap to allow soft-wrap).
66
+ /API\s*Error:[\s\S]{0,200}?\brate[ _-]?limit/i,
67
+ /API\s*Error:[\s\S]{0,200}?\boverload/i,
68
+ /API\s*Error:[\s\S]{0,200}?\b(529|503|429)\b/i,
69
+ /API\s*Error:[\s\S]{0,200}?\b(rate_limit_error|overloaded_error)\b/i,
70
+ // OpenAI/Codex CLI shapes — require an "error" prefix near the keyword.
71
+ /\bOpenAI\s*API\s*(error|exception):[\s\S]{0,200}?\b(rate_limit|overload)/i,
72
+ /\berror\b[\s\S]{0,60}?\brate_limit_exceeded\b/i,
73
+ // Bare HTTP status lines (distinctive because they include the
65
74
  // canonical status text, which prose-mentions rarely include verbatim).
66
75
  /\b(429|529)\s+Too Many Requests\b/i,
67
76
  /\b503\s+Service Unavailable\b/i,
68
- // Generic CLI-error safety net — "Error" or "Error:" prefix on the
69
- // same line as the rate-limit token, with a tight intra-line cap.
70
- /\bError:?\b[^\n]{0,80}\b(rate[ _-]?limited|rate_limit_error|overloaded_error|request was throttled)\b/i,
77
+ // Generic CLI-error safety net — "Error" / "Error:" near the rate-limit
78
+ // token. Requires the Error token to be at the START OF A VISIBLE LINE
79
+ // (optionally with the Claude Code `⎿` tool-output glyph prefix), so
80
+ // prose mentions of the same phrase in mid-conversation don't trigger.
81
+ // Without the line-start anchor, agents writing about ClaudeLink in
82
+ // their own work (e.g. the build-log writer) hit this as a false positive.
83
+ /(?:^|\n)[\s│⎿]*Error:?\b[\s\S]{0,80}?\b(rate[ _-]?limited|rate_limit_error|overloaded_error|request was throttled)\b/i,
71
84
  ];
72
85
  // Capture only the last N characters of scrollback. Errors that paused
73
86
  // execution sit at the bottom of the visible buffer. Reading more wastes
@@ -75,10 +88,19 @@ const ERROR_PATTERNS = [
75
88
  const SCROLLBACK_TAIL_CHARS = 1500;
76
89
  // Matched error text must be within this many characters of the END of
77
90
  // the captured scrollback. When a CLI is genuinely stuck, the error is
78
- // the LAST thing on screen above the prompt. When an agent is merely
79
- // discussing an error in conversation, more text follows the mention,
80
- // pushing it away from the end. This is the key false-positive guard.
81
- const MAX_DISTANCE_FROM_END = 400;
91
+ // near the LAST thing on screen above the prompt. When an agent is
92
+ // merely discussing an error in conversation, more text follows the
93
+ // mention, pushing it well away from the end. This is the key
94
+ // false-positive guard.
95
+ //
96
+ // The threshold sits at 1000 chars because Claude Code renders ~500 chars
97
+ // of UI chrome BELOW a real error (empty prompt line, horizontal
98
+ // separators, the "⏵⏵ auto mode on" footer, blank lines). v1.4.0 was
99
+ // tuned at 400 based on a synthetic test that omitted that chrome and
100
+ // false-negative'd real stuck terminals in production. Discussion cases
101
+ // observed at ≥1250 chars from end, so 1000 keeps a clean margin without
102
+ // re-introducing the false-positive surface.
103
+ const MAX_DISTANCE_FROM_END = 1000;
82
104
  function logLine(line) {
83
105
  try {
84
106
  fs_1.default.appendFileSync(LOG_PATH, `${new Date().toISOString()} ${line}\n`);
@@ -142,35 +164,63 @@ function captureScrollback(c) {
142
164
  return null;
143
165
  }
144
166
  }
145
- // Hash the matched error context to a short signature. We hash the matched
146
- // substring plus a small surrounding window so de-dup compares semantic
147
- // "same error" rather than identical byte-for-byte scrollback (which would
148
- // always differ as the terminal repaints).
167
+ // Hash the matched error context to a short signature. We hash the
168
+ // matched substring plus a small surrounding window, BUT first
169
+ // canonicalize per-request volatile bytes — request IDs, retry counters,
170
+ // timestamps — so de-dup compares semantic "same error" rather than
171
+ // byte-identical scrollback. Without canonicalization, every tick on a
172
+ // genuinely-still-stuck agent produced a fresh signature because Claude
173
+ // Code's retry text included a fresh request ID each time; the cooldown
174
+ // was masking the de-dup failure by accident.
149
175
  function computeSignature(scrollback, match) {
150
176
  const start = Math.max(0, (match.index ?? 0) - 32);
151
177
  const end = Math.min(scrollback.length, (match.index ?? 0) + match[0].length + 32);
152
178
  const window = scrollback.slice(start, end);
153
- return crypto_1.default.createHash("sha1").update(window).digest("hex").slice(0, 16);
179
+ const canon = window
180
+ .toLowerCase()
181
+ .replace(/\b[0-9a-f]{8,}\b/gi, "#") // request IDs, hex tokens (≥8 chars)
182
+ .replace(/\d+/g, "#") // numbers (retry counters, status codes, timestamps)
183
+ .replace(/\s+/g, " ") // collapse whitespace so re-wrap doesn't shift sig
184
+ .trim();
185
+ return crypto_1.default.createHash("sha1").update(canon).digest("hex").slice(0, 16);
154
186
  }
155
- // Match scrollback against the known patterns. Returns the first match's
156
- // signature, or null if no pattern matched OR the match is too far from
157
- // the end of the buffer (likely scrolled-up or mid-conversation prose).
187
+ // Match scrollback against the known patterns. Returns the match CLOSEST
188
+ // to the end of the buffer (across all patterns and all occurrences), or
189
+ // null if nothing matched within MAX_DISTANCE_FROM_END.
190
+ //
191
+ // IMPORTANT: this iterates ALL matches across ALL patterns, not just the
192
+ // first match per pattern. v1.4.0/v1.4.1 used `scrollback.match(re)`
193
+ // which returns only the first occurrence — when Claude Code rendered
194
+ // the same error twice (initial failure + retry), the matcher locked
195
+ // onto the first (out-of-range) copy and silently skipped, leaving real
196
+ // stuck terminals un-nudged. Iterating all matches and picking the
197
+ // nearest-to-end is what guarantees a stuck error gets caught.
158
198
  function detectError(scrollback) {
199
+ let best = null;
159
200
  for (const re of ERROR_PATTERNS) {
160
- const m = scrollback.match(re);
161
- if (!m)
162
- continue;
163
- const matchEnd = (m.index ?? 0) + m[0].length;
164
- const distanceFromEnd = scrollback.length - matchEnd;
165
- if (distanceFromEnd > MAX_DISTANCE_FROM_END) {
166
- // Match exists but is too far from the bottom — almost certainly
167
- // historical scrollback or mid-conversation prose, not the current
168
- // stuck state. Skip and try the next pattern.
169
- continue;
201
+ // Force a global flag so exec() iterates rather than locking to first.
202
+ const globalRe = new RegExp(re.source, re.flags.includes("g") ? re.flags : re.flags + "g");
203
+ let m;
204
+ while ((m = globalRe.exec(scrollback)) !== null) {
205
+ const matchEnd = m.index + m[0].length;
206
+ const distance = scrollback.length - matchEnd;
207
+ if (distance > MAX_DISTANCE_FROM_END)
208
+ continue;
209
+ if (best === null || distance < best.distanceFromEnd) {
210
+ best = { match: m, pattern: re, distanceFromEnd: distance };
211
+ }
212
+ // Guard against pathological zero-width matches advancing the
213
+ // regex engine's lastIndex.
214
+ if (m.index === globalRe.lastIndex)
215
+ globalRe.lastIndex++;
170
216
  }
171
- return { pattern: re, signature: computeSignature(scrollback, m) };
172
217
  }
173
- return null;
218
+ if (!best)
219
+ return null;
220
+ return {
221
+ pattern: best.pattern,
222
+ signature: computeSignature(scrollback, best.match),
223
+ };
174
224
  }
175
225
  function fireDesktopNotification(role, message) {
176
226
  try {
@@ -202,6 +252,14 @@ function selectCandidates(db) {
202
252
  function startRecoveryWatcher() {
203
253
  let db = null;
204
254
  let timer = null;
255
+ // Re-entrancy guard. captureScrollback() uses execFileSync with a 3s
256
+ // timeout; on a 14-agent fleet under iTerm2-unresponsive conditions
257
+ // (osascript ETIMEDOUT) a single tick can take 40+ seconds. The
258
+ // setInterval doesn't know or care, and would happily fire the next
259
+ // tick on top, blocking the event loop further. The flag is checked at
260
+ // the head of every tick — if a previous tick is still in flight, the
261
+ // new one logs and returns immediately.
262
+ let tickInProgress = false;
205
263
  const state = new Map();
206
264
  const openDb = () => {
207
265
  if (!db)
@@ -218,9 +276,23 @@ function startRecoveryWatcher() {
218
276
  };
219
277
  const tick = () => {
220
278
  const summary = { checked: 0, fired: 0, suppressed: 0, escalated: 0 };
279
+ if (tickInProgress) {
280
+ logLine(`skip-tick: previous tick still in flight`);
281
+ return summary;
282
+ }
283
+ tickInProgress = true;
284
+ try {
285
+ return runTickBody(summary);
286
+ }
287
+ finally {
288
+ tickInProgress = false;
289
+ }
290
+ };
291
+ const runTickBody = (summary) => {
221
292
  const settings = (0, recovery_watcher_settings_js_1.readRecoveryWatcherSettings)();
222
- if (!settings.enabled)
293
+ if (!settings.enabled) {
223
294
  return summary;
295
+ }
224
296
  let candidates;
225
297
  try {
226
298
  candidates = selectCandidates(openDb());
@@ -282,6 +354,7 @@ function startRecoveryWatcher() {
282
354
  logLine(`fire-failed role=${c.role} result=${result} pattern=${detected.pattern.source}`);
283
355
  }
284
356
  }
357
+ tickInProgress = false;
285
358
  return summary;
286
359
  };
287
360
  const reschedule = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"recovery-watcher.js","sourceRoot":"","sources":["../src/recovery-watcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recovery-watcher.js","sourceRoot":"","sources":["../src/recovery-watcher.ts"],"names":[],"mappings":"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"}
package/dist/scheduler.js CHANGED
@@ -129,6 +129,22 @@ function selectCandidates(db) {
129
129
  .all();
130
130
  return rows.filter((c) => isProcessAlive(c.pid));
131
131
  }
132
+ // Per-agent recheck — guards against shared-broadcast races where an
133
+ // earlier candidate in this tick (or a separate readInbox path like a
134
+ // Stop hook firing concurrently) already consumed the only unread row.
135
+ // SQL mirrors the EXISTS clause in selectCandidates exactly so the
136
+ // "is this agent still eligible?" semantics match the original filter.
137
+ // Returns true if the agent has unread mail right NOW.
138
+ function hasUnreadMail(db, agentId) {
139
+ const row = db
140
+ .prepare(`SELECT 1 FROM messages m
141
+ WHERE m.read = 0
142
+ AND m.from_agent != ?
143
+ AND (m.to_agent = ? OR m.to_agent IS NULL)
144
+ LIMIT 1`)
145
+ .get(agentId, agentId);
146
+ return row !== undefined;
147
+ }
132
148
  function startScheduler() {
133
149
  let db = null;
134
150
  let timer = null;
@@ -151,6 +167,30 @@ function startScheduler() {
151
167
  if (candidates.length === 0)
152
168
  return summary;
153
169
  for (const c of candidates) {
170
+ // Just-in-time recheck. selectCandidates snapshots the candidate set
171
+ // once, but the dispatch loop runs serially with ~600ms-3s per
172
+ // osascript call. With a shared broadcast row (single `read` flag for
173
+ // all recipients), the first agent to consume it via readInbox or a
174
+ // Stop hook flips read=1 globally — leaving subsequent candidates in
175
+ // this tick's snapshot pointing at no actual unread mail. Without the
176
+ // recheck, we'd type "check for updates" into terminals whose inbox
177
+ // is now empty (spurious-check-for-updates symptom).
178
+ let stillEligible;
179
+ try {
180
+ stillEligible = hasUnreadMail(openDb(), c.id);
181
+ }
182
+ catch (e) {
183
+ // Fail-open: treat DB errors as eligible, mirroring the project's
184
+ // stated hook posture. If the DB is truly broken, injectKeystroke
185
+ // will fail too and be logged there.
186
+ logLine(`recheck-error role=${c.role} tty=${c.tty} error="${e?.message ?? String(e)}"`);
187
+ stillEligible = true;
188
+ }
189
+ if (!stillEligible) {
190
+ summary.skipped++;
191
+ logLine(`skip-recheck role=${c.role} tty=${c.tty} reason="inbox drained mid-tick"`);
192
+ continue;
193
+ }
154
194
  const result = injectKeystroke(c, NUDGE_TEXT);
155
195
  if (result === "ok") {
156
196
  summary.fired++;
@@ -163,6 +203,13 @@ function startScheduler() {
163
203
  summary.failed++;
164
204
  }
165
205
  }
206
+ // Tick summary makes the broadcast race observable. A healthy directed-
207
+ // mail tick looks like `candidates=3 fired=3 skipped=0`. A broadcast
208
+ // cascade with race losses looks like `candidates=14 fired=1 skipped=13`
209
+ // — that pattern is the smoking-gun fingerprint.
210
+ if (candidates.length > 0) {
211
+ logLine(`tick-summary candidates=${candidates.length} fired=${summary.fired} skipped=${summary.skipped} failed=${summary.failed}`);
212
+ }
166
213
  return summary;
167
214
  };
168
215
  const reschedule = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claudelink",
3
- "version": "1.4.0",
3
+ "version": "1.4.3",
4
4
  "description": "The hub where your AI agents connect. Multi-terminal Claude Code agent communication via MCP.",
5
5
  "main": "./dist/index.js",
6
6
  "bin": {