[[NO_REPLY]] marker leaks into Slack replies

Đã đóng
#1,741 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
76/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
typescript
Lĩnh vực
backend

Hướng nghiên cứu

Bắt đầu từ packages/junior/src/chat/no-reply.ts, sau đó lần theo cách xử lý marker hỗn hợp qua packages/junior/src/chat/services/assistant-reply.ts và packages/junior/src/chat/services/turn-result.ts. Thêm hoặc cập nhật độ bao phủ cho các phản hồi chỉ có marker và các phản hồi kết hợp marker với văn xuôi, đồng thời xác minh rằng Slack nhận được phần văn xuôi không có marker dành riêng, trong khi các tin nhắn chính xác chỉ gồm marker vẫn bị loại bỏ.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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 #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: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).

Reported by Matt Quinn.

Requested by Matt Quinn.

--

View Junior Session [Sentry]

Ngôn ngữ chính
TypeScript
Star
397
Fork
43
Merge trung bình
7 giờ 55 phút
Pull request đã merge (30 ngày)
661

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của getsentry/junior

Tất cả issue của getsentry/junior

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.