Skip to content

fix(slack): Keep each Turn to a single Actor - #2574

Merged
dcramer merged 4 commits into
mainfrom
fix/remove-cross-actor-steering
Nov 2, 2026
Merged

dcramer merged 4 commits into
mainfrom
fix/remove-cross-actor-steering

Conversation

@sentry-junior

@sentry-junior sentry-junior Bot commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

Each Turn now has one Actor. A running Turn uses its author's credentials, so another person's input must never join it.

Two Slack paths let another person's message join a running Turn:

  • JUNIOR_CROSS_ACTOR_MID_RUN_MODE=steer (or slack.crossActorMidRunMode in createApp)
  • a message that starts with !!, in the default follow_up mode

Both are removed. The Slack steering drain accepts only the active author's messages. Another person's message, with or without !!, waits for its own Turn. !! still interrupts for the active author. Web and agent-invocation steering already require the same Actor.

This is a hard cutover. The env var and app option are removed, not deprecated. junior-prod sets neither one in server.ts or its config. The !! change is the only behavior change there.

Tests

  • The Slack conversation work component test sends a !! mention from a second author during a Turn. Only the active author's message is steered, and the second author gets their own Turn.
  • steering.eval.ts: Alex's !! mention now gets its own follow-up Turn. Removed the configured steer case.
  • actors.eval.ts: removed two memory cases that used !! to make a multi-actor Turn. That setup can no longer happen.
  • I could not run the evals locally because the eval runner's Quick Tunnel does not start in the sandbox.

via @dcramer.

--

View Session [Sentry]

A running Turn uses its author's credentials. JUNIOR_CROSS_ACTOR_MID_RUN_MODE=steer
and the !! prefix both let a different Slack author inject input into that Turn,
which could make Junior act for them with someone else's grants.

Remove the mode and the !! cross-author bypass. Another person's mid-run message
now always waits for its own Turn. !! still interrupts for the active author.

Co-Authored-By: David Cramer <[email protected]>
@vercel

vercel Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
junior-docs Ready Ready Preview Nov 2, 2026 11:08pm UTC

Request Review

…mode

Another person's !! message joins the running Turn as their own attributed
input, as in the default follow_up mode. Plain mentions from other people still
wait for their own Turn. Only the configurable steer mode is removed.

Co-Authored-By: David Cramer <[email protected]>
@sentry-junior sentry-junior Bot changed the title fix(slack): Never steer another person's message into a running Turn ref(slack): Remove the configurable cross-actor steering mode Nov 2, 2026
@github-actions

github-actions Bot commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

7 screenshot changes — 7 changed · 0 added · 0 removed

Review screenshots in Frameshift

Automation Run Details · Desktop
Automation Run Details · Desktop
Changed
Automation Run Details Light · Desktop
Automation Run Details Light · Desktop
Changed
Conversation Child Agent Drawer · Desktop
Conversation Child Agent Drawer · Desktop
Changed
Conversation Child Agent Drawer · Mobile
Conversation Child Agent Drawer · Mobile
Changed
Conversation Share Details · Desktop
Conversation Share Details · Desktop
Changed
Conversation Sidebar Collapsed · Desktop
Conversation Sidebar Collapsed · Desktop
Changed
Show 1 more changed screenshot
Settings Mcp · Desktop
Settings Mcp · Desktop
Changed

A running Turn uses its author's credentials. Another person's !! message
joined that Turn, so their ask ran with the starter's grants. Only the
active author's messages now steer a Slack Turn. Another person's message,
with or without !!, waits for its own Turn.

Co-Authored-By: David Cramer <[email protected]>
@sentry-junior sentry-junior Bot changed the title ref(slack): Remove the configurable cross-actor steering mode fix(slack): Keep each Turn to a single Actor Nov 2, 2026
…r-steering

# Conflicts:
#	packages/junior-evals/evals/integration/conversation/steering.eval.ts

Co-Authored-By: David Cramer <[email protected]>
@dcramer
dcramer merged commit bc5ce99 into main Nov 2, 2026
55 of 71 checks passed
@dcramer
dcramer deleted the fix/remove-cross-actor-steering branch November 2, 2026 23:45

This branch was successfully deployed

1 active deployment
Preview – junior-docs — 649bdeb4 Deployed Nov 2, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk: medium PR risk score: medium

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant