Skip to content

chore: remove /v1/runs endpoints and runs infrastructure#9166

Merged
awlevin merged 1 commit into
mainfrom
remove-runs/pr5
Feb 25, 2026
Merged

chore: remove /v1/runs endpoints and runs infrastructure#9166
awlevin merged 1 commit into
mainfrom
remove-runs/pr5

Conversation

@awlevin
Copy link
Copy Markdown
Contributor

@awlevin awlevin commented Feb 25, 2026

Summary

Test plan

  • TypeScript type-check passes (no new errors from these changes)
  • Voice session bridge tests pass (71 tests, 0 failures)
  • Call controller tests pass (30 tests, 0 failures)
  • Channel approval tests pass (parser tests preserved)
  • No remaining references to RunOrchestrator, runs-store, run-routes, or PendingRunInfo in production code

🤖 Generated with Claude Code


Open with Devin

Co-Authored-By: Claude <noreply@anthropic.com>
@awlevin awlevin self-assigned this Feb 25, 2026
@awlevin awlevin merged commit c60e748 into main Feb 25, 2026
@awlevin awlevin deleted the remove-runs/pr5 branch February 25, 2026 21:52
Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

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

Devin Review found 1 potential issue.

View 5 additional findings in Devin Review.

Open in Devin Review

Comment on lines +302 to +306
session.setTurnChannelContext({
userMessageChannel: 'voice',
assistantMessageChannel: 'voice',
});
session.setChannelCapabilities(resolveChannelCapabilities('voice', undefined));
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Missing setTurnInterfaceContext call causes incorrect metadata on voice messages

The new voice-session-bridge.ts never calls session.setTurnInterfaceContext() during setup, and never resets it during cleanup. The old RunOrchestrator did both.

Root Cause and Impact

The deleted RunOrchestrator (see diff for run-orchestrator.ts) set the turn interface context during setup:

session.setTurnInterfaceContext({
  userMessageInterface: resolvedInterface,
  assistantMessageInterface: resolvedInterface,
});

and reset it during cleanup:

session.setTurnInterfaceContext({
  userMessageInterface: 'vellum',
  assistantMessageInterface: 'vellum',
});

The new voice bridge at assistant/src/calls/voice-session-bridge.ts:292-307 sets setTurnChannelContext (line 302) but omits the analogous setTurnInterfaceContext call. Downstream, session-messaging.ts:72 reads ctx.getTurnInterfaceContext() to populate userMessageInterface and assistantMessageInterface metadata on persisted messages. Without being set, it returns whatever stale value was left by a prior session user (or null), so voice messages will have missing or incorrect interface metadata.

Similarly, the cleanup at lines 384-395 resets channel context, guardian context, etc. but does not reset the turn interface context — potentially leaking a stale voice interface context into subsequent non-voice turns on the same session.

Impact: All voice turn messages will be persisted with incorrect or missing userMessageInterface/assistantMessageInterface metadata, which downstream consumers (e.g. origin interface tracking at assistant/src/daemon/server.ts:832) rely on.

Suggested change
session.setTurnChannelContext({
userMessageChannel: 'voice',
assistantMessageChannel: 'voice',
});
session.setChannelCapabilities(resolveChannelCapabilities('voice', undefined));
session.setTurnChannelContext({
userMessageChannel: 'voice',
assistantMessageChannel: 'voice',
});
session.setTurnInterfaceContext({
userMessageInterface: 'voice',
assistantMessageInterface: 'voice',
});
session.setChannelCapabilities(resolveChannelCapabilities('voice', undefined));
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant