[Feat] Add addressee gating for unmentioned conversation messages - #3051
Merged
daniel-lxs merged 5 commits intoSep 22, 2026
Merged
Conversation
Contributor
roomote-roomote
Bot
requested review from
brunobergher,
daniel-lxs and
mrubens
as code owners
September 21, 2026 16:51
…icipation-gating-2xvttlx857tts
Slack judged an unmentioned reply before checking whether the sender was linked, so an unlinked spectator's message reached the judgment model and was then dropped by the entry handler. Check the mapping first, as Discord and Teams already do, so unlinked senders never reach the history fetch or the model. The addressee question alone routed bare acknowledgements: "ok, thanks" after a bot answer is addressed to Roomote, so it scored 0.95 and started a Fast turn that ended silent. Ask a second, independent Noul question in the same request, whether the reply expects a response, and route only when both agree. Malformed answers to either question fail closed as before.
The addressee gate and peer-conversation admission no longer depend on the slackPeerConversations deployment experiment. A user-owned Fast conversation admits peer discussion on Slack and Discord, and every eligible unmentioned thread reply on Slack, Discord, and Teams is judged whenever the deployment has a judgment backend; without one the existing heuristics apply unchanged. Remove the experiment from the feature-flag registry and the Settings > Experimental toggle and hook, rename the carried flag to peerConversationsEnabled, and update the Slack, Discord, Teams, Telegram, and personal-settings docs to describe the behavior as standard.
daniel-lxs
deleted the
feat/judgment-participation-gating-2xvttlx857tts
branch
September 22, 2026 17:40
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.
What changed
0.85starting threshold and the expects-response probability is at least0.5, so bare acknowledgements such as "ok, thanks" after a bot answer no longer start a Fast turn.slackPeerConversationsdeployment experiment is removed from the feature-flag registry and the Settings > Experimental toggle and hook are gone. Task threads without a Fast owner keep the explicit-mention cutoff for peer-directed messages.Why this change was made
Unmentioned messages in peer conversations could start Fast activity even when they were addressed to another human, were ambiguous, or only acknowledged Roomote's last answer. This makes participation an addressee decision without changing deployments that have no judgment backend configured.
Impact
R_JUDGMENT_MODELoverride), which every other judgment caller already shares. Deployments that have one selected change behavior on merge: every eligible unmentioned thread reply on Slack, Discord, and Teams is judged before it can start work, and replies the heuristic used to route can now stay silent, at one judgment call each.roomoteaddressee that also expects a response routes; participant, unclear, acknowledgement, under-threshold, malformed, and failed results stay silent, and linked senders' suppressed replies are recorded. Unlinked senders never reach the model.slack_peer_conversations_experiment_enabledmetadata key is ignored and can stay in place for rollback.participant(0.88 to 0.98) and stayed silent but recorded; unmentioned requests to Roomote (0.98 to 1.0 on both questions) routed and got Fast replies; an acknowledgement scoredroomote0.87 but expects-response 0.08 and stayed silent; an unlinked sender's message produced no judgment call; with the backend off the heuristic path routed as before; and the Settings > Experimental page no longer shows the toggle. Teams has no harness and is covered by unit tests only.