WEB board

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

P2 ПРОД (prodeyes1): мобильная ширина — боковые панели закрывают основной чат; часть подписей не переведена

Закрыт P2 ведёт: —
Суть

## ДЛЯ НУЛЕВОГО АГЕНТА (обновлено 2026-09-05 UTC)
- **Суть одной строкой:** P2 ПРОД (prodeyes1): мобильная ширина — боковые панели закрывают основной чат; часть подписей не переведена
- **Текущее состояние:** статус: review; [A1 12:48 Фабл] Триаж 03.09 (owner: «чего они ждут — срочно принимайте, сажайте»): круги 1–3 в проде; круг 4 (f476dc74+1dae9f65, ACC423MOB4 GO 29.08) НЕ доехал; конфликт PWAInitializer.tsx → слияние 1510 (A1) + приёмка живым рендером 1511 (M4). | Слияние в l96: волна 1510, коммит 98a23c70 поверх cf05efcf. Применён f476dc74 (fix mobile chat shell at 390/768) — 1dae9f65 уже был в дереве l96, cherry-pick пустой. Конфликт один: src/components/pwa/PWAInitializer.tsx — сохранено поведение l95/l96 (маркеры версии, общая поверхность баннера/тоста… | ПОСАДКА l96 (98a23c70) 03.09 ~09:00Z. Состав: l95 f7b9a4fd + publicflags3 (1477) + pistandby12 (1487) + bigdoc3-слияние 3f55a889 (1507) + entityboost6-слияние cf05efcf (1509) + mob4-слияние 98a23c70 (1510). Артефакт me2-standalone-linux-arm64-98a23c70-20260903T084751Z, sha 92323c7ba794715f0d503b5… | [пост-QA l96 на ЖИВОМ проде, 03.09 09:39-09:45Z] ЧАСТИЧНО ПОДТВЕРЖДЕНО живым рендером, остаток требует входа owner-а. Проверка велась с M4 через Chromium (headless shell 1234, viewport 390x844, isMobile, deviceScaleFactor 2) против ЖИВОГО https://nb.wool2.online. Неавторизованный вход отдаёт 200 … | Браузерная проверка на ЖИВОМ проде l97 (9d69d2a0), QA-аккаунт qa.c09.browser, viewport 390x844, 03.09 ~20:00Z. PASS. Замеры: innerWidth=390, body.scrollWidth=390 (горизонтальной прокрутки нет), элементов, выходящих за правый край: 0. Поле ввода TEXTAREA.chat-input: ширина 228 px (порог 220), высо… | [2026-09-05 17:40Z] Ревизия доски (волна 2040 boardtriage, M1, luna): статус → review. Основание: ACC423MOB4 GO; ожидается финальная проверка локализаций. Если работа жива — верни статус и напиши в тикет, какая волна её ведёт.
- **Кто работал:**
- 2026-09-03T07:18:45.457Z — Fable — [A1 12:48 Фабл] Триаж 03.09 (owner: «чего они ждут — срочно принимайте, сажайте»): круги 1–3 в проде; круг 4 (f476dc74+1dae9f65, ACC423MOB4 GO 29.08) НЕ доехал; конфликт PWAInitializer.tsx → слияние 1510 (A1) + приёмка ж
- 2026-09-03T08:18:44.670Z — coordinator — Слияние в l96: волна 1510, коммит 98a23c70 поверх cf05efcf. Применён f476dc74 (fix mobile chat shell at 390/768) — 1dae9f65 уже был в дереве l96, cherry-pick пустой. Конфликт один: src/components/pwa/PWAInitializer.tsx —
- 2026-09-03T08:55:34.958Z — coordinator — ПОСАДКА l96 (98a23c70) 03.09 ~09:00Z. Состав: l95 f7b9a4fd + publicflags3 (1477) + pistandby12 (1487) + bigdoc3-слияние 3f55a889 (1507) + entityboost6-слияние cf05efcf (1509) + mob4-слияние 98a23c70 (1510). Артефакт me2-
- 2026-09-03T09:44:26.420Z — coordinator — [пост-QA l96 на ЖИВОМ проде, 03.09 09:39-09:45Z] ЧАСТИЧНО ПОДТВЕРЖДЕНО живым рендером, остаток требует входа owner-а. Проверка велась с M4 через Chromium (headless shell 1234, viewport 390x844, isMobile, deviceScaleFacto
- 2026-09-03T19:50:13.389Z — coordinator — Браузерная проверка на ЖИВОМ проде l97 (9d69d2a0), QA-аккаунт qa.c09.browser, viewport 390x844, 03.09 ~20:00Z. PASS. Замеры: innerWidth=390, body.scrollWidth=390 (горизонтальной прокрутки нет), элементов, выходящих за пр
- 2026-09-05T17:35:28.654Z — fable-coordinator — [2026-09-05 17:40Z] Ревизия доски (волна 2040 boardtriage, M1, luna): статус → review. Основание: ACC423MOB4 GO; ожидается финальная проверка локализаций. Если работа жива — верни статус и напиши в тикет, какая волна её 
- **Ветки/бандлы/отчёты:** /Users/milamarty/waves/postqa-l97-evidence/web423-toast-390.png; sha: f476dc74, 1dae9f65, 98a23c70, cf05efcf, f7b9a4fd, 3f55a889, 9d69d2a0
- **KNOWN ISSUES / ТРАБЛШУТИНГ:**
- Слияние в l96: волна 1510, коммит 98a23c70 поверх cf05efcf. Применён f476dc74 (fix mobile chat shell at 390/768) — 1dae9f65 уже был в дереве l96, cherry-pick пустой. Конфликт один: src/components/pwa/PWAInitializer.tsx — сохранено поведение l95/l96 (маркеры версии, общая поверхность баннера/тоста…
- ПОСАДКА l96 (98a23c70) 03.09 ~09:00Z. Состав: l95 f7b9a4fd + publicflags3 (1477) + pistandby12 (1487) + bigdoc3-слияние 3f55a889 (1507) + entityboost6-слияние cf05efcf (1509) + mob4-слияние 98a23c70 (1510). Артефакт me2-standalone-linux-arm64-98a23c70-20260903T084751Z, sha 92323c7ba794715f0d503b5…
- [пост-QA l96 на ЖИВОМ проде, 03.09 09:39-09:45Z] ЧАСТИЧНО ПОДТВЕРЖДЕНО живым рендером, остаток требует входа owner-а. Проверка велась с M4 через Chromium (headless shell 1234, viewport 390x844, isMobile, deviceScaleFactor 2) против ЖИВОГО https://nb.wool2.online. Неавторизованный вход отдаёт 200 …
- Браузерная проверка на ЖИВОМ проде l97 (9d69d2a0), QA-аккаунт qa.c09.browser, viewport 390x844, 03.09 ~20:00Z. PASS. Замеры: innerWidth=390, body.scrollWidth=390 (горизонтальной прокрутки нет), элементов, выходящих за правый край: 0. Поле ввода TEXTAREA.chat-input: ширина 228 px (порог 220), высо…
- [2026-09-05 17:40Z] Ревизия доски (волна 2040 boardtriage, M1, luna): статус → review. Основание: ACC423MOB4 GO; ожидается финальная проверка локализаций. Если работа жива — верни статус и напиши в тикет, какая волна её ведёт.
- **Эволюция:**
- 2026-09-03 → [A1 12:48 Фабл] Триаж 03.09 (owner: «чего они ждут — срочно принимайте, сажайте»): круги 1–3 в проде; круг 4 (f476dc74+1dae9f65, ACC423MOB4 GO 29.08) НЕ доехал; конфликт PWAInitializer.tsx → слияние 1510 (A1) + приёмка живым рендером 1511 (M4).
- 2026-09-03 → Слияние в l96: волна 1510, коммит 98a23c70 поверх cf05efcf. Применён f476dc74 (fix mobile chat shell at 390/768) — 1dae9f65 уже был в дереве l96, cherry-pick пустой. Конфликт один: src/components/pwa/PWAInitializer.tsx — сохранено поведение l95/l96 (маркеры ве
- 2026-09-03 → ПОСАДКА l96 (98a23c70) 03.09 ~09:00Z. Состав: l95 f7b9a4fd + publicflags3 (1477) + pistandby12 (1487) + bigdoc3-слияние 3f55a889 (1507) + entityboost6-слияние cf05efcf (1509) + mob4-слияние 98a23c70 (1510). Артефакт me2-standalone-linux-arm64-98a23c70-20260903
- 2026-09-03 → [пост-QA l96 на ЖИВОМ проде, 03.09 09:39-09:45Z] ЧАСТИЧНО ПОДТВЕРЖДЕНО живым рендером, остаток требует входа owner-а. Проверка велась с M4 через Chromium (headless shell 1234, viewport 390x844, isMobile, deviceScaleFactor 2) против ЖИВОГО https://nb.wool2.onli
- 2026-09-03 → Браузерная проверка на ЖИВОМ проде l97 (9d69d2a0), QA-аккаунт qa.c09.browser, viewport 390x844, 03.09 ~20:00Z. PASS. Замеры: innerWidth=390, body.scrollWidth=390 (горизонтальной прокрутки нет), элементов, выходящих за правый край: 0. Поле ввода TEXTAREA.chat-i
- 2026-09-05 → [2026-09-05 17:40Z] Ревизия доски (волна 2040 boardtriage, M1, luna): статус → review. Основание: ACC423MOB4 GO; ожидается финальная проверка локализаций. Если работа жива — верни статус и напиши в тикет, какая волна её ведёт.
- [A1 12:48 Фабл] Триаж 03.09 (owner: «чего они ждут — срочно принимайте, сажайте»): круги 1–3 в проде; круг 4 (f476dc74+1dae9f65, ACC423MOB4 GO 29.08) НЕ доехал; конфликт PWAInitializer.tsx → слияние 1510 (A1) + приёмка живым рендером 1511 (M4).
- ПОСАДКА l96 (98a23c70) 03.09 ~09:00Z. Состав: l95 f7b9a4fd + publicflags3 (1477) + pistandby12 (1487) + bigdoc3-слияние 3f55a889 (1507) + entityboost6-слияние cf05efcf (1509) + mob4-слияние 98a23c70 (1510). Артефакт me2-standalone-linux-arm64-98a23c70-20260903T084751Z, sha 92323c7ba794715f0d503b5…
- [пост-QA l96 на ЖИВОМ проде, 03.09 09:39-09:45Z] ЧАСТИЧНО ПОДТВЕРЖДЕНО живым рендером, остаток требует входа owner-а. Проверка велась с M4 через Chromium (headless shell 1234, viewport 390x844, isMobile, deviceScaleFactor 2) против ЖИВОГО https://nb.wool2.online. Неавторизованный вход отдаёт 200 …
- Браузерная проверка на ЖИВОМ проде l97 (9d69d2a0), QA-аккаунт qa.c09.browser, viewport 390x844, 03.09 ~20:00Z. PASS. Замеры: innerWidth=390, body.scrollWidth=390 (горизонтальной прокрутки нет), элементов, выходящих за правый край: 0. Поле ввода TEXTAREA.chat-input: ширина 228 px (порог 220), высо…
- [2026-09-05 17:40Z] Ревизия доски (волна 2040 boardtriage, M1, luna): статус → review. Основание: ACC423MOB4 GO; ожидается финальная проверка локализаций. Если работа жива — верни статус и напиши в тикет, какая волна её ведёт.
- **Следующий шаг:** [A1 12:48 Фабл] Триаж 03.09 (owner: «чего они ждут — срочно принимайте, сажайте»): круги 1–3 в проде; круг 4 (f476dc74+1dae9f65, ACC423MOB4 GO 29.08) НЕ доехал; конфликт PWAInitializer.tsx → слияние 1510 (A1) + приёмка живым рендером 1511 (M4). | ПОСАДКА l96 (98a23c70) 03.09 ~09:00Z. Состав: l95 f7b9a4fd + publicflags3 (1477) + pistandby12 (1487) + bigdoc3-слияние 3f55a889 (1507) + entityboost6-слияние cf05efcf (1509) + mob4-слияние 98a23c70 (1510). Артефакт me2-standalone-linux-arm64-98a23c70-20260903T084751Z, sha 92323c7ba794715f0d503b5…
Доказательства
PRODEYES1: на мобильной ширине страница не прокручивается горизонтально (это правильно), но боковые панели перекрывают чат. Переключение языка работает, часть подписей остаётся на английском. Скрины в /Users/milamarty/prodeyes1-shots/. Отчёт /Users/milamarty/PRODEYES1-REPORT.md.

---
## 2026-08-29 09:30Z — ACC423MOB: NO-GO. Кнопка закрытия панели физически не кликается
Приёмка собрала приложение и подняла НАСТОЯЩИЙ браузер (это правильный способ для вёрстки; мой запрет на сборку в брифе был ошибочен — правило записано в память).
Принято: панели уходят в overlay на 375, есть scrim, Escape закрывает, desktop-модель сохранена (1024: Sources 280 + Chat 394 + Notes 350; 1440: Chat 810).
БЛОКЕР (найден hit-тестом, не осмотром DOM): кнопка закрытия Notes недостижима указателем — 320 px: bbox x=-50..-18 (за экраном); 375 px: x=5..37, центр попадает в логотип Sidebar; 414 px: x=44..76, hit-test отдаёт Sidebar. Причина: кнопка позиционируется от константы notesWidth=350, а overlay имеет ширину min(350px, 85vw); плюс Sidebar в stacking context выше main. Свободного scrim для пальца почти нет; Escape не заменяет кликабельный выход.
Круг WEB423MOB2 (queue/395): позиционирование от фактической ширины overlay, порядок слоёв, доступная область закрытия на 320/375/414, проверка hit-тестом. Сборка и браузерная проба РАЗРЕШЕНЫ с порогом ≥25 ГБ и уборкой после.

---
## 2026-08-29 06:35Z — ✅ ACC423MOB3: GO. Мобильная раскладка принята
Три круга: (1) панели уходят в overlay, scrim/Escape/desktop сохранены — но кнопка Notes была за пределами экрана на 320 и перекрыта Sidebar на 375/414 (найдено hit-тестом); (2) позиционирование от фактической ширины overlay — но на 768 центр кнопки Sidebar перекрывала resize-handle; (3) принято: hit-тест на всех ширинах отдаёт саму кнопку, ресайз на десктопе не отключён, desktop-раскладка прежняя.
Урок линии: дефект был виден ТОЛЬКО hit-тестом (elementFromPoint) — осмотр DOM показывал кнопку «на месте». Кандидат следующей посадки.

[29.08 ЖИВАЯ ПРОВЕРКА МОБИЛЬНОЙ ШИРИНЫ НА ПРОДЕ l68 — 390 НЕ РАБОТАЕТ, 768 РАБОТАЕТ С ДЕФЕКТАМИ]
Метод: resize_window в Chrome НЕ сработал (запрошено 390x844, window.innerWidth остался 1600) — обе ширины сняты реальным рендером в локальном Chromium с viewport 390x844 и 768x844 под той же учёткой, innerWidth подтверждён.
390 px — пользоваться нельзя: основная колонка чата начинается с x≈120 (слева висит остаток свёрнутой панели с ручкой), справа контент обрезан за экраном — 62 элемента выходят за вьюпорт (right=560, 412, 405 при ширине 390). Поле ввода чата x=89 ШИРИНОЙ 128 px, плейсхолдер «Ask a question...» переносится на две строки и обрезается. Тост «TODAY IN YOUR GARDEN / Sunny» лежит ПОВЕРХ поля ввода, перекрывая микрофон и отправку. Управление «COUNCIL KN… Off» обрезано ручкой. Баннер «A new version is available / Refresh» перекрывает шапку (логотип SIXBYY срезан) и возвращается после нажатия Refresh.
768 px — старая жалоба ПОДТВЕРЖДЕНА: левая панель не сворачивается сама и съедает ~280 из 768 px (колонка чата ~380 px); правая ручка ресайза лежит ПОВЕРХ правого края селектора «STANDARD / Agent» и обрезает его, левая ручка наезжает на карточку «Add Source». Тот же погодный тост перекрывает правую часть строки ввода. Поле ввода при этом полноценное (x=309, ширина 286).

[29.08 ПРИНЯТО — ACC423MOB4_VERDICT=GO, коммит 1dae9f6519bf6526a17da434ea7e1a416655fb73]
Проверено реальным рендером в Chromium при 390x844, 768x844, 1024x844, 1600x844 с подтверждением window.innerWidth.
СРАВНЕНИЕ ДО/ПОСЛЕ (замеры на живом проде l68 были: поле ввода x=89 ШИРИНОЙ 128 px, 62 элемента за правым краем, погодный тост поверх поля ввода):
- 390: поле ввода x=29 ширина 228 px, элементов за краем 0, тост поверх поля НЕТ, горизонтального прокручивания нет (html/body 390/390). Плейсхолдер «Ask a question...» 132.9 px — помещается. Микрофон и отправка не выходят за экран (right=309/361), боковая панель 0, ручек ресайза 0.
- 768: поле ввода x=89 ширина 506 px, за краем 0, тост не перекрывает; боковая панель 60 px, полка заметок 40 px, ручек ресайза 0.
ПРОВЕРЕНО ТО, ЧТО ЛЕГКО ЗАБЫТЬ: во время набора текста пересечений с полем и кнопками нет; при уменьшении вьюпорта под экранную клавиатуру (innerHeight=500) фокус остаётся в поле, горизонтального прокручивания и пересечений нет; баннер обновления после нажатия Refresh ИСЧЕЗАЕТ (раньше возвращался), поле снова 228 px.
Десктоп не сломан: 1024 и 1600 проверены.
Кандидат в линию после l69.


[BOARDTRIAGE] Приёмщик: независимый browser-QA. ACC423MOB4 GO подтверждает layout/hit-test/keyboard на 390, 768, 1024, 1600; отдельно подтвердить RU/UK/EN для всех затронутых labels, прежде чем ставить done.
Лента
2026-09-03T07:18:45.457Z · Fable
[A1 12:48 Фабл] Триаж 03.09 (owner: «чего они ждут — срочно принимайте, сажайте»): круги 1–3 в проде; круг 4 (f476dc74+1dae9f65, ACC423MOB4 GO 29.08) НЕ доехал; конфликт PWAInitializer.tsx → слияние 1510 (A1) + приёмка живым рендером 1511 (M4).
2026-09-03T08:18:44.670Z · coordinator
Слияние в l96: волна 1510, коммит 98a23c70 поверх cf05efcf. Применён f476dc74 (fix mobile chat shell at 390/768) — 1dae9f65 уже был в дереве l96, cherry-pick пустой. Конфликт один: src/components/pwa/PWAInitializer.tsx — сохранено поведение l95/l96 (маркеры версии, общая поверхность баннера/тоста, защита от повторного refresh, персист отклонения). Проверки: 35 layout/PWA тестов PASS, scoped tsc PASS (ChatInterface, Sidebar, HomeInteractiveView, PWAInitializer, WeatherWidget, notebookShellLayout), git diff --check PASS; delete-flows.test.ts падает и на базе (3 диалога вместо 2, pre-existing). Реальный рендер (spec) НЕ запускался — на A1 нет Chromium → приёмка живым рендером 390/768/1024/1600 идёт на M4. l96-candidate = 98a23c70 на A1 и A2.
2026-09-03T08:55:34.958Z · coordinator
ПОСАДКА l96 (98a23c70) 03.09 ~09:00Z. Состав: l95 f7b9a4fd + publicflags3 (1477) + pistandby12 (1487) + bigdoc3-слияние 3f55a889 (1507) + entityboost6-слияние cf05efcf (1509) + mob4-слияние 98a23c70 (1510). Артефакт me2-standalone-linux-arm64-98a23c70-20260903T084751Z, sha 92323c7ba794715f0d503b51b392475d743578f8459fd98906495e89a69ebe7d; релиз /home/ubuntu/prod/releases/arm64-l96-20260903T084751Z, run /home/ubuntu/prod/shared/run/l96-98a23c70. Гейты сборки: prisma generate, P19 178/178, schema-drift ДО и ПОСЛЕ сборки, W34 activation evidence ok=true, prebuild, паритет NEXT_PUBLIC 12/12, next build, prepare-standalone. Аттестация ephemeral-l96.pem, подпись владельца VERIFY OK + негативная проба REJECTED. Boot-контракт: mode=enforce, no contract issues. Сухой прогон на 3011: health 200, paidReady true, posture enforce_ready, failures []. Миграции применены: 20260830100000_entityboost2_durable_budget, 20260830130000_entityboost3_durable_jobs, 20260830140000_entityboost4_source_delete_cleanup, 20260830150000_entityboost6_claimed_provider_fence, 20260903100000_web496_durable_extraction_job. После flip: health 200, /api/ready sourceCommit=98a23c70, paidReady true, публичные nb.wool2.online health 200 и ready/paid 200; ag-sip-native перезапущен, readiness 4080=200, LEASE_LOST=0. Откат: l95 f7b9a4fd (rel arm64-l95-20260903T050015Z, run l95-f7b9a4fd), бэкап юнита /home/ubuntu/prod/shared/nc-a1.service.bak-l92.
2026-09-03T09:44:26.420Z · coordinator
[пост-QA l96 на ЖИВОМ проде, 03.09 09:39-09:45Z] ЧАСТИЧНО ПОДТВЕРЖДЕНО живым рендером, остаток требует входа owner-а. Проверка велась с M4 через Chromium (headless shell 1234, viewport 390x844, isMobile, deviceScaleFactor 2) против ЖИВОГО https://nb.wool2.online. Неавторизованный вход отдаёт 200 и редирект на /login?callbackUrl=%2F (заголовок SIXBYY). Результат на мобильной ширине: горизонтальной прокрутки НЕТ (document.scrollWidth = body.scrollWidth = innerWidth = 390), элементов, вылезающих за правый край, — 0; видимые поля ввода 308 px шириной при x=41, то есть заметно выше порога 220 px из отчёта о слиянии. Два из трёх утверждений круга 4 (нет вылета за край, поле ввода достаточной ширины) на живом проде подтверждены. Третье — что тост погоды не перекрывает поле ввода композера — и проверка боковой панели на 768 px относятся к АВТОРИЗОВАННОМУ экрану чата; я пароли не ввожу и ввести не могу. Нужно от owner-а: открыть на телефоне (или в мобильном виде браузера) чат под своей учёткой и подтвердить, что тост погоды не накрывает поле ввода и микрофон.
2026-09-03T19:50:13.389Z · coordinator
Браузерная проверка на ЖИВОМ проде l97 (9d69d2a0), QA-аккаунт qa.c09.browser, viewport 390x844, 03.09 ~20:00Z. PASS. Замеры: innerWidth=390, body.scrollWidth=390 (горизонтальной прокрутки нет), элементов, выходящих за правый край: 0. Поле ввода TEXTAREA.chat-input: ширина 228 px (порог 220), высота 48, x=29, y=699. Хит-тест document.elementFromPoint по центру поля (143,723) отдаёт САМО поле ввода (isInputOrChild=true) — ничем не перекрыто. Кнопки в строке композера: 'Start Recording' (микрофон, x=265, w=44) и кнопка отправки (x=317, w=44) — обе достижимы хит-тестом (reachable=true), поверх них ничего нет. Виджет/тост погоды в сессии QA-аккаунта НЕ появился (weather=[]), поэтому перекрытие им проверить на этой учётке нельзя — проверено, что при его отсутствии композер полностью доступен. ⚠️ Отдельная находка: при первом заходе поле ввода перекрывал куки-баннер ('Cookie choices... We use essential cookies') — хит-тест по центру поля отдавал баннер. После выбора 'Reject optional' (самый приватный вариант) перекрытие исчезло. То есть на узком экране баннер сам по себе накрывает композер, пока пользователь его не закроет. Скриншот: /Users/milamarty/waves/postqa-l97-evidence/web423-toast-390.png
2026-09-05T17:35:28.654Z · fable-coordinator
[2026-09-05 17:40Z] Ревизия доски (волна 2040 boardtriage, M1, luna): статус → review. Основание: ACC423MOB4 GO; ожидается финальная проверка локализаций. Если работа жива — верни статус и напиши в тикет, какая волна её ведёт.
2026-09-06T14:38:02.554Z · coordinator
[06.09 14:38Z координатор] [2026-09-06T14:37Z координатор] НАГРУЗКА-LITE ПОВТОР (2337, A1, 14:30Z): edge /api/ready p95 20 мс; напрямую 3010 «/» p95 73 мс (бэкенд быстрый), но через edge «/» при 20 RPS: p50 7.5 с, p95 11.4 с, max 14.9 с (200×1200, 0×5xx) — очередь под нагрузкой на публичной витрине (SSR + маленькие пулы БД + 2 бэкенда). Волна 2339-landing-latency (A2, sol xhigh): трасса «/» гостя, локальный репро с пулом 3, фикс — статический/кэшируемый гостевой рендер (Cache-Control s-maxage, bypass по cookie), цель p95 ≤300 мс. Astra блок 19: podcast binding a4a5e133 (WEB-536, второй кандидат рядом с 645fbc57) → 2340; canonical cookie e676f8f4 (WEB-564/516) → 2341; WEB-423 круг 4 отсутствовал в проде → патч 3499dacb (2331) → приёмка 2342 (все M4).
2026-09-06T18:22:46.425Z · astra-security
block21-accweb423-web-423 — 2026-09-06T18:22:46.424416+00:00 / IST=2026-09-06T23:52:46.424423+05:30

Правила обогащения: WEB-449. ДЛЯ ТИКЕТА / BLOCK21, CONT19-RELAY-6.

Вердикт: GO scoped independent; browser pixels unverified
Scope: 3499dacb ancillary weather clearance
Report metadata: {"commit": "3499dacbab0dc2fead44a5b43abd32b265f66b94", "base": "4c322c4606a1695fc896ecd6313842d55679b472"}

Доказательство: CSS/test narrow diff, weather fallback RED/GREEN, JSDOM widths390/768/1280 and WEB506/PWA controls; no full browser layout proof.

KNOWN ISSUES / ТРАБЛШУТИНГ
h globals.css:306 still9rem fallback; candidate3499dacbab0dc2fead44a5b43abd32b265f66b94 absent. JSDOM is not browser/pixel acceptance; original sourceobjects f476dc74/1dae9f65 missing in worker report.
Следующее действие: Coordinator ancillary landing decision and actual browser-width evidence if claiming visual closure. No SEC duplicate brief; reportGO remains explicitly scoped.

Текущая source база M1: /private/tmp/nc-block21-parent, audit/block21-parent, 83683d4818ecc9b91e151be9e27a9ef0d6015294. Bundle SHA проверен. Report-attested tests не выполнялись родителем/пятью reviewer GPT5.5; удалённые candidate bundles/rawarchives физически не проверены. AuthorGO не равен independentGO, running2370–2377 не равен accepted. Чужие статусы не изменены, CVSS не повышен.

КАРТА ДОКУМЕНТОВ: /Users/poolpooly/audit/evidence/block21/intake-originals/ACCWEB423-REPORT.md
SHA256 1a28d9118703832b8c2734de9bd603f8553616719da3c1794137f93452579244
M1 /Users/poolpooly/audit/evidence/block21/adjudications.json; ledger46.json; /Users/poolpooly/audit/reports/block21-checkpoint.md.
2026-09-06T21:13:16.545Z · coordinator
[06.09 21:13Z координатор] l113i ПОСАЖЕН 21:01:51Z (18f13093): правка этого тикета на проде — weather first-paint fallback 12rem (3499dacb). Откат = l113h. Пост-QA через edge: 2453 L113IPOSTQA (A1).
2026-09-06T22:10:29.359Z · coordinator
[06.09 22:10Z координатор] ПОСТ-QA ПРОДА l113i (18f130938, посажен 21:01:51Z; волна 2453 L113IPOSTQA, A1 sol, 21:09–21:28Z, отчёт /home/ubuntu/waves/L113IPOSTQA-REPORT.md) = VERDICT NO-GO (2 блокера из 10 пик), стоимость $0.053767 (1 paid-вызов), карта не вводилась.
PASS: (1) pin/readiness ×8 = 200, sourceCommit 18f13093, paidReady enforce_ready; (2) WEB-541 /legal/cookies 200 canonical + noindex (meta; HTTP X-Robots-Tag отсутствует — partial, если требовался заголовок); (3) WEB-423 mobile 390px headless: fallback 12rem в CSS; (5) WEB-511 beta-card: setup-intent 200, Stripe PaymentElement смонтирован (5 iframe); (6) WEB-542 OAuth: Google/Apple 302 на провайдера; (8) SEC-007 F2/F3: forged Host/Origin/X-Forwarded → 401/403, без 500; (9) WEB-517 /api/health 200; (10) realtime guest = 401 без redirect.
FAIL: (4) WEB-564 C07: для QA-источников cmtpunvee002y3mch7ikofru9 / cmtpyun62021ye3gwvqvx7r4x editor adapter не монтируется 90 с при /api/realtime/socket=200 → волна 2478 C07HYDRATIONTRACE (A1) трассирует консоль/сеть и пробует свежий источник; (7) WEB-099 C4-RU-3: paid /api/chat-global ответил английским retrieval-refusal вместо русской структуры (тот же класс, что C4-RU-3 в батарее r41c) → разбор в 2476 BATTERYFAILS (A2).
KNOWN ISSUES (новое): QA-кошелёк был в минусе (spendableUsd -2.638328), а paid-допуск пропустил запрос и списал ещё $0.053767 → волна 2480 NEGWALLETADMISSION (A2, деньги) — баг допуска или льгота по замыслу. Два раздельных password-login ротируют QA-сессию: two-tab сценарий = один cookie jar в двух контекстах.
2026-09-08T11:16:55.958Z · coordinator
[08.09 11:16Z координатор] **GO, ждёт независимой приёмки.** волна 2785: мобильная ширина 390/768 — боковые панели больше не закрывают чат, непереведённые подписи закрыты
Вершина кандидата `см. WEB423.bundle на M4`, база — боевая линия l113s `49bc58dcc508c612b337c92af7d7d5bb71c7a681`.
Приёмка поставлена волной из пачки 2787–2794 (A2). Посадка — только после её вердикта: вердикт авторской волны это самооценка, а не ворота.
2026-09-08T19:30:25.641Z ·
Посажено на прод в линии l113w (546073bd, 08.09 19:10Z). Проверено снаружи: корень 200 четыре раза, оба бэкенда ready, платный контур enforce_ready. Коммит a5ab559b0 fix(web423): localize mobile panel labels.
2026-09-08T19:30:32.172Z ·
Посажено на прод в линии l113w (546073bd, 08.09 19:10Z). Проверено снаружи: корень 200 четыре раза, оба бэкенда ready, платный контур enforce_ready. Коммит a5ab559b0 fix(web423): localize mobile panel labels.
Воркер
не привязан — привязать: curl -X POST https://bugs.wool2.online/api/web/assign -H 'content-type: application/json' \ -d '{"issueId":"WEB-423","session":"<имя tmux-сессии>","host":"m4"}'
Обновлён
2026-09-08T19:30:32.127Z