Last updated 2026-05-07
Routes & Features
Every page and API route in the dashboard, drawn directly from
platform/web/src/app/.
Pages
| Route | Source | Purpose |
|---|---|---|
/ | app/page.tsx | Home — recent runs, health badge, quick links. |
/runs | app/runs/page.tsx | List of all runs with status badges. |
/runs/[id] | app/runs/[id]/page.tsx | Run detail: jobs, steps, live log, artifacts. |
/workflows | app/workflows/page.tsx | Discovered workflow list. |
/workflows/[name] | app/workflows/[name]/page.tsx | Workflow detail and YAML editor. |
/prs | app/prs/page.tsx | Open pull requests across the workspace. |
/prs/[id] | app/prs/[id]/page.tsx | Review screen with Monaco split-view diff and file sidebar. |
/features | app/features/page.tsx | One card per feature, with thumbnail when video-capture has been run. |
/features/[slug] | app/features/[slug]/page.tsx | Single feature: description, demo video, screenshots, linked diffs. |
/diffs | app/diffs/page.tsx | List of stacked diffs across features. |
/diffs/[slug] | app/diffs/[slug]/page.tsx | All diffs for a feature with stack ordering. |
/diffs/[slug]/[position] | app/diffs/[slug]/[position]/page.tsx | Single diff review (approve / reject / comment). |
/secrets | app/secrets/page.tsx | Runner mirror keys, backend status, repo-backed SOPS store overview, verify, and sync. |
/issues | app/issues/page.tsx | GitHub issue sync dashboard and deployment-log configuration. |
/artifacts | app/artifacts/page.tsx | Run artifacts and cache entries. |
/audit | app/audit/page.tsx | GitHub sync audit log. |
/discussions | app/discussions/page.tsx | Local GitHub discussions cache. |
/wiki | app/wiki/page.tsx | Local GitHub wiki cache. |
/releases | app/releases/page.tsx | Local GitHub releases cache. |
/runners | app/runners/page.tsx | Runner pool inspection. |
/insights | app/insights/page.tsx | Workspace insights and rollups. |
/packages | app/packages/page.tsx | Package and project inventory. |
/profile | app/profile/page.tsx | Local profile page. |
/settings | app/settings/page.tsx | Dashboard settings shell. |
API routes
All routes live under /api/; they run on the Next.js
server and proxy to the runner, the gh CLI, or git.
Health
| Route | Method | What it does |
|---|---|---|
/api/health | GET | Combined health: dashboard self + runner reachability. |
Pull requests
| Route | Method | What it does |
|---|---|---|
/api/prs | GET | List open PRs via gh pr list --json. |
/api/prs/[id] | GET | Single PR detail (commits, files, review state). |
Secrets
| Route | Method | What it does |
|---|---|---|
/api/secrets/repo | GET | Repo-backed SOPS + age overview from workspace files. |
/api/secrets/repo/verify | POST | Run repo-secrets verification and return issues. |
Features & diffs
| Route | Method | What it does |
|---|---|---|
/api/features | GET | List features from .stax/features.json. |
/api/features/[slug] | GET | Feature detail. |
/api/features/[slug]/video | GET | Stream the video-capture artifact for a feature. |
/api/features/[slug]/screenshots/[filename] | GET | Single screenshot artifact. |
/api/diffs | GET | List all diffs across features. |
/api/diffs/[slug]/[position] | GET | Single diff metadata + patch. |
/api/diffs/[slug]/[position]/approve | POST | Mark approved. |
/api/diffs/[slug]/[position]/reject | POST | Mark rejected. |
/api/diffs/_by-uuid/[uuid] | GET | Lookup by stable diff UUID (used for permalinks). |
Git helpers
| Route | Method | What it does |
|---|---|---|
/api/git/file | GET | Read a file at a given ref (used by the Monaco diff viewer to load parents). |
Theme & chrome
The dashboard renders a sidebar + topbar shell on every route except
review pages, where the topbar is hidden to maximize diff space.
Theme selection is handled by a small inline script in
public/theme.js and persisted in
localStorage; refraction-ui's tokens drive every
surface so the same scheme applies to the UI, the diff viewer
chrome, and the docs.