Skip to content

enhance(studio): graph-as-home canvas + workspace monogram#9

Open
mroops0111 wants to merge 3 commits into
masterfrom
enhance/uiux-flow
Open

enhance(studio): graph-as-home canvas + workspace monogram#9
mroops0111 wants to merge 3 commits into
masterfrom
enhance/uiux-flow

Conversation

@mroops0111
Copy link
Copy Markdown
Owner

@mroops0111 mroops0111 commented May 29, 2026

Summary

  • Graph is now the workspace's home view. Opening a workspace lands on the graph canvas; Actions / Clarify / Proposals are secondary surfaces that overlay it from a header dock instead of sitting as peer tabs. The old 4-tab strip, GraphViewerOverlay modal, ⌘G summon, and sidebar "Graph viewer" button are removed — Graph is no longer something you summon, it is the workspace.
  • Header dock with ⌘0 / ⌘1 / ⌘2 / ⌘3 chords for Graph (home) / Actions / Clarify / Proposals. Clicking the workspace name returns home; clicking an active dock button toggles back to the graph. Deep-link from a Proposal / Clarify validation issue closes the active surface and focuses the target node on the graph, with one click back via the dock.
  • Workspace monogram swatches in the sidebar (6 muted colour tints, id-hashed) replace the generic folder icon in both collapsed and expanded states. Fixes the "all workspaces look identical when sidebar is collapsed" problem; pending HITL state surfaces as a small primary-colour dot on the swatch when collapsed.
  • PageActionsHost folded into the header's right zone with empty:hidden, eliminating the 40px sub-row that used to appear even when a surface had no contextual tools (e.g. Actions).

Graph becomes the workspace's default home view; secondary surfaces
(Actions / Clarify / Proposals) overlay it via a header dock instead
of sitting as peer tabs. The 4-tab strip, GraphViewerOverlay modal,
Cmd+G summon, and sidebar Graph-viewer button are all removed —
Graph is no longer something you summon, it is the workspace.

Header dock buttons (⌘1 / ⌘2 / ⌘3) toggle each secondary surface;
clicking the workspace name (or ⌘0) returns home. Deep-link from a
Proposal / Clarify validation issue now closes the active surface
and focuses the target node on the graph, with one click to come
back via the dock.

Sidebar workspace rows gain id-hashed monogram swatches (6 muted
colour tints, low saturation so multiple rows don't compete) in
both collapsed and expanded states, fixing the "all workspaces look
identical when sidebar is collapsed" problem.

PageActionsHost is folded into the header's right zone with
empty:hidden, eliminating the wasted 40px sub-row that previously
appeared even when a surface (e.g. Actions) had no contextual
tools.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added the enhancement New feature or request label May 29, 2026
mroops0111 and others added 2 commits May 29, 2026 18:11
Per-conversation rename + delete in Actions, matching ChatGPT-style
session management. The left panel is split into two independent
scroll areas (Skills max-h, Conversations fills the rest) so long
conversation lists don't push the skill picker off-screen.

Inline pencil and trash icons sit at the right edge of each
conversation row, hidden until row hover so the turn-count badge
stays anchored. Trash opens a destructive confirm dialog with the
turn count. Orphan runs (no sessionId) can be deleted by runId but
can't be renamed (no session anchor).

Server-side: new SessionMetadata schema persisted at
artifacts/runs/sessions.jsonl (append-only, last-wins per
sessionId). RunRepository gains deleteRecords / saveSessionMetadata
/ listSessionMetadata. The DELETE /runs/sessions/:id endpoint
extends with ?purge=true to drop records + event files atomically;
DELETE /runs/:runId handles the orphan case. Both refuse to touch
an in-flight run.

Visual: the in-surface status filter (Proposals Pending|Applied|
Rejected, Clarify Pending|Answered|Applied|Skipped) becomes a
segmented control via a new FILTER_TABS_LIST / FILTER_TAB_TRIGGER
constant pair, while the workspace surface dock stays as flat
buttons. Atom-level scale (height, font, radius) matches both ways;
composition (container vs none) reflects the semantic difference
between "pick a filter" and "navigate between surfaces".

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Replaces the candidate-required NewClarifyForm modal with an inline
SubmitIssueForm matching the ReDoc shape: question + context +
relatedNode + ambiguityType, no candidates. Humans file concerns
(gaps, contradictions, ambiguities, assumptions) and braid-clarify
on its next run is expected to append candidates so the standard
pending → answered → applied pipeline can resume.

ClarifyTicket / ClarifyDraft gain four optional fields:
  - `origin`: 'skill' | 'human' so future skill behaviour can
    distinguish AI-emitted tickets (pre-authored candidates) from
    human-filed ones (candidates empty, awaiting AI).
  - `context`: free-form background.
  - `relatedNode`: optional NodeId scoping the issue.
  - `ambiguityType`: enum classification picked by the filer.

All four are optional — existing tickets persisted before this
change deserialise cleanly. HITLService.submitClarifyTicket passes
them through to the persisted ClarifyTicket.

Studio: the modal is gone. A dashed "Submit a question for AI"
button sits at the bottom of the Pending tab's list panel; clicking
it puts the detail pane into compose mode with the new form. The
PageActions "+ New question" button is removed (replaced by the
inline button so the surface stays focused on navigation).
Compose mode is mutually exclusive with selecting an existing
ticket; the auto-select effect is suppressed while composing so
the reviewer doesn't get yanked away mid-write.

Out of scope (next PR): braid-clarify skill behaviour change to
ingest human-filed pending tickets and append candidates.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant