Repository navigation
ref(review-desk): Deliver every Review item change through one path - #2481
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
dcramer
approved these changes
Oct 31, 2026
sentry-junior
Bot
force-pushed
the
feat/review-item-change-delivery
branch
from
October 31, 2026 05:23
1aba4ee to
0556a8b
Compare
Add deliverReviewItemChange. The agent tools and the person actions call it after they save a change. It shows the new state on every surface, then sends the messages to the other linked Conversations. App setup now gives Review item code its Slack parts: the card sync as a show function and Slack mention lookup for the agent tools. Review item code, the agent tools, and the review desk API no longer import Slack code. A dependency-cruiser rule keeps it that way. Mention lookup uses the Actor to Identity entry point. Add the review_item.deliver span and the review_item.message.failed event, and document the Review item telemetry. Co-Authored-By: David Cramer <[email protected]>
sentry-junior
Bot
force-pushed
the
feat/review-item-change-delivery
branch
from
November 1, 2026 19:37
0556a8b to
4578328
Compare
The Review item tools sent their messages through the Vercel queue, also when the app has its own queue, such as in evals. A close then failed with an OIDC token error. The agent runner now gives tools the queue of the app, the same queue that spawnAgent and messageAgent use. Co-Authored-By: David Cramer <[email protected]>
dcramer
approved these changes
Nov 1, 2026
This was referenced Nov 1, 2026
This branch was successfully deployed
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.
Before this change, each Review item change path did its own "save, then sync Slack cards, then send messages" sequence: agent add, agent update, agent close, take, person close, the Slack card fallback, and the reply in the thread from #2491/#2494. Review item code also called Slack code directly. That included
SlackAdapterandsyncReviewItemSlackCardsinactions.ts,getProductionSlackAdapterin the review desk API, and a separate Slack Identity query inassignees.ts.One path after a change.
review-items/changes.tsaddsdeliverReviewItemChange. It shows the new state on every surface, then sends a person action, a reply, or an agent close to the other linked Conversations. Every change uses it:addReviewItem,updateReviewItem);actOnReviewItem(review desk API and Slack card clicks);closeReviewItemsAnsweredByReply, from Slack ingress and the dashboard message API);sendReviewItemMessagesnow has one caller:deliverReviewItemChange. An agent content change sends no messages, the same as before.Slack stays in Slack-owned code. App setup gives Review item code its Slack parts:
ShowReviewItem:createSlackReviewItemShowinchat/slack/review-item-card-sync.ts.api.ts, the dashboard message API, Slack ingress, and the tool setup wire it.FindMentionedUserId: Slack mention lookup now lives inchat/slack/review-item-tools.ts. It goes throughreadActorIdentityFromSql(createSlackActor(...))and replaces the separate query.A new dependency-cruiser rule,
no-review-items-to-slack, blocks imports fromchat/review-items/andchat/tools/review-items.tsintochat/slack/.The app queue. The Review item tools sent their messages through the Vercel queue, also when the app has its own queue. In the behavioral evals of #2478, an agent close failed with an OIDC token error. The agent runner now gives tools the queue of the app (
conversationWorkQueuein the agent environment), the same queue thatspawnAgentandmessageAgentuse. Without one, the tools use the Vercel queue as before.Telemetry. A new
review_item.deliverspan hasapp.review_item.*attributes. A newreview_item.message.failedwarning names each Conversation that missed a message, and the change call still fails as before.TELEMETRY.mdhas a new Review items section.Not done here: queue delivery. Delivery stays inline:
So the retry rules (
retriesClose,isSameClose,isOnlyAssignee,firstCloseOnly) all stay. The README section "After a change" explains this.Behavior changes:
<@U123>" instead of "a Slack mention". The Slack mention error text is the same.via David Cramer.
--
View Session [Sentry]