@dsiloed/silo-link 1.19.15 → 1.19.17

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 (87) hide show
  1. package/README.md +64 -3
  2. package/dist/api/backend-health.d.ts +44 -0
  3. package/dist/api/backend-health.d.ts.map +1 -0
  4. package/dist/api/backend-health.js +80 -0
  5. package/dist/api/backend-health.js.map +1 -0
  6. package/dist/api/dsiloed-client.d.ts +7 -3
  7. package/dist/api/dsiloed-client.d.ts.map +1 -1
  8. package/dist/api/dsiloed-client.js +29 -4
  9. package/dist/api/dsiloed-client.js.map +1 -1
  10. package/dist/cable/subscription-manager.d.ts +26 -1
  11. package/dist/cable/subscription-manager.d.ts.map +1 -1
  12. package/dist/cable/subscription-manager.js +72 -13
  13. package/dist/cable/subscription-manager.js.map +1 -1
  14. package/dist/cli/claude-md-block.d.ts +1 -1
  15. package/dist/cli/claude-md-block.d.ts.map +1 -1
  16. package/dist/cli/claude-md-block.js +3 -1
  17. package/dist/cli/claude-md-block.js.map +1 -1
  18. package/dist/cli/file-log.d.ts +58 -3
  19. package/dist/cli/file-log.d.ts.map +1 -1
  20. package/dist/cli/file-log.js +110 -7
  21. package/dist/cli/file-log.js.map +1 -1
  22. package/dist/core/agent-launcher.d.ts +26 -0
  23. package/dist/core/agent-launcher.d.ts.map +1 -1
  24. package/dist/core/auto-updater.d.ts +11 -0
  25. package/dist/core/auto-updater.d.ts.map +1 -1
  26. package/dist/core/auto-updater.js +84 -15
  27. package/dist/core/auto-updater.js.map +1 -1
  28. package/dist/core/base-tmux-launcher.d.ts +95 -21
  29. package/dist/core/base-tmux-launcher.d.ts.map +1 -1
  30. package/dist/core/base-tmux-launcher.js +330 -85
  31. package/dist/core/base-tmux-launcher.js.map +1 -1
  32. package/dist/core/bridge.d.ts +28 -0
  33. package/dist/core/bridge.d.ts.map +1 -1
  34. package/dist/core/bridge.js +219 -25
  35. package/dist/core/bridge.js.map +1 -1
  36. package/dist/core/claude-launcher.d.ts +11 -4
  37. package/dist/core/claude-launcher.d.ts.map +1 -1
  38. package/dist/core/claude-launcher.js +64 -17
  39. package/dist/core/claude-launcher.js.map +1 -1
  40. package/dist/core/codex-launcher.d.ts +3 -3
  41. package/dist/core/codex-launcher.d.ts.map +1 -1
  42. package/dist/core/codex-launcher.js +9 -5
  43. package/dist/core/codex-launcher.js.map +1 -1
  44. package/dist/core/gemini-launcher.d.ts +3 -3
  45. package/dist/core/gemini-launcher.d.ts.map +1 -1
  46. package/dist/core/gemini-launcher.js +9 -5
  47. package/dist/core/gemini-launcher.js.map +1 -1
  48. package/dist/core/health-monitor.d.ts +87 -0
  49. package/dist/core/health-monitor.d.ts.map +1 -0
  50. package/dist/core/health-monitor.js +93 -0
  51. package/dist/core/health-monitor.js.map +1 -0
  52. package/dist/core/idle-completion.d.ts +57 -0
  53. package/dist/core/idle-completion.d.ts.map +1 -0
  54. package/dist/core/idle-completion.js +71 -0
  55. package/dist/core/idle-completion.js.map +1 -0
  56. package/dist/core/launch-binding.d.ts +52 -0
  57. package/dist/core/launch-binding.d.ts.map +1 -0
  58. package/dist/core/launch-binding.js +81 -0
  59. package/dist/core/launch-binding.js.map +1 -0
  60. package/dist/core/mcp-config-dir.d.ts +16 -0
  61. package/dist/core/mcp-config-dir.d.ts.map +1 -0
  62. package/dist/core/mcp-config-dir.js +37 -0
  63. package/dist/core/mcp-config-dir.js.map +1 -0
  64. package/dist/core/stray-processes.d.ts +47 -0
  65. package/dist/core/stray-processes.d.ts.map +1 -0
  66. package/dist/core/stray-processes.js +141 -0
  67. package/dist/core/stray-processes.js.map +1 -0
  68. package/dist/core/transcript-usage.d.ts +9 -0
  69. package/dist/core/transcript-usage.d.ts.map +1 -1
  70. package/dist/core/transcript-usage.js +19 -0
  71. package/dist/core/transcript-usage.js.map +1 -1
  72. package/dist/core/usage-ledger.d.ts +1 -1
  73. package/dist/core/usage-ledger.d.ts.map +1 -1
  74. package/dist/core/workspace-manager.d.ts.map +1 -1
  75. package/dist/core/workspace-manager.js +6 -2
  76. package/dist/core/workspace-manager.js.map +1 -1
  77. package/dist/mcp/server.d.ts +4 -0
  78. package/dist/mcp/server.d.ts.map +1 -1
  79. package/dist/mcp/server.js +15 -0
  80. package/dist/mcp/server.js.map +1 -1
  81. package/dist/mcp/tools/register-tools.d.ts +2 -0
  82. package/dist/mcp/tools/register-tools.d.ts.map +1 -1
  83. package/dist/mcp/tools/register-tools.js +154 -36
  84. package/dist/mcp/tools/register-tools.js.map +1 -1
  85. package/dist/types/index.d.ts +6 -0
  86. package/dist/types/index.d.ts.map +1 -1
  87. package/package.json +3 -1
package/README.md CHANGED
@@ -100,6 +100,9 @@ All four of `--host`, `--tenant`, `--user-sub`, `--jwt` are required when `--non
100
100
  | `claude_auto_respawn` | Auto-respawn on idle/exit | `false` |
101
101
  | `claude_idle_timeout_ms` | Idle threshold before respawn | `30000` |
102
102
  | `claude_session_prompt` | Default prompt for spawned sessions | `Register with SiloLink...` |
103
+ | `stale_inbound_grace_ms` | On an inbound message, never recycle a session younger than this (a fresh pane may take minutes to register) | `600000` (10 min) |
104
+ | `report_back_idle_ms` | After a `final:true` report with no further work, complete the session (`state: idle_timeout`) and kill the pane; `0` disables | `120000` (2 min) |
105
+ | `poll_idle_complete_ms` | **Opt-in.** End a session parked in `remote_poll` with zero work calls for this long; `0` = disabled | `0` |
103
106
 
104
107
  **Example config file (after running `silolink config`):**
105
108
 
@@ -129,6 +132,14 @@ silolink start
129
132
  silolink start --daemon
130
133
  ```
131
134
 
135
+ The daemon owns its log: every run appends (never truncates) to
136
+ `~/.silolink/logs/silolink-<env>.log`, with a session-start banner and an ISO-8601
137
+ timestamp on every line. Do **not** wrap `start` in `| tee` or redirect its output
138
+ into that same file (`>> ~/.silolink/logs/silolink-<env>.log`) — the daemon detects
139
+ an fd that already is the log and won't double-write, but the redirect is redundant.
140
+ Send a wrapper's stdout/stderr to `/dev/null`; when stdout is not a terminal the
141
+ daemon mutes console output anyway (set `SILOLINK_CONSOLE=1` to keep it).
142
+
132
143
  ### Managing the Daemon
133
144
 
134
145
  ```bash
@@ -220,9 +231,10 @@ tmux attach -t silolink-claude-1774363497579
220
231
 
221
232
  | Tool | Description | Blocking |
222
233
  |------|-------------|----------|
223
- | `remote_register` | Register session, create/attach conversation | No |
234
+ | `remote_register` | Register session, create/attach conversation (binds to the launched conversation) | No |
224
235
  | `remote_load_context` | Load prior conversation history for session continuity | No |
225
- | `remote_notify` | Fire-and-forget message | No |
236
+ | `remote_notify` | Fire-and-forget message (accepts `final?`) | No |
237
+ | `remote_post` | Post to ANY conversation by id (accepts `final?`) | No |
226
238
  | `remote_ask` | Post question, wait for reply | Yes |
227
239
  | `remote_poll` | Non-blocking check for next message (**recommended**) | No |
228
240
  | `remote_check_messages` | Non-blocking check for ALL pending messages | No |
@@ -244,6 +256,14 @@ Output: { session_id, conversation_id, conversation_url }
244
256
 
245
257
  When `conversation_id` is provided, attaches to that existing conversation (used by auto-launcher).
246
258
 
259
+ For a session the daemon launched, the MCP transport is already bound to the
260
+ **launched** conversation (via the per-launch `X-SiloLink-Launch` header), so
261
+ `remote_register` adopts that conversation regardless of the `conversation_id`
262
+ you pass. If the two disagree, the launch binding wins and the tool result
263
+ returns a `conversation_mismatch` warning naming the conversation you were
264
+ actually registered against. See
265
+ [docs/session-reliability.md](docs/session-reliability.md).
266
+
247
267
  ### remote_load_context
248
268
 
249
269
  ```
@@ -267,10 +287,16 @@ Non-blocking. Safer than `remote_wait_for_command` — can't lose messages on ca
267
287
  ### remote_notify
268
288
 
269
289
  ```
270
- Input: { message: "Build completed successfully" }
290
+ Input: { message: "Build completed successfully", final?: false }
271
291
  Output: { success: true, message_id }
272
292
  ```
273
293
 
294
+ Pass `final: true` on your **last** completion report for a dispatch (and only
295
+ then). The post is tagged `silolink_report { agent_session_id, kind: completion }`
296
+ so the dispatcher can tell completion from progress, and it arms the daemon's
297
+ idle-completion path (`report_back_idle_ms`) to gracefully end the session once
298
+ no further work arrives. `remote_post` takes the same `final?` flag.
299
+
274
300
  ### remote_ask
275
301
 
276
302
  ```
@@ -429,6 +455,41 @@ Active SiloLink sessions appear in the Mission Control Agent Dashboard with:
429
455
  - Heartbeats on every tool call
430
456
  - Conversation link for quick navigation
431
457
 
458
+ ## Session Reliability & Health
459
+
460
+ The daemon keeps a launched worker bound to the conversation it was launched for,
461
+ judges the pane (not MCP silence) before recycling, ends parked workers so the
462
+ backend learns they're done, and reports its own health on every heartbeat. In
463
+ brief:
464
+
465
+ - **Launch↔transport binding** — each launch writes a per-launch MCP config
466
+ (`<cwd>/.silolink-mcp/conv<id>-<nonce>.json`, `0600`) carrying an
467
+ `X-SiloLink-Launch` header; `remote_register` adopts the **launched**
468
+ conversation and overrides a mismatched `conversation_id` with a clear warning.
469
+ - **Minted session id** — fresh Claude launches pass `--session-id <uuid>`
470
+ (never with `--resume`/`--continue`), so a shared cwd can't cross-attribute a
471
+ transcript.
472
+ - **Stale-on-inbound recycler** — recycles only a pane that exists, isn't
473
+ actively thinking, and is frozen ≥ 15 min; skips launch-pending sessions and
474
+ anything younger than `stale_inbound_grace_ms` (10 min).
475
+ - **Idle completion** — a `final:true` report followed by `report_back_idle_ms`
476
+ (2 min) of quiet completes the session (`state: idle_timeout`) then kills the
477
+ pane — but only if the pane isn't actively working. `poll_idle_complete_ms` is
478
+ opt-in (default 0).
479
+ - **Report markers** — `remote_notify`/`remote_post` accept `final?` and stamp
480
+ `silolink_report { agent_session_id, kind }` on the post.
481
+ - **Health heartbeat** — every heartbeat carries a redacted `health` block plus
482
+ an hourly `[HEALTH]` log line (credentials, JWT expiry, backend 403 streaks,
483
+ usage-ledger depth, updater/launch state).
484
+ - **403 handling** — a 3-streak of 403s on `report_usage`/`launch_context` is
485
+ terminal for retries (ledger kept, one probe every 30 min; recovers on the next
486
+ 2xx).
487
+ - **Auto-update integrity** — a hub `expected_integrity` pin is verified against
488
+ the `npm pack`ed tarball with `ssri` before installing (`--ignore-scripts`).
489
+
490
+ Full details, rationale, and the config keys are in
491
+ [docs/session-reliability.md](docs/session-reliability.md).
492
+
432
493
  ## Permissions
433
494
 
434
495
  SiloLink-spawned sessions run headlessly — no human at the keyboard. Permission prompts hang the pane, so the launcher pre-clears two gates so `--dangerously-skip-permissions` actually takes effect on every command (the flag alone is not enough on CC 2.x).
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Per-endpoint backend health bookkeeping for the daemon → model_api calls.
3
+ *
4
+ * 2026-08-24: nine env daemons had been getting HTTP 403 from `report_usage`
5
+ * for six weeks (the agent's backing user lacks the capability) and each
6
+ * treated it as transient — doug's log alone held 2,617 `reportUsage HTTP 403
7
+ * — retryable` lines from the 3-minute live-usage loop, and 67 launch_context
8
+ * 403s. Nothing ever surfaced it as a state.
9
+ *
10
+ * A 403 is now TERMINAL for retry purposes after `BLOCK_AFTER` consecutive hits
11
+ * on the same endpoint: callers stop retrying (ledger entries are kept for
12
+ * reconciliation), the transition is logged ONCE, and a single probe request is
13
+ * allowed every `PROBE_EVERY_MS` so a fixed role clears the block on its next
14
+ * 2xx. 429s and 5xx timestamps are kept for the health block.
15
+ */
16
+ export interface EndpointHealth {
17
+ consecutive_403: number;
18
+ blocked_since: number | null;
19
+ last_attempt_at: number | null;
20
+ }
21
+ export interface BackendHealthSnapshot {
22
+ consecutive_403: Record<string, number>;
23
+ blocked: string[];
24
+ last_429_at: string | null;
25
+ last_5xx_at: string | null;
26
+ }
27
+ export declare class BackendHealthTracker {
28
+ static readonly BLOCK_AFTER = 3;
29
+ static readonly PROBE_EVERY_MS: number;
30
+ private endpoints;
31
+ private last429At;
32
+ private last5xxAt;
33
+ private loggedOnce;
34
+ private entry;
35
+ /** Record the outcome of one request to `endpoint`. */
36
+ record(endpoint: string, status: number, now?: number): void;
37
+ /** True when the endpoint is blocked AND it is not yet time for a probe. */
38
+ shouldSkip(endpoint: string, now?: number): boolean;
39
+ isBlocked(endpoint: string): boolean;
40
+ /** Log a message once per process lifetime per key (e.g. launch_context 403). */
41
+ logOnce(key: string, message: string): boolean;
42
+ snapshot(): BackendHealthSnapshot;
43
+ }
44
+ //# sourceMappingURL=backend-health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend-health.d.ts","sourceRoot":"","sources":["../../src/api/backend-health.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,qBAAa,oBAAoB;IAC/B,MAAM,CAAC,QAAQ,CAAC,WAAW,KAAK;IAChC,MAAM,CAAC,QAAQ,CAAC,cAAc,SAAkB;IAEhD,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,UAAU,CAAqB;IAEvC,OAAO,CAAC,KAAK;IASb,uDAAuD;IACvD,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,IAAI;IA4BxE,4EAA4E;IAC5E,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,OAAO;IAO/D,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIpC,iFAAiF;IACjF,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAO9C,QAAQ,IAAI,qBAAqB;CAclC"}
@@ -0,0 +1,80 @@
1
+ export class BackendHealthTracker {
2
+ static BLOCK_AFTER = 3;
3
+ static PROBE_EVERY_MS = 30 * 60 * 1000;
4
+ endpoints = new Map();
5
+ last429At = null;
6
+ last5xxAt = null;
7
+ loggedOnce = new Set();
8
+ entry(endpoint) {
9
+ let e = this.endpoints.get(endpoint);
10
+ if (!e) {
11
+ e = { consecutive_403: 0, blocked_since: null, last_attempt_at: null };
12
+ this.endpoints.set(endpoint, e);
13
+ }
14
+ return e;
15
+ }
16
+ /** Record the outcome of one request to `endpoint`. */
17
+ record(endpoint, status, now = Date.now()) {
18
+ const e = this.entry(endpoint);
19
+ e.last_attempt_at = now;
20
+ if (status >= 200 && status < 300) {
21
+ if (e.blocked_since !== null) {
22
+ console.log(`[SiloLink] ${endpoint}: HTTP ${status} after a 403 streak — unblocked, retries resume.`);
23
+ }
24
+ e.consecutive_403 = 0;
25
+ e.blocked_since = null;
26
+ return;
27
+ }
28
+ if (status === 403) {
29
+ e.consecutive_403 += 1;
30
+ if (e.consecutive_403 >= BackendHealthTracker.BLOCK_AFTER && e.blocked_since === null) {
31
+ e.blocked_since = now;
32
+ console.error(`[SiloLink] ${endpoint}: HTTP 403 ×${e.consecutive_403} consecutive — treating as TERMINAL. ` +
33
+ `Retries stop (entries are kept for reconciliation); one probe every ${Math.round(BackendHealthTracker.PROBE_EVERY_MS / 60000)}min. ` +
34
+ 'The daemon identity lacks the capability for this endpoint — fix the role server-side.');
35
+ }
36
+ return;
37
+ }
38
+ if (status === 429)
39
+ this.last429At = now;
40
+ if (status >= 500)
41
+ this.last5xxAt = now;
42
+ // Other 4xx neither extend nor reset the 403 streak.
43
+ }
44
+ /** True when the endpoint is blocked AND it is not yet time for a probe. */
45
+ shouldSkip(endpoint, now = Date.now()) {
46
+ const e = this.endpoints.get(endpoint);
47
+ if (!e || e.blocked_since === null)
48
+ return false;
49
+ const last = e.last_attempt_at ?? e.blocked_since;
50
+ return now - last < BackendHealthTracker.PROBE_EVERY_MS;
51
+ }
52
+ isBlocked(endpoint) {
53
+ return (this.endpoints.get(endpoint)?.blocked_since ?? null) !== null;
54
+ }
55
+ /** Log a message once per process lifetime per key (e.g. launch_context 403). */
56
+ logOnce(key, message) {
57
+ if (this.loggedOnce.has(key))
58
+ return false;
59
+ this.loggedOnce.add(key);
60
+ console.error(message);
61
+ return true;
62
+ }
63
+ snapshot() {
64
+ const consecutive = {};
65
+ const blocked = [];
66
+ for (const [name, e] of this.endpoints) {
67
+ if (e.consecutive_403 > 0)
68
+ consecutive[name] = e.consecutive_403;
69
+ if (e.blocked_since !== null)
70
+ blocked.push(name);
71
+ }
72
+ return {
73
+ consecutive_403: consecutive,
74
+ blocked,
75
+ last_429_at: this.last429At ? new Date(this.last429At).toISOString() : null,
76
+ last_5xx_at: this.last5xxAt ? new Date(this.last5xxAt).toISOString() : null,
77
+ };
78
+ }
79
+ }
80
+ //# sourceMappingURL=backend-health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend-health.js","sourceRoot":"","sources":["../../src/api/backend-health.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { SiloLinkConfig, ConversationResponse, MessageResponse, AgentSessionResponse } from '../types/index.js';
2
2
  import type { JwtGenerator } from '../config/jwt-generator.js';
3
3
  import type { UsageEntry } from '../core/transcript-usage.js';
4
+ import { BackendHealthTracker } from './backend-health.js';
4
5
  export interface LaunchContext {
5
6
  agent_id: number;
6
7
  agent_name: string;
@@ -28,10 +29,11 @@ export interface VersionPolicy {
28
29
  * - 'failed' — transient or fixable (network, 5xx, or auth: a missing capability
29
30
  * grant can be added later). KEEP the entry so the usage is not lost.
30
31
  */
31
- export type ReportUsageResult = 'reported' | 'rejected' | 'failed';
32
+ export type ReportUsageResult = 'reported' | 'rejected' | 'failed' | 'blocked';
32
33
  export declare class DSiloedClient {
33
34
  private config;
34
35
  private jwt;
36
+ readonly backendHealth: BackendHealthTracker;
35
37
  constructor(config: SiloLinkConfig, jwt: JwtGenerator);
36
38
  private get headers();
37
39
  private url;
@@ -39,7 +41,7 @@ export declare class DSiloedClient {
39
41
  getSiloLinkConversations(): Promise<ConversationResponse[]>;
40
42
  findConversationByName(name: string): Promise<ConversationResponse | null>;
41
43
  findOrCreateConversation(name: string, description: string): Promise<ConversationResponse>;
42
- postMessage(conversationId: number, message: string): Promise<MessageResponse>;
44
+ postMessage(conversationId: number, message: string, metadata?: Record<string, unknown>): Promise<MessageResponse>;
43
45
  getMessages(conversationId: number, limit?: number): Promise<MessageResponse[]>;
44
46
  getConversation(conversationId: number): Promise<ConversationResponse>;
45
47
  fetchLaunchContext(agentId: number): Promise<LaunchContext | null>;
@@ -53,6 +55,8 @@ export declare class DSiloedClient {
53
55
  llm_agent_id?: number;
54
56
  project_id?: number;
55
57
  metadata?: Record<string, unknown>;
58
+ agent_session_id?: number;
59
+ launch_correlation_id?: string;
56
60
  }): Promise<AgentSessionResponse | null>;
57
61
  updateAgentSession(agentSessionId: number, data: {
58
62
  metadata?: Record<string, unknown>;
@@ -77,7 +81,7 @@ export declare class DSiloedClient {
77
81
  mergeAgentSessionMetadata(agentSessionId: number, partial: Record<string, unknown>, currentMetadata?: Record<string, unknown>): Promise<void>;
78
82
  heartbeatAgentSession(agentSessionId: number): Promise<void>;
79
83
  completeAgentSession(agentSessionId: number, opts?: {
80
- state?: 'completed' | 'failed';
84
+ state?: 'completed' | 'failed' | 'idle_timeout';
81
85
  reason?: string;
82
86
  }): Promise<void>;
83
87
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"dsiloed-client.d.ts","sourceRoot":"","sources":["../../src/api/dsiloed-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dsiloed-client.d.ts","sourceRoot":"","sources":["../../src/api/dsiloed-client.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { BackendHealthTracker } from './backend-health.js';
1
2
  /**
2
3
  * 4xx codes that mean "this will never be accepted".
3
4
  *
@@ -9,6 +10,8 @@ const TERMINAL_REPORT_STATUSES = new Set([404, 410, 422]);
9
10
  export class DSiloedClient {
10
11
  config;
11
12
  jwt;
13
+ // Per-endpoint 403 streaks / 429 / 5xx bookkeeping (health block + terminal-403 gate).
14
+ backendHealth = new BackendHealthTracker();
12
15
  constructor(config, jwt) {
13
16
  this.config = config;
14
17
  this.jwt = jwt;
@@ -92,11 +95,11 @@ export class DSiloedClient {
92
95
  const data = (await res.json());
93
96
  return data.llm_conversation;
94
97
  }
95
- async postMessage(conversationId, message) {
98
+ async postMessage(conversationId, message, metadata) {
96
99
  const res = await this.fetchWithTimeout(this.url(`/api/v1/llm_conversations/${conversationId}/chat`), {
97
100
  method: 'POST',
98
101
  headers: this.headers,
99
- body: JSON.stringify({ message }),
102
+ body: JSON.stringify(metadata ? { message, metadata } : { message }),
100
103
  });
101
104
  if (!res.ok) {
102
105
  const body = await res.text();
@@ -147,7 +150,14 @@ export class DSiloedClient {
147
150
  method: 'GET',
148
151
  headers: this.headers,
149
152
  });
153
+ this.backendHealth.record('launch_context', res.status);
150
154
  if (!res.ok) {
155
+ if (res.status === 403) {
156
+ // Once per daemon boot, not per launch (67× in one log, 2026-08-24).
157
+ this.backendHealth.logOnce('launch_context_403', `[SiloLink] launch_context for agent ${agentId} returned 403 — the daemon identity lacks the capability; ` +
158
+ 'launches continue without dispatcher attribution context. (Logged once per daemon boot.)');
159
+ return null;
160
+ }
151
161
  console.error(`[SiloLink] Failed to fetch launch context for agent ${agentId} (${res.status})`);
152
162
  return null;
153
163
  }
@@ -162,8 +172,15 @@ export class DSiloedClient {
162
172
  // --- LlmAgentRun lookup ---
163
173
  async getActiveAgentRun(llmAgentId) {
164
174
  try {
175
+ // Only an OPEN run, newest first. The generic index used to order by
176
+ // id ASC with no open-run filter, so limit=1 always returned the agent's
177
+ // OLDEST run and every session got linked to a run from weeks ago.
178
+ // Sort uses field:desc (the backend generic sorter form); the dash form
179
+ // '-start_at' is silently ignored, leaving correctness to the default clause.
165
180
  const params = new URLSearchParams({
166
181
  llm_agent_id: String(llmAgentId),
182
+ active: 'true',
183
+ sort: 'start_at:desc',
167
184
  limit: '1',
168
185
  });
169
186
  const res = await this.fetchWithTimeout(this.url(`/api/v1/llm_agent_runs?${params}`), {
@@ -173,8 +190,8 @@ export class DSiloedClient {
173
190
  if (!res.ok)
174
191
  return null;
175
192
  const json = (await res.json());
176
- // Find most recent non-completed run
177
- const activeRun = json.llm_agent_runs?.find(r => !r.completed_at);
193
+ // A run with end_at (or completed_at) set is finished — never link to it.
194
+ const activeRun = json.llm_agent_runs?.find(r => !r.completed_at && !r.end_at);
178
195
  return activeRun ? { id: activeRun.id } : null;
179
196
  }
180
197
  catch (err) {
@@ -303,6 +320,10 @@ export class DSiloedClient {
303
320
  async reportUsage(payload) {
304
321
  if (payload.usage.length === 0)
305
322
  return 'reported';
323
+ // Terminal-403 gate: after 3 consecutive 403s the endpoint is blocked and the
324
+ // 3-minute live-usage loop stops hitting it (one probe per 30 min).
325
+ if (this.backendHealth.shouldSkip('report_usage'))
326
+ return 'blocked';
306
327
  // Retry transient failures (network blips, brief model_api unavailability) with
307
328
  // backoff. Idempotent server-side, so retries can't double-count.
308
329
  const delays = [1000, 5000];
@@ -313,12 +334,16 @@ export class DSiloedClient {
313
334
  headers: this.headers,
314
335
  body: JSON.stringify(payload),
315
336
  });
337
+ this.backendHealth.record('report_usage', res.status);
316
338
  if (res.ok)
317
339
  return 'reported';
318
340
  // 4xx won't be fixed by retrying THIS request — but the caller must know
319
341
  // whether the entry is dead or merely blocked, or it retries forever.
320
342
  if (res.status >= 400 && res.status < 500) {
321
343
  const terminal = TERMINAL_REPORT_STATUSES.has(res.status);
344
+ if (res.status === 403 && this.backendHealth.isBlocked('report_usage')) {
345
+ return 'blocked'; // the tracker logged the transition once
346
+ }
322
347
  console.error(`[SiloLink] reportUsage HTTP ${res.status}` +
323
348
  (terminal ? ' — unreportable, settling this entry' : ' — retryable, keeping entry'));
324
349
  return terminal ? 'rejected' : 'failed';
@@ -1 +1 @@
1
- {"version":3,"file":"dsiloed-client.js","sourceRoot":"","sources":["../../src/api/dsiloed-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dsiloed-client.js","sourceRoot":"","sources":["../../src/api/dsiloed-client.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,17 @@ import type { MessageQueue } from '../core/message-queue.js';
3
3
  import type { SessionManager } from '../core/session-manager.js';
4
4
  import type { AgentLauncher } from '../core/agent-launcher.js';
5
5
  import type { DSiloedClient } from '../api/dsiloed-client.js';
6
+ import type { Session } from '../types/index.js';
7
+ export declare const DEFAULT_LAUNCH_GRACE_MS: number;
8
+ export interface SubscriptionManagerOptions {
9
+ staleInboundGraceMs?: number;
10
+ }
11
+ export interface StaleInboundDecision {
12
+ recycle: boolean;
13
+ reason: string;
14
+ paneName: string | null;
15
+ idleMs: number;
16
+ }
6
17
  export declare class SubscriptionManager {
7
18
  private cableClient;
8
19
  private messageQueue;
@@ -14,7 +25,9 @@ export declare class SubscriptionManager {
14
25
  private recentContentHashes;
15
26
  private pendingMessages;
16
27
  private launchingConversations;
17
- constructor(cableClient: ActionCableClient, messageQueue: MessageQueue, sessionManager: SessionManager, launcher?: AgentLauncher, dsiloedClient?: DSiloedClient, launcherResolver?: (provider?: string) => AgentLauncher);
28
+ private staleInboundGraceMs;
29
+ private recycleTimestamps;
30
+ constructor(cableClient: ActionCableClient, messageQueue: MessageQueue, sessionManager: SessionManager, launcher?: AgentLauncher, dsiloedClient?: DSiloedClient, launcherResolver?: (provider?: string) => AgentLauncher, options?: SubscriptionManagerOptions);
18
31
  subscribe(conversationId: number): void;
19
32
  unsubscribe(conversationId: number): void;
20
33
  /**
@@ -32,6 +45,18 @@ export declare class SubscriptionManager {
32
45
  */
33
46
  private resolveAgentAndLaunch;
34
47
  private handleCableMessage;
48
+ /** The launcher that owns a session's provider, falling back to the default. */
49
+ private launcherForSession;
50
+ /**
51
+ * Should an inbound message recycle this session? MCP silence alone is not
52
+ * evidence (poll tools don't bump lastActivity); the pane must be present,
53
+ * NOT actively thinking and frozen past the launcher's threshold — the same
54
+ * bar the periodic wedged-session reaper applies. Launch-pending entries and
55
+ * sessions inside the launch grace window are never recycled.
56
+ */
57
+ evaluateStaleOnInbound(session: Session, launcher: AgentLauncher | null, now?: number): StaleInboundDecision;
58
+ /** Count of stale-on-inbound recycles within the trailing window (health). */
59
+ recyclesWithin(windowMs: number, now?: number): number;
35
60
  /**
36
61
  * Auto-launch a session for an inbound message that found no live session —
37
62
  * UNLESS the conversation's most recent backend session is an already-ended
@@ -1 +1 @@
1
- {"version":3,"file":"subscription-manager.d.ts","sourceRoot":"","sources":["../../src/cable/subscription-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAM9D,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,QAAQ,CAAuB;IAIvC,OAAO,CAAC,gBAAgB,CAAgD;IACxE,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,kBAAkB,CAAgB;IAE1C,OAAO,CAAC,mBAAmB,CAA6C;IAExE,OAAO,CAAC,eAAe,CAA4C;IAQnE,OAAO,CAAC,sBAAsB,CAA0B;gBAGtD,WAAW,EAAE,iBAAiB,EAC9B,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAc,EAC9B,QAAQ,CAAC,EAAE,aAAa,EACxB,aAAa,CAAC,EAAE,aAAa,EAC7B,gBAAgB,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,aAAa;IAczD,SAAS,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAIvC,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAIzC;;OAEG;IACH,2BAA2B,IAAI,IAAI;IAanC;;;OAGG;IACH,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAarE,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAO/C;;OAEG;YACW,qBAAqB;IAyBnC,OAAO,CAAC,kBAAkB;IAoG1B;;;;;;;;;OASG;YACW,eAAe;IAoE7B,kFAAkF;IAClF,OAAO,CAAC,qBAAqB;CAQ9B"}
1
+ {"version":3,"file":"subscription-manager.d.ts","sourceRoot":"","sources":["../../src/cable/subscription-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAwC,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAUvF,eAAO,MAAM,uBAAuB,QAAiB,CAAC;AAEtD,MAAM,WAAW,0BAA0B;IACzC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,QAAQ,CAAuB;IAIvC,OAAO,CAAC,gBAAgB,CAAgD;IACxE,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,kBAAkB,CAAgB;IAE1C,OAAO,CAAC,mBAAmB,CAA6C;IAExE,OAAO,CAAC,eAAe,CAA4C;IAQnE,OAAO,CAAC,sBAAsB,CAA0B;IACxD,OAAO,CAAC,mBAAmB,CAAS;IAEpC,OAAO,CAAC,iBAAiB,CAAgB;gBAGvC,WAAW,EAAE,iBAAiB,EAC9B,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAc,EAC9B,QAAQ,CAAC,EAAE,aAAa,EACxB,aAAa,CAAC,EAAE,aAAa,EAC7B,gBAAgB,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,aAAa,EACvD,OAAO,GAAE,0BAA+B;IAiB1C,SAAS,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAIvC,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAIzC;;OAEG;IACH,2BAA2B,IAAI,IAAI;IAanC;;;OAGG;IACH,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAarE,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAO/C;;OAEG;YACW,qBAAqB;IAyBnC,OAAO,CAAC,kBAAkB;IA0G1B,gFAAgF;IAChF,OAAO,CAAC,kBAAkB;IAW1B;;;;;;OAMG;IACH,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,EAAE,GAAG,GAAE,MAAmB,GAAG,oBAAoB;IAexH,8EAA8E;IAC9E,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,MAAM;IAKlE;;;;;;;;;OASG;YACW,eAAe;IAoE7B,kFAAkF;IAClF,OAAO,CAAC,qBAAqB;CAQ9B"}