Skip to content

feat(email): Triage Dashboard route + 3-column skeleton #1008

@itomek

Description

@itomek

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

  • Selecting the Email Triage agent shows a way to switch from Chat to Dashboard (tab, segmented control, or whatever the Agent UI's convention is).
  • Dashboard route renders the three columns plus empty-state copy with no console errors.
  • Empty-state copy explicitly notes the v0 limitations (no persistence, manual refresh).
  • Refresh button is present but visibly disabled or marked "wired in next sub-issue" — no fake loading states.
  • CSS lives next to the new component(s) under src/gaia/apps/webui/src/components/email/ (matches PR #995 layout).
  • No backend changes — this issue is frontend-only.
  • npm run build clean; existing chat surface unaffected.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    agentdomain:automationScheduler, autonomy, RAG, web search, watchers, researchenhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions