| # Design: Compact Model Runtime Status |
|
|
| ## Overview |
|
|
| The Model Stack panel should remain compact but more informative. Each model role row should include: |
|
|
| - role label |
| - model id |
| - parameter count |
| - runtime |
| - Tiny Titan pass/fail |
| - current status label, such as `online`, `fallback-ready`, `configured`, or `offline` |
|
|
| ## Data Sources |
|
|
| Use existing APIs: |
|
|
| - `/api/model-budget` for model roles and Tiny Titan information |
| - `/api/runtime-status` for live/fallback readiness |
|
|
| No backend schema change is required unless the runtime-status payload lacks enough role identifiers. Prefer a small frontend mapping from runtime keys to model roles. |
|
|
| ## Frontend Mapping |
|
|
| Suggested mapping: |
|
|
| | Model Role | Runtime Status Key | |
| | --- | --- | |
| | narrator brain | `llama_cpp` or equivalent brain status | |
| | speech | `kokoro` or TTS status | |
| | image descriptor | `vision` | |
| | image generator | `image_generation` or Klein status | |
|
|
| Use the actual keys in the current payload. Missing keys should render as `fallback-ready` or `unknown` without throwing. |
|
|
| ## UI |
|
|
| Use existing list/budget styles. Add only minimal CSS for compact status labels: |
|
|
| - short uppercase or title-case text |
| - neutral color for fallback-ready |
| - green/positive treatment for online |
| - warning treatment for offline/error |
|
|
| Keep labels readable and avoid one-hue theme drift. |
|
|
| ## Verification |
|
|
| Verifier should check: |
|
|
| - reader page still lacks removed evidence DOM ids |
| - `static/app.js` fetches `/api/runtime-status` |
| - model stack rendering includes status text/targets |
| - `static/app.js` handles missing runtime status gracefully |
|
|
| No live endpoints are required. |
|
|