WEB-347 · Дефект · — · web
P1 [Gate C shadow]: 168/168 записей телеметрии — divergenceKind=unrepresented-dom-mutation: теневой конвейер не представляет реальные edit-patch правки
Закрыт
P1 · важно
ведёт: —
Суть
# Факт (телеметрия gatec-shadow-w1.jsonl, прогон 23.08 22:41)
Все 168 записей QA-прогона: opKind=edit-patch, divergenceKind=unrepresented-dom-mutation. Теневой (новый) слой document-session НЕ умеет представить фактические DOM-мутации легаси-редактора — расходится на каждой правке.
# Что нужно
1. Разобрать класс(ы) мутаций за «unrepresented»: contentHashLegacy есть в каждой записи, но payload видов мутаций — проверить, пишется ли (если нет — расширить писатель телеметрии, rule 10).
2. Починить представление этих мутаций в теневой модели ИЛИ обосновать их неважность (тогда фильтровать из divergence).
3. Повторный QA-прогон правок → цель: divergence rate ≈ 0 на базовых операциях.
4. Только после этого — вердикт Gate C shadow.
# Контекст
Телеметрия сама работает (посадки 39+: DUMP_PATH, admin-доступ QA, beacon 200). Известный WARN: клиентский флаг DOCUMENT_SESSION_SHADOW_W1 не запекается в билд (server-side пишет). Файл: /home/pi/note-clone/shared/telemetry/gatec-shadow-w1.jsonl. Свежего трафика нет с 23.08 23:41.
Родня: WEB-320. Gate0 W3.2→W3.3 (историческая линия шедоу-гейтов).
Доказательства
[2026-08-24 посадка 45 v4-5a4edbac3] Краш onInput (ReferenceError consumePendingGateCShadowW2InputCommand) устранён (l48 61bc04462 + l49 5a4edbac3). E2E-пруф в проде: свежий чанк 4394.8fe58de78b2270a1.js, консоль 0 ошибок при вводе/жирном; [gatec-shadow-w1] divergence detected в консоли; POST /api/admin/document-session/gatec-shadow-telemetry 204; файл gatec-shadow-w1.jsonl 168→171 записей (anchors, historyDepth 10 vs 1). Вскрыт слой 3 → отдельный тикет WEB-352 (endpoint admin-gated). Анализ 171 записей передан волне GATEC-TELEMETRY-W2 (A1, wt-gatectel).
Починено в
v4-5a4edbac3
Лента
2026-08-25T08:05:33.373Z · fable-opsGate C 2%-расхождения (anchors 451 + unrepresented-dom-mutation 319) УСТРАНЕНЫ и НЕЗАВИСИМО ПРИНЯТЫ (25.08). Фикс c68a539 (ветка gatec2): anchors — projected-offset labeling + канонический маппинг + no fabricated caret; dom-mutation — exact-replacement + удалён mis-классификатор, plain→rich controlled reopen. Приёмка (Luna, отдельная от автора): frozen 311/311, АНТИ-МАСКИРОВКА доказана негативным тестом — впрыснули РЕАЛЬНЫЕ расхождения, гейт их ловит (anchor-shift→divergenceKind=anchors; реальная dom-mutation→reconcile-required; unknown→fail-closed; НЕ конвертит молча в none). Merge gatec2→l48-salvage fast-forward-clean, monet-дрейф в ветке отсутствует. Вердикт ACCEPT. Landing-53 кандидат (build-gated на M4/фактчек). Отчёт: GATEC-ACCEPT-REPORT.md (A1).
Воркер
не привязан — привязать:
curl -X POST https://bugs.wool2.online/api/web/assign -H 'content-type: application/json' \
-d '{"issueId":"WEB-347","session":"<имя tmux-сессии>","host":"m4"}'
Обновлён
2026-08-24T14:29:37.345Z