Goal
Land a visible Triage Dashboard surface in the Agent UI immediately — even with placeholder data — so the dashboard frame can be dogfooded and the rest of the umbrella's sub-issues fill it in.
Why now
First sub-issue under #1007. Per the umbrella's "fastest dashboard visibility first" build order, this lands the bare surface before any data wiring or state work. The frame appears, the user can navigate to it, the empty states are clear about current limitations. Ships in days, unblocks every item that follows.
Scope
- A new top-level surface for the Email Triage agent in the Agent UI. Implementation choice (new route under the existing app router vs a tab inside the agent's chat view) follows whatever pattern the Agent UI already uses for agent-specific surfaces — pick the smallest delta.
- Three-column layout: Surfaced / Drafted / Archived this session.
- Empty states with explicit copy: this is a v0; data populates when you Refresh; persistence and event triggers land in follow-ups.
- A header with: agent name + version, "Refresh" button (no-op for now, wired in the next sub-issue), session-state indicator (e.g. "Updated never").
- Layout responsive enough that columns stack on narrow viewports.
- Reuse the existing styling tokens (
--accent, --bg-section, etc.) so the dashboard reads as part of the same product as the chat surface.
Acceptance
Out of scope
- Loading any real data (next sub-issue).
- State machine / task store (sub-issue 3).
- Drafted/calendar/preferences columns (sub-issues 4–6).
- Persistence (sub-issue 7).
- Streaming progress (sub-issue 8).
- Event triggers / background watcher (sub-issue 9).
Depends on
- Nothing — this is the first build-order sub-issue.
Refs
- Parent: #1007
- Engine PR (provides the agent registration + connector wiring this surface will sit on top of): #995
Goal
Land a visible Triage Dashboard surface in the Agent UI immediately — even with placeholder data — so the dashboard frame can be dogfooded and the rest of the umbrella's sub-issues fill it in.
Why now
First sub-issue under #1007. Per the umbrella's "fastest dashboard visibility first" build order, this lands the bare surface before any data wiring or state work. The frame appears, the user can navigate to it, the empty states are clear about current limitations. Ships in days, unblocks every item that follows.
Scope
--accent,--bg-section, etc.) so the dashboard reads as part of the same product as the chat surface.Acceptance
src/gaia/apps/webui/src/components/email/(matches PR #995 layout).npm run buildclean; existing chat surface unaffected.Out of scope
Depends on
Refs