Skip to content

[[NO_REPLY]] marker leaks into Slack replies #1741

Description

@sentry-junior

When a terminal assistant message mixes normal prose with [[NO_REPLY]], Junior posts the full text to Slack, including the reserved marker.

Observed in production: a task turn that intended silence ended with prose plus a trailing [[NO_REPLY]], and Slack received that combined message. Session: https://junior-prod.sentry.dev/conversations/slack%3AC0BSRCZ1F9T%3A1788188446.835629

Verified behavior

  • Prompt/task contract: intentional silence requires the final message to be exactly [[NO_REPLY]].
  • isNoReplyMarker() only matches whole-message equality (packages/junior/src/chat/no-reply.ts).
  • After #1714, decideReply() suppresses only exact marker-only text and delivers any mixed marker+prose unchanged (packages/junior/src/chat/services/assistant-reply.ts).
  • buildTurnResult() logs ai.no_reply_marker.mixed_text for mixed cases but still returns deliverable text that retains the marker (packages/junior/src/chat/services/turn-result.ts).
  • no-reply.ts comments that containsNoReplyMarker exists to detect leaks "before publication strips or rejects them," but delivery does not strip.
  • PR fix(chat): deliver answers that mention [[NO_REPLY]] #1714 description said mixed text would strip the marker and post the rest; current code and tests deliver the marker inline.

Evidence

  • Thread example above (assistant reply ended with visible [[NO_REPLY]]).
  • Repeated production warnings: ai.no_reply_marker.mixed_text on project sentry/junior (for example around 2026-08-31T15:03Z15:08Z, including traces such as ff5484791527491f82bba63e031e6c83).

Related

  • #1714 changed mixed mentions from silence to delivery.
  • #1030 is a different no-reply terminalization bug (timeout resume).

Reported by Matt Quinn.

Requested by Matt Quinn.

--

View Junior Session [Sentry]

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions