WEB board

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

Голосовой режим (WebRTC-микрофон, realtime OpenAI/Google): транскрипт ответа в вебе содержит сырые маркеры сущностей «▌entity▌["organization",…]▌» (не интерактивные «иероглифы плиток») и не имеет инлайн-цитат — WEB-372 закрыт как done, результат не подтверждён

Закрыт P1 · важно ведёт: —
Суть
Owner 02.09 18:00 (терминал, скриншот прода l91, тетрадь Passport, режим микрофона, «NotebookLM клон · ТРАНСКРИПТ · Speaking»): в тексте ответа «Одновременно у ▌entity▌["organization","Department of Justice, Home Affairs and Migration","Irish government department"]▌ есть…», «▌entity▌["historical_event","International Protection Act 2026","Act of the Oireachtas"]▌» — envelope сущностей (doc NER, WEB-340/095/448) утекает в контекст realtime-модели и эхом в транскрипт; инлайн-чипов цитат нет, хотя WEB-372 (bf a453b16) заявлял паритет с чатом. Owner про мессенджеры (SIP/Signal/Telegram-звонки в полотне диалога) не уверен — проверить, есть ли там та же выдача. План: волна 1297-inlinecitations (A1): найти источник envelope и стрипать/рендерить его до подачи модели и в транскрипте; выяснить, что сделал WEB-372 и почему не работает на проде (флаг/другой путь рендера RealtimePanel vs MessageBubble); довести транскрипт до CitationText с чипами при наличии citations → приёмка → l92 → owner проверяет голосом.
Лента
2026-09-02T19:19:40.406Z · Fable
[A1 19:45 Фабл] Волна 1297-inlinecitations сдана: коммит d2750ad942d724f4346d4e30c87a55c22e5a0b5e (ветка inlinecitations-1297, база l91-candidate): корни по обоим тикетам с доказательствами на проде (скриншоты/форма данных, evidence A1 /home/ubuntu/waves/INLINECITATIONS-EVIDENCE/), фикс + тесты. Отчёт: A1 /home/ubuntu/waves/INLINECITATIONS-REPORT.md. Дальше: приёмка 1324-accinlinecitations (A1, другой verifier: старые сообщения без метаданных → деградированный кликабельный чип, без зависимости от TTL; транскрипт без envelope и с чипами по событиям OpenAI/Google) → GO → l93 → проверка owner-ом (старый диалог + голосовой режим). Бандл: A1 mirrors/lines/inlinecitations-1297.bundle; A2 ref inlinecitations-1297/head.
2026-09-02T20:06:45.443Z · Fable
[A1 20:15 Фабл] Приёмка 1324-accinlinecitations = NO-GO (отчёт A1 /home/ubuntu/waves/ACCINLINECITATIONS-REPORT.md). Что работает: старый маркер без payload → кликабельный amber degraded chip; сохранённые citations → чип с якорем в source-viewer; realtime entity-envelope вырезается на границах транскрипта; OpenAI/Google envelopes извлекаются общим helper-ом. Блокер A: citation с сохранённым sourceId, но устаревшим chunkId/quote после переиндексации рендерится полноценным синим чипом; quote-not-found обнаруживается только после клика — нарушает «переиндексированный фрагмент → честный фолбэк». B: round-trip для обоих провайдеров на реальных по форме payload не доказан. Круг 2 = волна 1335-inlinecitations2 (A1, Luna xhigh, от d2750ad9): проверка актуальности citation ДО рендера + ленивый backfill с кэшем + round-trip тесты. Затем приёмка → l94.
2026-09-02T21:27:27.404Z · Fable
[A1 21:50 Фабл] Волна 1355-inlinecitations2 (перезапуск 1335 после капа) сдана: коммит f466d50f88 (проверка актуальности citation до рендера + ленивый backfill с кэшем + round-trip тесты OpenAI/Google). Отчёт: A1 /home/ubuntu/waves/INLINECITATIONS2-REPORT.md. Дальше: приёмка 1372-accinlinecitations2 (A1, Sol high, в очереди) → l94.
2026-09-02T22:33:53.224Z · Fable
[A1 00:55 Фабл] Приёмка 1372-accinlinecitations2 = NO-GO (отчёт A1 /home/ubuntu/waves/ACCINLINECITATIONS2-REPORT.md): A (устаревшая цитата → degraded-чип до клика, кэш) и B (round-trip OpenAI/Google, границы transcript) — PASS; блокеры: backfill делает запрос на каждую цитату (7 цитат одного источника = 7 POST, надо O(источников) через существующий batch endpoint) и новый endpoint не проходит scoped tsc (2× TS2345, nullable body). Круг 3 = волна 1397-inlinecitations3 (A1, Luna high, от f466d50f).
2026-09-02T23:39:57.222Z · Fable
[A1 04:45 Фабл] Волна 1397-inlinecitations3 сдана: коммит 481a12bc06 (backfill батчами по (sourceId, indexVersion) через существующий batch endpoint; scoped tsc чист). Отчёт: A1 /home/ubuntu/waves/INLINECITATIONS3-REPORT.md. Приёмка 1417 (A1, Sol high, в очереди) → l95.
2026-09-03T00:24:44.259Z · Fable
[A1 08:20 Фабл] Приёмка 1417-accinlinecitations3 = GO (Sol): backfill O(источников) через batch endpoint, scoped tsc чист, A/B-кейсы (degraded-чип до клика, round-trip OpenAI/Google) держатся. Линия inlinecitations3 (481a12bc) идёт в l95-candidate (первая линия l95).
2026-09-03T07:18:45.218Z · Fable
[A1 12:48 Фабл] Триаж 03.09 (owner: «чего они ждут — срочно принимайте, сажайте»): inlinecitations3 481a12bc в проде l95 (первая линия l95); ждёт проверку owner-ом (старый диалог + голосовой режим).
2026-09-08T11:16:55.952Z · coordinator
[08.09 11:16Z координатор] **GO, ждёт независимой приёмки.** волна 2783: конверт сущностей ▌entity▌[…] утекал в контекст realtime-модели и эхом в транскрипт — снят на границе; отдельно закрыты инлайновые чипы цитат в голосовом режиме
Вершина кандидата `см. WEB487.bundle на M4`, база — боевая линия l113s `49bc58dcc508c612b337c92af7d7d5bb71c7a681`.
Приёмка поставлена волной из пачки 2787–2794 (A2). Посадка — только после её вердикта: вердикт авторской волны это самооценка, а не ворота.
2026-09-08T15:51:06.418Z · coordinator
[08.09 15:51Z координатор] Статус → **done**. служебный конверт сущностей больше не утекает в контекст realtime-модели и в транскрипт; чипы цитат в голосовом режиме появляются как в чате

Посажено на прод линией **l113u** `4e0e5406db8b3844bfc7bc43148c37ddd4cdbf99` (артефакт `me2-standalone-linux-arm64-4e0e5406-20260908T151242Z`, sha256 `43a6d010…`), флип 08.09 15:34Z.

Проверено ПОСЛЕ флипа, не по факту деплоя: оба бэкенда `ready=true` и `paidReady=true` с новым releaseId; корень `https://app.sixbyy.com/` = 200; вебхук Telegram = 401; готовность SIP 4080 = 200; строк `LEASE_LOST` — 0.
Откат: l113t `a45e820c7ec1043fe601974fe24fe5026eaaf118`, релиз `arm64-l113t-20260908T131657Z`.
Воркер
не привязан — привязать: curl -X POST https://bugs.wool2.online/api/web/assign -H 'content-type: application/json' \ -d '{"issueId":"WEB-487","session":"<имя tmux-сессии>","host":"m4"}'
Обновлён
2026-09-08T15:51:06.417Z