feat(dash): make the ROCm/Serving detail pane state-aware - #93
Conversation
rominf
left a comment
There was a problem hiding this comment.
LGTM. The state→verb mapping is correct and the _ => Vec::new() catch-all is appropriate (documented; most KeyAction variants have no live view), no panics, lifetimes are fine (Vec<Line<'static>> coerces cleanly), both callers (rocm.rs, serving.rs) are updated, and regression tests are added.
Minor (pre-existing, not introduced here): the OpenServices live view iterates state.instances.values().take(5), so which 5 of N running instances appear is non-deterministic frame-to-frame — a stable sort by model/port would be a nice follow-up. The count header is always correct.
Approving.
|
🔴 Automated review · pr-review-watcher · 56b57ab SummaryThreads 🚫 Blocking (must fix before merge)None. Non-blocking
|
The Actions -> Details pane rendered fixed copy. Thread `&AppState` into `pane::draw`/`draw_detail` and render a live status block per verb: - Set up / Install ROCm: detected ROCm + driver versions and installed runtimes - Serve a model: the known-model catalog - Engines: Lemonade install status (vLLM deferred until the daemon surfaces it) - Running instances: live instances inline (model/port/gen tps) — no popup Falls back to honest "not detected" / "none running" when telemetry is absent. Adds tab tests for the populated install + running-instances paths. Signed-off-by: Michael Roy <michael.roy@amd.com>
56b57ab to
1bd8b34
Compare
What
The Actions → Details pane on the ROCm and Serving tabs rendered fixed copy regardless of system state. Thread
&AppStateintopane::draw/draw_detailand render a live status block per verb:Falls back to honest
not detected/none runningwhen telemetry is absent, so it degrades correctly on machines without ROCm.Tests
--test-threads=1), clippy-D warningsclean.Notes
Part 3 of 3 for today's dash UX work. Independent of #91 / #92 (disjoint files) — mergeable in any order.
Follow-on (not in this PR): real downloaded-model detection and vLLM install detection need a new background fetch +
AppStatefields.