Dashboard

The dashboard at dashboard.earshot.dev is for triage owners — the PM, engineering lead, or support person reviewing incoming feedback when the agent's not in the loop yet.

Navigation

The top bar has a project switcher, links to Inbox, Context, Settings, and Sign out. Switching projects writes a cookie so the choice sticks across sessions.

Inbox

Sortable list of every feedback in the current project.

  • Search: title, summary, transcript. Trigram-ranked (pg_trgm) when a query is present.
  • Status filter: pill toggles. Active filter narrows + persists in the URL.
  • Audio: inline player; click row to open detail.
  • Density: one row per feedback; title, voice transcript snippet, identity, labels, created timestamp.

Detail page

Everything we captured, plus the workflow controls.

Left column:

  • Transcript — voice-transcribed text.
  • Audio — signed Supabase Storage URL, controls inline.
  • Screenshot — host page at capture time, click to open full size.
  • Clarifying conversation — agent + user turns with timestamps.
  • Console / Network — captured entries with level, status, duration.
  • Comments — append-only thread; checkboxes to mirror to the linked tracker or email the submitter.

Right sidebar:

  • Actions — status, priority, resolution note, "Mark resolved" button.
  • Page / Device / Identity / Meta — captured at submission time.
  • Grounding — link to the project context that was loaded into the enrichment LLM for this submission; federation provider pills with replay links.
  • Related — pg_trgm similarity match against other feedback in the project.

Status workflow

Five statuses: triage (default) → backlogin_progressdone / canceled. Changing status writes back to the linked Linear issue (matches workflow state by type — completed / canceled / started / unstarted / backlog).

Setting status to done or canceled:

  • Stamps resolved_at.
  • Saves the resolution note onto the row.
  • Posts an audit comment to Linear with the note.
  • Emails the submitter (if identity.email is captured + RESEND_API_KEY is set).

Reverting to triage / backlog / in_progress clears those.

Comments

Three author types: human, agent, submitter. The thread is append-only.

When posting:

  • Email submitter: ships a Resend email to identity.email. Disabled when the submitter was anonymous.
  • Mirror to tracker: appends a Linear comment prefixed with the author type. Disabled when no tracker is connected.

Both default to off — opt-in per comment.

Project context

/project/context shows the brief currently loaded into the enrichment LLM for the active project. View-only — push updates via the set_project_context MCP tool or your coding agent's Earshot context skill.

Projects

/projects lists every project across every team you belong to. Each row links to its settings page where you can rename the project or rotate the API key.

Sign in

/signin is magic-link only. If clicking the link in your email doesn't work (some clients mangle 127.0.0.1 URLs in dev), the same page accepts the 6-digit code from the same email.