crewly 1.20.339 → 1.20.341

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 (29) hide show
  1. package/dist/backend/backend/src/index.d.ts.map +1 -1
  2. package/dist/backend/backend/src/index.js +4 -0
  3. package/dist/backend/backend/src/index.js.map +1 -1
  4. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  5. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +15 -0
  6. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  7. package/dist/backend/backend/src/services/restart/interrupted-turns.d.ts +7 -0
  8. package/dist/backend/backend/src/services/restart/interrupted-turns.d.ts.map +1 -1
  9. package/dist/backend/backend/src/services/restart/interrupted-turns.js +25 -5
  10. package/dist/backend/backend/src/services/restart/interrupted-turns.js.map +1 -1
  11. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  12. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +4 -3
  13. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  14. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.d.ts +10 -0
  15. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.d.ts.map +1 -1
  16. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.js +13 -0
  17. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.js.map +1 -1
  18. package/dist/backend/build-info.json +2 -2
  19. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  20. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +15 -0
  21. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  22. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  23. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +4 -3
  24. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  25. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.d.ts +10 -0
  26. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.d.ts.map +1 -1
  27. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.js +13 -0
  28. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.js.map +1 -1
  29. package/package.json +1 -1
@@ -31,7 +31,7 @@ import { dedicatedDecisionFor } from '../people/dedicated-agent.js';
31
31
  import { getTicketIntakeService } from '../v3/ticket-intake.service.js';
32
32
  import { intakeWithin, slackIntakeMessage, ticketOfOutcome, markAndLinkTicket, linkLateTicket, isOwnerChatMessage } from '../v3/ticket-channel-hooks.js';
33
33
  import { CREWLY_CONSTANTS, RUNTIME_FALLBACK_CONSTANTS } from '../../constants.js';
34
- import { isInterim } from './slack-typing-placeholder.service.js';
34
+ import { isInterim, isFailedPlaceholderText } from './slack-typing-placeholder.service.js';
35
35
  import { isOwnerAuthored, deliveredSessions } from './slack-auto-working.service.js';
36
36
  import { resolveMemberSessionName } from '../../utils/member-session-name.utils.js';
37
37
  import { isTeamLead } from '../../utils/team.utils.js';
@@ -2644,7 +2644,8 @@ export class SlackTeamChannelService {
2644
2644
  return;
2645
2645
  }
2646
2646
  // An agent — here or on another machine — already replied in the
2647
- // thread, or shows "working on it": nothing to hand over.
2647
+ // thread, or shows "working on it": nothing to hand over. A placeholder
2648
+ // that turned into the "couldn't take this message" notice is not one.
2648
2649
  // Nobody waits on this read, so it gets a longer budget and one retry
2649
2650
  // (a busy backend missed the router's 3 s regularly).
2650
2651
  const readAfter = () => this.deps.slackRepliesAfter
@@ -2652,7 +2653,7 @@ export class SlackTeamChannelService {
2652
2653
  : Promise.resolve(null);
2653
2654
  const after = (await readAfter()) ?? (this.deps.slackRepliesAfter ? await readAfter() : null);
2654
2655
  const harnessNotes = [SLACK_TEAM_CHANNEL_CONSTANTS.ROOM_UNANSWERED_NOTE, SLACK_TEAM_CHANNEL_CONSTANTS.ROOM_ROUTE_STALLED_NOTE];
2655
- if (after?.some((m) => m.isBot && !harnessNotes.includes(m.text.trim()))) {
2656
+ if (after?.some((m) => m.isBot && !harnessNotes.includes(m.text.trim()) && !isFailedPlaceholderText(m.text))) {
2656
2657
  this.logger.info('Unanswered room message: an agent has replied or is working on it in Slack — no hand-off', {
2657
2658
  slackChannel: pending.slackChannelId,
2658
2659
  ts: pending.message.ts,