7 Commits

Author SHA1 Message Date
Claude
165cdb6f23 feat(06-01): add yt-dlp and anthropic dependencies
- Add yt-dlp>=2025.0.0 and anthropic>=0.40.0 to pyproject.toml
- Wire ANTHROPIC_API_KEY env var in docker-compose.prod.yml (empty default)
- Rebuilt Docker image, both packages importable in container
2026-04-07 11:35:33 +00:00
Claude
af530cfe60 docs(03-01): complete protocol encoders plan — SUMMARY, STATE, ROADMAP updated
- 03-01-SUMMARY.md: WLED encoders, animation cmd, UDP sender, 27 passing tests
- STATE.md: advanced to plan 2/3, progress 80%, decisions recorded
- ROADMAP.md: phase 3 plan progress updated (1/3 complete)
- REQUIREMENTS.md: marked UDP-01/02/03, ANI-03/04 complete
- pyproject.toml: pytest added as dev dependency
- uv.lock: updated lockfile
2026-04-06 21:43:59 +00:00
Claude
5d93294b97 chore(02-03): replace python-mpv with librosa>=0.10.0 in pyproject.toml
- Remove python-mpv>=1.0.5 (server-side playback replaced by browser audio)
- Add librosa>=0.10.0 for beat detection and tempo analysis
- Keep soundfile, numpy, python-multipart (still needed)
2026-04-06 15:35:35 +00:00
Claude
9239988d38 fix(02): Alpine libmpv/libsndfile symlinks, upload endpoint, browser file picker
- Dockerfile: add libmpv.so + libsndfile.so symlinks (Alpine/musl has no ldconfig)
- engine.py: monkey-patch ctypes.util.find_library as fallback for Alpine
- audio.py: add /upload (multipart) and /files endpoints
- pyproject.toml: add python-multipart
- frontend: replace path input with upload button + file selector dropdown
2026-04-06 15:34:11 +00:00
Claude
474b4a71d5 chore(02-01): add audio dependencies to Dockerfile and pyproject.toml
- Add mpv-libs, ffmpeg, ffmpeg-libs, libsndfile to Alpine Dockerfile
- Add python-mpv>=1.0.5, soundfile>=0.12.0, numpy>=1.26.0 to pyproject.toml
2026-04-06 13:02:41 +00:00
Claude
a21962cbcf feat(01-03): integration wiring, Docker deployment, lightsync.groll.cloud
- Fix API routing: redirect_slashes=False + strip trailing slashes from route paths
- Fix StaticFiles catch-all intercepting /api/* before FastAPI redirect
- Add [tool.hatch.build.targets.wheel] to pyproject.toml for Docker builds
- Install docker-compose plugin (v2.34.0) as CLI plugin
- Create Dockerfile (python:3.11-alpine, CMD python -m lightsync)
- Create docker-compose.prod.yml (Traefik + Authelia, edge network)
- Deploy lightsync container to lightsync.groll.cloud
- Add LightSync entry to start/projects.json
- Update frontend app.js to use /api/devices (no trailing slash)
2026-04-05 18:59:34 +00:00
Claude
061edfcf6a feat(01-01): create package structure, Pydantic models, and device abstractions
- pyproject.toml with FastAPI, uvicorn, Pydantic v2, aiofiles, structlog deps
- DeviceConfig Pydantic model with StripType, UUID, validation constraints
- ShowModel with AudioRef, TrackModel, CueModel, AnalysisBlock, schema_version=1
- BaseDevice ABC with encode_frame, encode_animation_cmd, bytes_per_pixel
- SK6812Device (4 bytes/pixel) and WS2801Device (3 bytes/pixel) implementations
2026-04-05 18:45:19 +00:00