Skip to content

Console AI chat (ADR-0057) — post-cleanup UX follow-ups #2477

Description

@os-zhuang

Follow-up UX polish surfaced during the full browser verification of the docked AI chat (ADR-0057, epic #2409#2467 / #2469 / #2470 / #2475). The dock is now the console's one chat presentation; these items refine it. Prioritized by day-to-day impact.

High impact

1. Mobile chat is "chat-only" — no history / share / Live Canvas from the sheet

After the mobile bottom sheet dropped its maximize button (#2475, it navigated away from an open Radix sheet and left the page blank), the sheet is the only mobile entry — and it has no path to the conversation-history list, share, Build Doctor, or the Live Canvas (ADR-0037 needs horizontal width a sheet can't give). So a mobile build session that drafts an app can't see the live preview.

2. Studio right dock re-expands on every visit (collapse not persisted)

StudioChatDock uses defaultExpanded: true with in-memory state (no persist key), so a user who collapses it sees it re-open on every pillar switch / package change / re-entry, imposing ~420px on anyone who wants the classic three-zone canvas.

  • Direction: persist the collapsed preference (localStorage), scoped so it doesn't fight the console dock's own state.

3. Studio folded layout hides the canvas while editing properties (< 2xl)

On non-2xl viewports, selecting a block auto-switches the center to the Properties tab, so the canvas (the WYSIWYG feedback) disappears while you edit. The 2xl side-by-side only helps very wide screens; xl (~1280–1536, the common laptop) still tabs.

  • Direction: lower the side-by-side breakpoint to xl, and/or keep a live mini-preview in the Properties tab.

Medium

4. Canvas auto-maximize is an abrupt width jump

Opening the Live Canvas snaps the rail to max width with no transition. Add a CSS width transition.

5. Discoverability of the "one thread, many views" model

Maximize (⤢) / collapse-to-dock (⇥) are icon-only; that /ai and the rail are the SAME conversation isn't obvious, and ⌘⇧I is unshown. A first-run hint / better tooltips would help.

6. Console ↔ Studio share the chat width

The width localStorage key is shared on purpose; a wide console chat then squeezes the Studio canvas. Reconsider per-surface width, or document it.

Low / polish

    1. Empty-state suggestion chips wrap awkwardly inside the ~420px rail.
    1. Mobile sheet empty state has a lot of whitespace at 85svh.

Planned order: #2 + #3 first (small, in already-touched files, fast to verify) as one PR; #1 as its own PR (mobile IA). Refs ADR-0057.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions