Skip to content

v2.10.0 — Web UI catches up · feature parity with MCP

Choose a tag to compare

@gfargo gfargo released this 17 May 02:36
· 31 commits to main since this release
8b15bdd

Highlights

The web UI now exposes everything the MCP layer does. Until now the browser interface was built around the v2.2 surface (AI chat + scenes + console + read-only group drawer). Eight releases later the MCP layer shipped 48 tools — 35 of the underlying endpoints had no UI affordance. This release closes that gap.

If you can do it via Claude Desktop, you can now do it via http://lights.local:5000.

What's new

Always-visible header

  • BLACKOUT button (top-right, red, pulsing) — calls /api/blackout, zeros every channel including strobe/macro state. Distinct from fade(0). No confirmation prompt — operators need this fast.

Tabs (was 2, now 6)

Tab What it does
AI Control Unchanged for now — full agentic chat ships in v2.11
Virtual Console Existing per-fixture sliders + Identify button per fixture (pulses 2s × 4, restores prior state)
Cue Lists List, builder modal, GO/STOP, live elapsed-time progress bar + cue counter
Chases List, visual scene-picker builder with reorder / direction / run-order / fade timings, start/stop
Quick Tools Kelvin slider (1800–10000K with gradient track), strobe rate slider (0–20Hz), palette assignment table per group
Diagnostics Pi health cards (CPU temp / load / memory / disk / uptime / USB / services, color-coded), one-click test_dmx, journal tail for the four allowlisted services

Groups drawer (read-only → CRUD)

  • Inline + New Group form: name, fixture picker (chips), optional description
  • Rename / Delete per group
  • Target-group chips on AI tab + Quick Tools group selects refresh automatically

Scene grid affordances

  • Each scene tile gains a hover menu: Rename / Duplicate / Delete

Implementation

  • All vanilla JS, no build step. Template stays single-file (~2500 lines, was 1011)
  • Same design vocabulary as v2.2 (#0a0a0a / #111 / #222 panels, uppercase letter-spaced labels)
  • Lazy load: each tab fetches data only when first opened
  • Cue Lists tab polls /api/cue_lists/active every 1s while visible for elapsed-time updates; pauses on tab switch

Upgrade

```bash
git pull
./lightsctl.sh control-restart # serves the new template
```

No package dependency changes. No new endpoints. Pure frontend work consuming existing API.

Compatibility

  • Zero backend changes
  • Existing UI patterns preserved (the AI Control + Virtual Console tabs work identically to v2.9)
  • New CSS classes are namespaced (.btn-primary, .tool-panel, .modal-panel) — no collisions with existing styles
  • Local storage keys unchanged — command history persists across this upgrade

Documentation

  • Wiki Control-Server page — feature list updated with the new tabs + drawer CRUD + BLACKOUT + scene affordances
  • Marketing FAQ — new entry confirming web UI feature parity with the MCP layer

What's intentionally NOT in this release

Agentic chat — the "chat with the LLM, it calls MCP tools, reports back" experience ships as v2.11. The current AI Control tab is the one-shot natural-language interpreter that was there before; v2.11 replaces it with a proper conversational agent that has access to all 48 MCP tools.

Roadmap status

Web UI gap: closed. Tier 3 remaining: #10 (SSE event stream), #11 (multi-workspace), #12 (audio-reactive). Plus the agentic chat work tracked for v2.11.