Skip to content

ui: ModelCard tweaks + replace dummy-run fixture with live dev snapshot#24

Merged
robmsmt merged 1 commit into
mainfrom
robmsmt/ui-tweaks-metrics-and-openwebui-button
May 18, 2026
Merged

ui: ModelCard tweaks + replace dummy-run fixture with live dev snapshot#24
robmsmt merged 1 commit into
mainfrom
robmsmt/ui-tweaks-metrics-and-openwebui-button

Conversation

@robmsmt
Copy link
Copy Markdown
Contributor

@robmsmt robmsmt commented May 18, 2026

Summary

Four small UI changes to the model card, plus a fixture swap so `make dummy-run` actually exercises the new things.

ModelCard

  1. Metrics moved to expand area. The green "Metrics" pill in the always-visible header is gone; in its place is a "Metrics Dashboard" button inside the click-to-expand action row next to "Open in OpenWebUI". The two reads as a pair of model actions instead of a header badge competing for attention with the 24/7 / Slurm / replica-count chips.

  2. OpenWebUI button → black. `bg-indigo-600` → `bg-black` (hover `bg-neutral-800`). Quieter primary, plays better with the green Metrics Dashboard sibling.

  3. Header device line: replica-aware topology summary. Was a flat de-duped device list (`devices.join(', ')`) which for a multi-node replica showed e.g. "4x NVIDIA GH200 120GB" with no indication of node count. New `topologySummary(replicas)` calls `topologyString(r)` per replica (existing helper, already renders "2 nodes × 4x GH200"). If every replica has the same shape (the common case — one model is launched one way), show it once. If they differ, show "Various" rather than picking one to display.

Fixture

`make dummy-run` was pointing at `dnt_table_upgraded.json` — a synthesised file from `build_upgraded.py`. The synthesised peers had repeated ids / weird groupings, which surfaced in the UI as ridiculous replica counts (`x10` on every model, a total of 43 replicas across 16 models). Useless for visually verifying the changes above.

Replaced with `dnt_table_dev_live.json` — a live snapshot of `http://148.187.108.177:8092/v1/dnt/table\` (the dev mesh bootstrap peer). 11 real peers: a couple of single-node sglang dev launches, two multi-node gemma replicas (5 + 4 peers each sharing a worker_group_id), and the bootstrap peer itself with no services. Exercises:

  • The new topology summary (multi-node replicas vs single)
  • Shared-worker_group_id grouping into one replica
  • Real `framework_args` / `expires_at` labels (new in model-launch)
  • Mixed otela_version values (`dev-9ff5ec9` from a binary with the opentela #9 fix, `v0.1.11` from older binaries)

The synthesised fixture stays on disk for unit tests + the `build_upgraded.py` generator (which still has its own purpose: deterministic test data).

Test plan

  • `pytest backend/tests/test_model_service.py` — 9/9 passing
  • `astro check` — 0 errors, 0 warnings (12 pre-existing hints)
  • `make dummy-run` — verify the model list looks sane: replica counts match the snapshot, multi-node card shows "5 nodes × 4x GH200" style, Metrics + OpenWebUI buttons appear in expanded view, OpenWebUI is black
  • Hover/click both buttons; ensure both open in new tab

🤖 Generated with Claude Code

ModelCard:
- Move Metrics out of the always-visible header pill row and into the
  click-expand action area as a "Metrics Dashboard" button next to
  OpenWebUI. Same shape, same affordance — both are model actions.
- Open-in-OpenWebUI button restyled to bg-black for a quieter primary.
- Header device line replaces a flat distinct-device list with a
  topologySummary() across replicas: if every replica has the same
  shape (almost always), show it once ("2 nodes × 4x NVIDIA GH200");
  if they differ, show "Various" rather than picking one to display.

Dummy-run fixture:
- Replace the synthesised dnt_table_upgraded.json (which generated
  artefacts like x10 replica counts and a 43-replica total) with a
  live dev-mesh snapshot dnt_table_dev_live.json. 11 real peers
  including multi-node replicas — exercises the topology summary,
  shared-worker_group_id grouping, and the new framework_args /
  expires_at labels. The synthesised fixture stays on disk for the
  build_upgraded.py generator + unit tests that depend on it.
@robmsmt robmsmt merged commit bd4427a into main May 18, 2026
2 checks passed
@robmsmt robmsmt deleted the robmsmt/ui-tweaks-metrics-and-openwebui-button branch May 18, 2026 18:00
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.

1 participant