Skip to content

feat(frontend): add Readiness Matrix for configured/running/served/selected state#157

Open
OnlyTerp wants to merge 1 commit into
sybil-solutions:mainfrom
OnlyTerp:feat/readiness-matrix-154
Open

feat(frontend): add Readiness Matrix for configured/running/served/selected state#157
OnlyTerp wants to merge 1 commit into
sybil-solutions:mainfrom
OnlyTerp:feat/readiness-matrix-154

Conversation

@OnlyTerp

@OnlyTerp OnlyTerp commented Jun 22, 2026

Copy link
Copy Markdown

Closes #154

Adds a read-only Readiness Matrix panel to the dashboard that composes existing endpoints/hooks to clarify configured vs running vs served vs selected model state.

Changes

  • New frontend/src/features/dashboard/readiness-matrix/ component family.
  • Matrix displays per-recipe configured, process, served, selected, and mismatch status.
  • Handles stopped, starting, running, error, and served-model mismatch states.
  • Recipe name links to /recipes?id=... for editing.
  • Adds tests/frontend/e2e/readiness-matrix.test.ts covering row-building logic.

Verification

  • npm --prefix frontend run typecheck
  • npm --prefix frontend run lint ✅ (2 pre-existing warnings)
  • npx tsx --test ../tests/frontend/e2e/readiness-matrix.test.ts ✅ 8 pass, 0 fail
  • cd controller && bun run test:integration ✅ 48 pass / ❌ 1 unrelated failure (lifetime-metrics fixture asserts GPU power draw is 0; host reports real draw)
  • npm run check:contracts ❌ upstream duplicate AggregatedSession export failure (see details below)

Known baseline failures (not from this PR)

  1. controller integration lifetime-metrics fixture — the test expects current_power_watts: 0, but the workstation GPU reports a real value.
  2. npm run check:contracts — flags duplicate AggregatedSession exports in frontend/src/app/api/agent/sessions/all/route.ts and frontend/src/features/agent/session-contracts.ts.

Non-goals

  • No new backend aggregate endpoint.
  • No auto-launch from chat.
  • No recipe schema change.
  • No permission/sandbox work.

…ved/selected state

- Add frontend/src/features/dashboard/readiness-matrix/ with pure model,
  presentation component, and no external state effects.
- Matrix shows per-recipe configured/process/served/selected/mismatch status
  using existing dashboard data (recipes, currentRecipe, currentProcess,
  lifecycleStatus).
- Handles stopped, starting, running, error, and served-model mismatch states.
- Links recipe names to /recipes?id=... for editing.
- Add tests/frontend/e2e/readiness-matrix.test.ts covering row-building logic.
- No new backend endpoint, no recipe schema change, no auto-launch.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Readiness Matrix for configured/running/served/selected state

1 participant