Skip to content

Conversation sidebar new-tab links can target the wrong backend #1423

@neubig

Description

@neubig

Summary

In multi-backend Agent Canvas setups, conversation IDs are scoped to the backend that owns them. Sidebar conversation links currently point to /conversations/:id without encoding the backend selection.

When a user cmd-clicks, ctrl-clicks, or opens one of these links in a new tab, the new tab initializes active backend selection from session/local/default state instead of the backend that produced the sidebar list. If that selected backend differs, the conversation fetch targets the wrong backend and reports that the conversation was not found.

Expected behavior

Opening a conversation from the sidebar in a new tab should select or otherwise use the backend/org scope that owns that conversation before the first conversation fetch runs.

Observed likely root cause

ConversationPanel and CompactConversationRow generate bare /conversations/:id links. NavigationLink intentionally lets modified clicks use the browser href, so no in-memory backend state is carried into the new tab.

Suggested fix

Encode the active backend/org selection in conversation URLs and have active backend initialization prefer valid URL query parameters over stored fallback state.

Suggested tests

  • Conversation row hrefs include backend/org scope.
  • URL backend scope initializes active backend before conversation fetches.
  • Modified-click behavior keeps using the encoded href for browser new-tab navigation.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions