You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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:03Z–15: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).
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.835629Verified behavior
[[NO_REPLY]].isNoReplyMarker()only matches whole-message equality (packages/junior/src/chat/no-reply.ts).decideReply()suppresses only exact marker-only text and delivers any mixed marker+prose unchanged (packages/junior/src/chat/services/assistant-reply.ts).buildTurnResult()logsai.no_reply_marker.mixed_textfor mixed cases but still returns deliverable text that retains the marker (packages/junior/src/chat/services/turn-result.ts).no-reply.tscomments thatcontainsNoReplyMarkerexists to detect leaks "before publication strips or rejects them," but delivery does not strip.Evidence
[[NO_REPLY]]).ai.no_reply_marker.mixed_texton projectsentry/junior(for example around2026-08-31T15:03Z–15:08Z, including traces such asff5484791527491f82bba63e031e6c83).Related
Reported by Matt Quinn.
Requested by Matt Quinn.
--
View Junior Session [Sentry]