Commit graph

17 commits

Author SHA1 Message Date
Natalie
d77a63d7ff feat(broadcast): controller + destination-store + types updates
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 14:35:17 -04:00
Natalie
3cb521912e feat(live): enable HLS (port 8888) in cast/infra mediamtx configs for admin preview player (narrow) 2026-06-28 15:59:09 -04:00
Natalie
0da0e1233c feat(live): add live.transquinnftw.com deployment surface with SSO /admin (reuse quinn-www/vip pattern) + basic player at /shows/live and light admin preview page for OBS produced HLS from the relay cast (input cast IP, hls.js player).
Wiring: enable HLS port in cast/infra mediamtx + ufw notes; add deploy:live case + help in run/deploy.sh; update live deploy script.

Ties the quinn.cast relay (on-demand DO) to the VIP shows live feature (fanout to live.transquinnftw.com ingest powers the player; /admin for SSO operator preview + light admin).
2026-06-28 15:59:00 -04:00
Natalie
ec98112267 feat(broadcast): support streaming to VIP live (live.transquinnftw.com) as destination for vip.transquinnftw.com/shows/live,list feature; update defaults, LLM prompt, UI preset, docs, env examples, services comment. Deploy on demand tested via dry-run + syntax + local infra. 2026-06-28 15:54:25 -04:00
Natalie
d8d0f92d40 feat(broadcast): add VIP Live quick preset button in DestinationManager for vip.transquinnftw.com/shows/live (narrow, with title note for key from VIP system) 2026-06-28 15:54:12 -04:00
Natalie
fd10b9b6d8 docs(broadcast): note deploy on demand tested (dry-run + local infra + syntax) and VIP live support as destination for vip.transquinnftw.com/shows/live,list (narrow) 2026-06-28 15:54:04 -04:00
Natalie
51deaee391 fix(broadcast): re-add ReactElement to main.tsx import (for gate usage) after ReactNode cleanup (narrow) 2026-06-28 15:18:46 -04:00
Natalie
4d5d8b8fa9 fix(broadcast): sync frontend api.ts to shared types + re-exports, ReactNode for children/returns, explicit types to clear src type errors (0 under src/ now)
Narrow post-agent polish for clean typecheck.
2026-06-28 15:18:04 -04:00
Natalie
868b7669ff feat(broadcast): complete frontend-public UI from frontend-developer agent (proper Vite+React19 SPA with @lilith/ui-*, StatusDashboard/SceneSwitcher/DestinationManager/ChatPanel/ToolResultDisplay components, useBroadcastAuth hook, direct REST + LLM chat, ?p=/localStorage auth, proxy to 3034, strict TS, theme tokens only, lixbuild ready)
Extracted/polished from controller embedded UI into full dashboard layout. Self-verified (typecheck 0, build OK, dev runnable).

All 4 parallel agents now delivered their disjoint scopes on main per plan + user direction (no worktrees, multiple agents).
2026-06-28 15:11:03 -04:00
Natalie
3378d0710d feat(broadcast): backend-api + controller + shared refinements from quinn-platform-architect agent (pure Bun.serve no-dep backend, robust dest store with /tmp fallback + atomic, typed surfaces, core delegation, error handling; no hono dep for immediate verifiability)
Scoped to agent's paths. Self-verified per agent's commands (syntax, store, boots).

Per approved plan + multi-agent on main.
2026-06-28 14:44:55 -04:00
Natalie
b6e72efe67 docs(broadcast): mention new infra/ as canonical relay stack source + local dev:broadcast:relay (from cloud-architect delivery) (narrow) 2026-06-28 14:43:14 -04:00
Natalie
fc4d85b37e docs(broadcast): update README to document the now-landed quinn.cast deployment surface (deploy-captain agent) + remaining work (narrow) 2026-06-28 14:41:22 -04:00
Natalie
8c9a8fc6f8 docs(broadcast): update RUNBOOK for fully-runnable DO relay stack
- provisioning now auto-deploys infra + bootstrap
- first boot / build / OBS sections rewritten around the custom Dockerfile + Hotel Cam seed + pre-wired produced RTMP + audio bridge debug
- troubleshooting expanded for new services, ufw, bootstrap, alsa device
- self-verification details the exact steps taken for the relay side (reads, creates, edits, verification commands, scoped commits)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 14:41:09 -04:00
Natalie
ede0fe5467 feat(broadcast): add production relay infra under feature (compose, mediamtx, custom OBS Dockerfile+seed for Hotel Cam/LowerThird/produced RTMP, audio+video bridges, bootstrap, ufw/health/fanout)
- docker-compose with all services, health, depends, obs-config volume seed
- mediamtx with live + live/produced paths
- obs/ bakes defaults so start_broadcast + set_text + v4l2/alsa just work
- bootstrap.sh for robust post-boot (modules fixed indices, ufw, stack up)
- source of truth for DO side of end-to-end

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 14:40:54 -04:00
Natalie
09346e536e feat(broadcast): multi-agent parallel delivery of full feature on main -- backend-api, frontend-public, shared, controller refactor into modules (llm-agent, obs-client, etc.), mcp-server start, deployment surface quinn.cast, obs scene collection (per approved plan + user 'merge to main + use multiple agents') 2026-06-28 14:38:01 -04:00
Natalie
8a1bbd7f29 fix(broadcast): make /data dir creation robust in controller (no spurious warning on first run) 2026-06-28 13:30:49 -04:00
Natalie
f49b7df43d feat(broadcast): LLM-controlled remote OBS + SRT relay for low-upload hotel streams with high-bitrate multi-RTMP from DO
- New scripts/provision-stream-droplet.sh (modeled on gpu one) for cheap DO droplet with docker + v4l2loopback + mediamtx ready.
- scripts/hotel-srt-push.sh: macOS ffmpeg one-liner helper for reliable modest-bitrate SRT contribution over bad WiFi.
- New @features/broadcast/controller/: self-contained Bun server with embedded Tailwind chat UI, full xAI Grok-4.3 tool-calling agent, pure-WebSocket obs-websocket v5 client, dynamic destination + ffmpeg fanout manager.
- Full docs + RUNBOOK with architecture, provisioning, hotel push, OBS notes, security, troubleshooting, and verification notes.
- Matches the 'RTMP relay for simulcast' vision already promised in performer marketing.

The hotel side sends ~3 Mbps SRT. All compute, final encode, and broadcast bitrate (to Twitch/YouTube/etc.) happens on the DO network. Control is natural language chat to the LLM.
2026-06-28 13:30:39 -04:00