refactor(workspace): chat UX polish sweep — paper cuts #572
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Depends on
#564 feat(workspace): mid-turn abort + steering for foreman chat
charles/claude-hooks
#565 feat(workspace): tool-call output + Edit/Write diff preview in transcript
charles/claude-hooks
#566 feat(workspace): per-turn token + cost meter and reasoning blocks
charles/claude-hooks
#567 feat(workspace): session rename / delete / export / search
charles/claude-hooks
#568 feat(workspace): regenerate / edit prior message / fork session
charles/claude-hooks
#569 feat(workspace): per-session model picker for foreman chat
charles/claude-hooks
#570 feat(workspace): ⌘K command palette +
? keyboard help overlay
charles/claude-hooks
#571 feat(workspace): image paste + drag-drop attachments in foreman composer
charles/claude-hooks
Reference
charles/claude-hooks#572
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
User story
As an operator, I want the small visual + ergonomic rough edges in the workspace chat fixed in a single sweep, so the surface stops feeling half-built.
Acceptance criteria
Iconography + design system
▾ ▸Unicode glyphs inapps/web/src/components/planner/transcript.tsx:128with lucideChevronDown/ChevronRight.apps/web/src/components/planner/composer.tsx:383to the design-system<Button>.phase=done(no lingering frame).Composer
localStoragekeyed by session id; restore on reload.⌘+Entershortcut hint visibly (not only in placeholder).— handled in PR #573 (?task=<id>cleanupc1413e6: 2 s fallback timer strips the param whenappendMessageis skipped server-side).Transcript
dddd).Sidebar
turn_countfield renders as0 turns(currently empty),1 turn,N turns.text-meta; show recent repos first.Empty state
agents.json::types.foreman.example_prompts).Errors
phase=errorsurfaces an inline retry button on the streaming bubble (not just a toast).Out of scope
References
specs/workspace-chat-overhaul.md§ Polish sweep.?keyboard help overlayShipped via PR #612 (merged 2026-04-30 21:43 UTC).
Closes #572keyword in PR body didn't auto-close — closing manually to clear stuck IDLE-ASSIGNED card from board.