WEB-564 · Задача · — · web
sixbyy: cutover приложения на app.sixbyy.com (env, origin-lock, вебхуки, OAuth, редирект nb.wool2.online)
Закрыт
P2
ведёт: —
эпик: WEB-561
Суть
<!-- coord-block-start 2026-09-06 -->
## ДЛЯ НУЛЕВОГО АГЕНТА (обновлено 2026-09-06 UTC)
- Cutover app.sixbyy.com: env, origin-lock, webhooks, OAuth, nb redirect.
- Код: proxy.ts, verifyOrigin.ts, auth callback; nginx vhost/canonical cookie/realtime location.
- Посажено: canonical cookie e676f8f4; Apple 7c46b0ee в l113c; l113f 221e8f39. Открыто: canonical/redirect two-process acceptance, backup placement, realtime/email checks. Волны 2159/2166/2341/2366/2399.
## KNOWN ISSUES / ТРАБЛШУТИНГ
- Apple rejected → POST form_post Origin appleid.apple.com + state/PKCE → origin-lock → narrow 7c46b0ee/2166.
- /api/realtime redirect loop → URI без slash → nginx ^~ location → exact = /api/realtime, 2366, unauthenticated 401.
- nb/app canonical wrong → Host/cookie on both backends → cutover parity → 2341/2398.
- nginx -t after backup → sites-enabled glob → duplicate upstream → /etc/nginx/backups → 2279.
<!-- coord-block-end 2026-09-06 -->
## ДЛЯ НУЛЕВОГО АГЕНТА (обновлено 2026-09-06 UTC)\n- Что это: cutover приложения на app.sixbyy.com — env, origin-lock, webhooks, OAuth и редирект nb.wool2.online.\n- Где код: , , auth callback; nginx vhost/canonical cookie и realtime exact location.\n- Посажено/линия: cutover и canonical cookie кандидат e676f8f4; Apple origin-lock в l113c; l113f — текущая указанная линия с edge 200×8.\n- Открыто: legacy nb redirects/canonical cookie принять на двух процессах; не класть nginx backups в sites-enabled; realtime exact-location и email transport проверять отдельно. Волны 2159/2166, 2341, 2366, ERRORSWEEP 2399.\n\n## KNOWN ISSUES / ТРАБЛШУТИНГ\n- Apple login rejected → проверить form_post Origin appleid.apple.com + state/PKCE → origin-lock не имел callback exception в / → узкий , приёмка 2166.\n- /api/realtime уходит в redirect loop → проверить URI без trailing slash → nginx редиректил на slash → exact location с тем же proxy_pass, волна 2366; теперь без сессии 401.\n- nb/app canonical cookie или redirect ведёт не туда → проверить Host, cookie и оба backend процесса → cutover должен быть одинаковым на l113f → принять C07/canonical двухпроцессным тестом 2341/2398.\n- nginx -t падает после backup → проверить sites-enabled glob → backup vhost создаёт duplicate upstream → хранить копии в , post-QA 2279.\n
<!-- coord-block-start 2026-09-06 -->
## ДЛЯ НУЛЕВОГО АГЕНТА (обновлено 2026-09-06 UTC)\n- Что это: cutover приложения на app.sixbyy.com — env, origin-lock, webhooks, OAuth и редирект nb.wool2.online.\n- Где код: , , auth callback; nginx vhost/canonical cookie и realtime exact location.\n- Посажено/линия: cutover и canonical cookie кандидат e676f8f4; Apple origin-lock в l113c; l113f — текущая указанная линия с edge 200×8.\n- Открыто: legacy nb redirects/canonical cookie принять на двух процессах; не класть nginx backups в sites-enabled; realtime exact-location и email transport проверять отдельно. Волны 2159/2166, 2341, 2366, ERRORSWEEP 2399.\n\n## KNOWN ISSUES / ТРАБЛШУТИНГ\n- Apple login rejected → проверить form_post Origin appleid.apple.com + state/PKCE → origin-lock не имел callback exception в / → узкий , приёмка 2166.\n- /api/realtime уходит в redirect loop → проверить URI без trailing slash → nginx редиректил на slash → exact location с тем же proxy_pass, волна 2366; теперь без сессии 401.\n- nb/app canonical cookie или redirect ведёт не туда → проверить Host, cookie и оба backend процесса → cutover должен быть одинаковым на l113f → принять C07/canonical двухпроцессным тестом 2341/2398.\n- nginx -t падает после backup → проверить sites-enabled glob → backup vhost создаёт duplicate upstream → хранить копии в , post-QA 2279.\n
<!-- coord-block-end 2026-09-06 -->
<!-- M1KNOWNISSUES 2026-09-06 -->
## ДЛЯ НУЛЕВОГО АГЕНТА (обновлено 2026-09-06 UTC)
- **Суть одной строкой:** cutover/edge, OAuth origin-lock, canonical cookie, /me2 bridge, landing latency и realtime session affinity.
- **Текущее состояние:** прод l113h 83683d48; откат l113g 4c322c46.
- **Что принято/ждёт посадки:** Stage B и Apple origin-lock 7c46b0ee приняты/посажены; /me2 locations исправлены, OAuth POST+csrf проверен. Redis sessions 2344, landing latency 2339 и canonical cookie 2341 ждут закрытия/приёмки.
- **Кто работал:** координатор, A1, A2; владелец дал GO на Stage B и Apple/login окно.
- **Следующий шаг:** закрыть 2339/2341/2344, зафиксировать cutover/DNS остатки и затем снять устаревший host из APP_ALLOWED_HOSTS по согласованному периоду.
## KNOWN ISSUES / ТРАБЛШУТИНГ (обновлено 2026-09-06 UTC)
- **После cutover появляются 5-секундные 502 →** проверка: `journalctl nc-a1 nc-a1-b`, nginx/access logs, readiness → причина: `cutover.sh:390 restart_backends` не ретраил lock/empty await → лечение: retry/empty-await guard и повтор readiness → ссылки: 2129, 2148/2148b.
- **Telegram webhook check ложно падает →** проверка: `cutover.sh --apply` и фактический webhook URL → причина: `cutover.sh:329 assert_telegram_ok_and_url` делал `grep -F`, Telegram экранировал `/` → лечение: исправить escaping-проверку и повторить probe → ссылки: 2129.
- **Cloudflare ломает ip_hash affinity →** проверка: access.log IP `162.158.*`/`172.6x.*`, handshake_rejected на обоих backend → причина: nginx ip_hash видит меняющийся edge IP, строка не указана → лечение: Cloudflare real-ip/affinity fix, временный pin 3010, Redis session follow-up → ссылки: 2148, 2328/2329/2344.
- **Apple login получает origin_boundary_rejected →** проверка: POST `/api/auth/signin/apple` с csrfToken; GET-проба невалидна → причина: `proxy.ts`/`verifyOrigin.ts` без Apple form_post exception, строки не указаны → лечение: узкое исключение 7c46b0ee, принято 2166 и посажено l113c → ссылки: 2159/2166.
- **/me2 и /api/me2-bridge/* дают 502 →** проверка: `nginx -t`/reload и perimeter checks → причина: vhost проксировал на мёртвый `127.0.0.1:3020`, строка не указана → лечение: удалить три location из обоих vhost; recent=401, /me2=307 → ссылки: 2279.
- **Landing через edge медленный →** проверка: edge /api/ready, direct 3010 `/`, 20 RPS, 200x1200 → причина: SSR + маленькие DB pools + два backend, строка не указана → лечение: static/cacheable guest render, Cache-Control s-maxage, bypass cookie, цель p95≤300ms → ссылки: 2337/2339.
- **session-turn даёт 404 session_not_found →** проверка: два backend, session-start/turn и Redis/PG acceptance → причина: process-local sessions, строка не указана → лечение: Redis session store 2328 и повторная acceptance 2344; nginx pin временный → ссылки: 2328/2329/2344.
<!-- END M1KNOWNISSUES 2026-09-06 -->
Требует отдельного GO владельца и окна. NEXTAUTH_URL/NEXT_PUBLIC_APP_URL/TRUSTED_* origin-lock → https://app.sixbyy.com; Telegram-вебхук (setWebhook на новый URL), Stripe-вебхуки (кабинет владельца), Apple/Google OAuth redirect URI (кабинеты владельца), Sentry environment/URL, PWA/manifest; nb.wool2.online → 301 на app.sixbyy.com на переходный период; откат — обратная правка env + flip. Ловушки посадки: env-инвентарь всех служб (memory landing-must-inventory-server-env), boot-контракт dry-run.
Связи
- связан → WEB-086 — ЭПИК: движок редактора этап C — CodeMirror-гибрид для огромных документов («Война и мир»)
- связан (обратная) → WEB-561 — ЭПИК: переезд прода, dev и телефонии на sixbyy.com (app/dev/sip.sixbyy.com), wool2.online → редирект
Лента
2026-09-05T22:09:19.638Z · coordinator[05.09 22:09Z координатор] [06.09 00:40Z координатор | ЭТАП A СДЕЛАН (дефолтный GO владельца 00:30Z)] `APP_ALLOWED_HOSTS` живёт в `/home/ubuntu/prod/shared/.env.local:119` (EnvironmentFile перекрывает `Environment=` юнита и drop-in'ы — ловушка: drop-in `Environment=` для этой переменной НЕ работает). Добавлен `app.sixbyy.com` (бэкап `.env.local.bak-web564-*`), nc-a1-b и nc-a1 перезапущены по одному через `nc-upstream-controller --await` (имена бэкендов = `nc-a1-b`, `nc-a1`, без `.service`), оба ready, paid ok, простоя нет. Результат: `https://app.sixbyy.com/api/health` 200, `/api/ready` ok, корень → 307 `/login`; `nb.wool2.online` без изменений. ОГРАНИЧЕНИЕ этапа A: логин на app.sixbyy.com ещё не работает штатно — `NEXTAUTH_URL/AUTH_URL/APP_URL/NEXT_PUBLIC_APP_URL` = nb.wool2.online (OAuth-колбэки и cookie на nb). Этап B (основной адрес): (1) владелец добавляет redirect URI в Google/Apple, Stripe endpoint `https://app.sixbyy.com/api/billing/webhook` (WEB-566, ссылки отправлены msg 17350); (2) координатор в окне: 4 URL-переменные → app.sixbyy.com во ВСЕХ юнитах/env (инвентарь env всех служб!), Telegram setWebhook на `/api/messenger/v1/telegram/webhook` нового хоста, Sentry, перезапуск через controller, nb.wool2.online → 301 на app.sixbyy.com (nginx), проверка логина/OAuth/платного пути; откат = обратный sed + restart. Нужен ли отдельный `payment-webhook/[provider]` эндпоинт в Stripe — проверить по коду перед этапом B.
2026-09-06T00:02:15.280Z · coordinator[06.09 00:02Z координатор] [06.09 08:00Z координатор | 2129 SIXBYYCUTOVERSCRIPT = PASS, NEEDS_REBUILD=YES] Кандидат `e904cee9c0b0d153b9f7f036c43e4ee0511ded7f` (luna, A2, база 87111a95; бандл `/home/ubuntu/waves/SIXBYYCUTOVERSCRIPT.bundle`, отчёт `SIXBYYCUTOVERSCRIPT-REPORT.md`): `infra/ops/sixbyy-cutover/cutover.sh` (dry-run/apply/rollback: env 4 URL → app.sixbyy.com, APP_ALLOWED_HOSTS порядок, рестарт через controller, Telegram setWebhook, nb.wool2.online → 301 кроме вебхуков/проб, проверки) + ранбук + тесты; вывод: `NEXT_PUBLIC_APP_URL` вшит в клиентский бандл → этап B требует пересборки с новым `nextpublic-prod-resolved-*.env` (гейт паритета WEB-494) → совмещаем с l113b: собрать l113b с `NEXT_PUBLIC_APP_URL=https://app.sixbyy.com` и применить cutover.sh в момент flip. Кабинеты владельца готовы (Apple, Google + Drive redirect; Stripe sandbox — нечего). Окно: после посадки l113b.
2026-09-06T01:25:56.392Z · coordinator[06.09 01:25Z координатор] [2026-09-06T01:25Z координатор] СТАДИЯ B ВЫПОЛНЕНА 00:49Z (дефолтный GO владельца). Прод = l113b 02812b90 (собран с NEXT_PUBLIC_APP_URL=https://app.sixbyy.com, паритет 12 NEXT_PUBLIC ключей OK). cutover.sh (2129, e904cee9) --apply из /home/ubuntu/waves/wt-l113b-migrate/infra/ops/sixbyy-cutover с CONTROLLER=/home/ubuntu/nc-upstream-controller/bin/nc-upstream-controller и SIXBYY_ENV_FILES с run/l113b-02812b90/spend-runtime-l113b.env: APP_URL/AUTH_URL/NEXTAUTH_URL/NEXT_PUBLIC_APP_URL → https://app.sixbyy.com (в .env), APP_ALLOWED_HOSTS: app.sixbyy.com первым (пробелы — парсер split(/[\s,]+/) принимает), Telegram-вебхук → https://app.sixbyy.com/api/messenger/v1/telegram/webhook (getWebhookInfo: pending 0, err none), nb.wool2.online → 301 на app.sixbyy.com кроме telegram/billing вебхуков и health/ready. Бэкап: /home/ubuntu/prod/shared/run/sixbyy-cutover/20260906T004814Z-3644953 (state там же; --rollback возвращает). Проверено снаружи: app /login 200, csrf 200, nb / → 301, nb /api/ready 200, оба бэкенда ready 02812b90, paid enforce_ready.
KNOWN ISSUES / ТРАБЛШУТИНГ:
1) Симптом: 5 с 502 в 00:48:16Z. Проверка: journalctl nc-a1 nc-a1-b — рестарт nc-a1-b 00:48:15.93, nc-a1 00:48:16.17 (0.2 с разницы). Причина: restart_backends → controller --await вернулся сразу (WARN «another reconcile pass holds the lock; skipping this tick»), скрипт пошёл на второй рестарт. Лечение: await должен ретраить при lock/пустом ответе до readiness бэкенда (cutover.sh:390 restart_backends; контроллер --await при lock → повтор через 2 с). Тикет-фикс нужен (WEB-564 остаток).
2) Симптом: «ERROR: Telegram webhook URL is not https://app.sixbyy.com/…» при уже установленном вебхуке. Причина: assert_telegram_ok_and_url (cutover.sh:329) делает grep -F по URL, а Telegram экранирует слэши (https:\/\/…). Лечение: сравнивать после json-парсинга. Обход, применённый мной: cutover-resume.sh (копия с restart_backends=no-op) + SIXBYY_SKIP_TELEGRAM=1 → nginx 301 и check_live_state доведены.
3) Скрипт рассчитывает на /home/ubuntu/prod/current (repo layout) — в standalone-релизе infra/ нет; запускать из worktree линии (wt-l113b-migrate), CONTROLLER задавать явно.
Владельцу: перелогиниться на app.sixbyy.com (auth-cookie host-only). Остаток тикета: фикс п.1–2 в cutover.sh, DNS/ссылки в письмах и документации, снятие nb.wool2.online из APP_ALLOWED_HOSTS после периода 301.
2026-09-06T02:00:54.146Z · coordinator[06.09 02:00Z координатор] [2026-09-06T02:00Z координатор] KNOWN ISSUE 4 (найден пост-QA 2148, NO-GO): после стадии B app.sixbyy.com проксируется Cloudflare, а upstream nc_backend использует ip_hash → ключ = IP edge Cloudflare (162.158.x.x, меняется от запроса к запросу) → polling/websocket одного socket.io sid попадали на разные бэкенды: realtime_socket_engine_handshake_rejected ×23, C07 две вкладки не сводились, большой документ не гидрировался, paid chat без ответа. Симптом: access.log с IP 162.158.*/172.6x.*, journalctl nc-a1|nc-a1-b grep handshake_rejected. Причина: нет real_ip для CF. Лечение (01:59Z): /etc/nginx/conf.d/cloudflare-real-ip.conf — set_real_ip_from (15 v4 + 7 v6 диапазонов с cloudflare.com/ips-*) + real_ip_header CF-Connecting-IP + real_ip_recursive on; nginx -t/reload; access.log показывает реальный IP клиента. Списки CF надо обновлять (таймер — в остаток тикета). Повтор пост-QA 2148b идёт на A1. Отдельно: периметр отдаёт 200 с телом ошибки без сессии → волна 2154 (A2).
2026-09-06T02:49:16.174Z · coordinator[06.09 02:49Z координатор] [2026-09-06T02:49Z координатор] KNOWN ISSUE 5 (владелец 02:46Z): вход через Apple на app.sixbyy.com → {"error":"origin_boundary_rejected"}. Журнал: [WEB075][rule-10][origin-lock] route=/api/auth/callback/apple method=POST reason=origin-does-not-match-effective-origin effectiveHost=app.sixbyy.com. Причина: Apple form_post колбэк приходит с Origin appleid.apple.com, а origin-lock требует свой origin для всех POST /api/*; исключения в коде нет (proxy.ts, verifyOrigin.ts). Не связано с переездом домена (на nb было бы так же). Лечение: волна 2159-appleoriginlock (A2, luna xhigh) — узкое исключение для POST /api/auth/callback/apple с проверкой Origin appleid.apple.com + state/PKCE; в l113c. Обход: Google/почта.
2026-09-06T03:11:46.098Z · coordinator[06.09 03:11Z координатор] [2026-09-06T03:11Z координатор] Волна 2159-appleoriginlock (A2, luna xhigh): VERDICT=PASS, commit=7c46b0ee — узкое исключение origin-lock для POST /api/auth/callback/apple (Origin appleid.apple.com / form_post), остальное без изменений. Независимая приёмка 2166-accappleoriginlock поставлена (sol xhigh, негативы на неослабление защиты). GO → l113c → посадка → владелец пробует Apple-вход. Отчёт: A2 /home/ubuntu/waves/APPLEORIGINLOCK-REPORT.md.
2026-09-06T03:26:33.720Z · coordinator[06.09 03:26Z координатор] [2026-09-06T03:26Z координатор] ПРИЁМКА 2166-accappleoriginlock (A2, sol xhigh): VERDICT=GO на 7c46b0ee — исключение узкое, негативы (чужой Origin, другие /api/*, state/nonce) пройдены. Cherry-pick в l113c выполнен. Владелец сможет войти через Apple после посадки l113c.
2026-09-06T04:04:49.548Z · coordinator[06.09 04:04Z координатор] [2026-09-06T04:04Z координатор] ПОСАЖЕНО: ПРОД = l113c 0390afc9 (03:59Z, без простоя; оба бэкенда ready, paid enforce_ready, edge 200×4; hetzbk l113c-0390afc9 + env-pack; Pi standby → l113c). В составе: WEB-505 3bb21db4 (окно цитирования), WEB-497 a1b3f9fd (судья), WEB-495/465 revive-бюджет (сквош 75ac1e21), WEB-564/566 Apple origin-lock 7c46b0ee, WEB-530 f7a427bd(+db551088), WEB-562 2daaf3db, WEB-556 1666dfb2, WEB-549/551 5d497bfe. Откат = l113b 02812b90 (RUN l113b-02812b90, REL arm64-l113b-20260906T003405Z). Артефакт me2-standalone-linux-arm64-0390afc9-20260906T035404Z sha 97076030…
2026-09-06T10:02:04.009Z · astra-securitycont18-wave-2088-web-564 — 2026-09-06T10:02:04.008349+00:00 / IST=2026-09-06T15:32:04.008354+05:30
CONT18 fan-out: 2088 REVIEW, gpt-5.6-sol, priority NORMAL; задачи WEB-523, WEB-564.
BLOCK18 NEW SURFACE: review exact l113d app assumptions against a sanitized cutover configuration, not production. WEB564 comment1780 reports Cloudflare real-ip include added after ip_hash used edge addresses and Socket.IO requests split across backends. Actual /etc/nginx/conf.d/cloudflare-real-ip.conf and app vhost are NOT tracked in assigned tree; do not call an absent repo file a proven host defect. WEB563 comments1645/1646 report DNS/cert/vhost setup; WEB5641770 reports stageB cutover and lock/await + JSON URL comparison residuals in external cutover.sh e904cee9. Reconcile owner-supplied exact config/source snapshots before implementation claims; no duplicate cutover fix without current-code evidence.
Current source anchor src/lib/auth/antiBot.ts:99–114 prioritizes x-real-ip then last forwarded address. docs/operator/WEB093-P23-TWO-BACKENDS.md:13–77 is a FUTURE generic example with forwarded headers, websocket upgrade and buffering controls, not deployed sixbyy config. infra/nginx/README.md:27–46 describes controller admission/reload; existing offline controller tests are in infra/nginx/tests. Trace actual app header consumers and realtime transport, distinguish ip_hash client affinity, explicit backend pin and shared-state configuration. Stable client identity and backend isolation must be attested by the edge owner; do not invent trusted CIDRs or use generic docs as live evidence.
Бриф: /Users/poolpooly/audit/outbox/2088-l113d-edge-identity-and-realtime-review-brief.md
SHA256 976af1ef50ef9928d1b4097e90d247e8fcc8693021953f87581326cd3037a095
Статус: выдан в relay; запуск/результат не подтверждены. Назначенная база 4c73d8451a295af84603b1d20f66f88d5aa82a2e; l113d-line. Проверка текущего кода и prior-output dedupe обязательны. Координатор принимает пересекающиеся изменения и посадку.
2026-09-06T10:11:28.113Z · astra-securitycont18-wave-2111-web-564 — 2026-09-06T10:11:28.112868+00:00 / IST=2026-09-06T15:41:28.112879+05:30
CONT18 fan-out: 2111 REVIEW, gpt-5.6-sol, priority NORMAL; задачи WEB-516, WEB-564.
BLOCK18 NEW SURFACE, engineering flags/routing/content integrity only. Source static review found publicLanding.ts:8–11 explicit truthy flag, proxy.ts:63–88 public root only and:453–456 authenticated workspace preservation; beta-card remains auth+beta gate. syntheticFinalDocs.ts:162–175 exactLEGAL_DOC_MODE=real and:214–267 committed docs, :311–331 owner substitutions/pending markers. Actual legal/[slug]/page.tsx:139–164 and tests/legal/public-legal-pages.spec.ts:74–83 deliberately retain noindex in real mode. Do not call noindex a defect without a search-indexability policy; public reachability is different.
WEB5161800 already reports PUBLIC_LANDING_ENABLED=true activated; WEB5661781 reports LEGAL_DOC_MODE=real, DMCA-1079963 registered/paid and rendered. Do not request re-registration/payment or blindly re-enable flags. Repo docs/operator/README-READY-CHECKLIST.md:14–17 is stale relative to coordinator DMCA receipt; propose evidence attribution update only. Never inspect actual env values or publish legal advice. Use tiny synthetic configuration and ordinary local route/render tests, no external site/session.
Бриф: /Users/poolpooly/audit/outbox/2111-public-landing-real-legal-boundary-review-brief.md
SHA256 b80984388b709d9a5752a89f0645b3a1c0471cddfb3408c19c52711451ff8595
Статус: выдан в relay; запуск/результат не подтверждены. Назначенная база 4c73d8451a295af84603b1d20f66f88d5aa82a2e; l113d-line. Проверка текущего кода и prior-output dedupe обязательны. Координатор принимает пересекающиеся изменения и посадку.
2026-09-06T10:21:14.692Z · coordinator[06.09 10:21Z координатор] [2026-09-06T10:21Z координатор] ПОСАЖЕНО: ПРОД = l113e 65ff9060 (flip 10:17:49Z, без простоя; оба бэкенда ready, paid enforce_ready, edge 200×8; 3 миграции применены (WEB-538 email idempotency, WEB-555 daily reward receipt, WEB-542 oauth atomic generation); hetzbk l113e-65ff9060, Pi standby → l113e). Состав (15 коммитов над l113d): social OAuth callback guard + origin validator (3391848c, 11148078), роли — многошаговые цепочки v3 (f00d3639, 7663ba59, 475f2872 → C1-6/C3-1/C3-2), WEB-553 clipper owner state (ba3acc4b), WEB-555 daily reward (d7e486e9), WEB-538 email delivery idempotency+fence (df0399da, 5895c8d0), WEB-542 OAuth atomic generation (3f281a9b, e04fd90d, 1d87f676), P19 манифест 187, api-perimeter baseline. Откат = l113d 4c73d845 (RUN l113d-4c73d845, REL arm64-l113d-20260906T085722Z). Дальше: батарея ролей на l113e; l113f = WEB-560 merge 8dd1682e, WEB-541 3fd18f21, WEB-545 c4373797, WEB-509 9ad8335c + ждущие приёмок.
2026-09-06T11:10:43.681Z · astra-securitycont18-relay12-verdict-web-564 — 2026-09-06T11:10:43.681015+00:00 / IST=2026-09-06T16:40:43.681025+05:30
Правила обогащения: WEB-449. ДЛЯ ТИКЕТА / CONT18 intake209x.
Состояние: NO-GO / INPUT.
Причина/доказательство: Отсутствовали exact object/packet на воркере; проверки edge/realtime не выполнены. Это не продуктовый отказ и не приёмка.
Что осталось: Передать sanitized effective nginx real-ip/vhost/upstream/pin и cutover script+hash, затем возобновить существующую2088. Нового FIX нет.
KNOWN ISSUES / ТРАБЛШУТИНГ
Симптом: headerGO/NO-GO или boarddone не задаёт scope приёмки. Проверка: раздел Provenance/Exactly three groups/KNOWN ISSUES исходного отчёта и adjudications.json; source-hash-reconciliation.json содержит локальный byte bridge на4c73. Report-only результаты не объявлены исполненными родителем. Prod65ff9060 сообщён WEB-515:2088, object на M1 отсутствует; authoritative current mapping pending. Лечение/статус: Передать sanitized effective nginx real-ip/vhost/upstream/pin и cutover script+hash, затем возобновить существующую2088. Нового FIX нет.
КАРТА ДОКУМЕНТОВ: M1 /Users/poolpooly/audit/evidence/block18-relay/intake-originals/CONT18-RELAY-1/L113D-EDGE-IDENTITY-AND-REALTIME-REVIEW-REPORT.md
SHA256 3f77c6abea4463e0fa79c4b8210fdf158b34ff499a7497978bc8343d9f119ed2
M1 /Users/poolpooly/audit/reports/block18-relay-1-2-checkpoint.md
M1 /Users/poolpooly/audit/evidence/block18-relay/adjudications.json
M1 /Users/poolpooly/audit/outbox/CONT18-RELAY-1-2-URGENT-COORDINATOR-HANDOFF.md
Board status/чужие поля не менялись. High здесь приоритет closure verification, CVSS не повышен.
2026-09-06T11:13:53.529Z · coordinator[06.09 11:13Z координатор] [2026-09-06T11:13Z координатор] ПРОВЕРЕНО И ПОЧИНЕНО НА ПРОДЕ (nginx A1, 11:13Z): /me2 и /api/me2-bridge/* отдавали 502 — vhost'ы app.sixbyy.com и nb.wool2.online проксировали их на 127.0.0.1:3020 (давно мёртвый отдельный сервис), хотя приложение само обслуживает /me2 (страница) и /api/me2-bridge/{poll,realtime-token,realtime-tool,recent,web-enqueue}. Удалены три location (/me2/, /me2, ^~ /api/me2-bridge/) из обоих vhost (бэкапы /etc/nginx/backups/*.pre-me2fix), nginx -t ok, reload; теперь /api/me2-bridge/recent → 401 (периметр), /me2 → 307 на логин. KNOWN ISSUES: бэкап-копии НЕЛЬЗЯ класть в /etc/nginx/sites-enabled (nginx включает всё по glob → duplicate upstream nc_backend, nginx -t падает; работающий master не страдает). Найдено пост-QA 2279 (A2).
2026-09-06T11:31:40.237Z · coordinator[06.09 11:31Z координатор] [2026-09-06T11:31Z координатор] ПРОВЕРЕНО НА ПРОДЕ: Google/Apple вход на app.sixbyy.com работает — POST /api/auth/signin/{google,apple} с csrfToken → 302 на accounts.google.com / appleid.apple.com (client_id online.wool2.noteclone.signin). «error=Configuration» в пост-QA = GET на signin/<provider> (Auth.js: UnknownAction) — ошибка метода пробы, не продукта. KNOWN ISSUES: пробовать OAuth только POST с csrf; GET даёт ложный Configuration. QA-учётка для пост-QA: /home/wave/qa/ пуст, cookie l106 протух → нужен свежий QA-логин (координатор).
2026-09-06T12:24:37.044Z · coordinator[06.09 12:24Z координатор] [2026-09-06T12:24Z координатор] ИНЦИДЕНТ A1 12:20Z: диск прода 100% (193/193 ГБ) — 49 ГБ старых worktree волн в /home/ubuntu/waves (42 шт. снесены → 33 ГБ свободно), /var/lib/hetzbk 45 ГБ (base 19 + wal-cipher 15 + wal-partial 13 — штатные локальные копии), /home/wave 27 ГБ. Последствия: hetzbk-base (часовой base backup 12:00) упал, WAL partial не публиковался ~20 мин (No space) — после очистки WAL partial и manifest закоммитились (12:20:39Z), base backup перезапущен 12:22Z. Сервисы (PG, nginx, nc-a1/nc-a1-b) не падали. Нужен guard на A1 как на M4 (удалять wt-* без живой сессии по отчёту/возрасту) — ставлю.
2026-09-06T12:25:35.586Z · coordinator[06.09 12:25Z координатор] [2026-09-06T12:25Z координатор] Авторы сдали GO: big-PDF круг 3 7779df11 (2300) → приёмка 2311 (A2, sol xhigh, PG, пользовательский путь); WEB-552 круг 3 ecca7846 (2306) → приёмка 2312 (M4). На A1 поставлен guard worktree волн (таймер 30 мин, /var/log/a1-waves-disk-guard.log).
2026-09-06T12:43:06.295Z · coordinator[06.09 12:43Z координатор] [2026-09-06T12:42Z координатор] ПОСАЖЕНО: ПРОД = l113f 221e8f39 (flip 12:39:47Z, без простоя; оба бэкенда ready, paid enforce_ready, edge 200×8; миграций новых нет (187/192); hetzbk l113f-221e8f39 + env-pack, Pi standby → l113f). Состав (15 коммитов над l113e): роли C5-C детерминированный отказ на прямом отрицании предиката (9fdfd6fe, 86afe601, 3ad54814, 59d4f3ee), WEB-541 SEC-024 retention contract (ebecd7f2, 3fd18f21), WEB-545 SEC-028 lighthouse headers (c4373797), WEB-509 gateway install (9ad8335c, репо-копия), WEB-463 barge-in + VAD env (0d7b50ee, 44ea7cea), WEB-542 rate-limit на client-account-generation (4891645b), WEB-508 SIP reload (8c76aa7d, b93d862f, репо-копия), WEB-506 куки-баннер (fc462e1d), периметр 500/embed (5837dd0f). Откат = l113e 65ff9060 (RUN l113e-65ff9060, REL arm64-l113e-20260906T101257Z). Снято с линии: WEB-560 merge (Prisma при импорте валил сборку → фикс 2309 → l113g). l113g: WEB-550 ed246cae, WEB-531 merge e8c97f1f, WEB-568 faf26ab9, revive5+499 42b61743, WEB-552 ecca7846 + ждущие: big-PDF r3, roles r3, backfill, 560 fix. Хост-синк SIP (508/509/463) — отдельное окно.
2026-09-06T13:58:50.212Z · coordinator[06.09 13:58Z координатор] [2026-09-06T13:58Z координатор] ПОСТ-QA l113g на проде (2320, A1, QA-учётка): PASS — pin/paid ready, витрина/redirect, legal/DMCA, Stripe-бета (PaymentElement, sandbox €10, без ввода карты), свой .md → done + C07 live propagation, периметр 27 методов (0×5xx), paid chat (6.05 credits ≈ /bin/zsh.06), me2-bridge (307/403/401 по контракту), нагрузка-lite 1200×200 (p95 1.9 с — выше, чем 197 мс на l113d; окно совпало с рестартами телефонии — перепроверить). FAIL: realtime session-start 200 → session-turn 404 session_not_found ×6 (сессии process-local за двумя бэкендами) → митигация на A1 13:56Z: nginx → 3010 (бэкап в /etc/nginx/backups), фикс в коде — волна 2328 (redis-хранилище сессий); повтор пика — 2329 (A1). Apple/Google «error=Configuration» — снова GET-проба (POST с csrf работает, проверено 11:2xZ). Большой PDF для QA — 403 (другой владелец, ожидаемо). Revive --new-attempt: автор 2319 сдал 2f0fde7c (GO) → приёмка 2326 (A2, PG). C4-RU-3/C1-2 из батареи → разбор 2324 (A2). WEB-370: staged-артефакты для хостовой установки → 2327 (A2).
2026-09-06T14:06:37.732Z · astra-securityblock19-wave-2117-web-564 — 2026-09-06T14:06:37.732408+00:00 / IST=2026-09-06T19:36:37.732413+05:30
Правила обогащения: WEB-449. ДЛЯ ТИКЕТА: BLOCK19 FIX, gpt-5.6-luna, URGENT / launch correctness.
RELAY6 PUBLIC-LANDING-REAL-LEGAL-BOUNDARY-REVIEW-REPORT.md NO-GO real routing conflict persists currentg. src/app/legal/cookies/page.tsx:1 static Cookie Notice shadows mode-aware src/app/(full)/legal/[slug]/page.tsx:139 metadata/content loader. tests/legal/public-legal-pages.spec.ts expects full real document; scripts/check-public-landing-legal-links.mjs accepts both headings and masks stale route. Remove shadow or delegate static route to canonical loader+metadata without duplicate Next routes. Tighten checker for real mode. Preserve explicit accepted noindex for real legal pages; do not invent search-index policy or new legal wording. DMCA1079963 already paid/registered, no owner re-registration.
Бриф M1 /Users/poolpooly/audit/outbox/2117-canonical-cookie-document-fix-brief.md; SHA256 8eabb26e057b3e62df672f8f903658f91d4bdc6db1f11fc47f1fa3e5813c711f. База l113g4c322c4606a1695fc896ecd6313842d55679b472. Выдан в outbox, running не подтверждён.
KNOWN ISSUES / ТРАБЛШУТИНГ: old4c73 report verdict не равен currentg defect или runtime acceptance. Сначала current-source/candidate dedupe; no duplicate implementation. Три обязательные группы проверок в брифе; failed/skipped gates и owner/host dependencies сохранять явно. High — приоритет closure, CVSS не повышен. Документы M1 /Users/poolpooly/audit/evidence/block19/fanout-jobs.json; будущий отчёт worker ~/waves/BLOCK19-CANONICAL-COOKIE-DOCUMENT-FIX-REPORT.md
2026-09-06T14:11:34.835Z · astra-securityblock19-wave-2121-web-564 — 2026-09-06T14:11:34.834583+00:00 / IST=2026-09-06T19:41:34.834588+05:30
Правила обогащения: WEB-449. ДЛЯ ТИКЕТА: BLOCK19 REVIEW, gpt-5.6-sol, URGENT / missing closure proof.
RELAY1 L113D-EDGE-IDENTITY-AND-REALTIME-REVIEW-REPORT.md is INPUT-NO-GO and explicitly product finding=none. Currentg source packet now exists; complete current source/inert edge review rather than invent a product FIX. Prior report points to src/lib/auth/antiBot.ts:99–114 and infra/nginx/README.md:27–46/tests; verify current anchors/consumer chain. Exact effective nginx include/vhost/real-ip/trusted-range/upstream/pin and external cutover controller are not versioned app facts. Coordinator attaches sanitized immutable snapshots if available; review available source now and explicitly separate missing host closure. Do not silently substitute repo sample config for effectivehost. If a real remaining defect is found, give minimal file:line FIX delta; no product/host edits in this review.
Бриф M1 /Users/poolpooly/audit/outbox/2121-edge-identity-current-input-review-brief.md; SHA256 65593d0a00c7380ae975e46ceecbf899c07eb1fef08b5792a83c90d313053aa8. База l113g4c322c4606a1695fc896ecd6313842d55679b472. Выдан в outbox, running не подтверждён.
KNOWN ISSUES / ТРАБЛШУТИНГ: old4c73 report verdict не равен currentg defect или runtime acceptance. Сначала current-source/candidate dedupe; no duplicate implementation. Три обязательные группы проверок в брифе; failed/skipped gates и owner/host dependencies сохранять явно. High — приоритет closure, CVSS не повышен. Документы M1 /Users/poolpooly/audit/evidence/block19/fanout-jobs.json; будущий отчёт worker ~/waves/BLOCK19-EDGE-IDENTITY-CURRENT-INPUT-REVIEW-REPORT.md
2026-09-06T14:13:52.060Z · coordinator[06.09 14:13Z координатор] [2026-09-06T14:13Z координатор] Роли круг 4 (2323, PG 16) = NO-GO c7e9f946: lock-busy закрыт (6–10 мс при удержанном FOR UPDATE, 0 lock-wait), но на 10 000 чанков publication transaction 5.066 с (>5 с, INSERT DocumentChunk) → круг 5 = 2332-roleschains5 (claude-opus): батчи ≤1000 строк в коротких tx + атомарное переключение ревизии, идемпотентное возобновление. Realtime повтор (2329): session-start с пустым телом даёт sessionId=null → session-turn 400 missing_session_id (форма пробы; браузерный клиент передаёт параметры) — код-фикс 2328 (redis) остаётся; OAuth Google/Apple POST с csrf = 302 на провайдера (PASS); paid chat PASS (/bin/zsh.00047). Сборка l113h (83683d48: WEB-560 + build-fix, WEB-507, revive --new-attempt) запущена.
2026-09-06T14:18:20.789Z · astra-securityblock19-l113d-edge-identity-and-realtime-review-web-564 — 2026-09-06T14:18:20.789276+00:00 / IST=2026-09-06T19:48:20.789280+05:30
Правила обогащения: WEB-449. ДЛЯ ТИКЕТА / BLOCK19.
Вердикт: INPUT-NO-GO; product finding none.
Причина и текущая дельта: 2088 не имел4c73 и прямо не установил дефект.2121 проверяет доступный currentg код и supplied config; effective nginx/cutover snapshots остаются coordinator input.
База независимой source-сверки M1: 4c322c4606a1695fc896ecd6313842d55679b472; root /private/tmp/nc-block19-parent. Исходный header VERDICT=NO-GO сохранён без изменения scope.
KNOWN ISSUES / ТРАБЛШУТИНГ: reportGO ограничен исполненными группами; INPUT-NO-GO не доказывает product failure; current source/hash bridge не заменяет runtime/DB/provider/host acceptance. Проверка: раздел provenance/raw counts исходного отчёта, source-hash-reconciliation.json и актуальный fanout-jobs.json. Лечение/следующий шаг: 2088 не имел4c73 и прямо не установил дефект.2121 проверяет доступный currentg код и supplied config; effective nginx/cutover snapshots остаются coordinator input.
КАРТА ДОКУМЕНТОВ: M1 /Users/poolpooly/audit/evidence/block19/intake-originals/CONT18-RELAY-1/L113D-EDGE-IDENTITY-AND-REALTIME-REVIEW-REPORT.md
SHA256 3f77c6abea4463e0fa79c4b8210fdf158b34ff499a7497978bc8343d9f119ed2
M1 /Users/poolpooly/audit/evidence/block19/source-hash-reconciliation.json
M1 /Users/poolpooly/audit/reports/block19-checkpoint.md
M1 /Users/poolpooly/audit/evidence/block19/fanout-jobs.json
Board workflow/чужие поля не менялись. High — срочность сверки закрытия; новая числоваяCVSS не назначалась. Parent/reviewer тестов не запускали; результаты worker report-attested.
2026-09-06T14:18:20.936Z · astra-securityblock19-public-landing-real-legal-boundary-review-web-564 — 2026-09-06T14:18:20.935645+00:00 / IST=2026-09-06T19:48:20.935653+05:30
Правила обогащения: WEB-449. ДЛЯ ТИКЕТА / BLOCK19.
Вердикт: NO-GO real route shadow oncurrentg.
Причина и текущая дельта: Static src/app/legal/cookies/page.tsx:1 shadows mode-aware(full)/legal/[slug]/page.tsx:139. Script допускает обе heading и скрывает stalepage.2117 canonicalizes loader/metadata/checker; accepted noindex policy и completedDMCA1079963 сохраняются.
База независимой source-сверки M1: 4c322c4606a1695fc896ecd6313842d55679b472; root /private/tmp/nc-block19-parent. Исходный header VERDICT=NO-GO сохранён без изменения scope.
KNOWN ISSUES / ТРАБЛШУТИНГ: reportGO ограничен исполненными группами; INPUT-NO-GO не доказывает product failure; current source/hash bridge не заменяет runtime/DB/provider/host acceptance. Проверка: раздел provenance/raw counts исходного отчёта, source-hash-reconciliation.json и актуальный fanout-jobs.json. Лечение/следующий шаг: Static src/app/legal/cookies/page.tsx:1 shadows mode-aware(full)/legal/[slug]/page.tsx:139. Script допускает обе heading и скрывает stalepage.2117 canonicalizes loader/metadata/checker; accepted noindex policy и completedDMCA1079963 сохраняются.
КАРТА ДОКУМЕНТОВ: M1 /Users/poolpooly/audit/evidence/block19/intake-originals/CONT18-RELAY-6/PUBLIC-LANDING-REAL-LEGAL-BOUNDARY-REVIEW-REPORT.md
SHA256 5d60e404ed79a3f17aa7475161b705908434d7c3f55d012dd573aa4f3aa2fe8e
M1 /Users/poolpooly/audit/evidence/block19/source-hash-reconciliation.json
M1 /Users/poolpooly/audit/reports/block19-checkpoint.md
M1 /Users/poolpooly/audit/evidence/block19/fanout-jobs.json
Board workflow/чужие поля не менялись. High — срочность сверки закрытия; новая числоваяCVSS не назначалась. Parent/reviewer тестов не запускали; результаты worker report-attested.
2026-09-06T14:26:33.063Z · coordinator[06.09 14:26Z координатор] [2026-09-06T14:26Z координатор] Авторы сдали GO → приёмки: C4-RU-3/структура списков в claim-split 11f3cdd5 (2324; корень: judge удалял «Шаги:\n1.», оставляя сиротский «2.»; чекер батареи принимал ordinal за разряд) → 2333 (A2); realtime-сессии в redis 3d63dfd9 (2328) → 2334 (A2, PG+redis); Astra блок 19: extraction wiring c0e3c353 (WEB-521/522) → 2335 (M4), generated config mode cd9cee08 (WEB-547/548) → 2336 (M4). SIP fix plan (2322) = NO-GO по замыслу (хост не трогали): корень провала окна — Asterisk 20.19: «No such command pjsip reload», CLI вернул rc 0, helper счёл reload успешным; v2 скрипты в /home/ubuntu/waves/siphostsync-v2/ — новое окно только после стендовой проверки с реальным Asterisk.
2026-09-06T14:37:52.558Z · coordinator[06.09 14:37Z координатор] [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-06T14:51:27.161Z · coordinator[06.09 14:51Z координатор] [2026-09-06T14:51Z координатор] Realtime redis-сессии круг 1 (2334 ACCREALTIMETURN404, real PG) = NO-GO 3d63dfd9: session-turn при Redis-hit вставляет VoiceTurn с FK на отсутствующую VoiceSession → P2003/500; автор тестировал на Map без Prisma → круг 2 = 2344-realtime-turn2 (A2, sol xhigh, PG+redis, two-process на реальной Prisma). nginx-пин /api/realtime/ → 3010 остаётся. Astra блок 19: oauth-result-write-budget fix 3652a309 (WEB-542) → приёмка 2345 (M4); edge-identity review NO-GO (находки → Astra). Big-test 1782161239510l4gl4zzur: revive --new-attempt применён на l113h (новый parent бюджета) → pending, наблюдаю.
2026-09-06T15:30:02.206Z · astra-securityblock20-block19-canonical-cookie-document-fix-web-564 — 2026-09-06T15:30:02.205333+00:00 / IST=2026-09-06T21:00:02.205343+05:30
Правила обогащения: WEB-449. ДЛЯ ТИКЕТА / CONT19 relay15:20, BLOCK20.
Вердикт: AUTHOR GO; independent2341 pending.
Причина/действие: e676f8f4e5836a8fc23cce92bc87ffbf748c17de repairs staticcookie shadow/checker on g. FullNextbrowser spec skipped due unrelatedportowner;2341 must close realroute/browser proof, preserve acceptednoindex. No blindportkill or duplicateacceptance.
Report header: VERDICT=GO; metadata {"commit": "e676f8f4e5836a8fc23cce92bc87ffbf748c17de", "base": "4c322c4606a1695fc896ecd6313842d55679b472", "fix_commit": "e676f8f4e5836a8fc23cce92bc87ffbf748c17de", "branch": "agent/2117-canonical-cookie-document-fix-20260906", "root": "/Users/milamarty/waves/.worktrees/2117-canonical-cookie-document-fix"}.
KNOWN ISSUES / ТРАБЛШУТИНГ
Симптом: authorGO не заменяет independentacceptance/посадку; reviewNO-GO может быть missinghostinput или отдельный testcontract. Проверка: исходныйreport Provenance/3groups/rawresults, metadata above и current ledger46.json. Лечение: e676f8f4e5836a8fc23cce92bc87ffbf748c17de repairs staticcookie shadow/checker on g. FullNextbrowser spec skipped due unrelatedportowner;2341 must close realroute/browser proof, preserve acceptednoindex. No blindportkill or duplicateacceptance.
Source reviewed M1 /private/tmp/nc-block19-parent на4c322c4606a1695fc896ecd6313842d55679b472; h83683d48reportedWEB515:2425, objectnotlocal. Candidate/rawarchivebytes report-attested, parenttests notexecuted. КАРТА ДОКУМЕНТОВ: M1 /Users/poolpooly/audit/evidence/block20/intake-originals/CONT19-RELAY-1/BLOCK19-CANONICAL-COOKIE-DOCUMENT-FIX-REPORT.md
SHA256 993d175e823233ed1cd0c79a5df21db5f3c87737c03186d2877ca70478de8afd
M1 /Users/poolpooly/audit/reports/block20-checkpoint.md
M1 /Users/poolpooly/audit/evidence/block20/adjudications.json
M1 /Users/poolpooly/audit/evidence/block20/fanout-jobs.json
Boardstatus/чужиеполяне менялись; числоваяCVSS не повышалась поmissinginput. 2026-09-06T15:30:02.252Z · astra-securityblock20-block19-edge-identity-current-input-review-web-564 — 2026-09-06T15:30:02.251699+00:00 / IST=2026-09-06T21:00:02.251708+05:30
Правила обогащения: WEB-449. ДЛЯ ТИКЕТА / CONT19 relay15:20, BLOCK20.
Вердикт: NO-GO effective-host closure; no observed code defect.
Причина/действие: App/source checks are green; antiBot99–110/register/rateLimit/proxy chain relies on effectiveedgefacts. Missingimmutable real-ip/vhost/bind/pin/cutover receipts prevent closure. Coordinator2355 alreadyownsreceiptpack; no fabricatedcodeFIX or duplicatehostreview.
Report header: VERDICT=NO-GO; metadata {"commit": "4c322c4606a1695fc896ecd6313842d55679b472", "base": "4c322c4606a1695fc896ecd6313842d55679b472", "fix_commit": "none"}.
KNOWN ISSUES / ТРАБЛШУТИНГ
Симптом: authorGO не заменяет independentacceptance/посадку; reviewNO-GO может быть missinghostinput или отдельный testcontract. Проверка: исходныйreport Provenance/3groups/rawresults, metadata above и current ledger46.json. Лечение: App/source checks are green; antiBot99–110/register/rateLimit/proxy chain relies on effectiveedgefacts. Missingimmutable real-ip/vhost/bind/pin/cutover receipts prevent closure. Coordinator2355 alreadyownsreceiptpack; no fabricatedcodeFIX or duplicatehostreview.
Source reviewed M1 /private/tmp/nc-block19-parent на4c322c4606a1695fc896ecd6313842d55679b472; h83683d48reportedWEB515:2425, objectnotlocal. Candidate/rawarchivebytes report-attested, parenttests notexecuted. КАРТА ДОКУМЕНТОВ: M1 /Users/poolpooly/audit/evidence/block20/intake-originals/CONT19-RELAY-1/BLOCK19-EDGE-IDENTITY-CURRENT-INPUT-REVIEW-REPORT.md
SHA256 84ea02cedca42eb3edd7ea0abe7e25b05f7d98a8155f7fb4cfd9a657077e8e41
M1 /Users/poolpooly/audit/reports/block20-checkpoint.md
M1 /Users/poolpooly/audit/evidence/block20/adjudications.json
M1 /Users/poolpooly/audit/evidence/block20/fanout-jobs.json
Boardstatus/чужиеполяне менялись; числоваяCVSS не повышалась поmissinginput. 2026-09-06T18:13:34.575Z · coordinator[06.09 18:13Z координатор] [2026-09-06T18:13Z координатор] Пост-QA прода l113h (L113HPOSTQAA1, A1, NO-GO) + действия.
PASS: readiness/pin 83683d48 (8/8 edge), WEB-560 cron 403 без секрета, storefront/redirects, legal/DMCA, Apple/Google 302 на провайдера (через csrf→POST), короткий .md upload→done, один paid chat $0.00044 billed, load-lite 20 RPS×60 с p95 17 мс, SIP readiness.
FAIL/находки: (1) realtime: edge давал петлю /api/realtime?model= → 301 /api/realtime/?model= → 308 → … — причина nginx: location ^~ /api/realtime/ (pin на 3010) заставляет nginx отдавать 301 на URI без слэша; ПОЧИНЕНО 19:05Z: добавлен exact location = /api/realtime с тем же proxy_pass (backup /etc/nginx/backups/app.sixbyy.com.conf.<ts>-realtime-exact), теперь GET /api/realtime?model=x без сессии = 401; перепроверка ×6 с QA-сессией — волна 2366 (A1). (2) C07: вторая вкладка после 3 правок и паузы 8 с увидела A1/A2, но не A3; resync-required не показан → фикс-волна 2362 C07TWOTABS (A2, две инстанции приложения + общий PG). (3) WEB-507: после Chat в DOM только header-chat-button, testids композера/сообщения/отправки не найдены → волна 2363 (A2). (4) /beta-card: после consent+Continue Stripe PaymentElement не появляется — причина: на проде нет NEXT_PUBLIC_*STRIPE* (WEB-516, ключи у владельца); волна 2365 делает явное состояние «платежи не включены» вместо тихого зависания. (5) периметр 27 маршрутов: 401×23, 301×2 (realtime — снято nginx-фиксом), 404×1, 405×1 → классификация волной 2368 PERIMETER5 (A1). (6) большой PDF: QA-пользователь не видит journal владельца — ожидаемо; координаторская расписка status=done chunks=9801 остаётся.
Email verification на проде выключен (emailVerification.sent=false) — вопрос владельцу (WEB-516/566).
2026-09-06T18:22:46.410Z · astra-securityblock21-accblock19cookie-web-564 — 2026-09-06T18:22:46.409694+00:00 / IST=2026-09-06T23:52:46.409701+05:30
Правила обогащения: WEB-449. ДЛЯ ТИКЕТА / BLOCK21, CONT19-RELAY-6.
Вердикт: GO independent
Scope: e676f8f4 canonical cookies, local cutover controls
Report metadata: {"commit": "e676f8f4e5836a8fc23cce92bc87ffbf748c17de", "base": "4c322c4606a1695fc896ecd6313842d55679b472", "fix_commit": "e676f8f4e5836a8fc23cce92bc87ffbf748c17de", "branch": "DETACHED", "root": "/Users/milamarty/waves/wt-ACCBLOCK19COOKIE"}
Доказательство: Route/content base0/5→candidate5/5; proxy8/8, landing/beta14/14, render2/2; checker1/3→3/3, loader15/15, route6/6. Mock JWT plus Chromium host-only cookie2/2.
KNOWN ISSUES / ТРАБЛШУТИНГ
Current h still has src/app/legal/cookies/page.tsx:1 shadow. Candidate deletes it and tightens checker. Real deployed Set-Cookie/effective scheme/Host not established by local browser proof.
Следующее действие: Coordinator replay/landing e676f8f4e5836a8fc23cce92bc87ffbf748c17de and sanitized cutover receipt; no new implementation.
Текущая 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/ACCBLOCK19COOKIE-REPORT.md
SHA256 822d76738c4db68d82c3c6b5afb90bdb3ebaf932a6f8041a29bc296056a07516
M1 /Users/poolpooly/audit/evidence/block21/adjudications.json; ledger46.json; /Users/poolpooly/audit/reports/block21-checkpoint.md. 2026-09-06T18:22:46.533Z · astra-securityblock21-l113hpostqaa1-web-564 — 2026-09-06T18:22:46.532583+00:00 / IST=2026-09-06T23:52:46.532601+05:30
Правила обогащения: WEB-449. ДЛЯ ТИКЕТА / BLOCK21, CONT19-RELAY-6.
Вердикт: NO-GO post-QA; partial later mitigation
Scope: A1 live h report; parent no live work
Report metadata: {"commit": "83683d4818ecc9b91e151be9e27a9ef0d6015294"}
Доказательство: Readiness/paid, cron560403, legal/DMCA, OAuth start302, shortmd, one paidchat and loadlite passed perA1 report. Realtime loop, C07 two-tab late edits, composer, beta iframe, strict perimeter and me2 listener failed/unproven; largePDF missing receipt.
KNOWN ISSUES / ТРАБЛШУТИНГ
README later exact nginx/api/realtime mitigation now401 supersedes only redirect-loop observation, not mint→session-start→turn×6. Board2493 owns2364 hostreceipts/2368 perimeter; board2496 owns2365 beta config UX (missing public Stripe key). C07/composer and full realtime remain unverified; no private browser.json copied.
Следующее действие: Coordinator keeps realtime2344 chain,2368 perimeter,2365 beta and owner key/config, C07/composer investigation, me2 intended-unit decision, owner-scoped PDF receipt. Retain original NO-GO with dated mitigation; do not equate guest401 with authenticated lifecycleGO.
Текущая 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/L113HPOSTQAA1-REPORT.md
SHA256 4b79ca85bba344548a47f59417815b5b86232126625f046281b2629be9f4cf5b
M1 /Users/poolpooly/audit/evidence/block21/adjudications.json; ledger46.json; /Users/poolpooly/audit/reports/block21-checkpoint.md. 2026-09-06T18:28:56.718Z · coordinator[06.09 18:28Z координатор] WEB507COMPOSERTESTIDS (A2, GO автора, a5e2ecee на 83683d48): дефект пост-QA подтверждён — на authenticated «/» при settings.simpleMode=true header-chat-button делал только router.push('/'), ModeSelector оставался, композер не открывался. Фикс: единый openChatMode (HeaderActions.tsx:123; headerChatMode.ts) для прямой и overflow-кнопки: disable simple mode → currentView=notebook → «/»; jsdom-тест homeBootstrapMatrix.test.tsx:407 (authenticated persisted auth-simple). Контракт testids — реестр src/lib/testing/testIds.ts (chat-composer, -input, -send-button, -attachments; chat-message-list только после сообщений). Приёмка 2391 (A2). WEB511BETACARDGATE (A2, GO автора, 5dc841f5): явное состояние без публичного Stripe-ключа + 503 payments_not_configured — приёмка 2392 (A2).
2026-09-06T18:40:02.634Z · coordinator[06.09 18:40Z координатор] C07TWOTABS (2362, A2, GO автора, 6fe1ff7f на 83683d48): причина — durable commit/версия общие через PostgreSQL, но событие applied рассылалось только в process-local Socket.IO room (src/lib/realtime/server.ts); вкладка на другом бэкенде молчала. Фикс: bounded idle reconciliation раз в 5 с (product-runtime.ts:763-781), durable catch-up только в connected/idle без pending patch (versioned-realtime-port.ts:680-696), live broadcast освобождает gate (1324-1341); тесты: двухпроцессный PG-интеграционный web564-c07-two-process (разные PID/порты, polling, пауза 8 с, A3/A4, reconnect), race catch-up vs live patch. Redis adapter остаётся быстрым путём где настроен. Приёмка 2398 ACCC07TWOTABS (A2). ERRORSWEEP (A1): 17 классов за 6 ч, 5xx/потерь данных нет; блокеры — расписки (email transport unset → provider=none; outbox; /me2 → nginx storefront теперь 404) → круг 2 2399; E05 NER duplicate_terminal → фикс 2401; E09 401 на trusted-identity — расписка UA.
2026-09-06T18:51:25.394Z · coordinator[06.09 18:51Z координатор] ACCWEB507COMPOSER (A2, NO-GO на a5e2ecee): основной дефект (композер не открывался при simpleMode=true) исправлен и подтверждён (RED/GREEN, testids 45/45), НО нарушен обязательный негатив «при simpleMode=false поведение прежнее»: enterHeaderChatMode() безусловно вызывает selectNotebookView(). a5e2ecee ИСКЛЮЧЁН из l113i. → круг 2 2410 WEB507COMPOSERR2 (A2): selectNotebookView() внутрь if(isSimpleMode), navigateHome() безусловно, + регрессия simpleMode=false. l113i пересобирается (2411) без a5e2ecee; композер войдёт после круга 2.
2026-09-06T20:46:04.548Z · coordinator[06.09 20:46Z координатор] WEB-507 композер круг 2 ПРИНЯТ (ACCWEB507COMPOSERR2, A2, GO): 2fec968f — selectNotebookView() только при isSimpleMode=true, navigateHome() безусловно; негатив simpleMode=false = прежнее поведение; overflow header-mode-chat тот же контракт; testids 45/45. → l113j (в l113i не вошёл: первая версия a5e2ecee ломала simpleMode=false). Лендинг круг 2 (6e268979, Vary: Cookie, Accept-Language в финальном ответе) принят (ACCLANDINGLATENCY2 GO) → l113j. C07 две вкладки (6fe1ff7f) — в l113i (собирается).
2026-09-06T21:13:09.903Z · coordinator[06.09 21:13Z координатор] ПРОД = l113i (18f13093), посажен 21:01:51Z без даунтайма (flip 53 с; оба бэкенда ready на 18f13093, paid enforce_ready, edge /api/ready 200×8, вебхук 401, пул 2). Артефакт me2-standalone-linux-arm64-18f130938-20260906T205751Z (sha 79055d42…), hetzbk /home/app-artifact/l113i-18f13093, HETZBK_ENV_LINE=l113i-18f13093; миграций новых нет (189). Откат = l113h (RUN l113h-83683d48, REL arm64-l113h-20260906T144300Z, `bash land-l113h.sh … flip`). Состав (8): 11f3cdd5 C4-RU-3 (WEB-099/104), e676f8f4 cookies (WEB-541), 3652a309 OAuth result write budget (WEB-542), 3499dacb WEB-423 weather fallback, 057a3939 url-proof harness (WEB-517), 6fe1ff7f C07 две вкладки (WEB-564), 5dc841f5 beta-card gate + NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY в build-env (WEB-511 — форма Stripe теперь должна появляться), 073dec1e SEC-007 F2/F3 (WEB-515). Снят: de9f903c pnpm/ws (lock→манифест; → l113j с 45d2e133). Не вошли (l113j): composer r2, landing r2, realtime r3, idempotency, roles 5b (rebase 2454), block-19/20 r2/r3, doc-engine completeness. Пост-QA через edge — 2453 (A1). Ловушки посадки (dry-run на 3011 поймал до флипа): dryrun-юнит без drop-ins db-pool-budget/DB_POOL_ROLE/NC_RELEASE_ID → 500/unready; первый кандидат (bad68a83, 9 правок) — paid enforce_blocked «dependencyLockSha256 mismatch» из-за de9f903c; env-фаза перезаписывает прод ent093.conf до флипа (восстанавливать при отказе); hetzbk-publish ждёт NAME.att-build.json. Все зафиксированы в памяти координатора.
2026-09-06T21:18:33.303Z · coordinator[06.09 21:18Z координатор] ERRORSWEEP3 (A1, NO-GO по старым блокерам): окно 18–21Z — общего web-outage нет; в инциденте 20:21–20:27Z ровно 11 edge-503 и все на /api/messenger/v1/telegram/webhook (9 доставок Telegram UA «-» + 2 мои curl) — пользовательские маршруты не пострадали; /me2 502 до 404-фикса; dryrun-юнит l113i (db-pool FAIL-CLOSED, NC_RELEASE_ID missing, dependencyLockSha256 mismatch) — только 3011, прод 3010/3012 не задет. Открытыми остаются E01 (email transport unset — решение владельца), E03/E05 (NER replay: фикс 91f5e764 на приёмке 2435), E09/E12 (расписки UA). Матрица 46 SEC (M1SECMATRIX) записана в тело WEB-515 (46 строк; колонки «посажено» уточняю волной M1).
2026-09-06T22:10:24.382Z · 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-06T22:36:03.746Z · coordinator[06.09 22:36Z координатор] C07 ТРАССИРОВКА НА ЖИВОМ l113i (волна 2478 C07HYDRATIONTRACE, A1 sol, 22:14–22:30Z, отчёт /home/ubuntu/waves/C07HYDRATIONTRACE-REPORT.md, evidence C07HYDRATIONTRACE-evidence/): VERDICT NO-GO, но состав другой, чем в L113IPOSTQA.
1) Блокер «editor не монтируется 90 с» = ЛОЖНЫЙ, дефект QA-harness: `/home/wave/waves/l113i_c07_probe.mjs:70-81` кликает по `[data-source-name]` (title) → `stopPropagation()+startEditing()` (Sidebar.tsx:4177-4183/4409-4415) = inline rename, а не open; click по телу карточки (Sidebar.tsx:2639-2653 openSourceFromCard, как в tests/e2e/realtime-two-context.spec.ts:166-175) даёт CM6 ready за 3277/2649 мс. Оба QA-источника исправны (markdown, не legacy/poison/quarantine). → волна 2487 C07HARNESSFIX (A1).
2) РЕАЛЬНЫЙ дефект: на свежем .md, загруженном через UI, правки A1/A2/A3 сразу после видимого `hydration=ready` (transport ещё `deferred`, late-join ~750 мс+) теряются: B не видит ничего за 15 с, durable сохранил только A1; `ProductDeferredTransport.send()` (socket-transport.ts:308-313) отбрасывает outbound до adopt(). После подтверждённого late-join A1/A2/A3 доходят (<8 с) — но 124 `persist-rejected … cas-mismatch` в обеих вкладках (late-init переносит text/serverVersion, но не storedRevision: socket-transport.ts:30-35,150-154,326-347; product-runtime.ts:686-705) + autosave-шторм (product-runtime.ts:576-596 scheduleAutosave на remote-транзакции; EditorModal.tsx:4134-4153 saveNow() на каждый failure). → волна 2486 C07EARLYEDITS (A2 sol xhigh), серверный CAS не ослаблять.
3) Multinode/edge не воспроизведены как причина в этом окне (fan-out дошёл до peer), остаются инфраструктурным риском (server.ts:1908, 3222-3239, multinodeConfig.ts:27-38).
KNOWN ISSUES: «90 с нет editor, socket=200» → проверить `input[data-source-name]` (harness в rename); «editor ready, peer не видит первые правки» → receipt `transport=deferred` до late-join = окно потери outbound; «persist-rejected … #N» → сравнить init storedRevision с runtime/C06; «много одинаковых save warnings» → EditorModal saveNow() обходит backoff.
2026-09-06T22:36:06.537Z · coordinator[06.09 22:36Z координатор] ERRORSWEEP4 (волна 2477, A1 sol, окно 20:58–22:05Z, отчёт /home/ubuntu/waves/ERRORSWEEP4-REPORT.md): edge чист — 0×502/503/499 за всё окно, в окне посадки l113i 21:00–21:04Z 0 пользовательских ошибок; вебхук Telegram после drop-in контроллера (READY_HOST/HOLD_CHECKS) — 503 не повторялись. Классы: E02/E04/E08/E10/E11/E12/E13/E14/E16 исчезли; E01 email transport=none теперь подтверждён на 3010/3012 (решение по провайдеру — WEB-566, владелец); E07 isolation deadline ×5 = шум headless post-QA; E09 TrustedIdentity ×2 = SEC-007 negative probes (ожидаемые 401/403); E03/E05 — open receipt до приёмок. VERDICT NO-GO только из-за нового класса E26 = C07 пост-QA — по трассировке 2478 это ложный harness-blocker + реальный race ранних правок (см. комментарий C07, волны 2486/2487).
2026-09-06T22:39:29.557Z · coordinator[06.09 22:39Z координатор] ГОЛОСОВЫЕ TELEGRAM ПРИ ЗАКРЫТОМ PAID-ГЕЙТЕ (волна 2482 VOICERETRYAFTERGATE, A2 sol, коммит baaefa83 над 46393080, 22:28Z): PASS локально — 503 accounting_unhealthy теперь = deferral задачи (backoff 1→5→15→60 мин до 24 ч), не вендорная ошибка и не трата retry-cap; возобновление только по каноническому paidReady=true; терминальное предупреждение в исходный чат; release-скрипт revive (dry-run по умолчанию) поднимает потерянные строки MessageLog failed/retry_cap с сохранённым fileId. Факт с прода: 05.09 21:10–21:13Z 4 голосовых владельца потеряны так (whisper-1 не в MODEL_ALLOWLIST, gpt-4o-mini-transcribe через billing_gateway получил 503), всего ≥18 с 20.08. Приёмка 2488 (claude-opus) запущена; после GO → l113k, затем revive 4 сообщений 05.09.
2026-09-06T23:01:57.434Z · coordinator[06.09 23:01Z координатор] 🛬 ПОСАЖЕН l113j (46393080dd885f6ff25967f18639075564e12737) на прод 06.09 22:56:47Z (nc-a1) / 22:56:54Z (nc-a1-b) без простоя (контроллер по одному бэкенду, edge ×8 = 200, paid enforce_ready на обоих). Артефакт me2-standalone-linux-arm64-46393080d-20260906T225025Z sha 44b32502…; RUN l113j-46393080; откат = l113i 18f13093. Состав (L113JPREP2 GO, 15 коммитов): BARGEINRENDERFIX 28467587 (WEB-463: рендерер знает LIVE_UPSTREAM_ENABLED → 8000 идёт в live-upstream; на шлюз ещё нужен sync-plan --apply + рестарт в окне), ROLES5BREBASE c010b7de (roles 5b: admission ≤2000 + repair карантина, ACC GO), DOCENGINECOMPLETENESSR2 e3558f48 (ACC GO), INVITE502R2 (ACC GO), controller adopt ed2b3bf2 (writer, dormant до бинаря на хосте; r2 1fc3f8a9 → l113k), единый regen activation manifest. Env по решениям владельца: APP_ALLOWED_HOSTS += 127.0.0.1:3012 (SEC-007 F1), EMAIL_TRANSPORT=resend через nc-fence (allowlist += api.resend.com:443; было: транспорт off с 25.08 — старые ключи SMTP_HOST vs новые EMAIL_*), LEGAL_DOC_MODE=real + реквизиты DMCA-1079963. Миграций новых нет (P19 189). hetzbk publish/env-pack — см. следующий комментарий. Далее: батарея ролей на l113j, dry-run репейра карантина (--in-process-repair, --conditions=react-server), SIP фаза 3.
2026-09-06T23:08:17.823Z · coordinator[06.09 23:08Z координатор] ПОПРАВКА К ЗАПИСИ О ПОСАДКЕ l113j (координатор, проверено по дереву /home/ubuntu/waves/wt-l113j-migrate = 46393080): в l113j ВОШЛИ (18f13093..46393080, 15 коммитов): 8e04c643 fix(sip): materialize live upstream before dialplan startup (= BARGEINRENDERFIX, WEB-463), 474f66fe WEB-528 pnpm/ws floors, 71da9514/21fe91d3/06b2540c SIP config root/x64/atomic publish, 8d6073c2/44c28245 notion diagnostics, 80183b6b l113g activation migration manifest refresh, f7a65d73 WEB-477 idempotency, 1ed5d212/593db10a public landing Vary/static cache, e7697d17/09c4b152 WEB-507 composer, c258d9b7 realtime squash, 46393080 regen activation manifest. НЕ ВОШЛИ (stage 2 L113JPREP2 — «проба на отдельной копии, в bundle/HEAD не входит» из-за prisma/migration-compatibility-manifest.json baseline l113i): ROLES5BREBASE c010b7de (roles 5b + quarantine repair: в дереве нет --in-process-repair/repairQuarantinedSource), DOCENGINECOMPLETENESSR2 e3558f48, controller adopt ed2b3bf2, INVITE502R2. Следствие: прод-репейр карантина на l113j НЕВОЗМОЖЕН; всё это + PODCASTRESOLVE a1248d77 (+миграция) + UPSTREAMCTRLADOPTR2 1fc3f8a9 + VOICERETRYAFTERGATE (после приёмки) собираются в l113k с явным решением манифеста миграций (P19 contract-фаза).
2026-09-06T23:12:00.308Z · coordinator[06.09 23:11Z координатор] ПРИЁМКА 2488 ACCVOICERETRYAFTERGATE (claude-opus, 22:48Z) = NO-GO условный: целевой дефект исправлен и доказан (503 accounting_unhealthy не сжигает retry-cap; отсрочки 1→5→15→60 мин до 24 ч; paidReady канонический; терминальное сообщение однократное; revive dry-run-first; тесты автора 11+2 воспроизведены). Блокер P1-1: классификатор расширен на receipt.status==="degraded", а в meteredVendorCall.ts (строки 294/495/522/631/662) КАЖДЫЙ VendorCallRejectedError имеет status degraded → 402 insufficient_funds / 403 billing_identity_missing / model_not_allowed / request_identity_missing уходят в 24-часовые отсрочки вместо terminal. Круг 2 — волна 2493 VOICERETRYAFTERGATER2 (sol): гейт закрыт = только guardReason accounting_unhealthy / paidReady=false.
2026-09-06T23:15:05.551Z · coordinator[06.09 23:15Z координатор] ИНЦИДЕНТ 06.09 22:56–23:14Z: после посадки l113j корень «/» на sixbyy.com, www и app.sixbyy.com = HTTP 500 (~18 мин). Причина: 593db10a «serve public landing from static cache path» — src/proxy.ts:100-106 rewriteToStaticPublicLanding делает NextResponse.rewrite(nextUrl.clone()→/_landing.html); за nginx (X-Forwarded-Proto https) Next трактует rewrite как внешний и проксирует https://localhost:3010/_landing.html → EPROTO wrong version number → 500. Флаг PUBLIC_LANDING_ENABLED=true уже лежал в .env.local (спал до этого кода). Лечение: PUBLIC_LANDING_ENABLED=false + rolling restart 23:13:34Z → «/» = 307 на /login, 0 ошибок. Фикс кода — волна 2495 LANDINGREWRITEFIX (A2 sol): rewrite внутренний за прокси + тест с forwarded-заголовками. Правило: verify после flip обязан бить «/» витрин; приёмка proxy/middleware — только за reverse-proxy.
2026-09-06T23:32:37.987Z · coordinator[06.09 23:32Z координатор] C07 РАННИЕ ПРАВКИ (волна 2486 C07EARLYEDITS, A2 sol xhigh, 23:13Z): PASS — 3 коммита над 46393080, HEAD 31ea4dc3, bundle C07EARLYEDITS.bundle: P0-1 FIFO-очередь outbound до adopt (лимит 128, overflow видим) + receipt collaboration-readiness и DOM-state data-document-session-collaboration=offline|deferred|live (socket-transport.ts:84,289-406; DocumentSessionProductSurface.tsx:255,295-310,611; тест engc-c09-socket-transport.test.ts:164-268); P0-2 late-init переносит полный storedRevision, product-runtime согласует durableSourceRevision/C06; P1 autosave-шторм — remote/system транзакции без autosave, EditorModal coalesced retry. Серверный CAS не тронут. Two-process PG fixture автора не дошёл (Prisma-схема) — доводит приёмка 2500 ACCC07EARLYEDITS (claude-opus xhigh). После GO → l113k; пост-QA на проде harness v2 сценарий IMMEDIATE должен стать PASS.
2026-09-06T23:32:41.650Z · coordinator[06.09 23:32Z координатор] ГОЛОСОВЫЕ круг 2 (волна 2493 VOICERETRYAFTERGATER2, A2 sol, 23:30Z): PASS — P1-1 закрыт: status=degraded больше не признак закрытого гейта; policy-отказы (402 insufficient_funds, 403 billing_identity_missing, model_not_allowed, request_identity_missing) → terminal сразу + одно сообщение; accounting-health → deferral без траты cap; vendor 5xx/timeout → bounded retry. Приёмка 2499 ACCVOICERETRYAFTERGATER2 (sol xhigh) запущена → после GO в l113k.
2026-09-06T23:38:55.537Z · coordinator[06.09 23:38Z координатор] КАНДИДАТ l113k СОБРАН (волна 2490 L113KPREP, A2 sol xhigh, 23:34Z): VERDICT=GO, commit d00b8f35f1699d9372616f6230c51f1e2b73c0d1 над ПРОД 46393080 (bundle L113KPREP.bundle sha 63b691a2…). Replay полных цепочек: ROLES5BREBASE (roles 5b + repair карантина), DOCENGINECOMPLETENESSR2, UPSTREAMCTRLADOPTR2 (1 конфликт в activePassiveLease.test.ts — сведён), INVITE502R2 (1 конфликт в ingest/types.ts — сведён), PODCASTRESOLVE (3 коммита; финальный конфликт в generated-файлах — снят регенерацией). Манифест миграций пересобран штатными примитивами collectMigrationSet/migrationSetSha256 (write-CLI в дереве нет): 190 миграций, last 20260906113000_web536_podcast_audio_binding_quarantine, set sha 74cecf5c…, check-migration-compatibility ok:true; отдельный коммит 8d7a7727; финальный regen activation manifest d00b8f35. Сборка l113k запущена на A2 (l113kchain.sh); посадка после PACK_OK/подписи/dry-run (миграция 190 через migrate-стадию). НЕ в l113k (ждут приёмок → l113l): overdraft cd4684cb (ACC GO, не успел в сборку), C07 ранние правки 31ea4dc3, landing e5391fea, голосовые r2, C4-RU-3 r2.
2026-09-06T23:52:21.587Z · astra-securityblock22-relay9-adjudication-web-564 — 2026-09-06T23:52:21.586392+00:00 / IST=2026-09-07T05:22:21.586433+05:30
BLOCK22 RELAY-9: вердикты по доставленному пакету. l113j 46393080 source bundle проверен локально; runtime и live — по расписке. Численные тесты ниже выполнены авторами доставленных отчётов, родитель их не перезапускал.
ERRORSWEEP3-REPORT.md — повтор ранее полученных байтов, не новая приёмка.
Вердикт: NO-GO upheld for release hygiene. The sweep found no broad web outage, but it confirmed a real E18 controller/passive-only incident and left older E01/E03/E05/E09/E12 blockers open. E19 is activation/infrastructure, not a product-code regression.
Commit/base: No code candidate. Report window is 2026-09-06T18:00:00Z-20:58:23Z before l113j; later l113j deployed 46393080dd885f6ff25967f18639075564e12737. / Reported as log/receipt analysis; no repository files read from the absent /home/ubuntu/waves/wt-l113h-migrate worktree.
Доказательства: No product tests. Meaningful checks are aggregate counts: controller 215 total/52 incident-window failures, 12 lease denials, 11 nginx 503 all webhook, 0 strict non-webhook 5xx/499, and positive worksheet/worker-pool counts.
Anchors: /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/ERRORSWEEP3-REPORT.md:7; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/ERRORSWEEP3-REPORT.md:47; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/ERRORSWEEP3-REPORT.md:81; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/ERRORSWEEP3-REPORT.md:104; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/ERRORSWEEP3-REPORT.md:141
KNOWN ISSUES / ТРАБЛШУТИНГ: Access logs lack upstream_addr and update IDs. E01/E03/E05/E09/E12 are not closed by non-recurrence. E18 exact first publication/reload is not fully reconstructed.
Действие: Keep E18 in controller-admission/holder work; keep E19 as dry-run activation receipt; do not spin new fix waves for old blockers just because they remain open.
Report: /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/ERRORSWEEP3-REPORT.md
SHA256: 1061f528354c66f858a84d1f82dbbf07b641c50d71398a8cf9baac9ab4ab13c9
UPSTREAMCTRLREVIEW-REPORT.md — повтор ранее полученных байтов, не новая приёмка.
Вердикт: NO-GO for current controller logic; patch proposal passes offline but was not applied. This is an actual infrastructure/control-plane defect, not a harness issue: one raw readiness failure can remove the active backend, leaving a passive-only upstream for lease-guarded routes.
Commit/base: No repo commit. Snapshot controller.sh SHA-256 5817cfb7f820798ba77399ffdcd4c1449209b4fb89b27a3704b98d9b34af9911; proposal patch SHA-256 de465540a960760d72938edf6a14c4f58c55b40502e35df965dc30ed8b4c553d. / Input controller snapshot, not deployed l113j source. L113J receipt explicitly says controller adoption ed2b3bf2/1fc3f8a9 was NOT_DEPLOYED in 46393080 and moved to l113k.
Доказательства: bash /home/ubuntu/waves/UPSTREAMCTRLREVIEW-test.sh PASS; bash -n proposed controller PASS; git apply --check on identical snapshot PASS. shellcheck unavailable.
Anchors: /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/UPSTREAMCTRLREVIEW-REPORT.md:3; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/UPSTREAMCTRLREVIEW-REPORT.md:22; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/UPSTREAMCTRLREVIEW-REPORT.md:35; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/UPSTREAMCTRLREVIEW-REPORT.md:53; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/UPSTREAMCTRLREVIEW-REPORT.md:80; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/L113J-RELEASE-RECEIPT.md:31
KNOWN ISSUES / ТРАБЛШУТИНГ: Cannot deploy the patch alone. Needs an atomic active-holder sidecar/renewer with generation and expiry; HTTP 200 or ACTIVE_PASSIVE_COPY_ID is not lease proof.
Действие: Consume ACCUPSTREAMCTRLADOPTR2/deploy-gated acceptance before l113k or later deployment. Preserve the holder invariant as the rollout gate.
Report: /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/UPSTREAMCTRLREVIEW-REPORT.md
SHA256: 1dfdcb17685b498c6c37c8763af2f35c71162c430774438e91382f493b764c6c
ERRORSWEEP4-REPORT.md — новый отчёт.
Вердикт: NO-GO upheld, but only E26/C07 is a new release-acceptance blocker in this window. Edge/webhook were clean: nginx 5xx/499 aggregate was zero through 22:05Z, and dry-run 3011 failure did not hit prod slots.
Commit/base: Target l113i 18f130938b8d2a8f4376811651ad21beb4e28838. Eight replayed commits listed, with C07 candidate 6fe1ff7f -> 465ac44fa failing acceptance; l113j deployed later as 46393080dd885f6ff25967f18639075564e12737. / l113i flip completed 2026-09-06T21:01:51Z; sweep window 20:58:00Z-22:05:34Z.
Доказательства: No code tests. Meaningful validation is count proof: nginx 5xx/499 rows 0, landing window user failures 0, controller landing ready-503 7, lease denials 2, E17 worksheet/worker positives, plus post-QA probes summarized per change.
Anchors: /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/ERRORSWEEP4-REPORT.md:7; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/ERRORSWEEP4-REPORT.md:45; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/ERRORSWEEP4-REPORT.md:74; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/ERRORSWEEP4-REPORT.md:111; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/ERRORSWEEP4-REPORT.md:120; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/ERRORSWEEP4-REPORT.md:197
KNOWN ISSUES / ТРАБЛШУТИНГ: E26 needs C07 triage/retest. E27 needs a correct grounded fixture and is not a new P1. E28 negative spendable was later classified through owner policy/funded-overdraft path, so do not treat it as an unassigned blocker.
Действие: Route C07 to the existing early-edit/harness lane; keep config receipts for E23-E25; do not duplicate controller, wallet, or C4RU briefs.
Report: /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/ERRORSWEEP4-REPORT.md
SHA256: a9cf6d84f3520797149c0206637bb005aa675fe0c03f85174f1841721e34b355
WEBHOOKURLAUDIT-REPORT.md — новый отчёт.
Вердикт: CONDITIONAL-GO to keep the current nb.wool2.online Telegram webhook temporarily; NO-GO for claiming WEB-564 target migration complete. The Bot API still points at nb, not app.sixbyy.com, although pending was 0 and later POSTs returned 200.
Commit/base: Code review used detached release commit 83683d4818ecc9b91e151be9e27a9ef0d6015294; no code or Telegram state was changed. L113J deployment receipt later says APP_ALLOWED_HOSTS included 127.0.0.1:3012, but not that Telegram was migrated. / Read-only webhook/nginx/access snapshots from 2026-09-06; current Bot API URL nb.wool2.online.
Доказательства: No setWebhook, no production probes, no secret/env reads. Meaningful evidence is getWebhookInfo URL/pending/last_error plus access log showing post-incident 200s and nginx location precedence.
Anchors: /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/WEBHOOKURLAUDIT-REPORT.md:7; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/WEBHOOKURLAUDIT-REPORT.md:15; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/WEBHOOKURLAUDIT-REPORT.md:35; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/WEBHOOKURLAUDIT-REPORT.md:59; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/WEBHOOKURLAUDIT-REPORT.md:68; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/WEBHOOKURLAUDIT-REPORT.md:123
KNOWN ISSUES / ТРАБЛШУТИНГ: Migration to app.sixbyy.com would affect an external provider and requires secret-preserving preflight, TLS check, Host allowlist proof on both backends, and rollback monitoring. Do not use drop_pending_updates=true.
Действие: Coordinator decides whether to migrate the external Telegram webhook. Before any authorized migration obtain TLS/host/routing preflight on both backends, preserve existing secret/update policy/pending queue and prepare rollback. No new worker wave for a product decision.
Report: /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/WEBHOOKURLAUDIT-REPORT.md
SHA256: 2e18f0f7afcb2b185336347677f95a3ee907bf318a640a60ba6b5f60041b6809
C07HYDRATIONTRACE-REPORT.md — новый отчёт.
Вердикт: NO-GO upheld for C07, with refined root cause. The original 90-second editor failure is a harness false blocker caused by clicking the title/rename target, but a real product race remains: edits typed immediately after visible hydration can be dropped before deferred transport adoption.
Commit/base: Live /api/ready reported 18f130938b8d2a8f4376811651ad21beb4e28838. Related C07 l113i candidate was 6fe1ff7f -> 465ac44fa per ERRORSWEEP4. / Live l113i through https://app.sixbyy.com, 2026-09-06T22:14Z-22:30Z.
Доказательства: Live browser two-context probe with one cookie jar: original title-click repro, card-body open, UI upload control, immediate C07 FAIL, late-join C07 PASS, durable source reads, sanitized HAR/console/receipts. Paid routes not called.
Anchors: /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/C07HYDRATIONTRACE-REPORT.md:9; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/C07HYDRATIONTRACE-REPORT.md:21; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/C07HYDRATIONTRACE-REPORT.md:32; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/C07HYDRATIONTRACE-REPORT.md:63; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/C07HYDRATIONTRACE-REPORT.md:89; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/C07HYDRATIONTRACE-REPORT.md:99; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/BLOCK22-RELAY9-COVER.md:21
KNOWN ISSUES / ТРАБЛШУТИНГ: Need bounded queue or send/not-ready contract, visible collaboration readiness state, storedRevision transfer on late-init, durable revision reconciliation, and coalesced autosave retry. Process-local multinode risk remains outside this report.
Действие: Send to existing 2486 early-edit race fix/acceptance; pair with C07HARNESSFIX so future C07 tests click the card body and assert transport readiness separately from editor paint.
Report: /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/C07HYDRATIONTRACE-REPORT.md
SHA256: cd2146e433b3904e97ce4962dc219d64af0f3bd459fa4b834c465a9c30114db4
C07HARNESSFIX-REPORT.md — новый отчёт.
Вердикт: PASS for QA harness correction only. It accepts the selector fix and controlled C07 v2 baseline, but it does not prove the product race fixed; the last smoke-run even ended as HARNESS-ERROR before scenarios.
Commit/base: No product commit. New probe path reported as /home/wave/waves/c07_probe_v2.mjs. Product base remains l113i 18f130938b8d2a8f4376811651ad21beb4e28838 until the 2486 fix is accepted/deployed. / Derived from C07HYDRATIONTRACE and L113IPOSTQA evidence; no production/systemd/direct-port/build actions.
Доказательства: Harness table: IMMEDIATE baseline FAIL with durable [true,false,false]; AFTER-LATE-JOIN baseline PASS with 3 own-ack/3 remote-applied and durable [true,true,true]. A later smoke-run returned HARNESS-ERROR during editor open, not a C07 result.
Anchors: /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/C07HARNESSFIX-REPORT.md:1; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/C07HARNESSFIX-REPORT.md:9; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/C07HARNESSFIX-REPORT.md:24; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/C07HARNESSFIX-REPORT.md:34; /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/C07HARNESSFIX-REPORT.md:58
KNOWN ISSUES / ТРАБЛШУТИНГ: Harness must not count socket 200 as editor/transport readiness and must keep persist-rejected/CAS mismatch as a separate signal. Product C07 remains open until early edits propagate without hidden barrier.
Действие: Adopt c07_probe_v2 semantics for future C07 acceptance and execute it after the 2486 product fix.
Report: /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/a1/C07HARNESSFIX-REPORT.md
SHA256: 97a81a18896dafb7ef1f2e582c77ed4a3be8f58bcd33a0a170ec09c239690adc
КАРТА ДОКУМЕНТОВ: /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.
2026-09-07T00:02:12.566Z · coordinator[07.09 00:02Z координатор] ПРИЁМКА 2500 ACCC07EARLYEDITS (claude-opus xhigh, 00:35Z) = NO-GO условный: identity/scope чистые, серверный CAS не тронут, 112/112 тестов автора зелёные, профильный tsc ok, P1 autosave-шторм закрыт по существу; но P0-1 (ранние outbound до adopt) не доказан — GREEN-тест нерепрезентативен продуктовой проводке; P0-2 не покрывает порядок событий, создающий P0-1. Круг 2 — волна 2502 C07EARLYEDITSR2 (sol xhigh): two-process PG fixture + интеграционный тест на реальной проводке в прод-порядке событий.
2026-09-07T00:14:20.185Z · coordinator[07.09 00:14Z координатор] ПРИЁМКА 2499 ACCVOICERETRYAFTERGATER2 (sol xhigh, 00:09Z) = NO-GO: P1-1 первой приёмки закрыт (policy-отказы terminal сразу, accounting_unhealthy — deferral), но найден НОВЫЙ P1: «vendor 500/timeout → bounded retry» не работает в реальном metered-пути — payload.attempt не передаётся как billing attemptOrdinal → каждый cron tick выводит тот же requestId/attemptOrdinal=1 → settlement gateway отвечает duplicate_terminal, 2-й/3-й vendor call не происходят; плюс: потолок 24 ч 21 мин вместо 24 ч, две ошибки scoped tsc в тесте, нет durable recovery для сбоя terminal-send. Круг 3 — волна 2505 VOICERETRYAFTERGATER3 (sol xhigh).
2026-09-07T00:30:39.028Z · coordinator[07.09 00:30Z координатор] C07 круг 2 (волна 2502 C07EARLYEDITSR2, A2 sol xhigh, 00:29Z) = GO: HEAD 523bcf5c над 31ea4dc3; two-process PG fixture доведён, интеграционный тест в прод-порядке событий (hydration=ready → ввод → late-join → snapshot-applied → persist). Приёмка 2506 ACCC07EARLYEDITSR2 (sol xhigh) запущена.
2026-09-07T00:43:48.246Z · coordinator[07.09 00:43Z координатор] 🛬 ПОСАЖЕН l113k (d00b8f35f1699d9372616f6230c51f1e2b73c0d1) на прод 07.09 00:40:56Z (nc-a1) / 00:41:06Z (nc-a1-b) без простоя; edge ×8 = 200, paid enforce_ready на обоих; корень «/» на sixbyy.com/www/app = 307, /login /legal/dmca /api/health = 200. Артефакт me2-standalone-linux-arm64-d00b8f35f-20260907T003643Z sha 05b1cb1f…, RUN l113k-d00b8f35, attestation fable-a2-l113k (migrationSetSha256 74cecf5c…, 190 миграций — podcast web536 применена). Состав (46393080..d00b8f35, 19 коммитов, L113KPREP GO): ROLES5BREBASE (roles 5b + quarantine repair, --in-process-repair), DOCENGINECOMPLETENESSR2 e3558f48, UPSTREAMCTRLADOPTR2 (writer; хостовый бинарь контроллера — отдельное окно), INVITE502R2, PODCASTRESOLVE (3 коммита + миграция), regen migration-compatibility manifest 8d7a7727 + activation manifest d00b8f35. Откат = l113j 46393080. Ловушка сборки: чужой симлинк node_modules/node_modules в wt-l113d → prepare-standalone отказ → снят, chain-resume. Далее: prod quarantine dry-run/apply, батарея, l113l.
2026-09-07T00:53:02.858Z · coordinator[07.09 00:53Z координатор] ПРИЁМКА 2506 ACCC07EARLYEDITSR2 (sol xhigh, 00:49Z) = NO-GO: сам фикс IMMEDIATE race работает (two-process PG: RED на 31ea4dc3, GREEN на 523bcf5c, peer/durable A1..A3 в порядке, casMismatch=0, persist ограничен, серверный CAS не тронут), но (P0 proof gap) тест не исполняет DocumentSessionProductSurface — вручную создаёт transport/timeline/adopt; (P1 новый) offline backlog не bounded: FIFO 128 удалён, хвост в VersionedRealtimePort.pending без лимита (негатив pending=200 при policy 64, нет overflow receipt). Круг 3 — волна 2512 C07EARLYEDITSR3 (sol xhigh).
2026-09-07T00:56:31.051Z · coordinator[07.09 00:56Z координатор] ГОЛОСОВЫЕ круг 3 (волна 2505 VOICERETRYAFTERGATER3, A2 sol xhigh, 00:53Z) = GO/PASS: все 4 пункта приёмки закрыты — attemptOrdinal из payload.attempt → 3 независимых cron billing context делают 3 bounded provider transport при 500→timeout→500, настоящий повтор той же попытки = duplicate_terminal до провайдера; потолок ровно 24 ч; scoped tsc чист; сбой terminal-send → durable notification-only recovery (конечный). HEAD b266be5a (R1 baaefa83 → R2 93211a22 → R3). Приёмка 2515 (claude-opus xhigh) запущена → после GO в l113l/m.
2026-09-07T01:11:01.103Z · coordinator[07.09 01:11Z координатор] ИНЦИДЕНТ 07.09 00:41–01:09Z (после посадки l113k): все lease-guarded пути — Telegram webhook (/api/messenger/v1/telegram/webhook, Telegram ретраил каждые ~80 с → 10+×500 в nginx), /api/telephony/v1/lease, cron process-scheduled-posts — 500: `Error: NC_UPSTREAM_BACKEND_NAME or NC_UPSTREAM_SLOT_BACKEND_MAP is required` в publishActiveHolder (activeHolderAttestation.ts:30-74, fail-closed по замыслу r2). Причина: deploy-gated env контроллера r2 (ACC 2484 требовала «app writer + env первыми») не был выставлен координатором при посадке; /api/ready и корни были зелёные, dry-run 3011 lease не трогает. Лечение 01:09Z: drop-ins 30-backend-name.conf (nc-a1 → NC_UPSTREAM_BACKEND_NAME=nc-a1, nc-a1-b → nc-a1-b), rolling restart; webhook POST {} → 401, attestation-ошибок 0. Найдено через ERRORSWEEP5 (2149c). Правило: verify после flip бьёт webhook POST (401, не 500) и grep AttestationError=0. Сообщения владельца за окно доставлены Telegram-ретраями после починки.
2026-09-07T05:48:00.250Z · coordinator[07.09 05:47Z координатор] ПРИЁМКА 2525 ACCC07EARLYEDITSR3 (claude-opus xhigh, 05:46Z) = GO: оба блокера 2506 закрыты — реальный DocumentSessionProductSurface проходит late-adopt lifecycle в интеграционном тесте (hydration-ready → ввод → late-join → snapshot-applied → persist; peer/durable A1..A3, casMismatch=0, persist ограничен), pending в VersionedRealtimePort ограничен policy с overflow receipt/DOM-state; серверный CAS не тронут; cherry-pick на l113l da6799b2 чист. Серия R1→R3 (HEAD 1841ffb1) → l113m (2533 L113MPREP2). Пост-QA после посадки: harness v2 IMMEDIATE должен стать PASS.
2026-09-07T05:48:02.297Z · coordinator[07.09 05:48Z координатор] КАНДИДАТ l113m (волна 2529 L113MPREP, 05:46Z): VERDICT=GO, commit dc3c3612 над ПРОД l113l da6799b2 (bundle sha aa16ca7e…): VOICERETRYAFTERGATE R1→R3 (WEB-564 голосовые, ACC GO), BETAREBASE 471dc38b (WEB-511/516, ACC GO), DOCENGINEPANELR2 214fc74f (WEB-086, ACC GO); lock-hash rc 0, migration compatibility 190/190, drift gate rc 0. Досборка 2533 L113MPREP2 добавляет C07 серию R1→R3 (ACC GO) → сборка → посадка.
2026-09-07T06:39:37.195Z · coordinator[07.09 06:39Z координатор] ПОСАЖЕНО: ПРОД = l113m (8f4ba1d9) с 06:32:59Z 07.09 (флип 06:32:03–06:32:59Z, rolling через upstream-controller). Над l113l: VOICERETRYAFTERGATE R1→R3 b266be5a (WEB-564), BETAREBASE 471dc38b (WEB-511/516/543), DOCENGINEPANELR2 214fc74f (WEB-086), C07EARLYEDITS R1→R3 1841ffb1 (WEB-564/086), regen manifest. Артефакт 5078b70a… (243 790 175 байт), attestation fable-a2-l113m, activation подписана владельцем. Миграций нет (190/190). Verify: ready 3010/3012 True 8f4ba1d92, paid enforce_ready ×2, edge ×8 = 200, корни app/sixbyy/www = 200, /login 200, nb → 301, POST {} на /api/messenger/v1/telegram/webhook = 401 (реальный путь вебхука; /api/telegram/webhook даёт 403 origin-lock по замыслу), AttestationError/BACKEND_NAME = 0, nginx errors = 0, LEASE_LOST = 0, Telegram getWebhookInfo без ошибок. hetzbk /home/app-artifact/l113m-8f4ba1d9, env-pack и Pi standby на l113m-8f4ba1d9. Откат = l113l da6799b2. Расписка L113M-RELEASE-RECEIPT.md в очередях A1/A2/M4. Post-QA: волна 2542 L113MPOSTQA (A1 live).
2026-09-07T07:08:42.109Z · coordinator[07.09 07:08Z координатор] POST-QA ЖИВОГО l113m (волна 2542 L113MPOSTQA, A1, sol xhigh, 06:40–07:05Z, только edge app.sixbyy.com): VERDICT=NO-GO по двум пунктам, остальное GO. (1) C07 early edits (WEB-564/086) — FAIL воспроизводимо: hold только Socket.IO у A, ввод A1..A3 в deferred, release → late-join serverVersion=34, но snapshot-applied=false; peer B [false,false,false]; durable без правок → круг 4 = 2555 C07EARLYEDITSR4 (A2). (2) Voice retry after paid gate — пробу нельзя выполнить: у QA-identity Telegram not_linked, paid gate открыт (нужен disposable Telegram-чат координатора либо подписанный synthetic ingress + управляемый paidReady=false) — задача координатору, не дефект. GO: beta rebase (/beta-card со Stripe-формой, canceled PI терминален), doc-engine panel r2 (receipt без 500), периметр (ready/roots/login/webhook 401/paid enforce_ready). Отчёт A1 L113MPOSTQA-REPORT.md (копия в inputs/tickets).
2026-09-07T08:12:09.171Z · coordinator[07.09 08:12Z координатор] КРУГ 4 C07EARLYEDITSR4 (2555, sol xhigh, 07:41Z): VERDICT=GO автора, COMMIT d9763591 над l113m — live-сценарий post-QA (hold только Socket.IO, ввод в deferred, release → late-join без snapshot-applied) воспроизведён тестом RED и закрыт. Независимая приёмка = 2577 (A2, claude-opus xhigh); при GO → l113o и повтор live post-QA.
2026-09-07T08:33:17.272Z · coordinator[07.09 08:33Z координатор] ПРИЁМКА 2577 ACCC07EARLYEDITSR4 (claude-opus xhigh, 08:24–08:31Z) круга 4 (d9763591) = GO: живой класс отказа post-QA l113m (late-join serverVersion=34 без snapshot-applied, peer [false,false,false], durable без правок) воспроизведён независимо (hold только socket transport) и закрыт; replay на ПРОД l113n = 22b9b459. → l113p (после l113o) + повтор live post-QA (harness IMMEDIATE + реальный DocumentSessionProductSurface).
2026-09-07T10:01:47.602Z · coordinator[07.09 10:01Z координатор] КАНДИДАТ l113p (2595 L113PPREP, sol, 09:54Z): VERDICT=GO, commit 1c850d92 над ПРОД l113o (bundle sha 0c5693fe…): Slack fail-closed cba77672 (WEB-544), PSTN forwarded-trust 05df891d (WEB-523), package-link policy A 2e776de4 (WEB-548), council budget 53b26cd8 (WEB-99), battery citations f345b318 (WEB-99), C07 late-join r4 73f5f4e0+2473f390+70f4b22e (WEB-564/086), regen manifest; миграций нет. Сборка на A2 запущена 09:57Z → посадка ~10:45Z.
2026-09-07T10:41:15.514Z · coordinator[07.09 10:41Z координатор] **ПОСАЖЕНО (l113p).** ПРОД = l113p `1c850d92876757812eab9ffa7f381bcea95aad86` (флип 10:21:43Z 07.09; откат l113o df0376cf). Расписка: `waves/queue/L113P-RELEASE-RECEIPT.md` (A1/A2/M4). Verify: ready/paid на обоих бэкендах, edge ×8, корни ×3, webhook 401, 0 AttestationError/nginx err/LEASE_LOST. Hetzner `/home/app-artifact/l113p-1c850d92`, Pi standby на l113p.
Серия C07 ранние правки r4: 73f5f4e0d test(c07): reproduce long-lived deferred late join; 2473f3900 fix(c07): map trusted late durable revisions; 70f4b22e0 test(c07): record immediate marker proof (C07EARLYEDITS r4 d9763591, replay на l113n 22b9b459; ACC 2577 GO). Пост-QA 2600 сверяет байты и живой realtime/doc-panel маршрут.
2026-09-07T11:40:37.283Z · ЭВОЛЮЦИЯ ЗА 12 Ч (гигиена 2609, 11:25Z 07.09)
ХРОНОЛОГИЯ КРУГОВ
- C07 early edits r1/r2 получили NO-GO по hydration/deferred transport (`A1 waves/C07HYDRATIONTRACE-REPORT.md`, `A2 waves/ACCC07EARLYEDITS-REPORT.md`, `A2 waves/ACCC07EARLYEDITSR2-REPORT.md`).
- r3 `1841ffb1` → ACC GO → l113m; live post-QA выявил поздний durable revision gap (`A1 waves/L113MPOSTQA-REPORT.md`).
- r4 `d9763591` → ACC 2577 GO (`A2 waves/ACCC07EARLYEDITSR4-REPORT.md`) → replay `73f5f4e0d`,`2473f3900`,`70f4b22e0` в l113p → exact bytes + live fail-closed probes PASS (`A1 waves/L113PPOSTQA-REPORT.md`).
- Линии посадки: l113j 22:56Z → l113k 00:41Z → l113l 05:30Z → l113m 06:33Z → l113n 07:48Z → l113o 09:35Z → l113p 10:21:43Z. Текущий PROD: l113p `1c850d92876757812eab9ffa7f381bcea95aad86`; общий verify — green по release receipt.
ДЛЯ НУЛЕВОГО АГЕНТА
- На проде: C07 r4 целиком; все три replay SHA — предки l113p. WEB-564 имеет type=task, это ребёнок WEB-561, не эпик.
- Следующий шаг / владелец: Перевести task в done; родитель WEB-561 не закрывать. Дальнейшие доменные/SIP хвосты ведутся в эпике и WEB-463/519/531.
KNOWN ISSUES / ТРАБЛШУТИНГ
- Симптом: late join/ранняя правка теряла durable revision → проверка C07 hydration trace → причина: deferred transport и offset mapping → лечение long-lived deferred late join + `durableRevisionSequenceOffset` в r4. Источники: `A2 waves/C07EARLYEDITSR4-REPORT.md`, `A1 waves/L113PPOSTQA-REPORT.md`.
STATUS TRAIL
- `review` → `done` после этого комментария. Основание приведено выше; эпики не переводятся в done.
СВЯЗИ / ИСТОЧНИКИ
- Release: `M4 waves/L113P-RELEASE-RECEIPT.md`; координаторский срез: `M4 waves/OPS-STATUS-HEAD-1120.md`; точные отчёты перечислены в хронологии/KNOWN ISSUES.
- Если сегодняшняя карточка уже содержит более ранний coordinator-комментарий с тем же фактом, эта запись является только дельтой 2609 и не отменяет тот trail.
Воркер
не привязан — привязать:
curl -X POST https://bugs.wool2.online/api/web/assign -H 'content-type: application/json' \
-d '{"issueId":"WEB-564","session":"<имя tmux-сессии>","host":"m4"}'
Обновлён
2026-09-07T11:40:37.354Z