WEB-561 · Задача · — · web
ЭПИК: переезд прода, dev и телефонии на sixbyy.com (app/dev/sip.sixbyy.com), wool2.online → редирект
В работе
P2
ведёт: —
Суть
## Суть одной фразой
Переезд прода/dev/телефонии на sixbyy.com (app/dev/sip.sixbyy.com), wool2.online → редирект, прод не зависит от Малинки.
## Где мы сейчас (13.09.2026)
Стадия B сделана — приложение на https://app.sixbyy.com (WEB-564), nb.wool2.online → 301, Telegram-вебхук переведён. SIP переключён на sip.sixbyy.com (06.09, из 2179b b7b83b20, приёмка 2201 GO). Легал real (l113b), Stripe бета пройдена, витрина включена. Эпик НЕ закрывается: открыты дети WEB-565 (телефония: reconcile 5a7ac016d не посажен, persistence WEB-508 не доказана) и WEB-566 (кабинеты — вне моего набора). Остатки эпика: контрольный owner-звонок после v7 (зелёный), ротация ARI, снятие старых хостов.
## Хронология
- 05.09 решение владельца («Да делай»).
- 06.09 стадия B (WEB-564), SIP cutover 07:52Z, легал real (LEGAL_DOC_MODE=real), витрина (PUBLIC_LANDING_ENABLED=true).
- 07.09 гигиена 2609: дети 2/4 done, 2 открыто; контрольный звонок 12:05Z упал (null-объект после recover → волна 2627 переделывает машину состояний хода); ротация ARI не подействовала (источник не env → 2626).
- 08.09 легал r9 (ст. 9 честно, 16 закрытых строк); выделены WEB-575 (GDPR) и WEB-576 (AI Act ст. 50).
- 12.09 мойка 3566; 13.09 разбор 3637, мойки 3654/3681: RETURN — дети открыты.
## Карта документов и кода
- DNS Cloudflare: app/dev.sixbyy.com (прокси), sip.sixbyy.com (DNS-only), SRV _sip._tcp/_sip._udp.sixbyy.com → 5060.
- Сертификаты+nginx на A1 (certbot --nginx); легал real-пакет в l113b (12 файлов).
- Дети: WEB-564 (стадия B, done), WEB-565 (телефония), WEB-566 (кабинеты).
## Остаток (ответственный)
1. Закрыть детей WEB-565 (посадка reconcile 5a7ac016d + persistence WEB-508 + перерегистрация софтфонов) и WEB-566 (кабинеты) по их trail — координатор.
2. Один контрольный звонок владельца на 8000 после v7 (зелёный: приветствие → disclosure → listen → штатный отбой, без gateway_error; фикс хода — волна 2627) — владелец звонит, координатор смотрит лог.
3. Ротация ARI-пароля: найти источник SIP_SIDECAR_ARI_PASSWORD (не env; соседняя волна 3704 указала start-sip-native.sh:73) и ротировать в окне — координатор.
4. Снятие старых хостов nb/dev.wool2.online после подтверждения миграции клиентов владельцем — координатор (последний шаг).
## Критерий закрытия
WEB-565 и WEB-566 закрыты по своим критериям; контрольный звонок на 8000 после v7 зелёный (лог с status, не gateway_error); ARI-пароль ротирован (источник найден, старый пароль не действует); старые хосты nb/dev.wool2.online сняты после подтверждения владельца. Тогда эпик done.
---
## История (старый текст, сохранён ниже)
Прежнее тело (до волны 3705, 13.09 12:02Z) содержало те же остатки и критерий, без привязки «зелёного» звонка к фиксу хода (2627) и без уточнения источника ARI. Полная история — в комментариях карточки.
---
## история (тело до 13.09.2026)
## Суть одной фразой
Переезд прода/dev/телефонии на sixbyy.com (app/dev/sip.sixbyy.com), wool2.online → редирект, прод не зависит от Малинки.
## Где мы сейчас (13.09.2026)
Стадия B сделана — приложение на https://app.sixbyy.com (WEB-564), nb.wool2.online → 301, Telegram-вебхук переведён. SIP переключён на sip.sixbyy.com (06.09, из 2179b b7b83b20, приёмка 2201 GO). Легал real (l113b), Stripe бета пройдена, витрина включена. Эпик НЕ закрывается: открыты дети WEB-565 (телефония — в моём наборе) и WEB-566 (кабинеты — вне моего набора). Остатки эпика: контрольный owner-звонок после v7, ротация ARI, снятие старых хостов.
## Хронология
- 05.09 решение владельца («Да делай»).
- 06.09 стадия B (WEB-564), SIP cutover 07:52Z, легал real (LEGAL_DOC_MODE=real), витрина (PUBLIC_LANDING_ENABLED=true).
- 07.09 гигиена 2609: дети 2/4 done (WEB-563/564), 2 открыто (WEB-565 review, WEB-566 todo).
- 12.09 мойка 3566; 13.09 разбор 3637.
## Карта документов и кода
- DNS Cloudflare: app/dev.sixbyy.com (прокси), sip.sixbyy.com (DNS-only), SRV _sip._tcp/_sip._udp.sixbyy.com → 5060.
- Сертификаты+nginx на A1 (certbot --nginx); легал real-пакет в l113b (12 файлов).
- Дети: WEB-564 (стадия B), WEB-565 (телефония), WEB-566 (кабинеты).
## Остаток (ответственный)
1. Закрыть детей WEB-565 (посадка reconcile 5a7ac016d + persistence) и WEB-566 (кабинеты) по их trail (координатор).
2. Один контрольный звонок владельца на 8000 после v7 (владелец звонит, координатор смотрит лог).
3. Ротация ARI-пароля: найти источник SIP_SIDECAR_ARI_PASSWORD (не env) и ротировать в окне (координатор).
4. Снятие старых хостов nb/dev.wool2.online после подтверждения миграции клиентов (координатор).
## Критерий закрытия
WEB-565 и WEB-566 закрыты по своим критериям; контрольный звонок на 8000 после v7 зелёный; ARI-пароль ротирован; старые хосты сняты. Тогда эпик done.
---
## История (старый текст, сохранён ниже)
Решение владельца 05.09 21:38Z («Да делай», voice 21:35Z: «зачем переносить wool2.online в Cloudflare, если можно использовать наш домен sixbyy для телефонии, телеграма и всего остального; Малинка держит свой bind, но прод от неё не зависит»). Факты на 05.09: зона wool2.online = bind на Pi (ns1/ns2 → домашний IP владельца); nb/sip/dev.wool2.online → A1 напрямую; sixbyy.com/www — единственная зона в Cloudflare → A1 лендинг; TG/Signal-адаптеры ещё на Pi (WEB-370 cutover O ждёт GO).
План:
1. DNS в Cloudflare (координатор, GO есть): app.sixbyy.com → A1 (прокси), dev.sixbyy.com → A1 (прокси), sip.sixbyy.com → A1 (DNS-only), SRV _sip._tcp/_sip._udp.sixbyy.com → sip.sixbyy.com:5060 (10/20).
2. Сертификаты + nginx на A1: app/dev/sip.sixbyy.com (certbot --nginx), server_name-алиасы к существующим vhost nb/dev.
3. Приложение (отдельный GO владельца, окно, откат): NEXTAUTH_URL/APP_URL/TRUSTED origin-lock → app.sixbyy.com; перерегистрация Telegram-вебхука, Stripe-вебхуков, Apple/Google OAuth redirect URI (кабинеты владельца), Sentry; nb.wool2.online → 301 на app.sixbyy.com на переходный период.
4. Телефония: Asterisk realm/домен sip.sixbyy.com, аккаунты 7015/7016 → sip.sixbyy.com (TCP); TG/Signal при cutover WEB-370 сразу на A1.
5. Малинка: bind остаётся только для её собственных хостов; прод-зависимости от Pi нет.
Связано: WEB-395 (телефония/DNS-факты), WEB-370 (тумблер Pi↔Oracle), WEB-490 (Pi standby), поддержка support@sixbyy.com (Cloudflare Email Routing).
---
## история (тело до 13.09.2026)
Решение владельца 05.09 21:38Z («Да делай», voice 21:35Z: «зачем переносить wool2.online в Cloudflare, если можно использовать наш домен sixbyy для телефонии, телеграма и всего остального; Малинка держит свой bind, но прод от неё не зависит»). Факты на 05.09: зона wool2.online = bind на Pi (ns1/ns2 → домашний IP владельца); nb/sip/dev.wool2.online → A1 напрямую; sixbyy.com/www — единственная зона в Cloudflare → A1 лендинг; TG/Signal-адаптеры ещё на Pi (WEB-370 cutover O ждёт GO).
План:
1. DNS в Cloudflare (координатор, GO есть): app.sixbyy.com → A1 (прокси), dev.sixbyy.com → A1 (прокси), sip.sixbyy.com → A1 (DNS-only), SRV _sip._tcp/_sip._udp.sixbyy.com → sip.sixbyy.com:5060 (10/20).
2. Сертификаты + nginx на A1: app/dev/sip.sixbyy.com (certbot --nginx), server_name-алиасы к существующим vhost nb/dev.
3. Приложение (отдельный GO владельца, окно, откат): NEXTAUTH_URL/APP_URL/TRUSTED origin-lock → app.sixbyy.com; перерегистрация Telegram-вебхука, Stripe-вебхуков, Apple/Google OAuth redirect URI (кабинеты владельца), Sentry; nb.wool2.online → 301 на app.sixbyy.com на переходный период.
4. Телефония: Asterisk realm/домен sip.sixbyy.com, аккаунты 7015/7016 → sip.sixbyy.com (TCP); TG/Signal при cutover WEB-370 сразу на A1.
5. Малинка: bind остаётся только для её собственных хостов; прод-зависимости от Pi нет.
Связано: WEB-395 (телефония/DNS-факты), WEB-370 (тумблер Pi↔Oracle), WEB-490 (Pi standby), поддержка support@sixbyy.com (Cloudflare Email Routing).
Дети
- WEB-563 Закрыт sixbyy: DNS в Cloudflare + сертификаты + nginx для app/dev/sip.sixbyy.com
- WEB-564 Закрыт sixbyy: cutover приложения на app.sixbyy.com (env, origin-lock, вебхуки, OAuth, редирект nb.wool2.online)
- WEB-565 Парковка sixbyy: телефония на sip.sixbyy.com (Asterisk realm/домен, аккаунты 7015/7016 по TCP, TG/Signal на A1 при cutover WEB-370)
- WEB-566 Закрыт sixbyy: действия владельца — кабинеты (Stripe/Apple/Google/Telegram) и DMCA-агент с e-mail support@sixbyy.com
Связи
- связан → WEB-564 — sixbyy: cutover приложения на app.sixbyy.com (env, origin-lock, вебхуки, OAuth, редирект nb.wool2.online)
Лента
2026-09-06T01:25:57.290Z · coordinator[06.09 01:25Z координатор] [2026-09-06T01:25Z координатор] Стадия B миграции на sixbyy.com выполнена (WEB-564): приложение на https://app.sixbyy.com, nb.wool2.online → 301, Telegram-вебхук переведён. Детали, бэкап и KNOWN ISSUES — в WEB-564. Остаток эпика: SIP/мессенджеры на sip.sixbyy.com (SRV есть, клиенты владельца ещё на wool2), почта/легал-адреса (готово в Cloudflare), документация/ссылки, снятие старых хостов.
2026-09-06T02:26:23.820Z · coordinator[06.09 02:26Z координатор] [2026-09-06T02:26Z координатор] ЛЕГАЛ ВКЛЮЧЁН В REAL по «да» владельца (02:2xZ): LEGAL_DOC_MODE=real в /home/ubuntu/prod/shared/.env.local (бэкап .env.local.bak-legalreal-*), рестарт nc-a1-b → await → nc-a1 → await (последовательно, без общего простоя). Проверено через edge app.sixbyy.com: /legal/dmca, /privacy, /terms, /cookies, /refund = 200; на DMCA-странице синтетического баннера нет, регистрационный номер агента DMCA-1079963 показан, блок Designated Agent Directory присутствует. Real-пакет в релизе l113b: 12 файлов (TOS, PRIVACY, COOKIE, REFUND, DMCA, SECURITY, BETA_TERMS, vendor lists, founder-decisions). Откат: вернуть LEGAL_DOC_MODE=synthetic и те же рестарты.
2026-09-06T03:07:23.952Z · coordinator[06.09 03:07Z координатор] [2026-09-06T03:07Z координатор] §1 ВИТРИНА ВКЛЮЧЕНА на проде (владелец: «час на зелёнку»): PUBLIC_LANDING_ENABLED=true в /home/ubuntu/prod/shared/.env.local (бэкап .bak-landing-*), рестарт nc-a1-b → await → nc-a1 → await. Проверено снаружи: гость на https://sixbyy.com/, https://www.sixbyy.com/, https://app.sixbyy.com/ получает 200 с публичной страницей (title «SIXBYY — AI workspace for documents, video, and voice»), залогиненный — приложение; /login 200; paid ok. Код витрины уже был в линии (l109+, gate src/lib/landing/publicLanding.ts, страница src/app/(light)/page.tsx). Состояние эпика Stripe: WEB-511 done (владелец прошёл бету), легал real, витрина включена, §4 support/§5 audit — done. ОСТАЛОСЬ ТОЛЬКО LIVE (§6): KYC/IBAN/юрлицо в Stripe Dashboard (владелец), live-ключи + live webhook secret через файл на M1 (владелец), переключение ключей и контрольный прогон (координатор). Статус → review.
2026-09-06T07:52:35.683Z · coordinator[06.09 07:52Z координатор] [2026-09-06T07:52Z координатор] SIP ПЕРЕКЛЮЧЁН НА sip.sixbyy.com 07:52Z (владелец: дефолтный GO 07:13Z). Установлено из принятого b7b83b20 (2179b, acc 2201 GO): start-sip-native.sh, compact-sip-config.py, pjsip-native/compact-defaults/tls.example → /home/pi/ag-voice/infra/sip; drop-in /etc/systemd/system/ag-sip-native.service.d/20-sixbyy-transport.conf (TLS cert/key из /home/ubuntu/sip-tls — копия LE через deploy-hook sip-tls-copy.sh, т.к. служба под ubuntu не читает /etc/letsencrypt; tlsv1_2, 5061, домен sip.sixbyy.com, alias sip.wool2.online, codecs ulaw,alaw,opus). Результат: transports udp/tcp 5060 + tls 5061; endpoints 7015/7016 для обоих доменов; generated conf 8 секций 7015/7016; «legacy template appended» в журнале; readiness 4080 ready; LEASE_LOST 0. Бэкап: /var/backups/ag-sip-native/<STAMP>-siplauncherpreserve (путь в /home/ubuntu/sip-cutover-backup.path); откат по RUNBOOK из отчёта 2170. Владельцу: перерегистрировать клиенты на sip.sixbyy.com TCP 5060 / TLS 5061. KNOWN ISSUE: /tmp/SIPLAUNCHERPRESERVE-* стейдж, asterisk бинарь /home/pi/.local/asterisk/sbin/asterisk (не в PATH sudo).
2026-09-07T11:40:37.147Z · ЭВОЛЮЦИЯ ЗА 12 Ч (гигиена 2609, 11:25Z 07.09)
СОСТОЯНИЕ ЭПИКА 11:25Z: дети 2/4 done, 0 в работе, 2 открыто; открытые: WEB-565:review, WEB-566:todo. Риски/ближайшие шаги — в блоках ниже. Эпик не закрывать.
ХРОНОЛОГИЯ КРУГОВ
- Приложение/домены дошли до l113p; ребёнок WEB-564 C07 r4 принят и post-QA PASS. SIP app disclosure `8c8a7bcf` в l113n, gateway v5/v6/v7 и ARI redaction применялись отдельно на host (`A1 waves/SIPGATEWAYSYNCV5-REPORT.md`, `A1 waves/SIPGATEWAYRECOVERFINAL-REPORT.md`, `A1 waves/ARILOGREDACTIONV7-REPORT.md`).
- Owner calls 08:36/08:38 были до v7 и сбрасывались; после v7 контрольного owner-call нет. ARI password rotation отложена.
- Линии посадки: 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.
ДЛЯ НУЛЕВОГО АГЕНТА
- Состояние детей после гигиены: 2/4 done (WEB-563, WEB-564), 0 in_progress, 2 открыто (WEB-565 review, WEB-566 todo). Эпик остаётся in_progress.
- Следующий шаг / владелец: Закрыть WEB-565/566 их собственным trail; провести один correlated owner call после v7; найти источник `SIP_SIDECAR_ARI_PASSWORD`, ротировать и подтвердить bounded logs. Эпик не закрывать.
KNOWN ISSUES / ТРАБЛШУТИНГ
- Симптом: вызовы до v7 сбрасывались после disclosure → проверка gateway sequencing → причина: LISTEN шёл до/не после disclosure → лечение v7; контрольный звонок всё ещё нужен. ARI log redaction применена, но credential rotation заблокирована неизвестным source. См. `A1 waves/SIPGATEWAYRECOVERFINAL-REPORT.md`, `A1 waves/ARILOGREDACTIONV7-REPORT.md`.
СВЯЗИ / ИСТОЧНИКИ
- Release: `M4 waves/L113P-RELEASE-RECEIPT.md`; координаторский срез: `M4 waves/OPS-STATUS-HEAD-1120.md`; точные отчёты перечислены в хронологии/KNOWN ISSUES.
- Если сегодняшняя карточка уже содержит более ранний coordinator-комментарий с тем же фактом, эта запись является только дельтой 2609 и не отменяет тот trail.
2026-09-07T12:08:39.464Z · coordinator[07.09 12:08Z координатор] **Контрольный звонок владельца на 8000 (12:05:24Z 07.09, callId 3a9bfc7d…): трубка после приветствия — причина найдена по логу с метками (кит 2613 применён 11:59Z).** Цепочка: initial_greeting → disclosure delivered 12:05:35.812Z → listen_ready → 12:05:40.804Z `empty_input_audio_commit_nonfatal code=input_audio_buffer_commit_too_small action=recover` → `listen_ready reason=empty_commit_recovered` → **12:05:41.131Z `final status=gateway_error reason="Cannot read properties of null (reading 'promise')" stage=listen`** → hangup. Это 4-й сбой одного класса на живом звонке (v5 consent 07:54Z, v6 пустой коммит 08:34Z, v7 LISTEN 09:37Z, теперь null-объект хода после recover) → по правилу «третья находка одного класса = дефект устройства» волна **2627** (A2, sol xhigh) переделывает машину состояний хода (turn-контроллер, ошибки обработчиков не завершают звонок) на снимке живого кода 1210Z + RED/GREEN по трейсу; кит → окно рестарта. Трейс: A2 `waves/inputs/sip-live/call-8000-20260907T1206Z.log`. Также в окне 12:00Z: кит 2613 (метки времени + lease-poll по времени) применён; 2614 (509) откачен — маркер зависимостей не там (круг 2 = 2624); ротация ARI не подействовала (источник учётки не env → волна 2626).
2026-09-08T19:30:25.654Z · Легал r9: статья 9 описана честно — публичный текст теперь прямо говорит, что бета НЕ представляет предзагрузочный контроль как действующий, и что серверный отказ ПОСЛЕ прихода или разбора файла не является предзагрузочным контролем и не отменяет ни получения, ни разбора. Список поставщиков: в действующей таблице настоящие контрагенты (OpenAI Ireland Limited со ссылкой на DPA, Cloudflare Inc., Resend Inc., Functional Software Inc. для Sentry с ингестом в Германии, Stripe Payments Europe Ltd.); поставщики без публично подтверждённого контрагента — Google, OpenRouter, Jina AI, Tavily, Apple, Telegram FZ-LLC, Telnyx — переведены в GATED / NOT ENABLED, и по закрытому пути механизм передачи не заявляется вообще (раньше там стояло SCCs без договора). Всего закрытых строк 16. ОТКРЫТО НА ВЛАДЕЛЬЦЕ: путь А — настоящий предзагрузочный запрет на всех путях с доказательством от обратного; путь Б — отдельное явное согласие под конкретную цель. Решение нужно до включения любой функции с особыми категориями данных.
2026-09-08T19:30:32.188Z · Легал r9: статья 9 описана честно — публичный текст теперь прямо говорит, что бета НЕ представляет предзагрузочный контроль как действующий, и что серверный отказ ПОСЛЕ прихода или разбора файла не является предзагрузочным контролем и не отменяет ни получения, ни разбора. Список поставщиков: в действующей таблице настоящие контрагенты (OpenAI Ireland Limited со ссылкой на DPA, Cloudflare Inc., Resend Inc., Functional Software Inc. для Sentry с ингестом в Германии, Stripe Payments Europe Ltd.); поставщики без публично подтверждённого контрагента — Google, OpenRouter, Jina AI, Tavily, Apple, Telegram FZ-LLC, Telnyx — переведены в GATED / NOT ENABLED, и по закрытому пути механизм передачи не заявляется вообще (раньше там стояло SCCs без договора). Всего закрытых строк 16. ОТКРЫТО НА ВЛАДЕЛЬЦЕ: путь А — настоящий предзагрузочный запрет на всех путях с доказательством от обратного; путь Б — отдельное явное согласие под конкретную цель. Решение нужно до включения любой функции с особыми категориями данных.
2026-09-08T22:19:08.909Z · РАЗДЕЛЕНИЕ ЛИНИЙ 08.09. Из этого эпика выделены два самостоятельных: WEB-575 (GDPR operational readiness) и WEB-576 (Закон ЕС об ИИ, статья 50). Решение владельца по статье 9 — путь Б, явное согласие перед первым использованием функции с особыми данными, НЕ галочкой при регистрации; особые данные третьего лица этим путём не закрываются и требуют отдельного заслона. Формулировка про статью 9 в публичных документах (круг r9) остаётся честной и НЕ меняется до реализации: бета не представляет предзагрузочный контроль как действующий.
2026-09-12T22:17:55.096Z · coordinator[12.09 22:17Z координатор] МОЙКА 12.09 (3566-wash-g1-infra): эпик переезда на sixbyy.com — не закрывается, есть открытые дети WEB-565 и WEB-566. Стадия B сделана (app.sixbyy.com, 301, TG-вебхук), SIP переключён, легал real, Stripe beta. Остаток: закрыть детей, контрольный owner-звонок, ротация ARI. Статус не меняю.
Остаток: Закрыть детей WEB-565 и WEB-566.; Один контрольный owner-звонок после v7.; Ротация ARI-пароля (найти источник SIP_SIDECAR_ARI_PASSWORD).
Отчёт: /Users/milamarty/waves/3566WASH*-REPORT.md (M4), копия nc-ops-scripts/shift-20260912-resume/wash-20260912/collected/. Проверка по исходнику прода l115g (9c8a9762).
2026-09-13T08:53:35.450Z · coordinator[13.09 08:53Z координатор] РАЗБОР 13.09 (волна 3637, DeepSeek): Это большая карточка-список, она говорит про весь переезд. Почти всё уже сделано: сайт открылся на app.sixbyy.com, старый адрес перенаправляет, телефония переехала на sip.sixbyy.com, легальные страницы настоящие. Осталось доделать две маленькие карточки (телефония и кабинеты) и позвонить один раз проверить. Закрывать пока нельзя — пока дети не закрыты.
Остаток: (a) Закрыть детей WEB-565 и WEB-566 по их trail (координатор).; (a) Ротация ARI-пароля: найти источник SIP_SIDECAR_ARI_PASSWORD (не env) и ротировать в окне (координатор).; (b) Контрольный звонок владельца на 8000 после v7 (владелец звонит, координатор смотрит лог).; (a) Снятие старых хостов nb/dev.wool2.online после подтверждения владельца о миграции клиентов.
Предложение: Эпик не закрывать (дети открыты). Вся техника (посадка reconcile, persistence, чекер кабинетов, ключи Stripe) расписана в детях. От эпика остаются: контрольный звонок, ротация ARI, снятие старых хостов.
Материалы: shift-20260912-resume/colN/ (RESULT.md). Статус не меняю.
2026-09-13T10:37:39.934Z · coordinator[13.09 10:37Z координатор] Мойка доски, волна 3654. RETURN. Эпик переезда на sixbyy.com: app.sixbyy.com + 301 + TG-вебхук + SIP + легал + витрина сделаны; открыты дети WEB-565 и WEB-566 + контрольный owner-звонок + ротация ARI. Статус не меняю.
2026-09-13T12:53:05.704Z · coordinator[13.09 12:53Z координатор] Волна 3705. [13.09 волна 3705 — миграция-рест, остаток] Собрал полную картину переезда и остаток эпика с исполнителями/критериями/откатами. Доказательств закрытия ПОКА НЕТ — эпик не закрывается (RETURN). Остаток в порядке исполнения: (1) закрыть WEB-565 (reconcile 5a7ac016d + persistence WEB-508 + перерегистрация софтфонов) и WEB-566; (2) контрольный owner-звонок 8000 после v7 зелёный (после фикса хода 2627); (3) ротация ARI (источник не env; соседняя волна 3704 указала start-sip-native.sh:73); (4) снятие nb/dev.wool2.online — последним. Материалы: waves/3705-sixbyy-migration-rest-out/MIGRATION-REST.md. Статус не меняю.
2026-09-13T18:34:42.557Z · coordinator[13.09 18:34Z координатор] ПОСТ-QA ЛИНИИ l115k — ПРОГОН ПРОБНИКА НА ЖИВОМ ПРОДЕ. Пробник написан волной 3738 (`scripts/postqa/l115k-postqa.mjs`, 52 офлайн-теста, каждая проверка обязана краснеть на сломанном ответе), прогон делал координатор на 127.0.0.1:3010 в режиме только чтения. Результат `/tmp/l115k-postqa-readonly.json` на A1.
ИТОГ ПО 18 ТИКЕТАМ ЛИНИИ: **PROVEN 0, NOT-PROVEN 2, NOT-PROBEABLE-ON-PROD 16.**
Это честный, а не удобный результат, и он важнее, чем список галочек: **HTTP-проба оказалась неподходящим инструментом для большинства этих тикетов.**
- Клиентские фиксы без серверного обращения: WEB-571 (Web Share/буфер + всплывающее сообщение — целиком в DOM), WEB-576 (маркер происхождения пишется в браузере через JSZip, не серверным маршрутом), WEB-583 (Server Action без стабильного HTTP-контракта + поведение CodeMirror), WEB-651 (нужен уже существующий документ сверх предела и живой вход в комнату).
- Сборочные и операционные: WEB-057 (проверка типов при сборке), WEB-309, WEB-472, WEB-489 (скрипты подготовки хостов, нужен root), WEB-641/644/647/652/657 (комплект бас-фактора и фабрика линии — офлайн-инструменты).
- Небезопасно проверять на проде: WEB-573 (нужно искусственно уронить чтение статуса на общей боевой базе), WEB-575 (каждый живой триггер — либо платный вызов, либо разрушительное удаление по GDPR), WEB-325 (рубильник Gate E — включать на проде запрещено).
ДВА НАБЛЮДЕНИЯ NOT-PROVEN (проверка возможна, но доказательства не получилось):
1. **WEB-467** — `GET /api/wallet/ledger` отвечает 200, но читаемого массива `entries` в ответе нет (`entries: null`). Либо форма ответа не та, что ожидал пробник, либо маршрут изменился. Требует разбора: это может быть и дефект пробника, и дефект маршрута.
2. **WEB-561** — на публичной странице `/public/sec057-fixture-20c9e9b6cdc24c0ea770` нет маркера раскрытия ИИ (ни testid, ни текста). Координатор проверил сам: страница отдаёт 200, 420 КБ, и единственное слово Disclosure в ней — внутри словаря переводов для PDF фактчека, то есть к раскрытию на странице отношения не имеет. **Но вывод «нарушение» делать рано:** раскрытие обязано появляться там, где есть ИИ-содержимое, а это фикстурная тетрадь `sec057-fixture-*`, и в ней ИИ-содержимого может не быть вовсе. Проверка на такой тетради не доказывает ни наличия дефекта, ни его отсутствия. Нужен повтор на публичной странице с заведомо ИИ-сгенерированным содержимым.
ЧТО ИЗ ЭТОГО СЛЕДУЕТ. Ни один тикет линии по результатам этого прогона не закрывается. Закрывать по HTTP-пробе там, где фикс живёт в браузере или в сборке, значило бы поставить галочку без доказательства. Нужны два других инструмента: браузерная проба под входом (для WEB-571/583/651/576) и проверка артефактов сборки (для WEB-057 и операционных). Ставлю это следующим шагом.
Уже доказано на проде независимо от пробника и остаётся в силе: готовность обеих копий с коммитом линии, платный запрос со списанием по факту (`settlement=actual`, 0.001021, 10 кандидатов корпуса), отрисовка публичной страницы, миграции 206→209 с распиской.
2026-09-14T15:16:37.921Z · coordinator[14.09 15:16Z координатор] # WEB-561 - блок для вставки
Источники, проверенные отсюда: тело тикета из live API; все 14 комментариев из локального `web-board.sqlite`, последний комментарий `id=4833` от 2026-09-13T18:34:42.557Z. Статус на live API при финальной сверке: `in_progress`. app/dev/sip live отсюда не проверялись.
## Что болит словами пользователя
Нужно завершить переезд продукта, dev и телефонии на sixbyy.com так, чтобы prod не зависел от Pi/wool2, а старые hostnames были сняты или перенаправлены только после подтверждения.
## Что уже сделано и чем доказано
По телу: stage B done - приложение на `https://app.sixbyy.com`, `nb.wool2.online -> 301`, Telegram webhook переведён, SIP переключён на `sip.sixbyy.com`, legal real, Stripe beta, landing enabled. Комментарии `id=4366`, `id=4572`, `id=4649`, `id=4783` сходятся: epic почти доведён, но не закрывается из-за детей и контрольных действий.
## Что осталось
Закрыть WEB-565 и WEB-566 по их trail; провести один зелёный owner call на 8000 после v7/fix 2627; найти source `SIP_SIDECAR_ARI_PASSWORD` and rotate ARI; снять старые `nb/dev.wool2.online` только после owner confirmation. Комментарий `id=4833` добавляет: post-QA l115k не доказал WEB-561 через HTTP-пробу; нужно повторять на странице с заведомо AI-generated content для disclosure claim.
## Противоречия между комментариями
Раннее “почти всё сделано” не равно закрытию. Поздний `id=4833` отменяет соблазн закрыть по HTTP 200: probe оказался неподходящим, а public fixture не доказал ни наличие, ни отсутствие disclosure defect. Тело уже частично знает про детей, но не про этот post-QA limitation.
## С ЧЕГО НАЧАТЬ НУЛЕВОМУ АГЕНТУ
Смотреть: WEB-565, WEB-566, WEB-508, WEB-370, `waves/3705-sixbyy-migration-rest-out/MIGRATION-REST.md`, post-QA comment `id=4833`. Первый шаг: не править parent, а проверить статусы детей and proof requirements; отдельной строкой вынести disclosure retest if it belongs here.
Готово: WEB-565/566 закрыты; owner call green with logs; ARI password source found and old credential invalid; old hosts removed after owner confirmation; any disclosure check uses AI-content fixture.
Нельзя: закрывать epic по `app.sixbyy.com 200`, менять DNS/old hosts without owner confirmation, rotate secrets ad hoc, use non-AI fixture as disclosure proof.
Размер: несколько смен. Большим это делает ожидание детей, owner call, secret rotation and hostname cleanup.
## Закрытие и связи
Не закрыто. WEB-565 is a child/overlap, not a duplicate.
2026-09-15T22:05:58.208Z · coordinatorENRICH-4132-WEB-561
```markdown
## ДЕЛЬТА ОБОГАЩЕНИЯ — 2026-09-15T21:54Z, M1/4132 (DeepSeek Flash 4.1, read-only аудит), VERDICT=DRAFT_DELTA
### 1. Вердикт
В теле **нет якоря прода вообще** — то есть нет и способа заметить, что тело устарело.
Живая линия — **l115o `68e25d8df5ae8263c5ac5466353631f57a17cfcc`**. В теле отсутствуют блок
KNOWN ISSUES/ТРАБЛШУТИНГ и раздел эволюции.
### 2. КАРТА ДОКАЗАТЕЛЬСТВ
- Тело: стадия B сделана — приложение на `https://app.sixbyy.com` (WEB-564); `nb.wool2.online`
→ 301; Telegram-вебхук переведён. SIP переключён на `sip.sixbyy.com` 06.09 (из `2179b
b7b83b20`, приёмка 2201 GO). Легал real (l113b), Stripe бета пройдена, витрина включена.
- Тело: эпик НЕ закрывается; открыты дети WEB-565 (телефония: reconcile `5a7ac016d` не посажен,
persistence WEB-508 не доказана) и WEB-566 (кабинеты).
- Тело: остатки эпика — контрольный owner-звонок после v7, ротация ARI, снятие старых хостов.
- Доска WEB-561 id 4833 (2026-09-13T18:34:42.557Z), пост-QA линии l115k на живом проде:
**PROVEN 0, NOT-PROVEN 2, NOT-PROBEABLE-ON-PROD 16** по 18 тикетам. Прогон — только чтение,
результат `/tmp/l115k-postqa-readonly.json` на A1. Вывод: HTTP-проба не является подходящим
инструментом для большинства этих тикетов (клиентские фиксы без серверного отражения).
- Доска WEB-561 id 5046 (2026-09-14T15:16:37.921Z): app/dev/sip живьём отсюда не проверялись.
- HANDOFF-LIVE.md §7 строка 654: репозитории волн молча отстают от прода.
### 3. ЭВОЛЮЦИЯ / ПОПРАВКИ (append-only)
- **Добавляется якорь прода в тело** (его не было): живая линия **l115o
`68e25d8df5ae8263c5ac5466353631f57a17cfcc`** — с этого момента расхождение якоря видно.
- 13.09: пост-QA линии l115k дал честный результат PROVEN 0 / NOT-PROVEN 2 /
NOT-PROBEABLE-ON-PROD 16. Это ВАЖНЕЕ списка галочек: HTTP-проба не подходит для клиентских
фиксов. Не повторять тот же инструмент и не считать NOT-PROBEABLE провалом.
- Не изменилось: SIP cutover 07:52Z 06.09; контрольный звонок 12:05Z 07.09 упал; дети открыты.
### 4. KNOWN ISSUES / ТРАБЛШУТИНГ
1. **У карточки нет якоря прода — устаревание незаметно.**
- Симптом: тело годами выглядит актуальным.
- Проверка за 2 минуты: найти в теле строку «Якорь прода» → если её нет, это дефект карточки;
добавить и сверить с живым `checks.release.sourceCommit` из `/api/ready`.
- Причина: тело писалось без этого поля (оно есть у соседних карточек).
- Лечение/статус: якорь добавлен этой дельтой.
2. **HTTP-проба не доказывает клиентские фиксы.**
- Симптом: 16 из 18 тикетов линии получают NOT-PROBEABLE-ON-PROD, работа выглядит проваленной.
- Проверка за 2 минуты: если проверяемое поведение видно только в браузере — HTTP-пробу
не запускать, планировать браузерную пробу.
- Причина: часть фиксов живёт в клиентском бандле и не отражается в HTTP-ответе.
- Лечение/статус: для клиентских фиксов — браузерная проба (стоячее правило после каждой
посадки), иначе честный NOT-PROBEABLE, а не PASS.
- Ссылка: доска WEB-561 id 4833.
3. **Прод может зависеть от Малинки незаметно** (DNS-зона, старые хосты). Проверка за 2 минуты:
резолв ключевых имён и HTTPS-запрос к `app.sixbyy.com`/`sip.sixbyy.com`; ожидание — ответ от
A1, не от Pi.
### 5. ТЕКУЩИЙ ОСТАТОК (ответственный)
1. Дети: WEB-565 (телефония) и WEB-566 (кабинеты) — по своим карточкам.
2. Контрольный owner-звонок после v7 — владелец.
3. Ротация ARI-ключа — координатор.
4. Снятие старых хостов / редирект wool2.online — координатор, после подтверждения.
### 6. ПЕРВЫЙ ШАГ НУЛЕВОГО АГЕНТА (без агентов)
Внести якорь прода этой дельтой. Затем проверить, что `app.sixbyy.com` и `sip.sixbyy.com`
отвечают с A1, а `nb.wool2.online` отдаёт 301. Детей не трогать — у них свои карточки.
```
--- 2026-09-23T12:26:19.883Z · triage-neoРЕШЕНИЕ=in_progress
ОСНОВАНИЕ=2026-09-15, волна 4132 DRAFT_DELTA: текущая линия l115o 68e25d8d; эпик имеет живых детей WEB-565/WEB-566 и незакрытые owner/ARI/старые host хвосты
ЧТО НУЖНО=первый шаг: свести trail WEB-565/WEB-566, затем подтвердить owner-звонок, ARI-ротацию и снятие старых host; triage-neo 4707
Воркер
не привязан — привязать:
curl -X POST https://bugs.wool2.online/api/web/assign -H 'content-type: application/json' \
-d '{"issueId":"WEB-561","session":"<имя tmux-сессии>","host":"m4"}'
Обновлён
2026-09-13T12:53:05.703Z