@openrig/cli 0.6.8 → 0.6.9

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 (178) hide show
  1. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +41 -2
  2. package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +12 -4
  3. package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +218 -7
  4. package/daemon/context-packs/help/manifest.yaml +1 -1
  5. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
  6. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +17 -7
  7. package/daemon/context-packs/reference/manifest.yaml +1 -1
  8. package/daemon/context-packs/reference/whats-new.md +69 -74
  9. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
  10. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
  11. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  12. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
  13. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  14. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  15. package/daemon/context-packs/skills/core/cross-host-rig-commands/SKILL.md +1 -0
  16. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  17. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  18. package/daemon/context-packs/skills/core/messaging-the-human/SKILL.md +12 -4
  19. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
  20. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
  21. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  22. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  23. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  24. package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
  25. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  26. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  27. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  28. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  29. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  30. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
  31. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  32. package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
  33. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
  34. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
  35. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  36. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  37. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  38. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  39. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  40. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  41. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  42. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  43. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  44. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  45. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  46. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
  47. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
  48. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  49. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
  50. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  51. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  52. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  53. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  54. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  55. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  56. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
  57. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  58. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  59. package/daemon/context-packs/skills/refocusing/scripts/trace-to-root.py +218 -7
  60. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  61. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  62. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  63. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
  64. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  65. package/daemon/context-packs/world-public/manifest.yaml +1 -1
  66. package/daemon/dist/build-info.js +3 -3
  67. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  68. package/daemon/dist/db/all-migrations.js +2 -0
  69. package/daemon/dist/db/all-migrations.js.map +1 -1
  70. package/daemon/dist/db/migrations/098_queue_transitions_qitem_id_order.d.ts +3 -0
  71. package/daemon/dist/db/migrations/098_queue_transitions_qitem_id_order.d.ts.map +1 -0
  72. package/daemon/dist/db/migrations/098_queue_transitions_qitem_id_order.js +12 -0
  73. package/daemon/dist/db/migrations/098_queue_transitions_qitem_id_order.js.map +1 -0
  74. package/daemon/dist/domain/current-work.d.ts +74 -0
  75. package/daemon/dist/domain/current-work.d.ts.map +1 -1
  76. package/daemon/dist/domain/current-work.js +165 -0
  77. package/daemon/dist/domain/current-work.js.map +1 -1
  78. package/daemon/dist/domain/gateway/connections-projection.d.ts +2 -0
  79. package/daemon/dist/domain/gateway/connections-projection.d.ts.map +1 -1
  80. package/daemon/dist/domain/gateway/connections-projection.js +3 -1
  81. package/daemon/dist/domain/gateway/connections-projection.js.map +1 -1
  82. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts +3 -1
  83. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
  84. package/daemon/dist/domain/gateway/gateway-subsystem.js +3 -1
  85. package/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
  86. package/daemon/dist/domain/gateway/slack/queue-access.d.ts +3 -0
  87. package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
  88. package/daemon/dist/domain/gateway/slack/queue-access.js +5 -1
  89. package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
  90. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  91. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +74 -19
  92. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  93. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts +37 -0
  94. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -1
  95. package/daemon/dist/domain/gateway/slack/socket-inbound.js +281 -38
  96. package/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -1
  97. package/daemon/dist/domain/gateway/slack/state-store.d.ts +14 -1
  98. package/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -1
  99. package/daemon/dist/domain/gateway/slack/state-store.js +16 -0
  100. package/daemon/dist/domain/gateway/slack/state-store.js.map +1 -1
  101. package/daemon/dist/domain/human-questions.d.ts +12 -3
  102. package/daemon/dist/domain/human-questions.d.ts.map +1 -1
  103. package/daemon/dist/domain/human-questions.js +10 -5
  104. package/daemon/dist/domain/human-questions.js.map +1 -1
  105. package/daemon/dist/domain/kernel-boot-tracker.d.ts +20 -1
  106. package/daemon/dist/domain/kernel-boot-tracker.d.ts.map +1 -1
  107. package/daemon/dist/domain/kernel-boot-tracker.js +66 -14
  108. package/daemon/dist/domain/kernel-boot-tracker.js.map +1 -1
  109. package/daemon/dist/domain/kernel-boot.d.ts +4 -0
  110. package/daemon/dist/domain/kernel-boot.d.ts.map +1 -1
  111. package/daemon/dist/domain/kernel-boot.js +26 -1
  112. package/daemon/dist/domain/kernel-boot.js.map +1 -1
  113. package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
  114. package/daemon/dist/domain/native-process-lineage.js +30 -7
  115. package/daemon/dist/domain/native-process-lineage.js.map +1 -1
  116. package/daemon/dist/domain/queue-repository.d.ts +12 -0
  117. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  118. package/daemon/dist/domain/queue-repository.js +47 -1
  119. package/daemon/dist/domain/queue-repository.js.map +1 -1
  120. package/daemon/dist/domain/queue-transition-log.d.ts +12 -4
  121. package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  122. package/daemon/dist/domain/queue-transition-log.js +24 -0
  123. package/daemon/dist/domain/queue-transition-log.js.map +1 -1
  124. package/daemon/dist/domain/scope/scope-approve.d.ts +21 -0
  125. package/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -1
  126. package/daemon/dist/domain/scope/scope-approve.js +48 -4
  127. package/daemon/dist/domain/scope/scope-approve.js.map +1 -1
  128. package/daemon/dist/routes/gateway.d.ts.map +1 -1
  129. package/daemon/dist/routes/gateway.js +2 -0
  130. package/daemon/dist/routes/gateway.js.map +1 -1
  131. package/daemon/dist/routes/kernel-status.js +3 -1
  132. package/daemon/dist/routes/kernel-status.js.map +1 -1
  133. package/daemon/dist/routes/queue.d.ts.map +1 -1
  134. package/daemon/dist/routes/queue.js +17 -2
  135. package/daemon/dist/routes/queue.js.map +1 -1
  136. package/daemon/dist/routes/scope-approve.d.ts.map +1 -1
  137. package/daemon/dist/routes/scope-approve.js +3 -0
  138. package/daemon/dist/routes/scope-approve.js.map +1 -1
  139. package/daemon/docs/reference/refocus-channel.md +33 -0
  140. package/daemon/docs/reference/slack-app-setup.md +13 -0
  141. package/daemon/docs/reference/whats-new.md +69 -74
  142. package/daemon/specs/agents/shared/skills/core/cross-host-rig-commands/SKILL.md +1 -0
  143. package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +12 -4
  144. package/dist/build-info.js +3 -3
  145. package/dist/commands/chatroom.d.ts.map +1 -1
  146. package/dist/commands/chatroom.js +25 -5
  147. package/dist/commands/chatroom.js.map +1 -1
  148. package/dist/commands/queue.d.ts.map +1 -1
  149. package/dist/commands/queue.js +3 -0
  150. package/dist/commands/queue.js.map +1 -1
  151. package/dist/commands/scope.d.ts.map +1 -1
  152. package/dist/commands/scope.js +10 -1
  153. package/dist/commands/scope.js.map +1 -1
  154. package/dist/commands/send.d.ts.map +1 -1
  155. package/dist/commands/send.js +23 -5
  156. package/dist/commands/send.js.map +1 -1
  157. package/dist/commands/slack.d.ts +17 -0
  158. package/dist/commands/slack.d.ts.map +1 -1
  159. package/dist/commands/slack.js +41 -0
  160. package/dist/commands/slack.js.map +1 -1
  161. package/dist/commands/status.d.ts.map +1 -1
  162. package/dist/commands/status.js +5 -0
  163. package/dist/commands/status.js.map +1 -1
  164. package/dist/cross-host-types.d.ts +1 -1
  165. package/dist/cross-host-types.d.ts.map +1 -1
  166. package/dist/lib/scope/scope-fs.d.ts +13 -0
  167. package/dist/lib/scope/scope-fs.d.ts.map +1 -1
  168. package/dist/lib/scope/scope-fs.js +28 -4
  169. package/dist/lib/scope/scope-fs.js.map +1 -1
  170. package/dist/remote-host-ops.d.ts +4 -0
  171. package/dist/remote-host-ops.d.ts.map +1 -1
  172. package/dist/remote-host-ops.js +20 -2
  173. package/dist/remote-host-ops.js.map +1 -1
  174. package/package.json +1 -1
  175. package/tui/dist/connections/connections-model.d.ts +5 -0
  176. package/tui/dist/connections/connections-model.d.ts.map +1 -1
  177. package/tui/dist/connections/connections-model.js +16 -1
  178. package/tui/dist/connections/connections-model.js.map +1 -1
@@ -8,24 +8,83 @@
8
8
  // Cold-init receipts (dual-path class "inbound cold-init"): on every (re)connect the router's
9
9
  // dead-letter set drains before new traffic matters, and a fresh boot picks up where the
10
10
  // durable seen/dead-letter stores left off — no replay storm, no drop.
11
+ //
12
+ // Liveness: an open socket is not proof that Slack delivers events to it. A connection on Build
13
+ // stayed "connected" for an hour while Slack delivered nothing, and two button presses were
14
+ // lost. Two signals catch that, each armed only once this connection has shown it: server pings
15
+ // (what Slack's own Node client watches; undici publishes each one on diagnostics_channel), and
16
+ // the echo of our own posts, which comes back as an event on a healthy connection. A failed
17
+ // signal replaces the connection: a new one opens first, then the old one goes.
18
+ import dc from "node:diagnostics_channel";
11
19
  import { openSocketConnection } from "./slack-api.js";
12
20
  import { handleEnvelope } from "./inbound.js";
21
+ const PING_CHANNEL = "undici:websocket:ping";
22
+ const defaultPingChannel = () => ({
23
+ subscribe: (onMessage) => dc.subscribe(PING_CHANNEL, onMessage),
24
+ unsubscribe: (onMessage) => { dc.unsubscribe(PING_CHANNEL, onMessage); },
25
+ });
26
+ /** How long a connection Slack asked to refresh may keep draining before we close it ourselves. */
27
+ const REFRESH_DRAIN_MS = 30_000;
28
+ /** How long after we close a connection Slack's count may still include it. Whether Slack drops a
29
+ * closed connection from `num_connections` at once is not established. */
30
+ const JUST_CLOSED_MS = 10_000;
13
31
  /** Start the Socket Mode loop (the shipped runner's exact shape, service-ified with a stop()). */
14
32
  export function startSocketInbound(appToken, router, deps = {}) {
15
33
  const log = deps.log ?? (() => { });
16
34
  const wsFactory = deps.wsFactory ?? ((url) => new globalThis.WebSocket(url));
17
35
  const retryIntervalMs = deps.retryIntervalMs ?? 5 * 60 * 1000;
18
36
  const openTimeoutMs = deps.openTimeoutMs ?? 30_000;
37
+ const serverPingTimeoutMs = deps.serverPingTimeoutMs ?? 30_000;
38
+ const echoTimeoutMs = deps.echoTimeoutMs ?? 60_000;
39
+ const minAutoReplaceIntervalMs = deps.minAutoReplaceIntervalMs ?? 5 * 60 * 1000;
40
+ const pingChannel = deps.pingChannel ?? defaultPingChannel();
19
41
  let connects = 0;
20
42
  let backoff = 1000;
21
43
  let stopped = false;
22
- let liveWs;
44
+ let disabledBySlack = false;
45
+ let replacing = false;
46
+ let lastAutoReplaceAt = 0;
47
+ let lastClosedByUsAt = 0;
48
+ const conns = new Set();
49
+ let current;
50
+ /** Our posts waiting for their echo: Slack ts → when we posted it (for its age) and its place
51
+ * in the order of registration (for which misses an echo forgives: several posts can register
52
+ * in the same millisecond). */
53
+ const expected = new Map();
54
+ let registrations = 0;
55
+ /** Event ts seen in the last few minutes, with the connection that received it and how many
56
+ * posts had registered when it arrived: an echo can arrive before the post's ts is
57
+ * registered, and it counts only for that connection. */
58
+ const recentEvents = new Map();
23
59
  let pendingTimer;
24
60
  let openTimer;
25
61
  let retryTimer;
26
62
  let finish = () => { };
27
- const status = { generation: 0, reconnects: 0, state: "disconnected" };
63
+ const status = { generation: 0, reconnects: 0, state: "disconnected", delivery: "unknown" };
28
64
  const stamp = () => new Date().toISOString();
65
+ const unref = (t) => {
66
+ if (typeof t.unref === "function")
67
+ t.unref();
68
+ };
69
+ /** While a replacement is opening, the old connection may still be up: status follows it. */
70
+ const oldStillOpen = () => replacing && !!current && !current.closed;
71
+ /** A post of ours came back on `conn`. On the current connection it is delivering, and misses
72
+ * registered up to `throughSeq` end the failure episode, so only consecutive misses count. An
73
+ * echo the draining old connection received says nothing about the current one. Once Slack
74
+ * disables Socket Mode, status keeps saying so. */
75
+ const echoed = (conn, throughSeq) => {
76
+ conn.echoArmed = true;
77
+ if (conn !== current || disabledBySlack)
78
+ return;
79
+ for (const [ts, post] of expected)
80
+ if (post.seq <= throughSeq)
81
+ expected.delete(ts);
82
+ status.delivery = "delivering";
83
+ status.eventsMissingSince = undefined;
84
+ // Delivery recovered, so a held-back reconnect is no longer pending. If pings are still
85
+ // stale, the next liveness check holds it back again and says so.
86
+ status.autoReconnectSuppressedUntil = undefined;
87
+ };
29
88
  const receipt = (entry) => {
30
89
  try {
31
90
  deps.receipts?.append(entry);
@@ -43,82 +102,191 @@ export function startSocketInbound(appToken, router, deps = {}) {
43
102
  log(`dead-letter retry failed: ${error.message}`);
44
103
  });
45
104
  };
46
- const done = new Promise((resolve) => {
105
+ // A ping proves an open connection alive. undici 6 names no socket in the message, so an
106
+ // unnamed ping credits a connection only when it is the one open; while two overlap, it could
107
+ // be the draining one's. A later undici that names the socket credits only that one.
108
+ const onPing = (message) => {
109
+ const target = message?.websocket;
110
+ const now = Date.now();
111
+ const open = [...conns].filter((conn) => !conn.closed && conn.opened);
112
+ for (const conn of open) {
113
+ if (target !== undefined ? target !== conn.ws : open.length !== 1)
114
+ continue;
115
+ conn.lastPingAt = now;
116
+ conn.pingArmed = true;
117
+ if (conn !== current)
118
+ continue;
119
+ status.lastServerPingAt = new Date(now).toISOString();
120
+ // Pings resumed on a connection whose replacement the five-minute limit held back: the ping
121
+ // failure and the held-back reconnect are over. Delivery is unconfirmed until the next echo,
122
+ // and events-missing, which a ping does not answer, stays.
123
+ if (status.delivery === "no-server-pings") {
124
+ status.delivery = "unknown";
125
+ status.autoReconnectSuppressedUntil = undefined;
126
+ }
127
+ }
128
+ };
129
+ pingChannel.subscribe(onPing);
130
+ let connectRef;
131
+ /** Open a replacement first, then let the old connection go: Slack may hand a payload to any
132
+ * open connection, so the old one keeps handling until it closes. */
133
+ const replace = (reason, slackRequested = false) => {
134
+ if (stopped || disabledBySlack || replacing || !current)
135
+ return;
136
+ const now = Date.now();
137
+ if (!slackRequested && lastAutoReplaceAt && now - lastAutoReplaceAt < minAutoReplaceIntervalMs) {
138
+ const until = new Date(lastAutoReplaceAt + minAutoReplaceIntervalMs).toISOString();
139
+ if (status.autoReconnectSuppressedUntil !== until)
140
+ log(`automatic reconnect (${reason}) held back until ${until}: at most one per ${minAutoReplaceIntervalMs / 60_000} min`);
141
+ status.autoReconnectSuppressedUntil = until;
142
+ return;
143
+ }
144
+ if (!slackRequested)
145
+ lastAutoReplaceAt = now;
146
+ status.autoReconnectSuppressedUntil = undefined;
147
+ replacing = true;
148
+ current.retired = true;
149
+ current.retiredFor = reason;
150
+ expected.clear();
151
+ status.lastAutoReconnect = { at: stamp(), reason };
152
+ log(`replacing the socket (${reason}): opening a new connection before the old one goes`);
153
+ receipt({ generation: current.generation, status: "replace-requested", reason });
154
+ void connectRef?.();
155
+ };
156
+ const livenessTimer = setInterval(() => {
157
+ const conn = current;
158
+ if (stopped || disabledBySlack || !conn || conn.closed || !conn.opened || conn.retired)
159
+ return;
160
+ const now = Date.now();
161
+ if (conn.pingArmed && now - conn.lastPingAt > serverPingTimeoutMs) {
162
+ status.delivery = "no-server-pings";
163
+ replace("no-server-pings");
164
+ return;
165
+ }
166
+ for (const [ts, post] of expected)
167
+ if (now - post.at > 10 * echoTimeoutMs)
168
+ expected.delete(ts); // bound the map
169
+ const overdue = [...expected.values()].map((post) => post.at).filter((at) => now - at > echoTimeoutMs).sort((a, b) => a - b);
170
+ status.unechoedPosts = overdue.length;
171
+ if (conn.echoArmed && overdue.length >= 2) {
172
+ status.delivery = "events-missing";
173
+ status.eventsMissingSince = new Date(overdue[0]).toISOString();
174
+ replace("events-missing");
175
+ }
176
+ }, deps.livenessCheckMs ?? 5_000);
177
+ unref(livenessTimer);
178
+ const closeConn = (conn) => {
179
+ conn.ws.onopen = conn.ws.onmessage = conn.ws.onclose = conn.ws.onerror = null;
180
+ conn.closed = true;
181
+ conns.delete(conn);
182
+ lastClosedByUsAt = Date.now();
183
+ try {
184
+ conn.ws.close();
185
+ }
186
+ catch {
187
+ /* ignore */
188
+ }
189
+ };
190
+ const done = new Promise((resolveDone) => {
191
+ const resolve = () => {
192
+ clearInterval(livenessTimer);
193
+ pingChannel.unsubscribe(onPing);
194
+ resolveDone();
195
+ };
47
196
  finish = resolve;
48
197
  const connect = async () => {
49
- if (stopped)
198
+ if (stopped || disabledBySlack)
50
199
  return resolve();
51
200
  connects++;
52
201
  status.generation = connects;
53
202
  status.reconnects = Math.max(0, connects - 1);
54
- status.state = "connecting";
203
+ if (!oldStillOpen())
204
+ status.state = "connecting";
55
205
  receipt({ generation: connects, status: "connect-attempt" });
56
206
  const open = await openSocketConnection(appToken, deps.fetchImpl);
57
- if (stopped)
207
+ // Slack may have disabled Socket Mode while the open was in flight.
208
+ if (stopped || disabledBySlack)
58
209
  return resolve();
59
210
  if (!open.ok || !open.url) {
60
211
  log(`connect failed: ${open.error}`);
61
- status.state = "disconnected";
62
- status.disconnectedAt = stamp();
212
+ if (!oldStillOpen()) {
213
+ status.state = "disconnected";
214
+ status.disconnectedAt = stamp();
215
+ }
63
216
  receipt({ generation: connects, status: "connect-failed", reason: "connection-open-failed" });
64
- if (deps.inboundMaxConnects && connects >= deps.inboundMaxConnects)
217
+ if (disabledBySlack || (deps.inboundMaxConnects && connects >= deps.inboundMaxConnects))
65
218
  return resolve();
66
219
  pendingTimer = setTimeout(connect, backoff);
67
220
  backoff = Math.min(backoff * 2, 60000);
68
221
  return;
69
222
  }
70
223
  const ws = wsFactory(open.url);
71
- liveWs = ws;
224
+ const conn = { ws, generation: connects, opened: false, closed: false, retired: false, lastPingAt: 0, pingArmed: false, echoArmed: false };
225
+ conns.add(conn);
72
226
  // Until the socket opens, onclose cannot be relied on to drive the reconnect: Node's
73
227
  // WebSocket (undici 6) fires onerror but never onclose when the handshake fails
74
228
  // (refused, reset, or its own 300s headers timeout), and an upgrade that is never
75
229
  // answered fires nothing at all. Either way the loop would stay "connecting" forever.
76
230
  // So a failure or timeout before onopen detaches the socket and schedules the retry here.
77
- let opened = false;
78
231
  const abandon = (reason) => {
79
232
  clearTimeout(openTimer);
80
233
  openTimer = undefined;
81
234
  if (stopped)
82
235
  return;
83
- ws.onopen = ws.onmessage = ws.onclose = ws.onerror = null;
84
- try {
85
- ws.close();
86
- }
87
- catch {
88
- /* ignore */
89
- }
90
- liveWs = undefined;
236
+ closeConn(conn);
91
237
  log(`socket did not open (${reason}); reconnect in ${backoff}ms`);
92
- status.state = "disconnected";
93
- status.disconnectedAt = stamp();
94
- receipt({ generation: connects, status: "connect-failed", reason });
95
- if (deps.inboundMaxConnects && connects >= deps.inboundMaxConnects)
238
+ if (!oldStillOpen()) {
239
+ status.state = "disconnected";
240
+ status.disconnectedAt = stamp();
241
+ }
242
+ receipt({ generation: conn.generation, status: "connect-failed", reason });
243
+ if (disabledBySlack || (deps.inboundMaxConnects && connects >= deps.inboundMaxConnects))
96
244
  return resolve();
97
245
  pendingTimer = setTimeout(connect, backoff);
98
246
  backoff = Math.min(backoff * 2, 60000);
99
247
  };
100
248
  openTimer = setTimeout(() => abandon("socket-open-timeout"), openTimeoutMs);
101
249
  ws.onopen = () => {
102
- opened = true;
250
+ conn.opened = true;
103
251
  clearTimeout(openTimer);
104
252
  openTimer = undefined;
105
253
  if (stopped)
106
254
  return;
255
+ if (disabledBySlack)
256
+ return closeConn(conn); // opened after Slack disabled Socket Mode
107
257
  backoff = 1000;
108
258
  log("socket connected");
259
+ const previous = current;
260
+ current = conn;
261
+ replacing = false;
109
262
  status.state = "connected";
110
263
  status.connectedAt = stamp();
111
- receipt({ generation: connects, status: "connected" });
264
+ status.delivery = "unknown";
265
+ status.eventsMissingSince = undefined;
266
+ status.unechoedPosts = 0;
267
+ status.autoReconnectSuppressedUntil = undefined; // a new connection: nothing is held back for it
268
+ receipt({ generation: conn.generation, status: "connected" });
269
+ // A connection replaced for a failed signal is presumed broken: close it now. One Slack
270
+ // asked to refresh stays open so it drains what it is handed, until Slack closes it.
271
+ if (previous && previous !== conn && previous.retired && !previous.closed) {
272
+ if (previous.retiredFor === "refresh_requested" || previous.retiredFor === "warning") {
273
+ const drain = setTimeout(() => { if (!previous.closed)
274
+ closeConn(previous); }, REFRESH_DRAIN_MS);
275
+ unref(drain);
276
+ }
277
+ else
278
+ closeConn(previous);
279
+ }
112
280
  retryDeadLetters(); // drain on connect (cold-init)…
113
281
  // …AND periodically WHILE connected (B1: recovery after a queue outage
114
282
  // must not wait for the next Slack reconnect). Cleared on close.
283
+ if (retryTimer)
284
+ clearInterval(retryTimer);
115
285
  retryTimer = setInterval(retryDeadLetters, retryIntervalMs);
116
- if (typeof retryTimer.unref === "function") {
117
- retryTimer.unref();
118
- }
286
+ unref(retryTimer);
119
287
  };
120
288
  ws.onmessage = (m) => {
121
- if (stopped)
289
+ if (conn.closed)
122
290
  return;
123
291
  let env;
124
292
  try {
@@ -130,17 +298,64 @@ export function startSocketInbound(appToken, router, deps = {}) {
130
298
  const ev = env.payload?.event;
131
299
  status.lastEventAt = stamp();
132
300
  status.lastEventTs = ev?.ts;
301
+ const helloCount = env.type === "hello" ? env.num_connections : undefined;
302
+ if (typeof helloCount === "number") {
303
+ // During a refresh our own draining connection is still open, and Slack counts it. One we
304
+ // closed moments ago (a failure replacement closes the old one as the new one opens), or
305
+ // the one a restart or re-enable just closed, may still be counted too.
306
+ const ours = [...conns].filter((c) => c.opened && !c.closed).length;
307
+ status.numConnections = helloCount;
308
+ status.otherConnections = Math.max(0, helloCount - ours);
309
+ status.otherConnectionsMayBeOurs = status.otherConnections > 0 &&
310
+ (conn.generation === 1 || Date.now() - lastClosedByUsAt <= JUST_CLOSED_MS);
311
+ if (status.otherConnections > 0) {
312
+ log(`Slack reports ${helloCount} open connections for this app, ${ours} of them ours; ${status.otherConnectionsMayBeOurs
313
+ ? "the rest may be a connection of ours closed moments ago, or another consumer"
314
+ : "another consumer may be taking events"}`);
315
+ }
316
+ }
317
+ if (env.type === "disconnect") {
318
+ if (env.reason === "link_disabled") {
319
+ disabledBySlack = true;
320
+ status.delivery = "socket-mode-disabled";
321
+ log("Slack disabled Socket Mode for this app (link_disabled); not reconnecting");
322
+ // Abandon a retry or a replacement already in flight: the timers and sockets this loop owns.
323
+ if (pendingTimer)
324
+ clearTimeout(pendingTimer);
325
+ if (openTimer)
326
+ clearTimeout(openTimer);
327
+ for (const other of [...conns])
328
+ if (!other.opened)
329
+ closeConn(other);
330
+ }
331
+ else if (conn === current && (env.reason === "warning" || env.reason === "refresh_requested")) {
332
+ replace(env.reason, true);
333
+ }
334
+ }
335
+ if (ev?.ts) {
336
+ const now = Date.now();
337
+ recentEvents.set(ev.ts, { at: now, conn, seq: registrations });
338
+ for (const [ts, seen] of recentEvents)
339
+ if (now - seen.at > 5 * 60_000)
340
+ recentEvents.delete(ts);
341
+ const post = expected.get(ev.ts);
342
+ if (post !== undefined) {
343
+ expected.delete(ev.ts);
344
+ echoed(conn, post.seq);
345
+ }
346
+ }
133
347
  void handleEnvelope(env, () => env.envelope_id && ws.send(JSON.stringify({ envelope_id: env.envelope_id })), router, log, () => receipt({
134
- generation: connects,
348
+ generation: conn.generation,
135
349
  status: "received",
136
350
  envelopeId: env.envelope_id,
137
351
  eventTs: ev?.ts,
138
352
  channel: ev?.channel,
353
+ ...(typeof helloCount === "number" ? { connections: helloCount } : {}),
139
354
  }))
140
355
  .then((disposition) => {
141
356
  status.lastDisposition = disposition.status;
142
357
  receipt({
143
- generation: connects,
358
+ generation: conn.generation,
144
359
  status: disposition.status,
145
360
  envelopeId: env.envelope_id,
146
361
  eventTs: ev?.ts,
@@ -151,7 +366,7 @@ export function startSocketInbound(appToken, router, deps = {}) {
151
366
  .catch((error) => {
152
367
  status.lastDisposition = "handler-failed";
153
368
  receipt({
154
- generation: connects,
369
+ generation: conn.generation,
155
370
  status: "handler-failed",
156
371
  envelopeId: env.envelope_id,
157
372
  eventTs: ev?.ts,
@@ -162,16 +377,29 @@ export function startSocketInbound(appToken, router, deps = {}) {
162
377
  });
163
378
  };
164
379
  ws.onclose = () => {
380
+ conn.closed = true;
381
+ conns.delete(conn);
382
+ receipt({ generation: conn.generation, status: "disconnected" });
383
+ // A retired connection's close is the expected end of a replacement: nothing to reconnect.
384
+ // If its replacement has not opened yet, no socket is up, and status must say so.
385
+ if (conn.retired && conn === current) {
386
+ if (retryTimer)
387
+ clearInterval(retryTimer);
388
+ status.state = "disconnected";
389
+ status.disconnectedAt = stamp();
390
+ }
391
+ if (conn.retired || conn !== current)
392
+ return;
165
393
  clearTimeout(openTimer);
166
394
  openTimer = undefined;
167
395
  if (retryTimer)
168
396
  clearInterval(retryTimer);
169
- liveWs = undefined;
170
397
  status.state = stopped ? "stopped" : "disconnected";
171
398
  status.disconnectedAt = stamp();
172
- receipt({ generation: connects, status: "disconnected" });
173
399
  if (stopped)
174
400
  return resolve();
401
+ if (disabledBySlack)
402
+ return resolve();
175
403
  log(`socket closed; reconnect in ${backoff}ms`);
176
404
  if (deps.inboundMaxConnects && connects >= deps.inboundMaxConnects)
177
405
  return resolve();
@@ -179,7 +407,7 @@ export function startSocketInbound(appToken, router, deps = {}) {
179
407
  backoff = Math.min(backoff * 2, 60000);
180
408
  };
181
409
  ws.onerror = () => {
182
- if (!opened)
410
+ if (!conn.opened)
183
411
  return abandon("socket-open-error");
184
412
  try {
185
413
  ws.close();
@@ -189,6 +417,7 @@ export function startSocketInbound(appToken, router, deps = {}) {
189
417
  }
190
418
  };
191
419
  };
420
+ connectRef = connect;
192
421
  void connect();
193
422
  });
194
423
  return {
@@ -198,18 +427,32 @@ export function startSocketInbound(appToken, router, deps = {}) {
198
427
  deps.recovery?.stop();
199
428
  if (retryTimer)
200
429
  clearInterval(retryTimer);
430
+ clearInterval(livenessTimer);
431
+ pingChannel.unsubscribe(onPing);
201
432
  status.state = "stopped";
202
433
  if (pendingTimer)
203
434
  clearTimeout(pendingTimer);
204
435
  if (openTimer)
205
436
  clearTimeout(openTimer);
206
- try {
207
- liveWs?.close();
437
+ for (const conn of [...conns]) {
438
+ try {
439
+ conn.ws.close();
440
+ }
441
+ catch { /* best-effort */ }
208
442
  }
209
- catch { /* best-effort */ }
210
443
  finish(); // A canceled backoff has no future connect/close callback to settle done.
211
444
  },
212
445
  status: () => ({ ...status }),
446
+ expectEcho: (messageTs) => {
447
+ if (stopped || !/^\d+\.\d+$/.test(messageTs))
448
+ return;
449
+ const early = recentEvents.get(messageTs);
450
+ // The echo beat the registration: it counts for the connection that received it, and
451
+ // forgives only posts registered before it arrived, not ones registered since.
452
+ if (early)
453
+ return echoed(early.conn, early.seq);
454
+ expected.set(messageTs, { at: Date.now(), seq: ++registrations });
455
+ },
213
456
  };
214
457
  }
215
458
  //# sourceMappingURL=socket-inbound.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"socket-inbound.js","sourceRoot":"","sources":["../../../../src/domain/gateway/slack/socket-inbound.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"socket-inbound.js","sourceRoot":"","sources":["../../../../src/domain/gateway/slack/socket-inbound.ts"],"names":[],"mappings":"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"}
@@ -56,13 +56,24 @@ export declare class DeadLetterStore<T = unknown> {
56
56
  append(ev: T, attempts: number): void;
57
57
  /** Non-destructive read of all durable entries. */
58
58
  readAll(): DeadLetterEntry<T>[];
59
+ /** Non-destructive read that keeps an ABSENT file apart from an UNREADABLE one.
60
+ * A caller that surfaces a count must not report a false zero when the file
61
+ * exists but could not be read: absent is a real empty set, any other error is
62
+ * a named read failure. */
63
+ readResult(): {
64
+ ok: true;
65
+ entries: DeadLetterEntry<T>[];
66
+ } | {
67
+ ok: false;
68
+ reason: string;
69
+ };
59
70
  /** Atomically replace the durable set (temp-write + rename). Used after a retry pass. */
60
71
  replaceAll(entries: DeadLetterEntry<T>[]): void;
61
72
  /** Finish a retry snapshot without removing entries appended while it awaited I/O.
62
73
  * Match occurrences, not just event ids: a later identical append is still owed. */
63
74
  replaceBatch(processed: DeadLetterEntry<T>[], remaining: DeadLetterEntry<T>[]): void;
64
75
  }
65
- export type InboundReceiptStatus = "connect-attempt" | "connected" | "disconnected" | "connect-failed" | "received" | "accepted" | "ignored" | "refused" | "dead-lettered" | "handler-failed";
76
+ export type InboundReceiptStatus = "connect-attempt" | "connected" | "disconnected" | "connect-failed" | "received" | "accepted" | "ignored" | "refused" | "dead-lettered" | "handler-failed" | "replace-requested";
66
77
  export interface InboundReceipt {
67
78
  at: string;
68
79
  generation: number;
@@ -71,6 +82,8 @@ export interface InboundReceipt {
71
82
  eventTs?: string;
72
83
  channel?: string;
73
84
  reason?: string;
85
+ /** Slack's `hello` count of this app's open Socket Mode connections. */
86
+ connections?: number;
74
87
  }
75
88
  /** Credential-free ingress/lifecycle ledger. A received receipt is appended before
76
89
  * handler filtering, then a final typed disposition follows. It deliberately has no
@@ -1 +1 @@
1
- {"version":3,"file":"state-store.d.ts","sourceRoot":"","sources":["../../../../src/domain/gateway/slack/state-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state-store.d.ts","sourceRoot":"","sources":["../../../../src/domain/gateway/slack/state-store.ts"],"names":[],"mappings":"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"}
@@ -125,6 +125,22 @@ export class DeadLetterStore {
125
125
  }
126
126
  return parseLines(raw);
127
127
  }
128
+ /** Non-destructive read that keeps an ABSENT file apart from an UNREADABLE one.
129
+ * A caller that surfaces a count must not report a false zero when the file
130
+ * exists but could not be read: absent is a real empty set, any other error is
131
+ * a named read failure. */
132
+ readResult() {
133
+ let raw;
134
+ try {
135
+ raw = this.fsops.readFileSync(this.file);
136
+ }
137
+ catch (error) {
138
+ if (error.code === "ENOENT")
139
+ return { ok: true, entries: [] };
140
+ return { ok: false, reason: error.message || "dead-letter file could not be read" };
141
+ }
142
+ return { ok: true, entries: parseLines(raw) };
143
+ }
128
144
  /** Atomically replace the durable set (temp-write + rename). Used after a retry pass. */
129
145
  replaceAll(entries) {
130
146
  this.fsops.mkdirp(path.dirname(this.file));
@@ -1 +1 @@
1
- {"version":3,"file":"state-store.js","sourceRoot":"","sources":["../../../../src/domain/gateway/slack/state-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state-store.js","sourceRoot":"","sources":["../../../../src/domain/gateway/slack/state-store.ts"],"names":[],"mappings":"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"}