Monitor: implement the #70 Penpot mockups into src/dashboard.html #122
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.
Dependencies
No dependencies set.
Reference
charles/claude-hooks#122
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 the operator running claude-hooks, I want the rendered monitor at
/(served fromsrc/dashboard.html) to match the Penpot mockups produced by #70 so the pain points that ticket enumerated — scroll-of-doom event stream, invisible cost/duration, queue/running/history mixed, no per-agent filter, read-only storage card — get actually fixed in the UI, not only in mockups.#70 is closed (designs accepted). This ticket is the implementation follow-up it explicitly blocked.
Acceptance criteria
Pages / layout
Task rowcomponent./health./history[].cost_usd. No new backend endpoint required; if aggregation becomes expensive at scale, a follow-up can lift it server-side.journalctl.Components
assistant,tool_callwith per-tool icon,tool_summary,result,error,progress).POST /sweependpoint — add it if missing).Interaction behaviors
Design system
design/tokens.json(Tokyo Night). No new palette values introduced.src/dashboard.htmlper existing convention (single-file dashboard).Tests
src/dashboard-smoke.test.ts(the structural HTML checks we already have) grows tests for every new component presence: task-row variants, event-block variants, agent-filter chip-strip, storage bar.Out of scope
POST /sweep— everything else in the mockups is derivable from existing routes. If the implementer finds a specific screen that genuinely needs new data, flag it as an "asks from backend" in the PR body and skip that screen with a TODO — do not bloat the backend mid-implementation.References
claude-hooks — dashboard(teampeon-manager, file-id689d7fa4-f94b-81d4-8007-e39c5c82f66c). Designer's handoff comments on #70 have the deep-links.src/dashboard.html.src/main.tsroutes (/health,/queue,/history,/storage,/events,/cancel).design/tokens.json.Dependencies
main.