crewly 1.20.188 → 1.20.190

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 (140) hide show
  1. package/config/skills/agent/core/attach-file/execute.sh +13 -4
  2. package/config/skills/agent/core/complete-task/execute.sh +3 -0
  3. package/config/skills/agent/core/reply/SKILL.md +32 -4
  4. package/config/skills/agent/core/reply/execute.sh +23 -1
  5. package/config/skills/agent/core/reply/execute.test.sh +9 -0
  6. package/config/skills/agent/core/reply-chat/SKILL.md +9 -2
  7. package/config/skills/agent/core/reply-chat/execute.sh +13 -1
  8. package/config/skills/agent/core/report-status/execute.sh +5 -0
  9. package/config/skills/agent/core/send-chat-response/execute.sh +1 -1
  10. package/dist/backend/backend/src/constants.d.ts +23 -0
  11. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  12. package/dist/backend/backend/src/constants.js +27 -1
  13. package/dist/backend/backend/src/constants.js.map +1 -1
  14. package/dist/backend/backend/src/controllers/chat/agent-reply.controller.d.ts +14 -1
  15. package/dist/backend/backend/src/controllers/chat/agent-reply.controller.d.ts.map +1 -1
  16. package/dist/backend/backend/src/controllers/chat/agent-reply.controller.js +66 -78
  17. package/dist/backend/backend/src/controllers/chat/agent-reply.controller.js.map +1 -1
  18. package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts +12 -0
  19. package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
  20. package/dist/backend/backend/src/controllers/chat/chat.controller.js +148 -24
  21. package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
  22. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts.map +1 -1
  23. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js +62 -0
  24. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js.map +1 -1
  25. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  26. package/dist/backend/backend/src/controllers/slack/slack.controller.js +120 -35
  27. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  28. package/dist/backend/backend/src/scripts/repair-orphan-superseded-decisions.d.ts +56 -0
  29. package/dist/backend/backend/src/scripts/repair-orphan-superseded-decisions.d.ts.map +1 -0
  30. package/dist/backend/backend/src/scripts/repair-orphan-superseded-decisions.js +114 -0
  31. package/dist/backend/backend/src/scripts/repair-orphan-superseded-decisions.js.map +1 -0
  32. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts +7 -0
  33. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
  34. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js +9 -0
  35. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
  36. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts +7 -0
  37. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
  38. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js +19 -0
  39. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
  40. package/dist/backend/backend/src/services/decisions/decision.service.d.ts +4 -1
  41. package/dist/backend/backend/src/services/decisions/decision.service.d.ts.map +1 -1
  42. package/dist/backend/backend/src/services/decisions/decision.service.js +10 -3
  43. package/dist/backend/backend/src/services/decisions/decision.service.js.map +1 -1
  44. package/dist/backend/backend/src/services/memory/project-memory.service.d.ts.map +1 -1
  45. package/dist/backend/backend/src/services/memory/project-memory.service.js +21 -10
  46. package/dist/backend/backend/src/services/memory/project-memory.service.js.map +1 -1
  47. package/dist/backend/backend/src/services/open-items/open-items.service.d.ts +29 -0
  48. package/dist/backend/backend/src/services/open-items/open-items.service.d.ts.map +1 -1
  49. package/dist/backend/backend/src/services/open-items/open-items.service.js +92 -8
  50. package/dist/backend/backend/src/services/open-items/open-items.service.js.map +1 -1
  51. package/dist/backend/backend/src/services/open-items/open-items.wiring.js +2 -2
  52. package/dist/backend/backend/src/services/open-items/open-items.wiring.js.map +1 -1
  53. package/dist/backend/backend/src/services/orc/agent-prompt-reference.service.d.ts +81 -0
  54. package/dist/backend/backend/src/services/orc/agent-prompt-reference.service.d.ts.map +1 -0
  55. package/dist/backend/backend/src/services/orc/agent-prompt-reference.service.js +88 -0
  56. package/dist/backend/backend/src/services/orc/agent-prompt-reference.service.js.map +1 -0
  57. package/dist/backend/backend/src/services/orc/orc-reply-route.service.d.ts +8 -0
  58. package/dist/backend/backend/src/services/orc/orc-reply-route.service.d.ts.map +1 -1
  59. package/dist/backend/backend/src/services/orc/orc-reply-route.service.js +11 -0
  60. package/dist/backend/backend/src/services/orc/orc-reply-route.service.js.map +1 -1
  61. package/dist/backend/backend/src/services/orc/reply-destination-resolver.d.ts +218 -0
  62. package/dist/backend/backend/src/services/orc/reply-destination-resolver.d.ts.map +1 -0
  63. package/dist/backend/backend/src/services/orc/reply-destination-resolver.js +343 -0
  64. package/dist/backend/backend/src/services/orc/reply-destination-resolver.js.map +1 -0
  65. package/dist/backend/backend/src/services/orc/reply-destination.wiring.d.ts +98 -0
  66. package/dist/backend/backend/src/services/orc/reply-destination.wiring.d.ts.map +1 -0
  67. package/dist/backend/backend/src/services/orc/reply-destination.wiring.js +362 -0
  68. package/dist/backend/backend/src/services/orc/reply-destination.wiring.js.map +1 -0
  69. package/dist/backend/backend/src/services/slack/slack-agent-dm.service.d.ts +9 -1
  70. package/dist/backend/backend/src/services/slack/slack-agent-dm.service.d.ts.map +1 -1
  71. package/dist/backend/backend/src/services/slack/slack-agent-dm.service.js +32 -7
  72. package/dist/backend/backend/src/services/slack/slack-agent-dm.service.js.map +1 -1
  73. package/dist/backend/backend/src/services/slack/slack-agent-post.service.d.ts +2 -2
  74. package/dist/backend/backend/src/services/slack/slack-agent-post.service.d.ts.map +1 -1
  75. package/dist/backend/backend/src/services/slack/slack-agent-post.service.js +9 -0
  76. package/dist/backend/backend/src/services/slack/slack-agent-post.service.js.map +1 -1
  77. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
  78. package/dist/backend/backend/src/services/slack/slack-initializer.js +4 -1
  79. package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
  80. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +1 -1
  81. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  82. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +24 -4
  83. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  84. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.d.ts +89 -7
  85. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.d.ts.map +1 -1
  86. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.js +159 -21
  87. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.js.map +1 -1
  88. package/dist/backend/backend/src/services/v3/ticket-intake.service.d.ts +23 -4
  89. package/dist/backend/backend/src/services/v3/ticket-intake.service.d.ts.map +1 -1
  90. package/dist/backend/backend/src/services/v3/ticket-intake.service.js +42 -4
  91. package/dist/backend/backend/src/services/v3/ticket-intake.service.js.map +1 -1
  92. package/dist/backend/build-info.json +2 -2
  93. package/dist/cli/backend/src/constants.d.ts +23 -0
  94. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  95. package/dist/cli/backend/src/constants.js +27 -1
  96. package/dist/cli/backend/src/constants.js.map +1 -1
  97. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts +7 -0
  98. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
  99. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js +9 -0
  100. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
  101. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts +7 -0
  102. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
  103. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js +19 -0
  104. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
  105. package/dist/cli/backend/src/services/decisions/decision.service.d.ts +4 -1
  106. package/dist/cli/backend/src/services/decisions/decision.service.d.ts.map +1 -1
  107. package/dist/cli/backend/src/services/decisions/decision.service.js +10 -3
  108. package/dist/cli/backend/src/services/decisions/decision.service.js.map +1 -1
  109. package/dist/cli/backend/src/services/memory/project-memory.service.d.ts.map +1 -1
  110. package/dist/cli/backend/src/services/memory/project-memory.service.js +21 -10
  111. package/dist/cli/backend/src/services/memory/project-memory.service.js.map +1 -1
  112. package/dist/cli/backend/src/services/open-items/open-items.service.d.ts +457 -0
  113. package/dist/cli/backend/src/services/open-items/open-items.service.d.ts.map +1 -0
  114. package/dist/cli/backend/src/services/open-items/open-items.service.js +1158 -0
  115. package/dist/cli/backend/src/services/open-items/open-items.service.js.map +1 -0
  116. package/dist/cli/backend/src/services/orc/agent-prompt-reference.service.d.ts +81 -0
  117. package/dist/cli/backend/src/services/orc/agent-prompt-reference.service.d.ts.map +1 -0
  118. package/dist/cli/backend/src/services/orc/agent-prompt-reference.service.js +88 -0
  119. package/dist/cli/backend/src/services/orc/agent-prompt-reference.service.js.map +1 -0
  120. package/dist/cli/backend/src/services/orc/orc-reply-route.service.d.ts +8 -0
  121. package/dist/cli/backend/src/services/orc/orc-reply-route.service.d.ts.map +1 -1
  122. package/dist/cli/backend/src/services/orc/orc-reply-route.service.js +11 -0
  123. package/dist/cli/backend/src/services/orc/orc-reply-route.service.js.map +1 -1
  124. package/dist/cli/backend/src/services/slack/slack-agent-dm.service.d.ts +9 -1
  125. package/dist/cli/backend/src/services/slack/slack-agent-dm.service.d.ts.map +1 -1
  126. package/dist/cli/backend/src/services/slack/slack-agent-dm.service.js +32 -7
  127. package/dist/cli/backend/src/services/slack/slack-agent-dm.service.js.map +1 -1
  128. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +1 -1
  129. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  130. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +24 -4
  131. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  132. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.d.ts +89 -7
  133. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.d.ts.map +1 -1
  134. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.js +159 -21
  135. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.js.map +1 -1
  136. package/dist/cli/backend/src/services/v3/ticket-intake.service.d.ts +23 -4
  137. package/dist/cli/backend/src/services/v3/ticket-intake.service.d.ts.map +1 -1
  138. package/dist/cli/backend/src/services/v3/ticket-intake.service.js +42 -4
  139. package/dist/cli/backend/src/services/v3/ticket-intake.service.js.map +1 -1
  140. package/package.json +1 -1
@@ -13,6 +13,7 @@
13
13
  *
14
14
  * @module services/slack/slack-typing-placeholder.service
15
15
  */
16
+ import { type OwnerMessageEntry } from '../messaging/owner-message-watchdog.service.js';
16
17
  /**
17
18
  * Whether an agent message is an interim note ("got it — here is my plan")
18
19
  * rather than the answer: the mirror posts it and puts the placeholder back.
@@ -79,6 +80,13 @@ export interface TypingKeyParts {
79
80
  /** Constructor dependencies. */
80
81
  export interface SlackTypingPlaceholderDeps {
81
82
  slack: TypingSlackApi;
83
+ /**
84
+ * Whether the owner-message watchdog tracks this placeholder's message as
85
+ * an answer the agent still owes (not an acknowledgement). Such a
86
+ * placeholder stays up at turn end unless its thread was answered
87
+ * (specs/2026-10-02-harness-owned-routing.md §5). Absent = nothing is owed.
88
+ */
89
+ isOwed?: (agentSession: string, placeholder: TypingPlaceholder) => boolean;
82
90
  timeoutMs?: number;
83
91
  setTimer?: (fn: () => void, ms: number) => ReturnType<typeof setTimeout>;
84
92
  clearTimer?: (t: ReturnType<typeof setTimeout>) => void;
@@ -121,6 +129,12 @@ export declare class SlackTypingPlaceholderService {
121
129
  private readonly locks;
122
130
  /** Agents with a turn-end second look already scheduled. */
123
131
  private readonly recheckScheduled;
132
+ /**
133
+ * When an answer was last posted in a thread (`<channel>:<threadTs>`), by
134
+ * anyone — a placeholder is only ✅-settled at turn end when its thread got
135
+ * one (specs/2026-10-02-harness-owned-routing.md §5).
136
+ */
137
+ private readonly answeredAt;
124
138
  /** Told when a thread gets a placeholder or an answer (see {@link onThreadActivity}). */
125
139
  private readonly threadListeners;
126
140
  /** Told when a thread got its answer (see {@link onThreadAnswered}). */
@@ -293,19 +307,77 @@ export declare class SlackTypingPlaceholderService {
293
307
  now?: number;
294
308
  }): TypingKeyParts | null;
295
309
  /**
296
- * The agent finished its turn. Any placeholder it still owes (pending, or
297
- * timed out into "still working") and is older than SETTLE_MIN_AGE_MS
298
- * means it decided no reply was needed — an "ok"/"好"/"没关系", or another
299
- * agent's acknowledgement. Take the placeholder down instead of leaving a
300
- * promise that never comes: the owner read those "⏱ still working — the
301
- * reply will follow" lines as unanswered messages (2026-09-25, 13 of them
302
- * in two days). A reply that still arrives later posts as a new message.
310
+ * An answer was posted in this thread (any path: a reply, a file, a post
311
+ * naming the thread). Lets {@link settleTurnWithoutReply} take the
312
+ * thread's leftover placeholders down.
313
+ *
314
+ * @param slackChannelId - Channel / DM
315
+ * @param threadTs - Thread (undefined = top level)
316
+ * @param at - When (epoch ms; default now)
317
+ */
318
+ noteAnswerPosted(slackChannelId: string, threadTs: string | undefined, at?: number): void;
319
+ /**
320
+ * Forget answers older than {@link SLACK_TYPING_CONSTANTS.ANSWERED_KEEP_MS}.
321
+ *
322
+ * @param now - Clock (epoch ms)
323
+ */
324
+ private pruneAnswered;
325
+ /** @returns How many answered threads are remembered (tests) */
326
+ get answeredCount(): number;
327
+ /**
328
+ * Whether an answer was posted in the placeholder's thread after it went up.
329
+ *
330
+ * @param placeholder - Placeholder
331
+ * @param since - When it started (epoch ms)
332
+ * @returns True when the thread was answered
333
+ */
334
+ private answeredSince;
335
+ /**
336
+ * Whether a placeholder must stay up when the agent's turn ends: its
337
+ * message is one the watchdog tracks as owed (not an "ok"/"好") and no
338
+ * answer was posted in its thread since it went up.
339
+ *
340
+ * @param agentSession - Agent
341
+ * @param placeholder - Placeholder
342
+ * @param since - When it went up (epoch ms)
343
+ * @returns True to keep it
344
+ */
345
+ private keepAtTurnEnd;
346
+ /**
347
+ * The agent finished its turn. A placeholder it still owes (pending, or
348
+ * timed out into "still working") is taken down — with ✅ on the person's
349
+ * message — when its thread was answered, or when its message needs no
350
+ * answer (an acknowledgement, or nothing the watchdog tracks: the agent
351
+ * chose not to reply to an "ok"/"好", 1.20.136). A message the watchdog
352
+ * tracks as owed, with no answer in its thread, keeps its placeholder and
353
+ * the watchdog chases the agent (specs/2026-10-02-harness-owned-routing.md
354
+ * §5): ✅ on a message that was never answered (TKT-187) is gone. An agent
355
+ * that decides an owed message needs no answer says so with `reply --none`
356
+ * ({@link settleNoReplyNeeded}).
303
357
  *
304
358
  * @param agentSession - Agent whose turn ended
305
359
  * @param now - Clock (tests)
306
360
  * @returns How many placeholders were removed
307
361
  */
308
362
  settleTurnWithoutReply(agentSession: string, now?: number): Promise<number>;
363
+ /**
364
+ * `reply --none`: the agent says this thread needs no answer. Its
365
+ * placeholders there come down with ✅ on the person's message.
366
+ *
367
+ * @param agentSession - Agent
368
+ * @param slackChannelId - Channel / DM
369
+ * @param threadTs - Thread (undefined = top level)
370
+ * @returns How many placeholders were removed
371
+ */
372
+ settleNoReplyNeeded(agentSession: string, slackChannelId: string, threadTs?: string): Promise<number>;
373
+ /**
374
+ * Take settled placeholders down (delete, else edit to "no reply needed"),
375
+ * mark the person's message ✅ and tell listeners.
376
+ *
377
+ * @param agentSession - Agent
378
+ * @param victims - Placeholders already removed from the maps
379
+ */
380
+ private settleVictims;
309
381
  /**
310
382
  * A placeholder too young to take down when the turn ended (it may belong
311
383
  * to a message delivered just before the idle signal) gets a second look
@@ -339,6 +411,16 @@ export declare class SlackTypingPlaceholderService {
339
411
  get pendingCount(): number;
340
412
  private expire;
341
413
  }
414
+ /**
415
+ * Whether a placeholder's message is one the owner-message watchdog tracks
416
+ * as owed by the agent: same Slack conversation and message (or thread),
417
+ * and not a bare acknowledgement.
418
+ *
419
+ * @param owed - The agent's open watchdog entries (`owedBy`)
420
+ * @param placeholder - Placeholder
421
+ * @returns True when the agent still owes that message an answer
422
+ */
423
+ export declare function isPlaceholderOwed(owed: ReadonlyArray<Pick<OwnerMessageEntry, 'slackChannelId' | 'threadTs' | 'sourceTs' | 'preview'>>, placeholder: Pick<TypingPlaceholder, 'slackChannelId' | 'threadTs' | 'sourceTs'>): boolean;
342
424
  /** @returns The wired service, or null before Slack started. */
343
425
  export declare function getSlackTypingPlaceholderService(): SlackTypingPlaceholderService | null;
344
426
  /** @param service - The service to expose (null to clear, for tests) */
@@ -1 +1 @@
1
- {"version":3,"file":"slack-typing-placeholder.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-typing-placeholder.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slack-typing-placeholder.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-typing-placeholder.service.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@
13
13
  *
14
14
  * @module services/slack/slack-typing-placeholder.service
15
15
  */
16
+ import { isAcknowledgement } from '../messaging/owner-message-watchdog.service.js';
16
17
  import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
17
18
  import * as path from 'path';
18
19
  import { SLACK_TYPING_CONSTANTS } from '../../constants.js';
@@ -51,6 +52,12 @@ export class SlackTypingPlaceholderService {
51
52
  locks = new Map();
52
53
  /** Agents with a turn-end second look already scheduled. */
53
54
  recheckScheduled = new Set();
55
+ /**
56
+ * When an answer was last posted in a thread (`<channel>:<threadTs>`), by
57
+ * anyone — a placeholder is only ✅-settled at turn end when its thread got
58
+ * one (specs/2026-10-02-harness-owned-routing.md §5).
59
+ */
60
+ answeredAt = new Map();
54
61
  /** Told when a thread gets a placeholder or an answer (see {@link onThreadActivity}). */
55
62
  threadListeners = new Set();
56
63
  /** Told when a thread got its answer (see {@link onThreadAnswered}). */
@@ -438,8 +445,10 @@ export class SlackTypingPlaceholderService {
438
445
  }
439
446
  if (opts.reopen)
440
447
  await this.post(k, key, identity, opts.reopen);
441
- else
448
+ else {
442
449
  this.notifyListeners(this.answeredListeners, key.slackChannelId, key.threadTs);
450
+ this.noteAnswerPosted(key.slackChannelId, key.threadTs);
451
+ }
443
452
  return outcome;
444
453
  });
445
454
  }
@@ -459,6 +468,7 @@ export class SlackTypingPlaceholderService {
459
468
  for (const p of all)
460
469
  await this.remove(p);
461
470
  this.notifyListeners(this.answeredListeners, key.slackChannelId, key.threadTs);
471
+ this.noteAnswerPosted(key.slackChannelId, key.threadTs);
462
472
  return all.length;
463
473
  });
464
474
  }
@@ -532,13 +542,76 @@ export class SlackTypingPlaceholderService {
532
542
  return fresh[0]?.key ?? null;
533
543
  }
534
544
  /**
535
- * The agent finished its turn. Any placeholder it still owes (pending, or
536
- * timed out into "still working") and is older than SETTLE_MIN_AGE_MS
537
- * means it decided no reply was needed — an "ok"/"好"/"没关系", or another
538
- * agent's acknowledgement. Take the placeholder down instead of leaving a
539
- * promise that never comes: the owner read those "⏱ still working — the
540
- * reply will follow" lines as unanswered messages (2026-09-25, 13 of them
541
- * in two days). A reply that still arrives later posts as a new message.
545
+ * An answer was posted in this thread (any path: a reply, a file, a post
546
+ * naming the thread). Lets {@link settleTurnWithoutReply} take the
547
+ * thread's leftover placeholders down.
548
+ *
549
+ * @param slackChannelId - Channel / DM
550
+ * @param threadTs - Thread (undefined = top level)
551
+ * @param at - When (epoch ms; default now)
552
+ */
553
+ noteAnswerPosted(slackChannelId, threadTs, at = Date.now()) {
554
+ this.pruneAnswered(at);
555
+ this.answeredAt.set(`${slackChannelId}:${threadTs ?? ''}`, at);
556
+ this.persist();
557
+ }
558
+ /**
559
+ * Forget answers older than {@link SLACK_TYPING_CONSTANTS.ANSWERED_KEEP_MS}.
560
+ *
561
+ * @param now - Clock (epoch ms)
562
+ */
563
+ pruneAnswered(now = Date.now()) {
564
+ const cutoff = now - SLACK_TYPING_CONSTANTS.ANSWERED_KEEP_MS;
565
+ for (const [k, at] of this.answeredAt)
566
+ if (at < cutoff)
567
+ this.answeredAt.delete(k);
568
+ }
569
+ /** @returns How many answered threads are remembered (tests) */
570
+ get answeredCount() {
571
+ return this.answeredAt.size;
572
+ }
573
+ /**
574
+ * Whether an answer was posted in the placeholder's thread after it went up.
575
+ *
576
+ * @param placeholder - Placeholder
577
+ * @param since - When it started (epoch ms)
578
+ * @returns True when the thread was answered
579
+ */
580
+ answeredSince(placeholder, since) {
581
+ const at = this.answeredAt.get(`${placeholder.slackChannelId}:${placeholder.threadTs ?? ''}`);
582
+ return at !== undefined && at >= since;
583
+ }
584
+ /**
585
+ * Whether a placeholder must stay up when the agent's turn ends: its
586
+ * message is one the watchdog tracks as owed (not an "ok"/"好") and no
587
+ * answer was posted in its thread since it went up.
588
+ *
589
+ * @param agentSession - Agent
590
+ * @param placeholder - Placeholder
591
+ * @param since - When it went up (epoch ms)
592
+ * @returns True to keep it
593
+ */
594
+ keepAtTurnEnd(agentSession, placeholder, since) {
595
+ if (this.answeredSince(placeholder, since))
596
+ return false;
597
+ try {
598
+ return this.deps.isOwed?.(agentSession, placeholder) === true;
599
+ }
600
+ catch {
601
+ return false;
602
+ }
603
+ }
604
+ /**
605
+ * The agent finished its turn. A placeholder it still owes (pending, or
606
+ * timed out into "still working") is taken down — with ✅ on the person's
607
+ * message — when its thread was answered, or when its message needs no
608
+ * answer (an acknowledgement, or nothing the watchdog tracks: the agent
609
+ * chose not to reply to an "ok"/"好", 1.20.136). A message the watchdog
610
+ * tracks as owed, with no answer in its thread, keeps its placeholder and
611
+ * the watchdog chases the agent (specs/2026-10-02-harness-owned-routing.md
612
+ * §5): ✅ on a message that was never answered (TKT-187) is gone. An agent
613
+ * that decides an owed message needs no answer says so with `reply --none`
614
+ * ({@link settleNoReplyNeeded}).
542
615
  *
543
616
  * @param agentSession - Agent whose turn ended
544
617
  * @param now - Clock (tests)
@@ -548,28 +621,75 @@ export class SlackTypingPlaceholderService {
548
621
  const minAge = SLACK_TYPING_CONSTANTS.SETTLE_MIN_AGE_MS;
549
622
  const victims = [];
550
623
  let youngest = null;
624
+ const clear = this.deps.clearTimer ?? ((t) => clearTimeout(t));
551
625
  for (const [k, entry] of [...this.pending]) {
552
626
  if (!k.startsWith(`${agentSession}:`))
553
627
  continue;
628
+ if (this.keepAtTurnEnd(agentSession, entry.placeholder, entry.startedAt))
629
+ continue;
554
630
  if (now - entry.startedAt < minAge) {
555
631
  youngest = Math.max(youngest ?? 0, entry.startedAt);
556
632
  continue;
557
633
  }
558
634
  if (this.inFlight.has(k))
559
635
  continue;
560
- const clear = this.deps.clearTimer ?? ((t) => clearTimeout(t));
561
636
  clear(entry.timer);
562
637
  if (entry.slowTimer)
563
638
  clear(entry.slowTimer);
564
639
  this.pending.delete(k);
565
640
  victims.push(entry.placeholder);
566
641
  }
567
- for (const [k, { placeholder }] of [...this.expired]) {
642
+ for (const [k, { placeholder, at }] of [...this.expired]) {
568
643
  if (!k.startsWith(`${agentSession}:`))
569
644
  continue;
645
+ if (this.keepAtTurnEnd(agentSession, placeholder, placeholder.postedAt ?? at))
646
+ continue;
570
647
  this.expired.delete(k);
571
648
  victims.push(placeholder);
572
649
  }
650
+ await this.settleVictims(agentSession, victims);
651
+ if (youngest !== null)
652
+ this.scheduleSettleRecheck(agentSession, youngest + minAge + SLACK_TYPING_CONSTANTS.SETTLE_RECHECK_MARGIN_MS);
653
+ return victims.length;
654
+ }
655
+ /**
656
+ * `reply --none`: the agent says this thread needs no answer. Its
657
+ * placeholders there come down with ✅ on the person's message.
658
+ *
659
+ * @param agentSession - Agent
660
+ * @param slackChannelId - Channel / DM
661
+ * @param threadTs - Thread (undefined = top level)
662
+ * @returns How many placeholders were removed
663
+ */
664
+ async settleNoReplyNeeded(agentSession, slackChannelId, threadTs) {
665
+ const k = keyOf({ agentSession, slackChannelId, ...(threadTs ? { threadTs } : {}) });
666
+ await this.inFlight.get(k);
667
+ const victims = [];
668
+ const entry = this.pending.get(k);
669
+ if (entry) {
670
+ const clear = this.deps.clearTimer ?? ((t) => clearTimeout(t));
671
+ clear(entry.timer);
672
+ if (entry.slowTimer)
673
+ clear(entry.slowTimer);
674
+ this.pending.delete(k);
675
+ victims.push(entry.placeholder);
676
+ }
677
+ const old = this.expired.get(k);
678
+ if (old) {
679
+ this.expired.delete(k);
680
+ victims.push(old.placeholder);
681
+ }
682
+ await this.settleVictims(agentSession, victims);
683
+ return victims.length;
684
+ }
685
+ /**
686
+ * Take settled placeholders down (delete, else edit to "no reply needed"),
687
+ * mark the person's message ✅ and tell listeners.
688
+ *
689
+ * @param agentSession - Agent
690
+ * @param victims - Placeholders already removed from the maps
691
+ */
692
+ async settleVictims(agentSession, victims) {
573
693
  for (const placeholder of victims) {
574
694
  try {
575
695
  if (this.deps.slack.deleteMessage) {
@@ -583,9 +703,9 @@ export class SlackTypingPlaceholderService {
583
703
  this.logger.debug('Could not take down a settled placeholder', { error: err instanceof Error ? err.message : String(err) });
584
704
  }
585
705
  this.notifyListeners(this.settledListeners, placeholder.slackChannelId, placeholder.threadTs);
586
- // Leave a trace on the person's message: read and handled, no reply
587
- // needed. With the placeholder gone and no reaction, an answer to the
588
- // agent's own question looked ignored (2026-09-25, Ella / "Muse").
706
+ // Leave a trace on the person's message: read and handled. With the
707
+ // placeholder gone and no reaction, an answer to the agent's own
708
+ // question looked ignored (2026-09-25, Ella / "Muse").
589
709
  if (placeholder.sourceTs && this.deps.slack.addReaction) {
590
710
  try {
591
711
  await this.deps.slack.addReaction(placeholder.slackChannelId, placeholder.sourceTs, SLACK_TYPING_CONSTANTS.SETTLED_REACTION, placeholder.botToken);
@@ -595,14 +715,10 @@ export class SlackTypingPlaceholderService {
595
715
  }
596
716
  }
597
717
  }
598
- if (victims.length > 0)
599
- this.persist();
600
718
  if (victims.length > 0) {
601
- this.logger.info('Agent finished its turn without replying — placeholders taken down', { agentSession, count: victims.length });
719
+ this.persist();
720
+ this.logger.info('Placeholders taken down — the thread was answered or the agent said no answer is needed', { agentSession, count: victims.length });
602
721
  }
603
- if (youngest !== null)
604
- this.scheduleSettleRecheck(agentSession, youngest + minAge + SLACK_TYPING_CONSTANTS.SETTLE_RECHECK_MARGIN_MS);
605
- return victims.length;
606
722
  }
607
723
  /**
608
724
  * A placeholder too young to take down when the turn ended (it may belong
@@ -637,8 +753,10 @@ export class SlackTypingPlaceholderService {
637
753
  ...[...this.pending].map(([key, e]) => ({ key, placeholder: e.placeholder, at: e.startedAt })),
638
754
  ...[...this.expired].map(([key, e]) => ({ key, placeholder: e.placeholder, at: e.at })),
639
755
  ];
756
+ this.pruneAnswered();
757
+ const answered = Object.fromEntries(this.answeredAt);
640
758
  mkdirSync(path.dirname(this.deps.storePath), { recursive: true });
641
- writeFileSync(this.deps.storePath, JSON.stringify({ entries }), { mode: 0o600 });
759
+ writeFileSync(this.deps.storePath, JSON.stringify({ entries, answered }), { mode: 0o600 });
642
760
  }
643
761
  catch (err) {
644
762
  this.logger.debug('Could not save typing placeholders', { error: err instanceof Error ? err.message : String(err) });
@@ -654,7 +772,12 @@ export class SlackTypingPlaceholderService {
654
772
  if (!this.deps.storePath || !existsSync(this.deps.storePath))
655
773
  return;
656
774
  try {
657
- const { entries } = JSON.parse(readFileSync(this.deps.storePath, 'utf8'));
775
+ const { entries, answered } = JSON.parse(readFileSync(this.deps.storePath, 'utf8'));
776
+ // Answered threads survive a restart, so the next turn end can still settle.
777
+ for (const [k, at] of Object.entries(answered ?? {}))
778
+ if (typeof at === 'number')
779
+ this.answeredAt.set(k, at);
780
+ this.pruneAnswered();
658
781
  const cutoff = Date.now() - SLACK_TYPING_CONSTANTS.EXPIRED_KEEP_MS;
659
782
  const fromBoot = [];
660
783
  for (const e of entries ?? []) {
@@ -742,6 +865,21 @@ function principalOf(identity) {
742
865
  ...(identity.iconUrl ? { iconUrl: identity.iconUrl } : {}),
743
866
  };
744
867
  }
868
+ /**
869
+ * Whether a placeholder's message is one the owner-message watchdog tracks
870
+ * as owed by the agent: same Slack conversation and message (or thread),
871
+ * and not a bare acknowledgement.
872
+ *
873
+ * @param owed - The agent's open watchdog entries (`owedBy`)
874
+ * @param placeholder - Placeholder
875
+ * @returns True when the agent still owes that message an answer
876
+ */
877
+ export function isPlaceholderOwed(owed, placeholder) {
878
+ return owed.some((e) => e.slackChannelId === placeholder.slackChannelId &&
879
+ ((!!placeholder.sourceTs && e.sourceTs === placeholder.sourceTs) ||
880
+ (e.threadTs ?? e.sourceTs) === (placeholder.threadTs ?? placeholder.sourceTs)) &&
881
+ !isAcknowledgement(e.preview));
882
+ }
745
883
  function keyOf(key) {
746
884
  return `${key.agentSession}:${key.slackChannelId}:${key.threadTs ?? ''}`;
747
885
  }
@@ -1 +1 @@
1
- {"version":3,"file":"slack-typing-placeholder.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-typing-placeholder.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slack-typing-placeholder.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-typing-placeholder.service.ts"],"names":[],"mappings":"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"}
@@ -499,14 +499,23 @@ export declare class TicketIntakeService {
499
499
  */
500
500
  private recentConversationTicket;
501
501
  /**
502
- * An owner follow-up on a 待验收 ticket that is not 打回 (2026-09-28): it is
503
- * his OK. The ticket is accepted and the message kept in its discussion;
504
- * when it cannot be accepted yet (live work), the agent is back on it.
502
+ * An owner follow-up on a 待验收 ticket that is not 打回 — three outcomes
503
+ * (specs/2026-10-02-harness-owned-routing.md §5):
504
+ * - an approval-like answer (好 / 可以 / OK / approve / ship it / 👍 and the
505
+ * review aliases) accepts it, as before (2026-09-28);
506
+ * - 打回 (handled before this) sends it back, as before;
507
+ * - anything else — a question, "where is it / send it again", "can you
508
+ * also…", "发了 请持续关注" — neither accepts nor reopens: the ticket stays
509
+ * 待验收, the message is kept in its discussion and reaches the agent as an
510
+ * ordinary owner message it owes an answer to, and the reminder /
511
+ * auto-accept clock (`submittedAt`) keeps running. "where did you send
512
+ * it? send the link again" accepted TKT-187.
513
+ * When an approval cannot be taken yet (live work), the agent is back on it.
505
514
  *
506
515
  * @param ticket - The 待验收 ticket
507
516
  * @param message - The follow-up
508
517
  * @param text - Trimmed text
509
- * @returns `verified`, or `appended` when it could not be accepted
518
+ * @returns `verified`, or `appended` (kept in review, or reopened for live work)
510
519
  */
511
520
  private acceptOnFollowUp;
512
521
  /**
@@ -637,4 +646,14 @@ export declare function setTicketIntakeService(service: TicketIntakeService | nu
637
646
  * @returns The service or null
638
647
  */
639
648
  export declare function getTicketIntakeService(): TicketIntakeService | null;
649
+ /**
650
+ * Whether an owner's follow-up on a ticket in review is an approval
651
+ * (specs/2026-10-02-harness-owned-routing.md §5): 好 / 可以 / OK / approve /
652
+ * ship it / 👍 and the review ACK / VERIFY aliases. A question or a request
653
+ * to resend is not.
654
+ *
655
+ * @param text - The owner's message
656
+ * @returns True when it accepts the work
657
+ */
658
+ export declare function isAcceptanceReply(text: string): boolean;
640
659
  //# sourceMappingURL=ticket-intake.service.d.ts.map