Skip to content

ref(chat): make Conversation API turns native - #1703

Open
dcramer wants to merge 1 commit into
mainfrom
codex/slack-native-turn
Open

ref(chat): make Conversation API turns native#1703
dcramer wants to merge 1 commit into
mainfrom
codex/slack-native-turn

Conversation

@dcramer

@dcramer dcramer commented Aug 26, 2026

Copy link
Copy Markdown
Member

Conversation API Turns now enter the shared runtime as Junior work. Their Actor is the signed-in user, and their Source and Destination name the Junior Conversation. A continued Slack Conversation keeps its Slack Location, but the API reply stays in the Conversation log and is not sent to Slack.

The change also gives API Messages and Turns stable UUIDs, preserves the active Actor across authorization and process resumes, and lets authorization callbacks recover the current Destination from stored Conversation routing. Existing web Source and Actor values, credential keys, and pending authorization requests remain readable during the dated migration period.

The main review risk is resume behavior across old and new stored identity data. Integration coverage exercises API creation and continuation, ACP, cancellation, authorization resume, legacy credentials, pending messages, and Slack Location preservation.

Refs #1563

@vercel

vercel Bot commented Aug 26, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
junior-docs Ready Ready Preview Aug 26, 2026 5:02am

Request Review

@dcramer
dcramer marked this pull request as ready for review August 26, 2026 05:02
@github-actions github-actions Bot added the risk: high PR risk score: high label Aug 26, 2026
@github-actions

Copy link
Copy Markdown

Dashboard visual evidence

Mode: path-selected
Selected: gallery-index, conversations, conversation-detail, conversation-detail-focused

Triggered by:

  • packages/junior-dashboard/src/client/conversations/conversationOutbox.ts
  • packages/junior-dashboard/src/client/pages/memory/memoryRecord.ts
  • packages/junior-dashboard/src/client/types.ts
  • packages/junior-dashboard/src/mock-reporting/fixtures.ts
  • packages/junior-dashboard/tests/conversation-outbox.test.ts
  • packages/junior-dashboard/tests/pending-mailbox-stack.test.tsx
  • packages/junior-dashboard/tests/pending-mailbox-transcript.test.ts

Component gallery index · desktop

Component gallery index · desktop

Conversations · desktop

Conversations · desktop

Conversations · mobile

Conversations · mobile

Conversation detail · desktop

Conversation detail · desktop

Conversation detail · mobile

Conversation detail · mobile

Conversation detail · focused composer · mobile

Conversation detail · focused composer · mobile

Full-page screenshots from the mock dashboard. Not a pixel-diff gate.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit ec98964. Configure here.

// Drop the connect prompt so a replaced OAuth flow
// cannot leave a stale banner after the user moves on.
await deleteWebAuthorization({
await deleteApiAuthorization({

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Auth delete skips legacy actor key

Medium Severity

Superseding an auth-paused Turn deletes the pending authorization only under the current Actor id. Parked prompts from before the identity change still live under the legacy dashboard: Actor id, so getApiAuthorization keeps finding them and the connect banner remains after the Turn is abandoned.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit ec98964. Configure here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk: high PR risk score: high

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant