Skip to content

Add Chrome-style desktop conversation tray - #617

Merged
witbrock merged 1 commit into
mainfrom
feat/von-c815d48a-conversation-tray
Sep 11, 2026
Merged

witbrock merged 1 commit into
mainfrom
feat/von-c815d48a-conversation-tray

Conversation

@witbrock

Copy link
Copy Markdown
Member

Merge decision: ready — desktop users get a collapsible, resizable conversation tray by default, with the existing horizontal list selectable in Settings. Focused acceptance passes; required CI remains the publication gate.

User outcome

Conversations occupy a compact left tray on desktop instead of consuming a horizontal strip. Users can collapse it to a narrow rail, temporarily reveal it on hover or keyboard focus, keep it open, and resize it by dragging or using arrow keys. The transcript and unsent composer remain mounted. Narrow and touch-only layouts keep the horizontal list.

Native Von task: #V#task_desktop_conversation_tray_with_chromestyle_c815d48a. The user explicitly requested native tracking during the Jira migration; this is a native task, with no Jira duplicate or project-wide writer change.

Material changes

Reuse the existing session renderer and context actions. Add a small tray controller and shared browser-local preferences for layout, width, collapse and hover. Settings and the existing context menu stay in sync; an explicit existing horizontal choice is respected. Preserve the expanded list position across collapse, accessible names in the rail, reduced motion, and independent list scrolling.

Evidence

  • Five focused Jest suites: 27 tests pass, covering preferences, collapse, hover, keyboard access, drag/cancel, resize bounds, Settings propagation, responsive fallback, existing context actions, deletion and retained draft/attachment nodes.
  • Static lint for all four changed JavaScript files and diff checks pass.
  • Chrome fixture using the actual production template, stylesheet, session renderer, controller and Settings section with 65 synthetic conversations and a long transcript: desktop collapse/overlay, keyboard reveal and Escape, pointer and keyboard resize, persistence on reload, horizontal Settings choice, independent list scrolling, and 780px/390px fallback without horizontal overflow. Draft preserved. Overlay stays above the sticky composer; tray stays below the fixed header at page end.
  • Full frontend suite: 637 pass, 9 fail in four existing suites. The same nine failures reproduce on clean baseline 65f1fcb2: settingsModelPoolControls, workflowCapabilityStatusCoordinator, conversationSearch and focusedConversationLaunch. Merge decision does not change: these are pre-existing failures outside this navigation change.

Ship boundary

Minimum criteria are usable desktop tray controls, retained conversation/composer state, persisted horizontal opt-out, and unchanged narrow-screen navigation. Lost drafts, inaccessible rows, a tray covering mobile content, or broken conversation actions block shipping. Custom grouping, reordering, history retention, model routing and backend preference storage are outside scope. The user separately authorised deployment after merge; runtime and served-browser verification follow publication.

@witbrock
witbrock merged commit 8568648 into main Sep 11, 2026
2 checks passed
@witbrock
witbrock deleted the feat/von-c815d48a-conversation-tray branch September 11, 2026 14:49
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