The original 36-week commercial roadmap (freemium pricing, MIDI/OSC/QLab, mobile builds, cloud sync, certification program) was replaced by a 3-week personal-use plan focused on running Bug in October 2026. This document records what shipped and what's deferred.
node-hue-apiintegrated; Entertainment API explicitly NOT used (over-engineered for cue-to-cue, see ARCHITECTURE.md)- Bridge discovery (mDNS + N-UPnP), link-button pairing, persistent app key
- Auto-reconnect on launch
- Settings modal with Search → Pair → Forget flow
- Connection-status badge in header (real, not hard-coded)
- GO fires real lights with bridge-side fade (
transitiontime) - Blackout works (group 0, 0.3s fade)
cue_lights.is_onschema migration (lights can be explicitly off in a cue, vs absent and ignored)- Per-cue lights editor inside the cue modal: include checkbox, ON/OFF toggle, brightness slider, color picker
- 📸 Capture from bridge — pulls live state into the editor
- ▶ Preview live — pushes editor state without saving
- Include all / Clear all helpers
- BACK re-fires previous cue's state on the bridge (not just cursor decrement)
- Click cue in sidebar = jump-to + fire
- Cue light-count badge ("N 💡" / "empty") in sidebar
- Show JSON export/import (versioned schema)
- Crash recovery: position saved after every fire; "Resume Show at Cue N?" banner on next launch
- Bridge reconnect banner with auto-retry every 5s; never auto-fires after reconnect
- Drag-reorder cues with SortableJS; only the dragged cue's number changes (midpoint of neighbors)
- Confirm-tap Blackout (3s amber pulse window before second tap fires)
- Touch-friendly GO button (
@media (hover:none) and (pointer:coarse)→ 80% width / 40vh / 72px) - Fixed silent fade-progress bar bug (was animating wrong DOM node)
- electron-builder configured;
npm run dist:winproduces an NSIS installer - Documentation rewritten to match what was built (this file, ARCHITECTURE.md, cyc-app/README.md)
These would be small additions, not redesigns. Add only if a real Bug tech rehearsal exposes the need.
- Code signing for the installer — avoids the Windows SmartScreen warning. Only matters if distributing beyond personal use.
- Auto-updater —
electron-updater+ a release host. Useful only if more than one machine runs Cyc. - Multi-bridge support — one show talking to multiple bridges. The architecture allows it (HueService could become a Map keyed by bridge), but Bug almost certainly fits inside one bridge's ~50-light cap.
- Cue groups / scenes / fixture profiles — for now, every cue is a flat list of lights. If repetitive states emerge during programming, "scene" templates would help.
- MIDI / OSC triggers — only relevant if integrating with sound playback (QLab, Reaper, etc.). For Bug being run by a human on GO, not needed.
- Cue notes / script integration — a free-text "follow-on" or stage manager note per cue.
The original roadmap promised these. They are explicitly NOT planned because the architectural cost outweighs personal-use value.
Philips Hue Entertainment API (DTLS/UDP streaming at 25Hz)— overkill for cue-to-cue; bridge-sidetransitiontimeis sufficient. See README.md for the rationale.React + Redux/Zustand + MUI— vanilla JS is fine for this app's complexity.Microservices, Redis, Bull queue— single process, no queue.Cloud sync, user accounts, freemium pricing— personal tool.Mobile builds, PWA, React Native— Electron desktop is the target form factor.Marketing site, certification, App Store listings— out of scope.
The app is done when Bug runs cleanly in October 2026. Shipping more features before that is premature optimization. Bug-driven changes (literally) take priority over the deferred list.