PR: #522: feat(matter): Mira entry = gutter avatar → CCB; conversation on pinned Agent Dock [Story-2041] by @ankitmaheshwari-com
View PR →

Files changed

19 file(s), +648 / -527 lines

Path Role + -
messages/en.jsonConfig+3-5
messages/hi.jsonConfig+3-5
src/components/agents/agent-dock-mount.tsxComponent+64-31
src/components/agents/mira-dock-mount.tsxComponent+241-0
src/components/matter-detail/brief/brief-mira-ccb.tsxComponent+29-8
src/components/matter-detail/brief/frame-summary-history.stories.tsxComponent+7-0
src/components/matter-detail/brief/matter-brief-page.tsxComponent+17-11
src/components/matter-detail/brief/matter-brief-sections.tsxComponent+4-1
src/components/matter-detail/ccb/mira-control-bar.stories.tsxComponent+71-5
src/components/matter-detail/ccb/mira-control-bar.tsxComponent+24-0
src/components/matter-detail/ccb/mira-conversation-panel.stories.tsxComponent+0-123
src/components/matter-detail/ccb/mira-conversation-panel.tsxComponent+0-220
src/components/matter-detail/ccb/mira-dock.stories.tsxComponent+121-0
src/components/matter-detail/ccb/mira-matter-dock.stories.tsxComponent+0-35
src/components/matter-detail/ccb/mira-matter-dock.tsxComponent+0-64
src/components/matters/matter-shell-chrome.tsxComponent+22-15
src/lib/agents/__tests__/agent-surface.test.tsLibrary+5-0
src/lib/agents/agent-surface.tsLibrary+17-4
src/stores/agent-dock-store.tsSource+20-0

Story-2041: Mira's entry points — gutter avatar → CCB; conversation in the pinned Agent Dock

Story-2040 shipped Mira's two surfaces but mounted her conversation behind a floating "Ask Mira" pill — chrome that was never approved. The approved primitive (availability-over-visibility doctrine) is the gutter Mira avatar → Counsel Control Bar: Mira is available at every editable field and visible nowhere until summoned. This story deletes the floating dock, completes the gutter entry (the frame_summary hero was the one editable field missing the avatar), and — per the founder's scope amendment — moves the conversation surface onto the canonical pinned Agent Dock (AgentDock), the exact substrate Atlas rides: APB pill when closed ⇄ in-flow pushing panel when open, never floating/fixed.

What landed

Where the conversation went

Before (2040)After (2041)
Floating "Ask Mira" pill, fixed bottom-right; conversation in a fixed overlay drawer (bespoke panel wrapper). No standing chrome. Gutter avatar → CCB (command); CCB "Talk" / APB pill → the pinned AgentDock showing MIRA — in-flow flex child, page reflows beside it, drag-resize, AnimatePresence pill⇄panel swap.
frame_summary hero gutter: timeline icon only. Mira avatar (opacity-55, hover-revealed) above the timeline icon — parity with every editable field.

Storybook (verify here)

Verification

Live-data seam: the dock reuses Story-2040's Mira rails unchanged (converse + command over the ADR-110 broker WS); broker-side Mira WS routing remains the Story-2040/RFD Story-G seam to confirm live. The component-boundary → system-boundary check on staging is that follow-up's evidence, not this PR's Storybook.