WEB-502 · Задача · — · web
P2 [мобилка]: в вертикальном режиме на телефоне нет стрелок, чтобы выдвинуть свёрнутые левую и правую панели
Закрыт
P2
ведёт: —
Суть
## ЭВОЛЮЦИЯ 04.09.2026 (карта для нулевого агента)
**Якорь прода:** живая линия **l103**, коммит **d91ebefe740ae83484c1de16710f2e6a68610432**, флип **13:51Z 04.09**. Раньше в этот же день: l101 `d825eb0d`, l102 `1b081c5a`. Ветка линии в репозитории-базе `/home/ubuntu/nc` на A1: `l103-line` (проверено `git branch -a --contains d91ebefe...` → `l103-line`).
**Доска:** живая доска — `web-board.sqlite` + HTTP API `http://127.0.0.1:8787/api/web/*` на M1 (`ssh poolpooly@192.168.1.74`). НЕ `board.sqlite` (это iOS/легаси, таблицы `issues`/`ios_issues`, 2225 строк, ключи другие).
### СЕЙЧАС — ЗАКРЫТО
Дефект owner-а: в вертикальном режиме на телефоне у свёрнутых боковых панелей не было ни одного элемента управления, чтобы их вернуть — панели закрывались безвозвратно до перезагрузки.
### ЧТО СДЕЛАНО И ГДЕ СЕЛО
Принято и село в **l102** коммитом **`26b947a1`** — `fix(layout): restore mobile panel summon controls`.
Проверено на A1: `git -C /home/ubuntu/nc log --oneline -1 26b947a1` → `26b947a1 fix(layout): restore mobile panel summon controls`.
Едет в проде и дальше: l102 `1b081c5a` → l103 `d91ebefe` (флип 13:51Z 04.09).
### ЧТО ОСТАЛОСЬ
Ничего. Смежный, ещё открытый мобильный дефект — куки-баннер перекрывает поле ввода на 390 px ([[WEB-506]]); не путать с этим тикетом.
### ЛОВУШКА
Приёмка мобильной вёрстки — на реальной ширине 390 px и в вертикальной ориентации. На десктопном окне, суженном мышью, дефект не воспроизводился.
---
## ДОПИСКА 05.09.2026 ~00:15 IST (18:45Z 04.09) — координатор: вердикты дня 04.09
Правила обогащения: WEB-449. Эта секция ДОПИСАНА в конец (append-only), ничего выше не перезаписано.
**Ленты дня 04.09 (время UTC / IST = UTC+5:30):**
- **l101 `d825eb0d`** — флип **08:47Z / 14:17 IST**. Девять ранее принятых изменений + фикс realtime-сокета, который отдавал 500 с l96.
- **l102 `1b081c5a`** — флип **11:18Z / 16:48 IST**. Этап C движка, фикс окна цитат, мобильные боковые панели, преflight окна восстановления бэкапа.
- **l103 `d91ebefe`** — флип **13:51Z / 19:21 IST**. Перебазированная работа по ролям, фикс диалога приглашения, фикс контура бэкапа.
- **l104 `4d858be7`** — флип **18:03Z / 23:33 IST**. Проводка движка, регрессионный тест телеграм-бота, фикс ретенции бэкапа.
**Якорь прода на момент записи: линия l104, коммит `4d858be7`.** Отдельных тикетов-линий для l101–l104 на доске НЕТ — журнал посадок ведётся здесь и в [[WEB-320]].
### ПОДТВЕРЖДЕНИЕ НА ЯКОРЕ l104
Фикс `26b947a1` сел в **l102** (11:18Z / 16:48 IST) и продолжает ехать: l103 `d91ebefe` → **l104 `4d858be7`** (18:03Z / 23:33 IST). Тикет остаётся закрытым.
**Смежное по дефектам владельца за 04.09:** диалог приглашения — [[WEB-498]] (`4272863b`, l103, закрыт); окно вручения отчёта и попап предупреждения аналитики — **круги в работе**.
Лента
2026-09-03T19:23:21.115Z · coordinatorКруг 1 сдан: коммит 35f840c6 (база l96 98a23c70). Приёмка = волна 1593-accsocketpanels на M4: живой Chromium 390x844 портрет, обе панели открываются явными кнопками, достижимость через document.elementFromPoint, проверка 768 портрет и 1024 на регресс.
2026-09-03T22:36:19.610Z · coordinatorКруг 1 (35f840c6) = NO-GO только по типам: живой Chromium и production standalone ПОЛНОСТЬЮ подтвердили поведение панелей в портрете, но scoped TypeScript gate не зелёный — честный граф включает больше файлов, чем в конфиге. Круг 2 = волна 1605 на M4, вместе с WEB-506 (один viewport).
2026-09-04T00:09:42.333Z · coordinatorКруг 2 сдан: коммит 160c21ea (общий с WEB-506). Приёмка = волна 1628 на M4, в очереди. Портрет 390x844: обе панели открываются явным элементом, достижимым хит-тестом.
2026-09-04T15:08:17.236Z · coordinator04.09 координатор: в body добавлен блок «ЭВОЛЮЦИЯ 04.09.2026» — состояние, причина с доказательством, что село, что осталось, ловушки.
2026-09-06T23:52:21.450Z · astra-securityblock22-relay9-adjudication-web-502 — 2026-09-06T23:52:21.449777+00:00 / IST=2026-09-07T05:22:21.449784+05:30
BLOCK22 RELAY-9: вердикты по доставленному пакету. l113j 46393080 source bundle проверен локально; runtime и live — по расписке. Численные тесты ниже выполнены авторами доставленных отчётов, родитель их не перезапускал.
ACCINVITE502R2-REPORT.md — повтор ранее полученных байтов, не новая приёмка.
Вердикт: Independent GO for invite/email R2 bundle; not deployed in l113j because L113JPREP2 later found an l113i semantic sourceId conflict and skipped the invite chain.
Commit/base: 57b05296fec4c89d73f610e7c3120a12a5064b1c / 83683d4818ecc9b91e151be9e27a9ef0d6015294; parent 98e0f55e07fb61b53d25d6822496ce9e23f0a884; current l113j base 46393080dd885f6ff25967f18639075564e12737
Доказательства: scoped tsc parent RED exit 2 then candidate GREEN exit 0; auth route provider=none: 9/9 pass; configured-provider backward contract: 7/7 pass; invite/share contract: 21/21 pass; invite code negatives: 9/9 pass; team/UI regressions: 11/11 pass; members route security: 7/7 pass; targeted ESLint and git diff --check exit 0
Anchors: src/app/api/auth/magic-login/request/route.ts; src/app/api/auth/resend-verification/route.ts; src/app/api/share/route.ts; src/app/api/team/share/route.ts; src/app/api/teams/[teamId]/members/route.ts; src/lib/ingest/types.ts
KNOWN ISSUES / ТРАБЛШУТИНГ: Acceptance is real, but integration onto l113i/l113j needs sourceId conflict handling; L113JPREP2 skipped both invite commits fail-closed.
Действие: Resolve during l113k replay; do not duplicate an invite acceptance brief.
Report: /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a2/ACCINVITE502R2-REPORT.md
SHA256: 034dc54771aba38c4ddf0071e52dcdac78617706146973968b125fd9552b9fad
КАРТА ДОКУМЕНТОВ: /Users/poolpooly/audit/reports/block22-relay9-update.md; /Users/poolpooly/audit/evidence/block22/ledger46.json; /Users/poolpooly/audit/evidence/block22-relay9/adjudications.json. Новые брифы 2497/2498 — ROUTING: A2; существующие coordinator waves не дублируются. Правила обогащения: WEB-449.
Воркер
не привязан — привязать:
curl -X POST https://bugs.wool2.online/api/web/assign -H 'content-type: application/json' \
-d '{"issueId":"WEB-502","session":"<имя tmux-сессии>","host":"m4"}'
Обновлён
2026-09-04T18:43:45.893Z