Repository navigation
feat(comments): send review comments once, with Send now and a composer chip - #286
Merged
Merged
Conversation
…er chip Open review comments used to ride along with every turn, and nothing showed that they had already gone. Now each comment goes once and is marked sent (new `last_sent_at` column, fork migration 1048); a user reply, an edit via reopen, or an explicit re-send clears the mark. - Server: turn start appends only unsent open comments and marks the ones that fit; a new `threadComments.resend` RPC clears the mark on open comments. The agent instructions now ask it to work through each comment and reply to every one with t3_reply_comment. - Web: the strip shows only unsent comments and gains "Send now", which sends a comments-only message through the run queue and keeps the draft. A chip in the composer's top-right corner shows sent (blue) / addressed (green) counts; its menu has Address remaining, Ask for an update, Review comments, Resolve addressed and Pause sending. - Agent tool descriptions and the user guide describe the send-once rule. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- prepareOpenThreadComments returns the text plus a markSent step, and the run marks comments only once the provider turn has started, so a turn that never starts leaves them unsent. - markSent marks a row only while it is unchanged since the turn read it, so a reply that lands in between still reaches the agent. - The chip's re-send items are disabled while sending is paused. - The chip straddles the chat box's top edge instead of covering the draft. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… the longer prompt Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bk-agent-01
added a commit
that referenced
this pull request
Oct 8, 2026
Stage shipped migration 1048 (ThreadCommentLastSent), so upstream 59-60 move to 1049-1050. Web UI RPC counts include #286's resend RPC (236). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Open review comments went with every turn, and nothing showed that they had already gone. The strip above the chat box had no way to send the comments by themselves. When comments were still open, there was no simple way to ask the agent to finish them or to report on them.
Fix (Option A, as approved)
Send once
last_sent_atcolumn (fork migration1048_ThreadCommentLastSent, additive) records when a comment went to the agent.threadComments.resend, clears the mark on all open comments.Review prompt
t3_reply_comment. When a comment is unclear, it asks instead of guessing.Strip above the chat box
Chip in the top-right corner of the chat box
Text
docs/user/chat-comments.mddescribe the send-once rule.Code location: All of the logic is in fork files.
ChatComposer.tsxgets one marked line that draws the chip. Mobile does not change.Evidence
Tests cover the send-once and resend rules (service), sent marks at turn start (turn context), the migration ledger, and the strip and chip rules (web model). CI runs them; the dev server does not run tests. No screenshots: the preview browser cannot run on this host.
🤖 Generated with Claude Code