feat(ui): render Workspace with Claude Design handoff layout#98
Merged
feat(ui): render Workspace with Claude Design handoff layout#98
Conversation
Port the Claude Design handoff bundle's Workspace (Draft) layout into the real DraftTab. The previous PR polished the shell chrome but left the tab content on its legacy panels; this PR swaps the tab body for the bundle-matching layout. What ships visually: - Ticket header card: avatar + reporter/status/assignee/opened, plus priority and intent badges (sourced from currentTicket + caseIntake). - 4-step workflow strip (Triage / Classify / Draft / Send) with numbered circles, completed checkmarks, and accent-active styling. - Two-column panel layout (Query + Context on the left, Response + Sources + Alternatives on the right) with glassy header/body panels. - Query panel: textarea, policy/howto/access/incident intent chips wired to caseIntake.likely_category, and Short/Medium/Long segment selector. - Context panel: audience / tone / urgency / environment selects + Generate/Cancel button with cmd-enter hint. - Response panel: ML Intent banner, grounding gauge (tone-swapped for clarify/abstain confidence modes), response meta (tokens/s, sources, words, context util, supported-claim count), response body with inline [n] cite pills that drill into the source, and action row (save template / regenerate / copy). - Sources list: ranked entries with file path + heading path + score. - Alternatives strip: saved alternatives rendered as chips with preview and one-click "use this" swap. Implementation: - New src/styles/revamp/claudeDesignWorkspace.css ports the bundle's workspace.css verbatim, scoped under a .cdw root so the bundle's generic class names (.panel, .badge, .chip, .btn) don't collide with global styles. - New src/features/workspace/ClaudeDesignWorkspace.tsx renders the full layout. Pure presenter: consumes state + handlers from the existing DraftTab hooks, no new Tauri IPC. - DraftTab now renders <ClaudeDesignWorkspace /> as its panels prop inside WorkspaceModeShell, dropping the legacy WorkspacePanels + WorkspaceWorkflowStrip + TicketWorkspaceRail path. Unused hook bindings (approval spinner, first-response tone UI, checklist UI, next-action handlers, similar-cases UI) are trimmed from the destructures since their panels are no longer rendered. Verified: pnpm ui:typecheck clean; pnpm test passes (262/262). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Ports the Claude Design handoff bundle's Workspace (Draft) layout into the real DraftTab. The previous PR #97 polished the shell chrome but left the tab content on its legacy panels; this PR swaps the tab body for the bundle-matching layout — so the visible Workspace now matches the mockup you approved in Claude Design.
What ships visually
currentTicket+caseIntake).caseIntake.likely_category, Short/Medium/Long segment selector.[n]cite pills that drill into the source, action row (save template / regenerate / copy).Implementation
src/styles/revamp/claudeDesignWorkspace.css(~700 lines) ports the bundle'sworkspace.cssverbatim, scoped under.cdwso the bundle's generic class names (.panel,.badge,.chip,.btn) don't collide with global styles.src/features/workspace/ClaudeDesignWorkspace.tsxis a pure presenter — consumes state + handlers from the existing DraftTab hooks, no new Tauri IPC.DraftTabnow renders<ClaudeDesignWorkspace />as itspanelsprop insideWorkspaceModeShell, dropping the legacyWorkspacePanels+WorkspaceWorkflowStrip+TicketWorkspaceRailpath. Unused hook bindings (approval spinner, first-response tone UI, checklist UI, next-action handlers, similar-cases UI) are trimmed from destructures since their panels are no longer rendered.What this intentionally drops
Some legacy surfaces were only consumable through the old panels and are not visible in the Claude Design mockup:
These can be re-surfaced in follow-up PRs when the design calls for them. The underlying hooks remain in place.
Test plan
pnpm ui:typecheck— cleanpnpm test— 67/67 files, 262/262 tests passing🤖 Generated with Claude Code