Forge
markdowndeeb25a2
1# P/F/M Zone Geometry — Wave 2
2
3Статус: done.
4
5## Цель
6
7Довести геометрию до явных zone-bounds и добавить визуальный overlay контуров зон без изменения контента.
8
9## Что сделано
10
111. Расширен DTO кадра геометрии:
12 - `PresentationMainGridLayoutFrame` теперь содержит `ZoneBounds`.
13 - `PresentationZoneBound` описывает `Zone`, `StartNormalized`, `WidthNormalized`.
142. Расчёт bounds встроен в `PresentationMainGridLayoutFrameBuilder`:
15 - bounds строятся для первого экрана в порядке якорей.
163. Добавлен overlay контуров зон в `MainWindow.axaml`:
17 - `SkiaZoneGeometryOverlayPfd` / `SkiaZoneGeometryOverlayForward` / `SkiaZoneGeometryOverlayMfd`;
18 - не меняет содержимое зон, только визуально подсвечивает границы.
194. Добавлена настройка пользователя:
20 - `[display].show_skia_zone_geometry_overlay` (модель `DisplaySettings`).
21 - VM-свойства видимости overlay учитывают текущую геометрию колонок.
225. Усилен debug snapshot log:
23 - `[MainGridGeometry]` теперь логирует и `bounds=[...]`.
246. Тесты дополнены проверкой zone-bounds:
25 - `PresentationMainGridLayoutFrameBuilderTests`.
26
27## Решение по rollout
28
29- Полный dual-path для Wave 2 не вводится.
30- Причина: внутренний продукт с одним потребителем; важнее скорость и простота.
31- Контроль: debug snapshot + ручная визуальная валидация.
32
33## Definition of Done
34
35- Геометрия зон доступна не только как строка колонок, но и как явные bounds DTO.
36- Preview контуров можно включить через пользовательскую настройку без изменений контента.
37- Сборка и таргетные тесты presentation-слоя проходят.
38
View only · write via MCP/CIDE