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) → backlog → in_progress → done / 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.emailis captured +RESEND_API_KEYis 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.