Skip to content

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

Description

@OnlyTerp

Problem

vLLM Studio has separate surfaces for recipe status, process/server health, logs, model list, and agent-selected model, but no single panel that explains configured vs launching/running vs served vs selected state.

Evidence

  • frontend/src/components/dashboard/control-panel/status-section.tsx:27-79 shows process/recipe/metrics/lifecycle fragments.
  • frontend/src/app/server/page.tsx:12-159 shows controller/inference health, model, activity, and logs.
  • frontend/src/ui/recipes/recipes-content/recipes-content-model.ts:61-75 loads /recipes and marks runningRecipeId.
  • frontend/src/lib/agent/workspace/reducer.ts:62-74 chooses a model from active/first available models, which can be configured but not served.
  • controller/src/modules/models/routes.ts:49-123 /v1/models lists all recipes and marks only the running recipe active.
  • controller/src/modules/proxy/openai-routes.ts:271-291 rejects configured-but-stopped models at chat time with 503.

Proposed direction

Add a read-only Readiness Matrix panel that composes existing endpoints/hooks and answers four questions:

  1. Is the recipe configured?
  2. Is the runtime process launching/running?
  3. Is the inference server healthy and serving the selected model?
  4. Does the chat/agent selected model match the served model?

Acceptance criteria

  • Panel shows configured recipe, process state, server health/model-list state, and chat-selected model state.
  • Panel handles stopped, starting, running, error, and selected-model mismatch states.
  • Panel links to existing logs/status/recipe edit surfaces.
  • First slice uses existing endpoints; no new backend route unless source review proves necessary.
  • No auto-launch behavior is added.

Non-goals

  • No backend aggregate endpoint in the first slice unless proven necessary.
  • No auto-launch from chat.
  • No recipe schema change.
  • No permission/sandbox work.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    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