From f6f428515a4026527fa19f65b11ef3a20a8f5372 Mon Sep 17 00:00:00 2001 From: "alexei.dolgolyov" Date: Wed, 11 Mar 2026 17:40:16 +0300 Subject: [PATCH] Update TODO.md and add task tracking rule to CLAUDE.md Remove completed/deferred items from TODO.md and add instruction to use TODO.md as the primary task tracker instead of TodoWrite. Co-Authored-By: Claude Opus 4.6 --- CLAUDE.md | 9 +++++++++ TODO.md | 21 --------------------- 2 files changed, 9 insertions(+), 21 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 0afc94d..adf19a6 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -236,6 +236,15 @@ When adding **new tabs, sections, or major UI elements**, update the correspondi - In HTML templates: use `data-i18n="key"` for text content, `data-i18n-title="key"` for title attributes, `data-i18n-aria-label="key"` for aria-labels - Keys follow dotted namespace convention: `feature.context.description` (e.g. `device.error.brightness`, `calibration.saved`) +## Task Tracking via TODO.md + +Use `TODO.md` in the project root as the primary task tracker. **Do NOT use the TodoWrite tool** — all progress tracking goes through `TODO.md`. + +- **When starting a multi-step task**: add sub-steps as `- [ ]` items under the relevant section +- **When completing a step**: mark it `- [x]` immediately — don't batch updates +- **When a task is fully done**: mark it `- [x]` and leave it for the user to clean up +- **When the user requests a new feature/fix**: add it to the appropriate section with a priority tag + ## General Guidelines - Always test changes before marking as complete diff --git a/TODO.md b/TODO.md index 9d53a8c..5e502f9 100644 --- a/TODO.md +++ b/TODO.md @@ -4,9 +4,6 @@ Priority: `P1` quick win · `P2` moderate · `P3` large effort ## Processing Pipeline -- [ ] `P1` **Zone grouping** — Merge adjacent LEDs into logical groups sharing one averaged color - - Complexity: medium — doesn't fit the PP filter model (operates on extracted LED colors, not images); needs a new param on calibration/color-strip-source config + PixelMapper changes - - Impact: high — smooths out single-LED noise, visually cleaner ambilight on sparse strips - [ ] `P3` **Transition effects** — Crossfade, wipe, or dissolve between sources/profiles instead of instant cut - Complexity: large — requires a new transition layer concept in ProcessorManager; must blend two live streams simultaneously during switch, coordinating start/stop timing - Impact: medium — polishes profile switching UX but ambient lighting rarely switches sources frequently @@ -17,21 +14,6 @@ Priority: `P1` quick win · `P2` moderate · `P3` large effort - Complexity: medium — UDP-based protocols with well-documented specs; similar architecture to DDP client; needs DMX universe/channel mapping UI - Impact: medium — opens stage/theatrical use case, niche but differentiating -## Automation & Integration - -- [ ] `P2` **Webhook/MQTT trigger** — Let external systems activate profiles without HA integration - - Complexity: low-medium — webhook: simple FastAPI endpoint calling SceneActivator; MQTT: add `asyncio-mqtt` dependency + subscription loop - - Impact: high — key integration point for home automation users without Home Assistant - -## Multi-Display - -- [ ] `P2` **Investigate multimonitor support** — Research and plan support for multi-monitor setups - - Complexity: research — audit DXGI/MSS capture engine's display enumeration; test with 2+ monitors; identify gaps in calibration UI (per-display config) - - Impact: high — many users have multi-monitor setups; prerequisite for multi-display unification -- [ ] `P3` **Multi-display unification** — Treat 2-3 monitors as single virtual display for seamless ambilight - - Complexity: large — virtual display abstraction stitching multiple captures; edge-matching calibration between monitors; significant UI changes - - Impact: high — flagship feature for multi-monitor users, but depends on investigation results - ## Capture Engines - [ ] `P3` **SCRCPY capture engine** — Implement SCRCPY-based screen capture for Android devices @@ -44,13 +26,10 @@ Priority: `P1` quick win · `P2` moderate · `P3` large effort - [x] `P2` **Manual backup trigger endpoint** — `POST /system/auto-backup/trigger` (~5 lines) - [ ] `P2` **Scene snapshot should capture device brightness** — `software_brightness` not saved/restored - [ ] `P2` **Distinguish "crashed" vs "stopped" in dashboard** — `metrics.last_error` is already populated -- [ ] `P3` **Home Assistant MQTT discovery** — publish auto-discovery payloads; MQTT infra already exists - [ ] `P3` **CSS source import/export** — share individual sources without full config backup ## UX - [ ] `P1` **Collapse dashboard running target stats** — Show only FPS chart by default; uptime, errors, and pipeline timings in an expandable section collapsed by default -- [ ] `P1` **Review new CSS types (Daylight & Candlelight)** — End-to-end review: create via UI, assign to targets, verify LED rendering, check edge cases (0 candles, extreme latitude, real-time toggle) - [x] `P1` **Daylight brightness value source** — New value source type that reports a 0–255 brightness level based on daylight cycle time (real-time or simulated), reusing the daylight LUT logic - [x] `P1` **Tags input: move under name, remove hint/title** — Move the tags chip input directly below the name field in all entity editor modals; remove the hint toggle and section title for a cleaner layout -- [ ] `P1` **IconSelect grid overflow & scroll jump** — Expandable icon grid sometimes renders outside the visible viewport; opening it causes the modal/page to jump scroll