WEB board

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

[Телефония] Звонок не видит тетрадь: knowledge-запрос идёт без платной identity (deny_all, Sign in required)

Закрыт P1 · важно ведёт: — эпик: WEB-395
Доказательства
[2026-08-27 20:25Z] НИТЬ 1. Диагностика+фикс: волна web397identity (A1). Задача: telegram-call/sip-room сессия -> identity+notebook binding в knowledge-запрос (сейчас deny_all).
[2026-08-27 00:35Z] acc397 NO-GO (независимая приёмка): 3 подтверждённых дефекта — replay существующей сессии без ре-проверки identity; locked/shared [] не deny в call builder; legacy сессия без scope-якорей не fail-closed. Тесты приёмщика сохранены (ACC397-*.test.ts). fix397b в очереди A1 (luna xhigh) с тестами приёмщика как гейтом.
[2026-08-27 01:50Z] ДОКУМЕНТЫ (путь эволюции): автор A1:/home/ubuntu/waves/WEB397-REPORT.md + wt-web397/; приёмка ACC397-REPORT.md NO-GO + тесты приёмщика ACC397-{binding-negative,lifecycle-negative,embedding-and-pin}.test.ts (A1:waves/); ремонт fix397b (бриф queue/042) -> FIX397B-REPORT.md.
[2026-08-27 02:05Z] FIX397B DONE: 23/23 tsx + 19/19 py + eslint rc=0, НО type-gate 65 NEW diagnostics rc=1 (в изменённых авторских файлах) — вопрос к повторной приёмке. acc397b в очереди (НОВЫЙ приёмщик: тесты acc397 копиями + новые классы: конкурентные звонки, смена привязки mid-call, удаление notebook в сессии, отзыв integration между turns; type-gate rc=0 обязателен). -> review.
[2026-08-27 03:45Z] acc397b NO-GO (маркер удержан честно): 3 исходных дефекта ЗАКРЫТЫ (тесты acc397 9/9 копиями), конкурентные звонки/rebind mid-call PASS, НО 2 новых fail-closed пробела: удаление notebook в активной сессии -> не deny; отзыв integration между turns -> нормальный путь. Плюс type-gate 65 NEW rc=1 (lifecycle.ts:434 TS2322). Harness-ы приёмщика сохранены (ACC397B-*.test.ts). fix397c в очереди (оба harness-а копиями + 0 NEW обязательны).
[2026-08-27 07:35Z] FIX397C DONE — ВСЁ ЗЕЛЁНОЕ: harness-ы acc397b 5/5 (deletion + revoked integration fail-closed подтверждены), acc397 9/9, авторские 23/23+19/19, eslint rc=0, type-gate rc=0 0 NEW (1469 unique < baseline 1605). acc397final в очереди (4-й круг: перепроверка всех 14 harness-ов + один новый негатив + вердикт merge-готовности).
[2026-08-27 08:10Z] acc397final NO-GO (4-й круг, точечный): перепроверка 14/14 harness-ов + type-gate 0 NEW ПОДТВЕРЖДЕНА, но новый негатив — malformed sourceScopeJson (allowedCorpusIds не-массив) -> fail-open (lifecycle.ts:162-171 + hasSessionScopeAnchor). Плюс изменения fix397c не закоммичены. fix397d в очереди (узкий фикс + коммиты). Harness приёмщика: ACC397FINAL-malformed-scope.test.ts.
[2026-08-27 09:05Z] fix397d DONE: malformed scope -> deny, вся история закоммичена 7 чистыми коммитами (a05b243c..a1993852). acc397e (5-я, финальная) в очереди: 15 harness-ов + новый негатив + merge-план в l59.
[2026-08-27 09:50Z] acc397e GO — ПРИНЯТ с 5-го круга: все 15 harness-ов зелёные, malformed scope fail-closed, новый негатив приёмщика прошёл. Merge-план: весь web397 до a1993852 (--no-ff). Бандл web397.bundle доставлен A1->M4 Lima, верифицирован. Merge после финиша web374fix2 (не мутировать дерево под батареей). Хроника приёмки: 4 NO-GO подряд, каждый нашёл реальное — образцовый кейс дисциплины.
[2026-08-27 10:20Z] ВЛИТ в l59-merge (66a0f7aa, конфликт embeddings.ts разрешён с сохранением обеих семантик). Едет в посадку l59. -> done (продуктовое закрытие = после посадки и живого звонка с привязкой).
Починено в
66a0f7aa
Воркер
не привязан — привязать: curl -X POST https://bugs.wool2.online/api/web/assign -H 'content-type: application/json' \ -d '{"issueId":"WEB-398","session":"<имя tmux-сессии>","host":"m4"}'
Обновлён
2026-08-27T03:04:20.722Z