WEB board

всеканоны и докиворкеры↗ iOS↗ Легаси
WEB-328 · Задача · — · web

Веер B: time-travel (история/перемотка документа) на контракт DocumentSession (образец fanb1)

Закрыт P2 ведёт: —
Суть
# Веер этапа B: фича «time-travel (история/перемотка документа)» на контракт DocumentSession

По образцу принятой волны 1 (инлайн-фактчек, FANB1-REPORT на A1, патч fanb1 2e04093f на Интеле) и волны 2 (подсветка сущностей, fanb2 в работе):
1. Карта легаси-поверхности фичи (EditorModal + компоненты + персистенция) файл:строка.
2. DOM-free мост на контракт: якоря через anchorService/canonicalMapping, отображение через decorations-реестр (свой неймспейс под чистый merge с другими волнами веера).
3. Легаси цел и default; включение общим shadow-флагом DOCUMENT_SESSION_SHADOW_W1_ENABLED (обоснование в FANB1-REPORT).
4. НЕГАТИВЫ: OFF = байт-в-байт легаси; rebase якоря при правке; битый якорь снимает decoration.
5. Фокусные тесты + scoped tsc rc=0; сдача патчем от web323-shipdark.
Родитель: [[WEB-283]]. Карта лестниц движка: см. WEB-283 раздел 23.08.


## 2026-08-23 19:55 UTC — волна fanb4 запущена (Terra high; time-travel в волне READ-ONLY, запись = Gate D).


## 2026-08-23 21:00 UTC — волна веера СДАНА, патч спасён на Интел
Детали в WEB-283 (сводка веера).

## 2026-08-23 16:13 UTC — DEPLOYED в посадке 36 (v4-081ff4fb5)
fanb4 time-travel — фокус 4 passed, байт-маркер web-328-time-travel. Сборка l36build на A1: adversarial 529/529, посадка аттестованная (art b0cfeac0…, пин-гейт 7/7), paidReady=True. Канон: 081ff4fb5f6110f8001daec7ed910ccef2e395dc. Отчёт: A1 /home/ubuntu/waves/L36-BUILD-REPORT.md; журнал WEB-320.

## 2026-08-23 BOARDSWEEP: NEEDS-VISUAL
- Evidence: Canonical commit is exactly 081ff4fb5; src/lib/document-session/timeTravel.ts, tests and EditorModal wiring are present. Automated focus/deploy evidence is in the ticket, but time-travel UI requires browser visual acceptance.
- buildFixed: v4-081ff4fb5; canonical: v4-081ff4fb5 / 081ff4fb5f6110f8001daec7ed910ccef2e395dc.
- Status preserved by sweep: review.
Доказательства

[2026-08-24 STALEREV против 61bc04462; в проде с посадки 45 v4-5a4edbac3] Вердикт CANT-VERIFY: код/тесты в дереве есть, но board-критерий требует live/visual/paid-проб — остаётся в review до браузерной приёмки. Отчёт: A1 /home/ubuntu/waves/STALEREVIEW-REPORT.md (STALEREVIEW_DONE).
[2026-08-25 19:28Z] owner GO на перенос. Волна fanbport (A1, sol): восстановление из бандлов /home/ubuntu/bundles/wt-fanb6/7/8-20260825.bundle (ветки старой репо-эпохи, заархивированы при чистке 25.08), порт diff→apply --3way на a453b16 (без -X theirs), зонные тесты; честный STUCK при конфликте контракта DocumentSession. Отчёт FANBPORT-REPORT.md.
[2026-08-25 20:05Z] FANBPORT-ФАКТ: код и тесты фичи УЖЕ в прод-линии (salvage 752c798, предок a453b16) — порт оказался no-op carry-forward, старые диффы не дублировались; DocumentSession suite зелёный (после регенерации stale Gate C inventory). Остаток приёмки: ВИЗУАЛЬНЫЙ browser-прогон (bqa-класс, M4) — без него не закрывать.
[2026-08-26 06:50Z] ПРИНЯТ accfanb (пакетная независимая приёмка Веера B): GO — time-travel (timeTravel.ts + read-only preview wiring + overlay, тесты time-travel.test.ts); реализация и тесты подтверждены в прод-линии a453b16 (salvage 752c798), каждая фича проверена своим негативом. browser-proof отдельно. -> done.
Починено в
a453b16
Воркер
не привязан — привязать: curl -X POST https://bugs.wool2.online/api/web/assign -H 'content-type: application/json' \ -d '{"issueId":"WEB-328","session":"<имя tmux-сессии>","host":"m4"}'
Обновлён
2026-08-26T06:48:59.612Z