492bdb95e3
Receive real-time events from games (CS2, Dota 2, LoL, etc.) and drive LED effects through the existing color strip and value source pipelines. Core: - GameEventBus (thread-safe pub/sub) with standardized 23-type event vocabulary - GameAdapter ABC + AdapterRegistry + MappingAdapter (YAML-driven) - Built-in adapters: CS2 GSI, Dota 2 GSI, LoL Live Client, Generic Webhook - Community YAML adapters: Minecraft, Valorant, Rocket League - GameEventColorStripStream with 5 effects (flash/pulse/sweep/color_shift/breathing) - GameEventValueSource with EMA smoothing and timeout - 4 built-in effect presets (FPS Combat, MOBA Health, Racing, Generic Alert) - Auto-setup for Valve GSI games (Steam path detection, cfg file writing) - Demo capture engine exposed to non-demo mode Frontend: - Game tab in Streams tree navigation with integration cards - Game integration editor modal with adapter picker, config fields, event mappings - game_event source type in CSS and ValueSource editors - Setup instructions overlay (markdown rendered) - Live event monitor and connection test API: - Full CRUD for game integrations - Event ingestion endpoint (adapter-level auth) - Adapter metadata, presets, auto-setup, status/diagnostics endpoints
2.6 KiB
2.6 KiB
Feature: Game Integration
Branch: feature/game-integration
Base branch: master
Created: 2026-03-30
Status: 🟡 In Progress
Strategy: Big Bang
Mode: Automated
Execution: Orchestrator
Summary
A system that receives real-time events from games (CS2, LoL, Dota 2, etc.) and drives LED effects through the existing color strip and value source pipelines. Uses a standardized event vocabulary so users configure effects against universal categories (health, kill, death) rather than game-specific IDs. Supports built-in adapters, community YAML adapter files, and a generic webhook fallback.
Build & Test Commands
- Build (frontend):
cd server && npm run build - Test:
cd server && py -3.13 -m pytest tests/ --no-cov -q - Lint:
cd server && ruff check src/ tests/ --fix - TypeScript:
cd server && npx tsc --noEmit
Phases
- Phase 1: Core Event Bus & Adapter Framework [backend] → subplan
- Phase 2: Storage & API — Game Integration Configs [backend] → subplan
- Phase 3: Built-in Game Adapters [backend] → subplan
- Phase 4: GameEventColorStripStream [backend] → subplan
- Phase 5: GameEventValueSource [backend] → subplan
- Phase 6: Frontend — Game Integration Management UI [frontend] → subplan
- Phase 7: Frontend — ColorStrip & ValueSource Game Bindings [frontend] → subplan
- Phase 8: Effect Presets & Polish [fullstack] → subplan
Phase Progress Log
| Phase | Domain | Status | Review | Build | Committed |
|---|---|---|---|---|---|
| Phase 1: Event Bus & Adapter Framework | backend | ✅ Done | ✅ | ⬜ | ⬜ |
| Phase 2: Storage & API | backend | ✅ Done | ✅ | ⬜ | ⬜ |
| Phase 3: Built-in Adapters | backend | ✅ Done | ✅ | ⬜ | ⬜ |
| Phase 4: CSS Stream | backend | ✅ Done | ✅ | ⬜ | ⬜ |
| Phase 5: Value Source | backend | ✅ Done | ✅ | ⬜ | ⬜ |
| Phase 6: Frontend Management UI | frontend | ✅ Done | ✅ | ⬜ | ⬜ |
| Phase 7: Frontend Bindings | frontend | ✅ Done | ✅ | ⬜ | ⬜ |
| Phase 8: Presets & Polish | fullstack | ✅ Done | ✅ | ✅ | ⬜ |
Parallel Phases
Phases 4 and 5 are independent (no shared files) — can run in parallel.
Final Review
- Comprehensive code review
- Full build passes
- Full test suite passes
- Merged to
master