crewly 1.20.211 → 1.20.212

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 (186) hide show
  1. package/config/roles/orchestrator/prompt.md +1 -0
  2. package/config/skills/agent/core/send-message/SKILL.md +9 -0
  3. package/config/skills/orchestrator/delegate-task/SKILL.md +9 -0
  4. package/config/skills/orchestrator/get-team-status/SKILL.md +9 -0
  5. package/config/skills/orchestrator/get-team-status/execute.sh +5 -1
  6. package/config/skills/orchestrator/send-message/SKILL.md +9 -0
  7. package/config/skills/orchestrator/start-agent/SKILL.md +9 -0
  8. package/config/skills/orchestrator/start-team/SKILL.md +9 -0
  9. package/config/skills/team-leader/assign-ticket/SKILL.md +9 -0
  10. package/config/skills/team-leader/delegate-task/SKILL.md +9 -0
  11. package/dist/backend/backend/src/constants.d.ts +25 -0
  12. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  13. package/dist/backend/backend/src/constants.js +25 -0
  14. package/dist/backend/backend/src/constants.js.map +1 -1
  15. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts +12 -0
  16. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
  17. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +36 -1
  18. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
  19. package/dist/backend/backend/src/controllers/request-types.d.ts +10 -1
  20. package/dist/backend/backend/src/controllers/request-types.d.ts.map +1 -1
  21. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts +0 -36
  22. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -1
  23. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +41 -1
  24. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
  25. package/dist/backend/backend/src/controllers/team/team-pause.controller.d.ts +59 -0
  26. package/dist/backend/backend/src/controllers/team/team-pause.controller.d.ts.map +1 -0
  27. package/dist/backend/backend/src/controllers/team/team-pause.controller.js +161 -0
  28. package/dist/backend/backend/src/controllers/team/team-pause.controller.js.map +1 -0
  29. package/dist/backend/backend/src/controllers/team/team.controller.d.ts +14 -0
  30. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  31. package/dist/backend/backend/src/controllers/team/team.controller.js +78 -5
  32. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  33. package/dist/backend/backend/src/controllers/team/team.routes.d.ts.map +1 -1
  34. package/dist/backend/backend/src/controllers/team/team.routes.js +7 -1
  35. package/dist/backend/backend/src/controllers/team/team.routes.js.map +1 -1
  36. package/dist/backend/backend/src/index.d.ts.map +1 -1
  37. package/dist/backend/backend/src/index.js +18 -1
  38. package/dist/backend/backend/src/index.js.map +1 -1
  39. package/dist/backend/backend/src/models/Team.d.ts +5 -1
  40. package/dist/backend/backend/src/models/Team.d.ts.map +1 -1
  41. package/dist/backend/backend/src/models/Team.js +8 -0
  42. package/dist/backend/backend/src/models/Team.js.map +1 -1
  43. package/dist/backend/backend/src/services/agent/owner-stopped.registry.d.ts +7 -2
  44. package/dist/backend/backend/src/services/agent/owner-stopped.registry.d.ts.map +1 -1
  45. package/dist/backend/backend/src/services/agent/owner-stopped.registry.js +9 -3
  46. package/dist/backend/backend/src/services/agent/owner-stopped.registry.js.map +1 -1
  47. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  48. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +14 -4
  49. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  50. package/dist/backend/backend/src/services/core/storage.service.d.ts.map +1 -1
  51. package/dist/backend/backend/src/services/core/storage.service.js +6 -0
  52. package/dist/backend/backend/src/services/core/storage.service.js.map +1 -1
  53. package/dist/backend/backend/src/services/messaging/owner-message-watchdog.wiring.d.ts.map +1 -1
  54. package/dist/backend/backend/src/services/messaging/owner-message-watchdog.wiring.js +6 -0
  55. package/dist/backend/backend/src/services/messaging/owner-message-watchdog.wiring.js.map +1 -1
  56. package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.d.ts +12 -0
  57. package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.d.ts.map +1 -1
  58. package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.js +59 -0
  59. package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.js.map +1 -1
  60. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.d.ts.map +1 -1
  61. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.js +12 -6
  62. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.js.map +1 -1
  63. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
  64. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +5 -0
  65. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -1
  66. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -1
  67. package/dist/backend/backend/src/services/reconciler/reconciler.service.js +4 -0
  68. package/dist/backend/backend/src/services/reconciler/reconciler.service.js.map +1 -1
  69. package/dist/backend/backend/src/services/slack/slack-agent-dm.service.d.ts.map +1 -1
  70. package/dist/backend/backend/src/services/slack/slack-agent-dm.service.js +22 -0
  71. package/dist/backend/backend/src/services/slack/slack-agent-dm.service.js.map +1 -1
  72. package/dist/backend/backend/src/services/slack/slack-channel-members.d.ts +27 -0
  73. package/dist/backend/backend/src/services/slack/slack-channel-members.d.ts.map +1 -0
  74. package/dist/backend/backend/src/services/slack/slack-channel-members.js +54 -0
  75. package/dist/backend/backend/src/services/slack/slack-channel-members.js.map +1 -0
  76. package/dist/backend/backend/src/services/slack/slack-directory.service.d.ts.map +1 -1
  77. package/dist/backend/backend/src/services/slack/slack-directory.service.js +7 -2
  78. package/dist/backend/backend/src/services/slack/slack-directory.service.js.map +1 -1
  79. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
  80. package/dist/backend/backend/src/services/slack/slack-initializer.js +3 -0
  81. package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
  82. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  83. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +19 -0
  84. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  85. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +48 -0
  86. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  87. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +155 -4
  88. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  89. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +11 -0
  90. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  91. package/dist/backend/backend/src/services/task-pool/task-pool.service.js +36 -1
  92. package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  93. package/dist/backend/backend/src/services/task-pool/untargeted-router.d.ts.map +1 -1
  94. package/dist/backend/backend/src/services/task-pool/untargeted-router.js +14 -6
  95. package/dist/backend/backend/src/services/task-pool/untargeted-router.js.map +1 -1
  96. package/dist/backend/backend/src/services/team/team-pause-command.d.ts +97 -0
  97. package/dist/backend/backend/src/services/team/team-pause-command.d.ts.map +1 -0
  98. package/dist/backend/backend/src/services/team/team-pause-command.js +177 -0
  99. package/dist/backend/backend/src/services/team/team-pause-command.js.map +1 -0
  100. package/dist/backend/backend/src/services/team/team-pause-notice.d.ts +43 -0
  101. package/dist/backend/backend/src/services/team/team-pause-notice.d.ts.map +1 -0
  102. package/dist/backend/backend/src/services/team/team-pause-notice.js +61 -0
  103. package/dist/backend/backend/src/services/team/team-pause-notice.js.map +1 -0
  104. package/dist/backend/backend/src/services/team/team-pause.registry.d.ts +167 -0
  105. package/dist/backend/backend/src/services/team/team-pause.registry.d.ts.map +1 -0
  106. package/dist/backend/backend/src/services/team/team-pause.registry.js +263 -0
  107. package/dist/backend/backend/src/services/team/team-pause.registry.js.map +1 -0
  108. package/dist/backend/backend/src/services/team/team-pause.service.d.ts +172 -0
  109. package/dist/backend/backend/src/services/team/team-pause.service.d.ts.map +1 -0
  110. package/dist/backend/backend/src/services/team/team-pause.service.js +254 -0
  111. package/dist/backend/backend/src/services/team/team-pause.service.js.map +1 -0
  112. package/dist/backend/backend/src/services/team/team-pause.wiring.d.ts +30 -0
  113. package/dist/backend/backend/src/services/team/team-pause.wiring.d.ts.map +1 -0
  114. package/dist/backend/backend/src/services/team/team-pause.wiring.js +48 -0
  115. package/dist/backend/backend/src/services/team/team-pause.wiring.js.map +1 -0
  116. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts.map +1 -1
  117. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js +11 -0
  118. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js.map +1 -1
  119. package/dist/backend/backend/src/services/v3/trigger-engine.service.d.ts +9 -0
  120. package/dist/backend/backend/src/services/v3/trigger-engine.service.d.ts.map +1 -1
  121. package/dist/backend/backend/src/services/v3/trigger-engine.service.js +27 -2
  122. package/dist/backend/backend/src/services/v3/trigger-engine.service.js.map +1 -1
  123. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -1
  124. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +7 -0
  125. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
  126. package/dist/backend/backend/src/services/workflow/cron-task.service.d.ts.map +1 -1
  127. package/dist/backend/backend/src/services/workflow/cron-task.service.js +14 -0
  128. package/dist/backend/backend/src/services/workflow/cron-task.service.js.map +1 -1
  129. package/dist/backend/backend/src/services/workflow/message-scheduler.service.d.ts.map +1 -1
  130. package/dist/backend/backend/src/services/workflow/message-scheduler.service.js +5 -0
  131. package/dist/backend/backend/src/services/workflow/message-scheduler.service.js.map +1 -1
  132. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
  133. package/dist/backend/backend/src/services/workflow/scheduler.service.js +6 -0
  134. package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
  135. package/dist/backend/backend/src/types/index.d.ts +22 -0
  136. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  137. package/dist/backend/backend/src/types/index.js.map +1 -1
  138. package/dist/backend/build-info.json +2 -2
  139. package/dist/cli/backend/src/constants.d.ts +25 -0
  140. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  141. package/dist/cli/backend/src/constants.js +25 -0
  142. package/dist/cli/backend/src/constants.js.map +1 -1
  143. package/dist/cli/backend/src/models/Team.d.ts +5 -1
  144. package/dist/cli/backend/src/models/Team.d.ts.map +1 -1
  145. package/dist/cli/backend/src/models/Team.js +8 -0
  146. package/dist/cli/backend/src/models/Team.js.map +1 -1
  147. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  148. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +14 -4
  149. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  150. package/dist/cli/backend/src/services/core/storage.service.d.ts.map +1 -1
  151. package/dist/cli/backend/src/services/core/storage.service.js +6 -0
  152. package/dist/cli/backend/src/services/core/storage.service.js.map +1 -1
  153. package/dist/cli/backend/src/services/slack/slack-agent-dm.service.d.ts.map +1 -1
  154. package/dist/cli/backend/src/services/slack/slack-agent-dm.service.js +22 -0
  155. package/dist/cli/backend/src/services/slack/slack-agent-dm.service.js.map +1 -1
  156. package/dist/cli/backend/src/services/slack/slack-directory.service.d.ts.map +1 -1
  157. package/dist/cli/backend/src/services/slack/slack-directory.service.js +7 -2
  158. package/dist/cli/backend/src/services/slack/slack-directory.service.js.map +1 -1
  159. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  160. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js +19 -0
  161. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  162. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +48 -0
  163. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  164. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +155 -4
  165. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  166. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +11 -0
  167. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  168. package/dist/cli/backend/src/services/task-pool/task-pool.service.js +36 -1
  169. package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  170. package/dist/cli/backend/src/services/team/team-pause-notice.d.ts +43 -0
  171. package/dist/cli/backend/src/services/team/team-pause-notice.d.ts.map +1 -0
  172. package/dist/cli/backend/src/services/team/team-pause-notice.js +61 -0
  173. package/dist/cli/backend/src/services/team/team-pause-notice.js.map +1 -0
  174. package/dist/cli/backend/src/services/team/team-pause.registry.d.ts +167 -0
  175. package/dist/cli/backend/src/services/team/team-pause.registry.d.ts.map +1 -0
  176. package/dist/cli/backend/src/services/team/team-pause.registry.js +263 -0
  177. package/dist/cli/backend/src/services/team/team-pause.registry.js.map +1 -0
  178. package/dist/cli/backend/src/services/workflow/cron-task.service.d.ts.map +1 -1
  179. package/dist/cli/backend/src/services/workflow/cron-task.service.js +14 -0
  180. package/dist/cli/backend/src/services/workflow/cron-task.service.js.map +1 -1
  181. package/dist/cli/backend/src/types/index.d.ts +22 -0
  182. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  183. package/dist/cli/backend/src/types/index.js.map +1 -1
  184. package/frontend/dist/assets/{index-f64b333a.js → index-917db1b8.js} +279 -279
  185. package/frontend/dist/index.html +1 -1
  186. package/package.json +1 -1
@@ -113,6 +113,20 @@ export interface SlackTeamChannelServiceDeps {
113
113
  resolveInstanceId?: () => Promise<string | null>;
114
114
  /** An ad-hoc room gained a member: tell Cloud soon, not at the next 5-minute heartbeat. */
115
115
  onRoomsChanged?: () => void;
116
+ /**
117
+ * Who is in a Slack channel, read with one agent's own bot token
118
+ * (`conversations.members`). Used to drop ad-hoc room members whose bot is
119
+ * not actually in the channel; optional — without it nothing is pruned.
120
+ */
121
+ listChannelMembers?: (channelId: string, botToken: string) => Promise<{
122
+ ok: true;
123
+ members: string[];
124
+ } | {
125
+ ok: false;
126
+ error: string;
127
+ }>;
128
+ /** Re-read the agents' bot ids and tokens from Cloud (before pruning anyone); optional. */
129
+ refreshIdentities?: () => Promise<unknown>;
116
130
  /** Ask Cloud to deliver a room message to an agent on another machine. */
117
131
  handoffViaCloud?: (body: {
118
132
  agentSession: string;
@@ -202,6 +216,7 @@ export declare function slackChannelNameFor(teamName: string, prefix?: string):
202
216
  * awake room member. Null when nobody is awake (Cloud's fallback decides).
203
217
  *
204
218
  * Cloud's delivery facts come first (specs/2026-10-04-room-delivery-audit.md):
219
+ * with `nobody-awake`, Cloud's fallback machine is the owner; otherwise
205
220
  * the responder Cloud names (`delivery.owner`) is the owner — Cloud pushes it
206
221
  * first and names another if it cannot be reached. Without one, the owner is
207
222
  * computed among the machines Cloud delivered to (`delivery.targets`) only,
@@ -221,6 +236,9 @@ export declare function roomOwnerInstance(room: {
221
236
  home?: {
222
237
  instanceId: string;
223
238
  };
239
+ fallback?: {
240
+ instanceId: string;
241
+ };
224
242
  delivery?: Pick<SlackRoomDelivery, 'owner' | 'targets' | 'rule'>;
225
243
  }): string | null;
226
244
  /**
@@ -377,6 +395,8 @@ export declare class SlackTeamChannelService {
377
395
  private readonly deps;
378
396
  private readonly storePath;
379
397
  private store;
398
+ private pruneTimer;
399
+ private pruneInterval;
380
400
  private loading;
381
401
  private unsubscribeStorage;
382
402
  private unsubscribeIdentity;
@@ -414,6 +434,23 @@ export declare class SlackTeamChannelService {
414
434
  * `isConnected()` at the time it runs.
415
435
  */
416
436
  start(): Promise<void>;
437
+ /**
438
+ * Drop ad-hoc room members whose bot is not in the Slack channel.
439
+ *
440
+ * Each room is read with its members' own bot tokens, one after another,
441
+ * until one can read it (`conversations.members`): members whose bot user
442
+ * is not in that list are dropped. A bot that gets `not_in_channel` /
443
+ * `channel_not_found` is itself not in the room and is dropped. A member
444
+ * with no bot of its own, or a read that fails otherwise (rate limit,
445
+ * network), is kept — nothing is dropped on a guess. A dropped agent comes
446
+ * back on its own the next time a copy arrives through its app.
447
+ *
448
+ * @returns Per room changed: the channel and the sessions dropped
449
+ */
450
+ pruneAdhocMembers(): Promise<Array<{
451
+ slackChannelId: string;
452
+ removed: string[];
453
+ }>>;
417
454
  /**
418
455
  * Make sure the master bot is still a member of every channel we map.
419
456
  *
@@ -642,6 +679,17 @@ export declare class SlackTeamChannelService {
642
679
  * @returns The sessions that declined
643
680
  */
644
681
  private declineDedicatedMentions;
682
+ /**
683
+ * Take every @'d agent of a paused team off the list
684
+ * (specs/2026-10-04-team-pause.md): it is not woken; the thread gets one
685
+ * short auto-reply from that agent's bot, at most once per thread.
686
+ *
687
+ * @param message - Inbound channel message
688
+ * @param mentions - Sessions it addressed
689
+ * @param nameOf - Display name of a session
690
+ * @returns The sessions taken off
691
+ */
692
+ private declinePausedMentions;
645
693
  /**
646
694
  * Route an inbound Slack message that arrived in a mapped channel.
647
695
  *
@@ -1 +1 @@
1
- {"version":3,"file":"slack-team-channel.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-team-channel.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slack-team-channel.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-team-channel.service.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,8 @@
24
24
  *
25
25
  * @module services/slack/slack-team-channel.service
26
26
  */
27
+ import { isSessionPaused, pausedTeamOfSession } from '../team/team-pause.registry.js';
28
+ import { pausedSlackNotice, pausedThreadNotices } from '../team/team-pause-notice.js';
27
29
  import { notePerson } from '../people/people-directory.service.js';
28
30
  import { dedicatedDecisionFor } from '../people/dedicated-agent.js';
29
31
  import { getTicketIntakeService } from '../v3/ticket-intake.service.js';
@@ -88,6 +90,7 @@ export function slackChannelNameFor(teamName, prefix = '') {
88
90
  * awake room member. Null when nobody is awake (Cloud's fallback decides).
89
91
  *
90
92
  * Cloud's delivery facts come first (specs/2026-10-04-room-delivery-audit.md):
93
+ * with `nobody-awake`, Cloud's fallback machine is the owner; otherwise
91
94
  * the responder Cloud names (`delivery.owner`) is the owner — Cloud pushes it
92
95
  * first and names another if it cannot be reached. Without one, the owner is
93
96
  * computed among the machines Cloud delivered to (`delivery.targets`) only,
@@ -102,6 +105,11 @@ export function roomOwnerInstance(room) {
102
105
  const delivery = room.delivery;
103
106
  if (delivery?.owner)
104
107
  return delivery.owner;
108
+ // Nobody awake anywhere: Cloud's one fallback machine wakes its lead and
109
+ // every other machine defers — never dispatching to agents that are awake
110
+ // only by its own count (review of crewly-services#34: two machines acted).
111
+ if (delivery?.rule === 'nobody-awake' && room.fallback?.instanceId)
112
+ return room.fallback.instanceId;
105
113
  const targets = delivery && Array.isArray(delivery.targets) && delivery.targets.length > 0 ? delivery.targets : null;
106
114
  const awakeMembers = room.members.filter((m) => m.awake && (!targets || targets.includes(m.instanceId)));
107
115
  const awake = [...new Set(awakeMembers.map((m) => m.instanceId))].sort();
@@ -351,6 +359,8 @@ export class SlackTeamChannelService {
351
359
  deps;
352
360
  storePath;
353
361
  store = null;
362
+ pruneTimer = null;
363
+ pruneInterval = null;
354
364
  loading = null;
355
365
  unsubscribeStorage = null;
356
366
  unsubscribeIdentity = null;
@@ -423,6 +433,94 @@ export class SlackTeamChannelService {
423
433
  this.logger.warn('Team channel reconcile failed (non-fatal)', { error: err instanceof Error ? err.message : String(err) });
424
434
  });
425
435
  void this.rejoinMappedChannels();
436
+ // Ad-hoc rosters only ever grew: an agent stayed a "member" of a room its
437
+ // bot had left (or was never in), and Cloud counted that machine as being
438
+ // in the room (2026-10-03 / 2026-10-04, #content-team). Check against
439
+ // Slack now and periodically.
440
+ if (this.deps.listChannelMembers) {
441
+ const run = () => void this.pruneAdhocMembers().catch((err) => this.logger.warn('Ad-hoc room prune failed (non-fatal)', { error: err instanceof Error ? err.message : String(err) }));
442
+ this.pruneTimer = setTimeout(run, SLACK_TEAM_CHANNEL_CONSTANTS.ADHOC_PRUNE_FIRST_DELAY_MS);
443
+ this.pruneInterval = setInterval(run, SLACK_TEAM_CHANNEL_CONSTANTS.ADHOC_PRUNE_INTERVAL_MS);
444
+ this.pruneTimer.unref?.();
445
+ this.pruneInterval.unref?.();
446
+ }
447
+ }
448
+ /**
449
+ * Drop ad-hoc room members whose bot is not in the Slack channel.
450
+ *
451
+ * Each room is read with its members' own bot tokens, one after another,
452
+ * until one can read it (`conversations.members`): members whose bot user
453
+ * is not in that list are dropped. A bot that gets `not_in_channel` /
454
+ * `channel_not_found` is itself not in the room and is dropped. A member
455
+ * with no bot of its own, or a read that fails otherwise (rate limit,
456
+ * network), is kept — nothing is dropped on a guess. A dropped agent comes
457
+ * back on its own the next time a copy arrives through its app.
458
+ *
459
+ * @returns Per room changed: the channel and the sessions dropped
460
+ */
461
+ async pruneAdhocMembers() {
462
+ const list = this.deps.listChannelMembers;
463
+ const identities = this.deps.identities;
464
+ if (!list || !identities)
465
+ return [];
466
+ await this.load();
467
+ await identities.load();
468
+ const changed = [];
469
+ // Who of a room's members is not in the Slack channel, by the bot ids
470
+ // and tokens the identity store holds right now.
471
+ const absent = async (mapping) => {
472
+ const bots = (mapping.members ?? []).map((session) => {
473
+ const installed = identities.getInstalled(session);
474
+ return { session, token: installed?.botToken ?? null, botUserId: installed?.botUserId ?? identities.get(session)?.botUserId ?? null };
475
+ });
476
+ const notInChannel = new Set();
477
+ let inChannel = null;
478
+ for (const bot of bots) {
479
+ if (!bot.token)
480
+ continue;
481
+ const res = await list(mapping.slackChannelId, bot.token);
482
+ if (res.ok) {
483
+ inChannel = new Set(res.members);
484
+ break;
485
+ }
486
+ if (res.error === 'not_in_channel' || res.error === 'channel_not_found')
487
+ notInChannel.add(bot.session);
488
+ }
489
+ const seen = inChannel;
490
+ return bots.filter((b) => notInChannel.has(b.session) || (seen !== null && !!b.botUserId && !seen.has(b.botUserId))).map((b) => b.session);
491
+ };
492
+ let refreshed = false;
493
+ for (const mapping of this.store?.mappings ?? []) {
494
+ if (!isAdhocMapping(mapping) || (mapping.members ?? []).length === 0)
495
+ continue;
496
+ let removed = await absent(mapping);
497
+ if (removed.length > 0 && this.deps.refreshIdentities) {
498
+ // A reinstalled app has a new bot user id and token: re-read them and
499
+ // check again before dropping anyone, so a reinstall does not flap
500
+ // the roster (review of crewly#1067).
501
+ if (!refreshed) {
502
+ refreshed = true;
503
+ await this.deps.refreshIdentities().catch((err) => this.logger.warn('Could not refresh agent identities before pruning', { error: err instanceof Error ? err.message : String(err) }));
504
+ }
505
+ const again = new Set(await absent(mapping));
506
+ removed = removed.filter((s) => again.has(s));
507
+ }
508
+ if (removed.length === 0)
509
+ continue;
510
+ mapping.members = (mapping.members ?? []).filter((m) => !removed.includes(m));
511
+ this.deps.chat.setHuddleMembers(mapping.chatChannelId, mapping.members);
512
+ changed.push({ slackChannelId: mapping.slackChannelId, removed });
513
+ this.logger.info('Ad-hoc room members dropped — their bots are not in the Slack channel', {
514
+ slackChannel: `#${mapping.slackChannelName}`,
515
+ removed,
516
+ remaining: mapping.members,
517
+ });
518
+ }
519
+ if (changed.length > 0) {
520
+ await this.save();
521
+ this.deps.onRoomsChanged?.();
522
+ }
523
+ return changed;
426
524
  }
427
525
  /**
428
526
  * Make sure the master bot is still a member of every channel we map.
@@ -565,6 +663,12 @@ export class SlackTeamChannelService {
565
663
  for (const pending of this.unanswered.values())
566
664
  clearTimeout(pending.timer);
567
665
  this.unanswered.clear();
666
+ if (this.pruneTimer)
667
+ clearTimeout(this.pruneTimer);
668
+ if (this.pruneInterval)
669
+ clearInterval(this.pruneInterval);
670
+ this.pruneTimer = null;
671
+ this.pruneInterval = null;
568
672
  }
569
673
  // -------------------------------------------------------------------------
570
674
  // Store
@@ -1098,6 +1202,40 @@ export class SlackTeamChannelService {
1098
1202
  }
1099
1203
  return declined;
1100
1204
  }
1205
+ /**
1206
+ * Take every @'d agent of a paused team off the list
1207
+ * (specs/2026-10-04-team-pause.md): it is not woken; the thread gets one
1208
+ * short auto-reply from that agent's bot, at most once per thread.
1209
+ *
1210
+ * @param message - Inbound channel message
1211
+ * @param mentions - Sessions it addressed
1212
+ * @param nameOf - Display name of a session
1213
+ * @returns The sessions taken off
1214
+ */
1215
+ async declinePausedMentions(message, mentions, nameOf) {
1216
+ const declined = [];
1217
+ for (const sessionName of mentions) {
1218
+ const paused = pausedTeamOfSession(sessionName);
1219
+ if (!paused)
1220
+ continue;
1221
+ declined.push(sessionName);
1222
+ const threadTs = message.threadTs || message.ts;
1223
+ if (!pausedThreadNotices.claim(message.channelId, threadTs, paused.teamId))
1224
+ continue;
1225
+ const botToken = this.deps.identities?.getInstalled(sessionName)?.botToken;
1226
+ await this.deps.slack
1227
+ .sendMessage({
1228
+ channelId: message.channelId,
1229
+ text: pausedSlackNotice(paused, nameOf(sessionName), { toAgent: !!message.authorAgentSession }),
1230
+ threadTs,
1231
+ ...(botToken ? { botToken } : {}),
1232
+ skipChatV2Mirror: true,
1233
+ })
1234
+ .catch((err) => this.logger.warn('Could not post the paused-team notice', { sessionName, error: err instanceof Error ? err.message : String(err) }));
1235
+ this.logger.info('Paused agent @-mentioned in Slack — not woken, thread told', { sessionName, team: paused.teamName });
1236
+ }
1237
+ return declined;
1238
+ }
1101
1239
  /**
1102
1240
  * Route an inbound Slack message that arrived in a mapped channel.
1103
1241
  *
@@ -1218,8 +1356,14 @@ export class SlackTeamChannelService {
1218
1356
  // posts a polite decline from its own bot and is taken off the list —
1219
1357
  // nothing is dispatched to it and it is not woken.
1220
1358
  const declinedDedicated = !message.authorAgentSession && message.userId && resolved.mentions.length > 0 ? await this.declineDedicatedMentions(message, resolved.mentions) : [];
1221
- const declinedOnly = declinedDedicated.length > 0 && resolved.mentions.every((sess) => declinedDedicated.includes(sess));
1222
- for (const sess of declinedDedicated)
1359
+ // Agents of a paused team (specs/2026-10-04-team-pause.md) are taken off
1360
+ // too: not woken, and the thread is told once.
1361
+ const declinedPaused = resolved.mentions.length > 0
1362
+ ? await this.declinePausedMentions(message, resolved.mentions.filter((sess) => !declinedDedicated.includes(sess)), (sess) => candidates.find((c) => c.sessionName === sess)?.name ?? sess)
1363
+ : [];
1364
+ const declinedAll = [...declinedDedicated, ...declinedPaused];
1365
+ const declinedOnly = declinedAll.length > 0 && resolved.mentions.every((sess) => declinedAll.includes(sess));
1366
+ for (const sess of declinedAll)
1223
1367
  resolved.mentions.splice(resolved.mentions.indexOf(sess), 1);
1224
1368
  const agentsMentionedViaCloud = [...new Set([...(message.mentionedAgentSessions ?? []), ...namedElsewhere])];
1225
1369
  const mentionedElsewhere = agentsMentionedViaCloud.filter((sess) => !isLocal(sess));
@@ -2191,7 +2335,8 @@ export class SlackTeamChannelService {
2191
2335
  const team = teams.find((t) => t.id === mapping.teamId) ?? null;
2192
2336
  const isLocal = (s) => this.deps.isLocalAgent?.(s) ?? true;
2193
2337
  const roster = team ? teamChannelMembers(team) : null;
2194
- const local = (roster ? roster.map((m) => m.sessionName) : (mapping.members ?? [])).filter(isLocal);
2338
+ // Never a paused team's agent (specs/2026-10-04-team-pause.md).
2339
+ const local = (roster ? roster.map((m) => m.sessionName) : (mapping.members ?? [])).filter((s) => isLocal(s) && !isSessionPaused(s));
2195
2340
  if (local.length === 0)
2196
2341
  return null;
2197
2342
  const turns = this.deps.chat.queryRecentTurnsForDispatch?.(mapping.chatChannelId, undefined, SLACK_TEAM_CHANNEL_CONSTANTS.ROOM_LAST_SPEAKER_SCAN) ?? [];
@@ -2388,7 +2533,13 @@ export class SlackTeamChannelService {
2388
2533
  const me = this.deps.resolveInstanceId ? await this.deps.resolveInstanceId().catch(() => null) : null;
2389
2534
  const isHere = (m) => me ? m.instanceId === me : (this.deps.isLocalAgent?.(localAgentSession(m.agentSession)) ?? false);
2390
2535
  const owner = me ? roomOwnerInstance(room) : null;
2391
- return !!owner && owner !== me && room.members.some((m) => !isHere(m) && m.awake);
2536
+ if (!owner || owner === me)
2537
+ return false;
2538
+ // Cloud named the machine (its responder, or its fallback when nobody is
2539
+ // awake): that machine has the message and acts; this one defers.
2540
+ if (room.delivery?.owner || room.delivery?.rule === 'nobody-awake')
2541
+ return true;
2542
+ return room.members.some((m) => !isHere(m) && m.awake);
2392
2543
  }
2393
2544
  /**
2394
2545
  * Hand a room message to one agent, wherever it runs.