Было: tpl_3 = main + 2 preview + temp_chart (rs=4) + ha_chat.
При 4 active композитор выбирал tpl_3 (waste=1 vs tpl_4 waste=0 — wait,
tpl_3 имел 3 cam cells, при 4 active брал tpl_4=quad без виджетов).
Стало: tpl_3 = main + 3 preview + temp_chart (rs=2, низ-право) + ha_chat.
4 cam cells, при 4 active best-fit выбирает tpl_3 (waste=0, раньше в registry
чем tpl_4 → tie-breaker за tpl_3). Виджеты остаются видимыми.
Geometry validated: 36+4+4+4+4+12=64 микроячеек, no overlaps.
Hot-reloaded via reload_templates ZMQ в проде.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
User: "смущает чёрная ячейка в сетке". Причина: asymmetric templates
имели widget cells (placeholder тёмно-серый Y=40) + при недостатке active
camera cells оставались BlankCell (чёрный).
Два изменения:
1. templates.json — оставили только 16:9 layouts (tpl_1/tpl_4/tpl_9/tpl_16).
Все camera-cells, никаких widget-областей. Cells full 16:9 (cs==rs
микроячейки), полностью покрывают output 1920×1080 без чёрных полос.
Asymmetric layouts (main + satellites) удалены — вернуть в Phase 12
когда widget'ы будут реальными (HA-chat, temperature graph).
2. composer::maybe_relayout — заполнить свободные camera-cells остальными
drawable камерами из pool (по priority), если template имеет больше
cells чем motion-active. Условие: cap > active.size().
Производство при 4 источниках в pool:
- 1 motion → tpl_1 (1 cell full screen)
- 2 motion → tpl_4 (2 motion + 2 not-active drawable = 4 cells заняты)
- 4 motion → tpl_4 (все 4 motion)
- При добавлении новых камер (до 16) — tpl_9 при 5..9, tpl_16 при 10..16
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Объединённое состояние работ:
- Phase 10: source pool, motion-driven layout, Frigate motion_pulse,
zone-filter в pool, --source / --motion-mode CLI
- Phase 11 Steps 1-3c: 8×8 микро-сетка, JSON templates с asymmetric
layouts (tpl_1/3/4/5/6/7/8), reload через ZMQ, auto-labels per camera
В прод отдеплоено и откачено: используем gx/cuframes-composer:0.10 как
baseline. Phase 11 продолжится в branch phase11b-cpp как C++ refactor
с ООП-моделью Cell/Layout/Decoration.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>