“All conversations” now means all conversations
The one row that promised a list delivered a blank composer. It opens a real list now. Plus: the header chat control closes as well as opens, and the autonomy rung stopped explaining itself in permanent UI. Release notes 2026-09-15 — vocion-core#353.

Status: shipped. vocion-core #353 is merged onto the release branch release/2026-09-15-rail (the commit inside it is 98836a3c) and deployed to a deployment we operate. The pull request is still landing on main individually behind that release branch.
Three small things in the chat header, each of which had been quietly wrong for a while.
“All conversations” opened a new conversation
The rail header carries an “All conversations” link. Until this afternoon it opened a blank new chat.
The chat menu had a row reading All conversations. It pointed at /dashboard/chat — which starts a new chat. The single row in the product that promised a list delivered a blank composer, which is the most disorienting thing a link can do: it looks like it worked.
It now goes to /dashboard/conversations: every thread, newest first, grouped under Today, Yesterday, Earlier this week and then by month, with a search box that matches on titles and on the text inside the messages.
The scoping rule is worth stating plainly, because "every thread" is not quite true and should not be. A conversation that is scoped to a record — the thread you opened from a particular deal — is per person. The page shows the workspace's unscoped threads plus your own scoped ones, and never anyone else's. The predicate is one clause in ConversationService: scopeRef IS NULL OR createdBy = <you>.
The header control closes as well as opens
The chat control in the title bar only ever opened the rail. Closing it meant remembering ⌘J or hunting for the rail's own collapse handle — two affordances for one piece of state, one of which was invisible.
The request the button sends now carries a toggle flag, and a surface that is already open, mounted, and being asked to do nothing in particular collapses instead. The exception is deliberate: a request that carries intent — the "Ask about this" on a record, a prompt to prefill — always opens. Someone asking a question about a record means to talk, never to close.
The autonomy rung stopped explaining itself in permanent UI
The rung control in the rail header was a labelled chip — a shield icon, the words Ask before acting, and a tooltip carrying the sentence about what that actually means for the agent.
Before: the rung as a labelled chip, with its explanation in a tooltip. A sentence you have already read does not need to be on screen forever.
It is icon-only now. The icon carries the rung, the tooltip names it, and the sentence about what choosing a rung means lives inside the popover, next to the choice it describes — which is where you are when the sentence is useful and nowhere when it is not.
Where this lives in the repo
vocion-core#353, shipped on release/2026-09-15-rail (98836a3c). Eight files.
- List page:
packages/core/src/app/[locale]/(auth)/dashboard/conversations/page.tsx - Query, grouping and scoping:
packages/core/src/services/ConversationService.ts(bucketOf,includeScopedFor, the message-text match) - Toggle:
features/dashboard/chat/agentSurface.ts(thetogglefield),AgentSurfaceButton.tsx, and the collapse branch inChatDock.tsx - Rung:
features/dashboard/chat/AutonomyControl.tsx - The menu row that changed:
features/dashboard/chat/ChatMenu.tsx
Not verified: re-checked against the merged commit (98836a3c), which touches eight files and no test file — the only non-source file in it is RailHeader.stories.tsx. The existing AgentSurfaceButton test still covers the old claim/fallback behaviour and does not assert the toggle; there is no test for the collapse branch, for the conversations query, or for the icon-only control. The three changes were checked by hand on a local workspace.
Related: One conversation surface on every page and What an AI agent autonomy level gates.