WEB-063 · Дефект · Видео · web
Выбранный профиль качества видео НЕ доезжает до сервера: UI Глибоко → requestedMode auto → кэш balanced
Закрыт
P1 · важно
ведёт: fix-wave
Суть
1. Суть одной фразой: Выбранный профиль качества видео не доезжал до сервера (UI Глибоко → requestedMode auto → кэш balanced).
2. Где мы сейчас (13.09.2026): закрыто другой работой: фикс проброса requestedMode посажен, есть живой пруф.
3. Хронология: 20.08 диагноз (file-ветка route.ts игнорирует routingProfile); фикс e35fc984 (l30video) и ec165f0 (web063-video-profile-propagation, кандидат посадки 33); посадка 30 = 504af77f (paidReady); живая приёмка 23.08: deep из UI шлёт requestedMode=deep/mode=cloud_boost/routingProfile=max, сервер честно пробрасывает; VIDEOPAID live requestedMode=deep.
4. Карта документов и кода: M4 /Users/milamarty/work/WEB063-DIAGNOSIS.md; DEEP3PROV-REPORT.md (mode=cloud_boost → deep/max/fresh); QA-SCREENS-REPORT-20260820.md Pass 3.
5. Остаток: нет.
6. Критерий закрытия: выполнен: requestedMode=deep доезжает до движка (живой прогон VIDEOPAID).
---
## история (тело до 13.09.2026)
## Найдено 20.08 ~19:20, qa-screens Pass 3 (прод v4-bb1186a), ДВА независимых прогона
UI: файл выбран, Глибоко подсвечен ДО запуска (скрины 92-pass1-deep-selected-before-run.png, 106-pass2-…). Сервер-метаданные ОБОИХ прогонов: requestedMode auto, routingProfileRequested balanced, routingProfileUsed balanced, analysisOrigin reused, провайдер только gemini. PDF честно пишет «Разбор взят из кэша».
Это ЖИВОЕ подтверждение owner-кейса «прошу максималки — получаю старый отчёт с минималок», И новый корень: движковый фикс ключа кэша (WEB-047, задеплоен 20.08 16:40) не при чём — профиль ТЕРЯЕТСЯ В ПРОДУКТЕ до движка (UI не кладёт выбор в запрос или API его не читает).
Прогоны: cmt1rbctc0103144prfezv9hx, cmt1rhl08012k144pscbozrbx. Отчёт: qa-screens/QA-SCREENS-REPORT-20260820.md Pass 3 (M4). Волна-диагност: web063 на M4.
Связки: WEB-047 (движковая половина, задеплоена), WEB-036 (обрывы «…» живут и в этих PDF).
## 20.08 ~19:55 ДИАГНОЗ ГОТОВ (волна web063, отчёт M4 WEB063-DIAGNOSIS.md)
КОРЕНЬ до строк: /api/video/pipeline/run НЕ принимает requestedMode/profile/quality — только wire-поле mode. route.ts:2135 (URL-ветка) и route.ts:429 (file-ветка): body.mode??null → auto. URL-ветка уважает body.routingProfile (2160-2166), file-ветка ИГНОРИРУЕТ его (436-441).
Контракт сервера: mode=cloud_boost => deep/max. UI: MediaImport.tsx:4391-4402 кладёт выбор в videoProcessingModeOverride; для URL-импорта videoImportRouting.ts:118-129 корректно мапит deep→cloud_boost; для ФАЙЛОВ выбор замораживается в preference (3496-3510), но mode в POST не доезжает.
ФИКС: (а) file-ветка UI: слать mode из preference; (б) сервер file-ветка: уважать routingProfile как URL-ветка. Оба — по строкам из отчёта.
True-deep PDF волна честно НЕ делала (404-пробы для контракта полей). Запущена отдельная волна deeppdf: явный mode=cloud_boost → настоящий deep + PDF для owner.
## 21.08 ~02:00: deep3prov подтвердил серверный контракт (mode=cloud_boost работает). UI-фикс (слать mode из preference в file-ветке) остаётся — в landing30 по строкам из диагноза.
## Трейл (21.08)
- Ветка посадки-30: `landing30` (worktree A1 /home/ubuntu/waves/wt-landing30, от serving f1e49bca), слито 6 веток / 88 файлов, проверка дубликатов ключей в словарях: 0.
- Живой статус смены: `~/Downloads/OPS-STATUS-LIVE.md` (ноутбук) + копии на M1 `~/livepush/` и M4 `/Users/milamarty/work/`.
- Паспорт проекта: https://bugs.wool2.online/passport (обновлён 21.08: serving arm64-f1e49bca, статы из свежей ветки, дельты в stats-history.json).
- Леджер ревизора: `/Volumes/M4Ext/ops/reviser-ledger/` (пакеты + аудит-бандлы, sha сверены).
- Диагноз: M4 `/Users/milamarty/work/WEB063-DIAGNOSIS.md` (сервер принимает только wire-поле `mode`; `route.ts:2135` URL-ветка, `:429` file-ветка; `:436-441` file-ветка игнорирует routingProfile).
- Доказательство серверного контракта: волна deep3prov, отчёт `DEEP3PROV-REPORT.md` (mode=cloud_boost → requestedMode deep, routingProfileUsed max, analysisOrigin fresh).
- Фикс UI+сервер: ветка `l30video`, коммит `e35fc984`.
- Первичная улика (2 прогона с потерей профиля): `QA-SCREENS-REPORT-20260820.md` секция Pass 3, run `cmt1rbctc0103144prfezv9hx`, `cmt1rhl08012k144pscbozrbx`.
## 23.08 — вошёл в посадку, ждёт живой приёмки [эпик WEB-314]
- Груз в проде: 504af77f (посадка 30, 21.08 03:53 UTC; предок serving 26116cff); артефакт a3c1c9d6…b595; paidReady=true.
- Метод приёмки: живое: UI Глибоко → requestedMode на сервере (лог/скрин).
- Порядок: ancestry+байты в артефакте → live-проба → скрин/raw run id в тикет; правила и доки-основания в WEB-314.
## 23.08 — скрин-волна: селектор качества видео НЕ НАЙДЕН в UI (NOT_FOUND)
- Скрин 04-web063-video-quality-NOT-FOUND.png: спарк не нашёл контрол выбора профиля (Глибоко) в текущем UI.
- Либо контрол переехал/за флагом, либо регресс. Нужна ручная проба воркером с точным путём по UI (билет остаётся в review, метод приёмки уточнён).
## 23.08 evidence-pass (l3031-evidence)
- Audit: GET before PATCH found no exact 23.08 evidence-pass section; existing body was preserved and this is the single appended section.
- Ancestry: git merge-base --is-ancestor e35fc984 504af77f rc=0; git merge-base --is-ancestor 504af77f 26116cff rc=0; exact source=26116cff032ad8f015e1e2d9cba302e1e8f7ec27.
- Bytes: exact route file carries explicit routingProfile, body.mode, and routingProfileRequested through file/URL branches; source/ancestry SHA-256=5fd780dc8d9f4823ea318dfcbac27c76a8333d75e0a68a084073e4add1946db2.
- Live: per brief, video live is intentionally not run (paid/heavy). Required remaining manual step is a fresh UI “Глибоко” run with server requestedMode/profile evidence and screenshot.
- Verdict proposal: NEEDS_SCREEN.
## 23.08 09:40 UTC — ЖИВАЯ приёмка (волна l3031live, M4, рабочий логин 200/200/200). NEEDS-FIX (живой дефект подтверждён): выбор профиля Глибоко — deepSelected=true, но в network НЕТ запроса с requestedMode (сервер не узнаёт о выборе до платного запуска). Скрины web063-*. Требует отправки requestedMode при выборе.
## 2026-08-23 11:30 UTC — фикс-волна запущена (A1 web063, Terra high)
Бриф /home/ubuntu/waves/WEB063-BRIEF.md: проследить путь профиля UI→POST→сервер, фикс проброса requestedMode, НЕГАТИВ (невалидный mode отвергается с логом), contract-тесты, патч поверх 4482925. Ожидаю WEB063_FIX_READY. Кандидат посадки 33.
## 2026-08-23 12:35 UTC — ФИКС ГОТОВ (A1 web063, маркер WEB063_FIX_READY)
Ветка web063-video-profile-propagation, коммит ec165f0 (поверх 4482925). Deep из UI теперь шлёт requestedMode=deep / mode=cloud_boost / routingProfile=max; сервер валидирует, сохраняет и честно пробрасывает max движку. НЕГАТИВ: чужой requestedMode → HTTP 400 INVALID_VIDEO_REQUESTED_MODE с логом. Тесты contract/unit 64/64 + route mocks 8/8, scoped tsc rc=0, lint rc=0. Отчёт: wt-web063/WEB063-FIX-REPORT.md (внутри worktree). Патч web063-fix.patch спасён на Интел (sha 10cc161a…). Кандидат посадки 33.
## 2026-08-23 14:57 UTC — ЗАДЕПЛОЕНО: посадка 33 (v4-00c402c) села с 1-й попытки
rel-00c402c (SHA 58af4a94…), аттестованный cutover c НОВЫМ пин-гейтом (все 7 env-пинов сверены с аттестацией ДО флипа — негативный гейт из урока посадки 32). paidReady=true, канон проштампован. Живая приёмка фикса — следующий шаг.
## 2026-08-23 PDFPOSTQA: NEEDS-PAID — server profile requires a fresh video run; not started.
PDFPOSTQA: бесплатные сценарии только; новые paid generation/export/import не запускались. Полный реестр и evidence: /Users/milamarty/work/PDFPOSTQA-REPORT.md; screenshots: /Users/milamarty/work/PDFPOSTQA-SHOTS/.
## 2026-08-23 BOARDSWEEP: STALE-NOT-DEPLOYED
- Evidence: Canonical has video profile routing/tests, but the ticket records a live defect followed by WEB063_FIX_READY ec165f0 after v4-081ff4fb5; buildFixed=504af77f is the defective serving build. No paid video run sent.
- buildFixed: 504af77f; canonical: v4-081ff4fb5 / 081ff4fb5f6110f8001daec7ed910ccef2e395dc.
- Status preserved by sweep: review.
## 2026-08-23 VIDEOPAID bounded live evidence (owner-approved; statuses unchanged)
Verdict: PASS. Fresh QA-owned 6s upload run `cmt666u9700ajbbeh6avgoblv` on prod `v4-f2899e431`. Raw final receipt: `/home/ubuntu/waves/VIDEOPAID-OUT/VIDEOPAID-run1-final.json` (sha256 in `SHA256SUMS.txt`). Server truth: `requestedMode=deep`, `requestedRunMode=cloud_boost`, `routingProfileRequested=max`, `routingProfileUsed=max`, `analysisOrigin=fresh`; therefore the requested deep profile reached the server and was used. Cost accounting: one managed cloud run only; provider invoice/price was not exposed by product, so exact USD remains unavailable; no further paid run sent (cap $8).
## ДЛЯ НУЛЕВОГО АГЕНТА (обновлено 2026-09-05 UTC)
- **Суть одной строкой:** Выбранный профиль качества видео НЕ доезжает до сервера: UI Глибоко → requestedMode auto → кэш balanced
- **Текущее состояние:** статус: parked; Найдено 20.08 ~19:20, qa-screens Pass 3 (прод v4-bb1186a), ДВА независимых прогона | Это ЖИВОЕ подтверждение owner-кейса «прошу максималки — получаю старый отчёт с минималок», И новый корень: движковый фикс ключа кэша (WEB-047, задеплоен 20.08 16:40) не при чём — профиль ТЕРЯЕТСЯ В ПРОДУКТЕ до движка (UI не кладёт выбор в запрос или API его не читает). | Прогоны: cmt1rbctc0103144prfezv9hx, cmt1rhl08012k144pscbozrbx. Отчёт: qa-screens/QA-SCREENS-REPORT-20260820.md Pass 3 (M4). Волна-диагност: web063 на M4. | 20.08 ~19:55 ДИАГНОЗ ГОТОВ (волна web063, отчёт M4 WEB063-DIAGNOSIS.md) | КОРЕНЬ до строк: /api/video/pipeline/run НЕ принимает requestedMode/profile/quality — только wire-поле mode. route.ts:2135 (URL-ветка) и route.ts:429 (file-ветка): body.mode??null → auto. URL-ветка уважает body.routingProfile (2160-2166), file-ветка ИГНОРИРУЕТ его (436-441). | ФИКС: (а) file-ветка UI: слать mode из preference; (б) сервер file-ветка: уважать routingProfile как URL-ветка. Оба — по строкам из отчёта. | True-deep PDF волна честно НЕ делала (404-пробы для контракта полей). Запущена отдельная волна deeppdf: явный mode=cloudboost → настоящий deep + PDF для owner. | 21.08 ~02:00: deep3prov подтвердил серверный контракт (mode=cloudboost работает). UI-фикс (слать mode из preference в file-ветке) остаётся — в landing30 по строкам из диагноза.
- **Кто работал:**
- 2026-08-23T08:30:21.715Z — codex-l3031-live — L3031 LIVE NEEDS-FIX: UI показал выбранный «Глибоко», платный video run не запускался, но network не содержит server request с requestedMode при выборе. Raw: qa-screens/l3031-live-ui.json; screenshots: shots-l3031-live/w
- 2026-09-03T07:18:45.669Z — Fable — [A1 12:48 Фабл] Триаж 03.09 (owner: «чего они ждут — срочно принимайте, сажайте»): базовый фикс 23.08 (requestedMode сквозняком) в проде через SALVAGE 752c7982; круги B/C (9e3886fb) потеряны → волна 1515 (мусорный профил
- 2026-09-03T09:29:25.791Z — coordinator — Круг E сдан (волна 1515, A1): коммит 61dbf2bb «WEB-063E reject invalid profiles and surface fallback», база 1b448bb5. Закрыты оба условия NO-GO ACC063B: routingProfile валидируется на общей серверной границе (валидны aut
- 2026-09-03T11:55:05.664Z — coordinator — Приёмка круга E (волна 1556, A2) = NO-GO только по типам: функциональные условия подтверждены независимыми пробами (валидные auto/budget/balanced/max; пустое, null, произвольная строка, кириллическая «а» в «аuto», число,
- 2026-09-03T19:36:44.885Z — coordinator — [Пост-QA l97, 03.09 ~20:35 IST] Релиз: прод = l97 9d69d2a02201f697d7fb3d04a0b58c4b2e9b1a02 (переключён 19:20Z). Живые проверки: /api/health 200, /api/ready/paid 200, /api/ready sourceCommit=9d69d2a0, SIP 4080 status=read
- 2026-09-05T17:35:28.605Z — fable-coordinator — [2026-09-05 17:40Z] Ревизия доски (волна 2040 boardtriage, M1, luna): статус → parked. Основание: нет активности с 2026-08-29; последний найденный фрагмент ACC063B NO-GO. Если работа жива — верни статус и напиши в тикет,
- **Ветки/бандлы/отчёты:** /home/ubuntu/waves/wt-landing30, ~/Downloads/OPS-STATUS-LIVE.md, ~/livepush/, /home/ubuntu/waves/WEB063-BRIEF.md:, /home/ubuntu/waves/VIDEOPAID-OUT/VIDEOPAID-run1-final.json; sha: bb1186a, 20260820, f1e49bca, e35fc984, 504af77f, 26116cff, a3c1c9d6, 26116cff032ad8f015e1e2d9cba302e1e8f7ec27
- **KNOWN ISSUES / ТРАБЛШУТИНГ:**
- Это ЖИВОЕ подтверждение owner-кейса «прошу максималки — получаю старый отчёт с минималок», И новый корень: движковый фикс ключа кэша (WEB-047, задеплоен 20.08 16:40) не при чём — профиль ТЕРЯЕТСЯ В ПРОДУКТЕ до движка (UI не кладёт выбор в запрос или API его не читает).
- ФИКС: (а) file-ветка UI: слать mode из preference; (б) сервер file-ветка: уважать routingProfile как URL-ветка. Оба — по строкам из отчёта.
- 21.08 ~02:00: deep3prov подтвердил серверный контракт (mode=cloudboost работает). UI-фикс (слать mode из preference в file-ветке) остаётся — в landing30 по строкам из диагноза.
- - Ветка посадки-30: landing30 (worktree A1 /home/ubuntu/waves/wt-landing30, от serving f1e49bca), слито 6 веток / 88 файлов, проверка дубликатов ключей в словарях: 0.
- - Паспорт проекта: https://bugs.wool2.online/passport (обновлён 21.08: serving arm64-f1e49bca, статы из свежей ветки, дельты в stats-history.json).
- - Фикс UI+сервер: ветка l30video, коммит e35fc984.
- 23.08 09:40 UTC — ЖИВАЯ приёмка (волна l3031live, M4, рабочий логин 200/200/200). NEEDS-FIX (живой дефект подтверждён): выбор профиля Глибоко — deepSelected=true, но в network НЕТ запроса с requestedMode (сервер не узнаёт о выборе до платного запуска). Скрины web063-. Требует отправки requestedMo…
- 2026-08-23 11:30 UTC — фикс-волна запущена (A1 web063, Terra high)
- **Эволюция:**
- 2026-08-23 → L3031 LIVE NEEDS-FIX: UI показал выбранный «Глибоко», платный video run не запускался, но network не содержит server request с requestedMode при выборе. Raw: qa-screens/l3031-live-ui.json; screenshots: shots-l3031-live/web063-deep-selected-no-run.png. Предлага
- 2026-09-03 → [A1 12:48 Фабл] Триаж 03.09 (owner: «чего они ждут — срочно принимайте, сажайте»): базовый фикс 23.08 (requestedMode сквозняком) в проде через SALVAGE 752c7982; круги B/C (9e3886fb) потеряны → волна 1515 (мусорный профиль → отказ; failure packet при fallback).
- 2026-09-03 → Круг E сдан (волна 1515, A1): коммит 61dbf2bb «WEB-063E reject invalid profiles and surface fallback», база 1b448bb5. Закрыты оба условия NO-GO ACC063B: routingProfile валидируется на общей серверной границе (валидны auto/budget/balanced/max, отсутствие поля д
- 2026-09-03 → Приёмка круга E (волна 1556, A2) = NO-GO только по типам: функциональные условия подтверждены независимыми пробами (валидные auto/budget/balanced/max; пустое, null, произвольная строка, кириллическая «а» в «аuto», число, объект → 400 INVALIDVIDEOROUTINGPROFILE
- 2026-09-03 → [Пост-QA l97, 03.09 ~20:35 IST] Релиз: прод = l97 9d69d2a02201f697d7fb3d04a0b58c4b2e9b1a02 (переключён 19:20Z). Живые проверки: /api/health 200, /api/ready/paid 200, /api/ready sourceCommit=9d69d2a0, SIP 4080 status=ready + stasis connected=true. Журнал с 19:2
- 2026-09-05 → [2026-09-05 17:40Z] Ревизия доски (волна 2040 boardtriage, M1, luna): статус → parked. Основание: нет активности с 2026-08-29; последний найденный фрагмент ACC063B NO-GO. Если работа жива — верни статус и напиши в тикет, какая волна её ведёт.
- Найдено 20.08 ~19:20, qa-screens Pass 3 (прод v4-bb1186a), ДВА независимых прогона
- Это ЖИВОЕ подтверждение owner-кейса «прошу максималки — получаю старый отчёт с минималок», И новый корень: движковый фикс ключа кэша (WEB-047, задеплоен 20.08 16:40) не при чём — профиль ТЕРЯЕТСЯ В ПРОДУКТЕ до движка (UI не кладёт выбор в запрос или API его не читает).
- 20.08 ~19:55 ДИАГНОЗ ГОТОВ (волна web063, отчёт M4 WEB063-DIAGNOSIS.md)
- 21.08 ~02:00: deep3prov подтвердил серверный контракт (mode=cloudboost работает). UI-фикс (слать mode из preference в file-ветке) остаётся — в landing30 по строкам из диагноза.
- Трейл (21.08)
- - Паспорт проекта: https://bugs.wool2.online/passport (обновлён 21.08: serving arm64-f1e49bca, статы из свежей ветки, дельты в stats-history.json).
- **Следующий шаг:** Это ЖИВОЕ подтверждение owner-кейса «прошу максималки — получаю старый отчёт с минималок», И новый корень: движковый фикс ключа кэша (WEB-047, задеплоен 20.08 16:40) не при чём — профиль ТЕРЯЕТСЯ В ПРОДУКТЕ до движка (UI не кладёт выбор в запрос или API его не читает). | True-deep PDF волна честно НЕ делала (404-пробы для контракта полей). Запущена отдельная волна deeppdf: явный mode=cloudboost → настоящий deep + PDF для owner.
Доказательства
[2026-08-26 09:25Z] Волна web063: выбранный профиль качества видео теряется по пути UI -> тело запроса -> валидация -> вызов движка. Доказать шаг потери, покрыть каждый профиль, невалидный -> явный дефолт с логом (не тихо).
[2026-08-26 10:02Z] КАРТА ДЛЯ НУЛЕВОГО АГЕНТА (как войти в задачу с нуля):
Бокс A1: ssh a1nc. Родительское дерево /home/ubuntu/waves/wt-l40 (из него делаются worktree: git -C /home/ubuntu/waves/wt-l40 worktree add <путь> <ветка>). Запуск работника: ~/codex-a1.sh exec -m gpt-5.6-luna -c model_reasoning_effort=xhigh --dangerously-bypass-approvals-and-sandbox "$(cat <бриф>)"; работа держится в tmux (tmux ls), логи /home/ubuntu/waves/<имя>-codex.log, отчёты /home/ubuntu/waves/<ИМЯ>-REPORT.md, готовность = маркер-ФАЙЛ <ИМЯ>_DONE (не строка в отчёте!).
Ветка web063, worktree wt-web063. Суть: выбранный профиль качества видео не доезжает до сервера, разбор идёт по дефолту. Цепочка для проверки: состояние UI -> тело запроса -> валидация на сервере -> аргумент вызова движка; найти шаг, где значение теряется или перетирается дефолтом. Как доказывать: по каждому профилю значение в теле запроса; сервер не подменяет; значение доехало до вызова движка; невалидный профиль -> явный дефолт С ЛОГОМ (не тихо).
ПРАВИЛА ДОМА: (1) приёмку делает НЕ автор и НЕ прежний приёмщик, со СВОИМИ новыми тестами и обязательным НЕГАТИВНЫМ тестом (проверка, которая всё пропускает, ничего не стоит); (2) отсутствие ошибок != фича жива, нужен сквозной пруф; (3) починка одного слоя != починка фичи; (4) правило 10 — catch без лога и маячка запрещён; (5) монетарные файлы и цены не трогать без отдельного решения; (6) прод/деплой/платные вызовы — только по явному разрешению.
[2026-08-26 14:35Z] ХЕНДОФФ ПОД КОМПАКТ: полное состояние в /Users/annakorin/Downloads/HANDOFF-COMPACT-2026-08-26.md. ⚠️ АВАРИЯ A1 (с ~09:30Z): бокс не пускает по ssh. Волна по этому тикету была запущена на A1 и её состояние НЕИЗВЕСТНО до восстановления. Бриф сохранён — волна перезапускается той же постановкой. Доказано: диск НЕ полон (74%, свободно 52ГБ), IP НЕ забанен (отказ и с M1, и с Pi), инстанс RUNNING, консоль гипервизора отвечает мгновенно; версия — повреждение ФС после жёсткой перезагрузки. Работа на диске не потеряна.
Статус: **FIXED / READY FOR COORDINATOR**.
Причина: файловая ветка не передавала продуктовый профиль в полном виде, поэтому API восстанавливал `auto/balanced`; повторный анализ также не переносил сохранённый профиль.
Исправление: единый пакет `requestedMode + mode + routingProfile` для file/URL, серверный fail-closed validator, перенос профиля в re-analysis, запрет cloud→local retry, явные предупреждения для capability-driven маршрутов и видимый failure packet для аварийного fallback.
Проверка: `node --test` через `tsx`, 94/94 pass; `git diff --check` pass; scoped TypeScript не содержит ошибок в WEB063-файлах, общий rc 2 объясняется baseline-шумом; production и `next build` не запускались.
Артефакт: `/home/ubuntu/waves/WEB063-REPORT.md`.
[записал координатор: с A1 нет доступа к доске, блок перенесён из отчёта волны]
---
## 2026-08-29 02:20Z — вымывка доски: работа волны 26.08 НАЙДЕНА и сохранена
- При обходе «в работе» обнаружено: работа волны от 26.08 лежала НЕЗАКОММИЧЕННОЙ в дереве на A1 (после аварии бокса 26.08 состояние волны было неизвестно). Закоммичено координатором: `5c6b085e` (база старая `e857b22f`, НЕ l66).
- Заряжена приёмка ACC063B (A1 queue/347) — по существу решения; перенос на актуальную линию (l66/l67) — отдельный шаг координатора ПОСЛЕ GO.
- Отчёт автора: /home/ubuntu/waves/ на A1.
---
## 2026-08-29 03:00Z — ACC063B: NO-GO (два условия)
- Принято: happy path — выбранный профиль качества теперь доезжает до сервера.
- Не выполнено: (1) мусорный engine profile НЕ отклоняется — тихо принимается (класс «мусор читается как валидное»); (2) аварийный cloud→local fallback не несёт и не показывает failure packet — пользователь и лог не узнают об откате (класс «тихий отказ», пр.10).
- Круг WEB063C заряжен (A1 queue/351): матрица профилей с наблюдаемым отказом + видимый пакет отказа при fallback.
- Отчёты: /home/ubuntu/waves/ACC063B-REPORT.md, WEB063-REPORT.md.
[BOARDTRIAGE] ACC063B NO-GO 29.08 03:00Z: happy path профиля проходит, но мусорный profile принимается и fallback не даёт наблюдаемого failure packet. Следующий шаг WEB063C.
Починено в
504af77f
Лента
2026-08-23T08:30:21.715Z · codex-l3031-liveL3031 LIVE NEEDS-FIX: UI показал выбранный «Глибоко», платный video run не запускался, но network не содержит server request с requestedMode при выборе. Raw: qa-screens/l3031-live-ui.json; screenshots: shots-l3031-live/web063-deep-selected-no-run.png. Предлагаемый статус: нужна доработка.
2026-09-03T07:18:45.669Z · Fable[A1 12:48 Фабл] Триаж 03.09 (owner: «чего они ждут — срочно принимайте, сажайте»): базовый фикс 23.08 (requestedMode сквозняком) в проде через SALVAGE 752c7982; круги B/C (9e3886fb) потеряны → волна 1515 (мусорный профиль → отказ; failure packet при fallback).
2026-09-03T09:29:25.791Z · coordinatorКруг E сдан (волна 1515, A1): коммит 61dbf2bb «WEB-063E reject invalid profiles and surface fallback», база 1b448bb5. Закрыты оба условия NO-GO ACC063B: routingProfile валидируется на общей серверной границе (валидны auto/budget/balanced/max, отсутствие поля допустимо; пустое значение, null, чужая строка, Unicode-двойник, число и объект → HTTP 400 INVALID_VIDEO_ROUTING_PROFILE с причиной), тихого fallback в auto/balanced больше нет; cloud→local fallback стал видимым. Приёмка = волна 1556 на A2 (первый день A2 как воркера).
2026-09-03T11:55:05.664Z · coordinatorПриёмка круга E (волна 1556, A2) = NO-GO только по типам: функциональные условия подтверждены независимыми пробами (валидные auto/budget/balanced/max; пустое, null, произвольная строка, кириллическая «а» в «аuto», число, объект → 400 INVALID_VIDEO_ROUTING_PROFILE; тихого fallback нет; cloud→local виден), но tsc --noEmit -p tsconfig.videofix6.json даёт exit 2 вместо 0. Круг F = волна 1566 на A2: починить типы по существу, файлы из конфига не исключать, функционал перепроверить теми же пробами.
2026-09-03T19:36:44.885Z · coordinator[Пост-QA l97, 03.09 ~20:35 IST] Релиз: прод = l97 9d69d2a02201f697d7fb3d04a0b58c4b2e9b1a02 (переключён 19:20Z). Живые проверки: /api/health 200, /api/ready/paid 200, /api/ready sourceCommit=9d69d2a0, SIP 4080 status=ready + stasis connected=true. Журнал с 19:20Z: новых классов ошибок НЕТ, только 2 записи TrustedIdentityError на неавторизованных запросах (граница безопасности, класс существовал и на l96). ERR_MODULE_NOT_FOUND (WEB-500): 0 записей — но окно наблюдения всего ~10 минут и в сравнительном окне l96 17:00-19:00Z тоже 0, так что это НЕ доказательство исправления, класс был привязан к конкретному трафику. Линия ПОСТАВЛЕНА в прод. Расписка по diff l96→l97: src/lib/videoContext/cloud/contract.ts, cloud/finalize.ts, local.ts, processingMode.ts (новый, 21 строка), sourceSync.ts, truth.ts, тест src/lib/videoContext/__tests__/web063eFailurePacket.test.ts (67 строк) и tsconfig.videofix6.json. ЖИВАЯ ПРОБА НЕ ПРОШЛА ПО ГРАНИЦЕ: POST /api/video/pipeline/run с routingProfile=auto и с мусорным значением одинаково отдают 403 origin_boundary_rejected — origin-граница (WEB-075) срабатывает РАНЬШЕ валидации профиля, в том числе с заголовками Origin/Referer от nb.wool2.online. Значит проверить валидацию 400 INVALID_VIDEO_ROUTING_PROFILE снаружи нельзя; нужна авторизованная сессия из браузера. На уровне кода приёмка это подтвердила независимыми пробами.
2026-09-05T17:35:28.605Z · fable-coordinator[2026-09-05 17:40Z] Ревизия доски (волна 2040 boardtriage, M1, luna): статус → parked. Основание: нет активности с 2026-08-29; последний найденный фрагмент ACC063B NO-GO. Если работа жива — верни статус и напиши в тикет, какая волна её ведёт.
2026-09-10T18:55:03.680Z · coordinatorBOARD-WASH-20260910:WAVE-3338
По поручению владельца 18:43Z назначена исполнительская волна 3338 (video), Codex gpt-5.6-luna xhigh, M4. Полная история карточки и база l115c 1ad52e16b доставлены, brief-guard и проверка Git-базы пройдены. Задача: проверить существующую сдачу, устранить остатки, передать бандл и доказательства. Финальная приёмка и посадка остаются за координатором. Ранее отложенная функция не включается; статус parked/backlog сохранён, идёт проверка технического остатка.
КАРТА ДОКУМЕНТОВ: ноут /Users/annakorin/nc-ops-scripts/board-wash-20260910/3338-wash-video-brief.md; M4 /Users/milamarty/waves/inputs/board-wash-20260910/video-tickets.json; ожидаемый отчёт /Users/milamarty/waves/3338WASHVIDEO-REPORT.md. Правила обогащения: WEB-449.
2026-09-13T11:01:35.737Z · coordinator[13.09 11:01Z координатор] Мойка отложенных, волна 3668. Вердикт: ЗАКРЫТЬ-СДЕЛАНО. Закрыто фиксом e35fc984/ec165f0, посадка 33 (504af77f); живой пруф requestedMode=deep. Если это решение неверно — карточку достаточно вернуть в работу, тело и история сохранены.
Воркер
не проверен
3338-wash-video
M4
движение в панели: неизвестно
Подключиться и смотреть/перехватить руками. Колесо мыши листает; клавишами — Ctrl-b затем [, выход из прокрутки q. Отсоединиться — Ctrl-b затем d:
Прочитать историю панели без подключения — листается и ищется (/ поиск, q выход), воркеру не помешает:
Обновлён
2026-09-13T11:01:35.738Z