From 34077018a9a1bc5ef96cba7f6d8890e60fa97fc6 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 7 Apr 2026 00:00:51 +0000 Subject: [PATCH] docs(phase-04): evolve PROJECT.md after phase completion --- .planning/PROJECT.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.planning/PROJECT.md b/.planning/PROJECT.md index 35400e9..f65abec 100644 --- a/.planning/PROJECT.md +++ b/.planning/PROJECT.md @@ -21,13 +21,20 @@ Being able to load a song, build a synchronized light show, and play it back liv - [x] 7 built-in animation types (solid, chase, pulse, rainbow, strobe, color-wipe, fire) as pure renderers — `lightsync/animations/` - [x] Animation factory and registry — `create_animation()` by name, extensible for Phase 4+ +**Timeline Editor (Phase 04)** +- [x] Timeline editor: per-device tracks, drag-and-place animation blocks — `TimelineCanvas` + `handleDrop()` (validated Phase 04) +- [x] Block interactions: move, resize, delete with 50-step undo/redo — `CommandHistory` + command pattern (validated Phase 04) +- [x] Beat detection overlay: marks on timeline, snap-to-beat on all block ops — `BeatGrid` class (validated Phase 04) +- [x] Block inspector: color picker + parameter controls, all undoable — `BlockInspector` + `UpdateParamsCommand` (validated Phase 04) +- [x] Playback cursor moves in realtime — `requestAnimationFrame` reads `audio.currentTime` (validated Phase 04) +- [x] Beat calibration offset: shifts marks without corrupting raw data (validated Phase 04) + ### Active **UI** - [ ] Web app with terminal/hacker aesthetic — dark theme, monospace fonts, no generic SaaS look - [ ] Song loading via local file or YouTube URL (via yt-dlp + MPV subprocess) - [ ] Audio playback controls: play, pause, seek, position display -- [ ] Timeline editor: per-device tracks, drag-and-place animation blocks - [ ] Animation library panel with configurable parameters (speed, colors, length, etc.) - [ ] Manual mode: pause playback, assign animation to timestamp, resume @@ -101,4 +108,4 @@ This document evolves at phase transitions and milestone boundaries. 4. Update Context with current state --- -*Last updated: 2026-04-06 — Phase 03 complete: communication protocol layer, animation library, E2E UDP validation* +*Last updated: 2026-04-07 — Phase 04 complete: interactive timeline editor, command pattern undo/redo, BeatGrid module, block inspector*