WEB board

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

SEC-060 [CVSS N/A or UNKNOWN] Video GET не освобождает progress subscription при Request.abort

Закрыт P2 ведёт: — эпик: WEB-515
Суть
# SEC-060 — Video GET не освобождает progress subscription при Request.abort
## 1. Суть и условие дефекта
Video GET при Request.abort должен освобождать progress subscription и admission.

## 2. МЕХАНИКА
`src/app/api/video/pipeline/run/[runId]/stream/route.ts:78-186` (EventSource / progress subscription). **Корень:** при Request.abort subscription и admission не освобождались (утечка). Фикс `d1a6934ca` (repair 3357).

## 3. ЧТО СДЕЛАНО
1. **10.09** — триаж BACKLOG64 (база `49bc58dcc`): карточка заведена из отчёта R09; условие подтверждено, независимая приёмка 3311SEC060ACCEPTANCE-REPORT.md (a2) — NO-GO.
2. **10.09** — repair-волна 3357 написала фикс `d1a6934ca`; независимая source-приёмка 3367 — GO.
3. **10–11.09** — интеграция 3473 → 3488 (все 26 кандидатов, HEAD `d95fd864`, 201/201 миграций, P19 negative blocksStartup).
4. **12.09** — посадки на прод: l115f-r2 (18:02Z, source `92f7ae807`, artifact `1353e969b`) → l115g (`9c8a9762`) → l115h (`f0777c4d`, 23:47Z).
5. **13.09** — l115i (`6aac3421`, 06:37Z); получено живое доказательство (см. ниже) → карточка переведена в done. Эпик WEB-515 закрыт.
6. **13.09** — закрыто харнессом (не живым гейтом на проде): волна 3624 — изолированный стенд с артефактом прода l115i + одноразовые фикстуры (браузер)


## 4. ЧЕМ ДОКАЗАНО ЖИВЬЁМ
Волна 3624 (13.09): реальный `EventSource` против незавершённого `VideoPipelineRun` (Playwright, реальный Chromium): abort рвёт соединение на сетевом слое; повторные open/abort не дают server-side утечки subscription. 2/2. Evidence: `/home/ubuntu/waves/3624HARNESSSTAND-evidence/playwright-run-stdout.log`.

## 5. КАРТА ДОКУМЕНТОВ
  - Repair-волна: `/Users/limamarty/waves/3357REPAIRSTREAM-REPORT.md`
  - Независимая source-приёмка: A1 `/home/wave/waves/3367INDEPENDENTLIFECYCLE-REPORT.md`
  - Приёмка условия (триаж): `/Users/annakorin/nc-ops-scripts/run-l115b-luna/acceptance-results/a2/3311SEC060ACCEPTANCE-REPORT.md`
  - Харнесс-отчёт: волна 3624 — изолированный стенд с артефактом прода l115i + одноразовые фикстуры (браузер)
  - Отчёт 3624: `/home/ubuntu/waves/3624HARNESSSTAND-REPORT.md` (A2) = `/Users/milamarty/waves/inputs/3639/3624HARNESSSTAND-REPORT.md` (M4).
  - Evidence 3624: `/home/ubuntu/waves/3624HARNESSSTAND-evidence/` (SHA256SUMS).
  - Живая матрица гейтов: `/home/ubuntu/sec-checks-3592/out/matrix.txt` (A2) = `/Users/milamarty/waves/inputs/3639/matrix-l115i.txt` (M4).
  - Карта закрытия эпика: `WEB515-CLOSING-MAP.md` — `/Users/milamarty/waves/inputs/3639/WEB515-CLOSING-MAP.md` (M4) и `nc-ops-scripts/shift-20260912-resume/3604/collected/out/WEB515-CLOSING-MAP.md` (Intel).
  - Канон: `/Users/milamarty/waves/inputs/3639/canon449.json` (WEB-449).
  - Исходник R09 (мастер-разбор): `/Users/poolpooly/audit/inbox/2813-BLOCK24-PROVIDER-SPEND-WIRING-REPORT.md` (SHA `26816992…`).
  - Все 28 карточек: `/Users/milamarty/waves/inputs/3639/sec28.json`.

## 6. ОСТАТОК
нет

## 7. КАК ПЕРЕПРОВЕРИТЬ
```
# Playwright-сьют tests/security/browser/ (класс C) против l115i standalone: тест SEC-060.
```


## История (триаж 10.09)

Правила обогащения: WEB-449. Parent WEB-515. BACKLOG64-TRIAGE-20260910. Дата UTC: 2026-09-10T17:07:52.835164+00:00.

## ДЛЯ ТИКЕТА — SEC-060

**Условие:** Video GET не освобождает progress subscription при Request.abort.

**Состояние:** подтверждено в изученных стендовых свидетельствах воркера на указанной базе; независимая приёмка на Нео ещё не выполнена. Это не объявление дефекта живого l115a. Исходный NO-GO относится к полному scope и может одновременно содержать незавершённые группы.

**Исследованные байты:** `30000baf9939f94d062b0e216f023a11faa4af3f`. Базовая ветка — указанная в исходном отчёте; рабочее дерево lead `/Users/poolpooly/audit/nc` не используется вместо этой версии. **Файл:строка:** src/app/api/video/pipeline/run/[runId]/stream/route.ts:78-186.

**Доказательство и controls:** Actual GET fixture: consumer cancel освобождает lease/unsubscribe; Request.signal abort оставляет progress delivery,2/2 observation tests.

**CVSS 3.1:** N/A — функциональная/операционная находка без доказанного CIA-влияния.
CVSS3.1 N/A: показана lifecycle утечка subscription, resource exhaustion/actor prerequisites не измерены.
Числа пересчитаны по FIRST CVSS3.1, а не скопированы из заголовков: https://www.first.org/cvss/v3.1/specification-document#7-1-Base-Metrics-Equations . При неполных предпосылках оценка не становится окончательной. N/A/UNKNOWN не означает Low или нулевой риск.

**Предложение исправления:** Подключить request.signal к общей idempotent cleanup функции; поздние события должны игнорироваться после abort, normal consumercancel сохранить.

**Сданные изменения:** Не представлен в этом возврате.
**Связи/дедупликация:** WEB-568 Старые условия SEC-001…048 не регистрируются заново. Эта карточка описывает отдельное условие, а не повтор счёта того же отчёта.

## KNOWN ISSUES / ТРАБЛШУТИНГ

Симптом → Video GET не освобождает progress subscription при Request.abort.
Проверка → воспроизвести указанный actual-module/PG fixture с положительным разрешённым контролем; сверить SHA исходников и хеши артефактов. Мок транспорта допустим, мок самой проверяемой проверки — нет. Report file получен и хеширован лидом; исходные raw artifacts вне inbox ещё не объявляются независимо проверенными.
Причина → src/app/api/video/pipeline/run/[runId]/stream/route.ts:78-186.
Лечение/статус → Подключить request.signal к общей idempotent cleanup функции; поздние события должны игнорироваться после abort, normal consumercancel сохранить. Приёмка/актуальность l115a пока pending. Если условие уже устранено позднейшим коммитом, зафиксировать точный fix→release mapping и принять существующий результат; повторный фикс не нужен.

## Три группы приёмки на Нео

1. **Байты и достижимость:** сравнить исследованную базу с переданным current candidate, проверить реальный entrypoint/инициализацию/feature flag и не подменять его вызовом недостижимого helper. Отдельно актуализировать policy/grants там, где это предпосылка.
2. **Поведение:** тот же безвредный red fixture на базе; нормальный positive control; после исправления — требуемый отказ/результат до side effect, повтор/конкурентный/отложенный вариант, точные счётчики. Для durable эффектов — одноразовый PostgreSQL, не только in-memory adapter.
3. **Независимость и сдача:** reviewer на Нео, не OpenAI; сверка diff/тестов/изменённых путей, bundle+SHA256, report с GO/NO-GO и отдельными UNKNOWN. Live/prod/host действия — только отдельная работа координатора. Не заявлять landing по наличию commit.

## Карта документов

- R22: /Users/poolpooly/audit/inbox/3115-B32-06-REPORT.md — SHA256 `5a796d7d45e2d60eb5e524602a4c578d7fa7b09fb5ac0003c75b648155042761`
- Мастер-разбор: /Users/poolpooly/audit/outbox/BACKLOG64-TRIAGE-20260910.md
- Данные: /Users/poolpooly/audit/evidence/backlog64-20260910/findings28.json


A1-REBOOT-RESUME:20260910:3367
Снимок 2026-09-10 20:40Z. Приёмка 3367 была прервана перезагрузкой A1 без полного комплекта сдачи. Сохранены прежние QA worktrees, незакоммиченные тесты, журналы и бандлы; архив /home/wave/waves/recovery-20260910/before/. Продолжение с прежним UUID сессии через exec resume. Бриф находится в очереди; запуск ещё не подтверждён. Одновременно до 3 волн, общий MemoryHigh=10G/MemoryMax=12G/SwapMax=1G, Node heap=2048 MB; тяжёлые проверки последовательно. Guards и входные SHA проверены перед возвратом. Это восстановление проверки, нового GO и посадки нет. A1 перезагрузилась: в 20:33:37Z uptime=66.75 s, оба backend paidReady=true/enforce_ready, SIP health=ok.

CHECKPOINT3478:WEB-609 2026-09-10T23:30:08.650195+00:00
3473 активно объединяет 14 точных кандидатов для22 критериев. Этот кандидат video d1a6934cad3d59fa8ba46e9c465286621c9adc43; критерии SEC-060. Входные hashes и git objects проверены до старта. Последний наблюдённый merge66a666e38 объединил манифест миграций; итогового integration verdict нет. SEC053/054 и062/064 вне этой партии. Предыдущий scoped GO не означает проверку конфликтов, сборку или посадку.
Полные отчёты и проверки SHA: /Users/annakorin/nc-ops-scripts/checkpoint-3478/snapshot.json; задания и SHA inputs: refill-20260911-0015,0025,0028,0030. Спецификация: /Users/annakorin/nc-ops-scripts/enterprise2-20260910/ENTERPRISE-2.md; цель: SHIFT-GOAL-20260911-8H.md.

CHECKPOINT3484:WEB-609 2026-09-10T23:46:59.374675+00:00
3473 integration GO: exact HEAD f9c514014fcedccdecc2cf9e7c39a79421b4655b, все 14 кандидатов/22 критерия сохранены; P19 и migration-set 200/200, дерево чистое, SHA и bundle проверены координатором. Кандидат video d1a6934cad3d59fa8ba46e9c465286621c9adc43. Независимая 3484 Claude Opus доставлена на A1 с inputs SHA и exact BASE для merged-source/изолированной PG проверки. Пока подтверждена очередь, не выполнение тестов. Новых посадок нет; live flags/roles/scheduler/browser и post-QA впереди.
Доказательства: /Users/annakorin/nc-ops-scripts/checkpoint-3484/receipt.json, integration-manifest.json, focused-tests-summary.log, migration-gates.log и 3473SECURITYINTEGRATION-REPORT.md; доставка: refill-20260911-0050. Норматив: enterprise2-20260910/ENTERPRISE-2.md.

## HANDOFF-20260912T1721:WEB-609 — точка входа для нового агента
Правила обогащения: [[WEB-449]]. Наблюдение: 12.09.2026 18:21:36 Europe/Dublin / 17:21:36 UTC. Автор: координатор. История выше сохранена; эту запись читать как текущий handoff на указанное время.

**Задача.** SEC-060 [CVSS N/A or UNKNOWN] Video GET не освобождает progress subscription при Request.abort

**Что подтверждено и что остаётся.** 3521 дал bounded source/isolated-PG GO при общем NO-GO;3525 закрыл узкий SOURCE_PG_HANDOFF и CHARGE_COMPLETENESS, сохранив RELEASE_RUNTIME=OPEN. Итог на реальном релизе для этой карточки не подтверждён. 

**Как устроено / почему остановилось.** Video GET: Request.abort закрывает progress subscription/EventSource; подтвердить в живом клиенте и серверном trace.

**Следующая операция.** Общий переход релиза выполнять по [[WEB-515]]. Индивидуальный gate этой карточки: Video GET: Request.abort закрывает progress subscription/EventSource; подтвердить в живом клиенте и серверном trace. Зафиксировать exact deployed artifact, positive/negative, raw commands, exits и skips. Непройденный runtime gate не заменять повтором прежнего source suite.

**Исполнитель и приёмка.** Координатор даёт установленный artifact и исполняет хостовые операции; независимый security-приёмщик проверяет gate. Назначение не считать запущенным процессом.

**Условие закрытия.** Доказанный результат именно этой finding на установленной версии и соответствующий независимый вердикт; review остаётся до этого.

**КАРТА ДОКУМЕНТОВ**
- Intel: /Users/annakorin/nc-ops-scripts/tick-20260912-recovery/3521/3521ACCSECURITY26REPAIRED-REPORT.md
- Intel: /Users/annakorin/nc-ops-scripts/tick-20260912-recovery/3525/3525SECURITYHANDOFFGATES-REPORT.md
- Intel: /Users/annakorin/nc-ops-scripts/tick-20260912-recovery/3525/3525SECURITYHANDOFFGATES-evidence/GATES.md
- Intel: /Users/annakorin/nc-ops-scripts/release-l115f/r2/l115f-artifact.json
- Intel: /Users/annakorin/nc-ops-scripts/release-l115f/handoff-tickets/live-observation.json

**Релизная зависимость:** [[WEB-515]] — r2 staged/signed, compat BUILDING; prod l115e на времени наблюдения. Не путать SEC registry с количеством сегментов аудита.


SHIFT-STOP-20260912:R2:WEB-609
ТЕКУЩИЙ СРЕЗ ПЕРЕД ОСТАНОВКОЙ — WEB-609 / SEC-060
Задача: SEC-060 [CVSS N/A or UNKNOWN] Video GET не освобождает progress subscription при Request.abort
Пакет l115f-r2 установлен на прод 2026-09-12T18:02:33.922654Z.
SOURCE=92f7ae807869bbaa8ae7ef6ca2ea622675e31af9
ARTIFACT_SHA256=1353e969b2a7a1a31ac702be361913c41cb53c104db49938a02f5fcd07766668
Runtime 18:15:34 UTC: оба backend ready=true, paidReady=true/enforce_ready; web A/B, indexing и extraction указывают на новый release; старых процессов 0. Таймеры indexing/extraction active.
Сборка, подпись с tamper-negative, совместимый rollback, dryrun и flip выполнены. Редактор: приложение HTTP200, список 58 документов, один документ открыт, новых ошибок после клика 0; при загрузке были две прерванные prefetch-загрузки и admin/agents403. Это не полная browser/security приёмка.
Один платный synthetic chat: HTTP200; operation terminal/succeeded, event APPLIED, 5/5 обязательных receipts нового identity. BILLING_PARITY=NO-GO: в ответе $0.000637, в LedgerEntry списано $0.039476, разница $0.038839, SETTLED_MAX/usage_untrusted. HTTP200 и paidReady не доказывают корректность суммы или ответа.
Владелец 18:13:55 UTC поручил сохранить готовое, обогатить тикеты, написать хендофф и остановить смену. Новые волны, сборки, paid requests, load/soak и security-вердикты не запускаются. Эпик остаётся открыт.
Откат после появления candidate receipts — только arm64-l115e-compat-20260912T172738Z, SHA ef4b7c2a6e8bcda45fc361f979076f43d37f4caf1256bcbbccf2188b2e2d092d. Plain l115e несовместим с новой identity; исторические receipts не переписывать.

ПРИЁМКА ЭТОЙ НАХОДКИ
ALL26 criterion: SEC-060 stream abort; source=GREEN inherited; PG=bounded caller controls GREEN. Evidence: `64`: 14 tests, 13 pass, 1 explicit skip, exit 0; billing abort controls in 70/70. Оставшиеся gates при handoff: B, live EventSource.
ТОЧНЫЙ ОСТАТОК / СЛЕДУЮЩИЙ ИСПОЛНИТЕЛЬ
В браузере закрыть video EventSource/GET и проверить снятие progress subscription и завершение admission.
Координатор собирает runtime receipts; независимый security-приёмщик не на OpenAI выдаёт scoped verdict. Сейчас никто не назначается на новую волну. Review сохраняется: факт установки не превращает OPEN в PASS.
КАРТА ДОКУМЕНТОВ
Intel: /Users/annakorin/nc-ops-scripts/release-l115f/r2/{l115f-artifact.json,signature-receipt.json,runtime-stop-verified.log,editor-postqa-rerun.log,paid-probe-accounting-receipt.json,paid-probe-failure-detail.json}.
Source/QA: /Users/annakorin/nc-ops-scripts/tick-20260912-recovery/3521/3521ACCSECURITY26REPAIRED-REPORT.md; 3525/3525SECURITYHANDOFFGATES-evidence/GATES.md; 3530/3530ACCSECURITYGOOGLEFIXTURE-REPORT.md.
Merge: /Users/annakorin/nc-ops-scripts/tick-20260912-recovery/3526/3526INTEGRATESECURITYRELEASE-evidence/merge-manifest.json.
Transition: /Users/annakorin/nc-ops-scripts/release-l115f/{3534-collected,3536-collected,compat}.


Billing finding: [[WEB-650]].
Доказательства

RECEIVED-FINAL6:c10fcc9ad839d8278b0fb80fcfd478e30c4ad071997be11f0ca0a0a6eb5b92d3
/Users/annakorin/nc-ops-scripts/run-l115b-luna/acceptance-results/a2/3311SEC060ACCEPTANCE-REPORT.md
SHA256 c10fcc9ad839d8278b0fb80fcfd478e30c4ad071997be11f0ca0a0a6eb5b92d3
SEC-REPAIR-DISPATCH:3357:WEB-609
/Users/limamarty/waves/3357REPAIRSTREAM-REPORT.md
A1-REBOOT-RESUME:20260910:3367
Снимок 2026-09-10 20:40Z. Приёмка 3367 была прервана перезагрузкой A1 без полного комплекта сдачи. Сохранены прежние QA worktrees, незакоммиченные тесты, журналы и бандлы; архив /home/wave/waves/recovery-20260910/before/. Продолжение с прежним UUID сессии через exec resume. Бриф находится в очереди; запуск ещё не подтверждён. Одновременно до 3 волн, общий MemoryHigh=10G/MemoryMax=12G/SwapMax=1G, Node heap=2048 MB; тяжёлые проверки последовательно. Guards и входные SHA проверены перед возвратом. Это восстановление проверки, нового GO и посадки нет. A1 перезагрузилась: в 20:33:37Z uptime=66.75 s, оба backend paidReady=true/enforce_ready, SIP health=ok.

THREAD-STATUS-2240 3367 завершена, четыре scoped source GO по отчёту. SEC050 scoped tsc UNKNOWN. Полная интеграция/сборка/live pending; это не работающая3367.

CHECKPOINT3478:WEB-609 2026-09-10T23:30:08.650195+00:00
3473 активно объединяет 14 точных кандидатов для22 критериев. Этот кандидат video d1a6934cad3d59fa8ba46e9c465286621c9adc43; критерии SEC-060. Входные hashes и git objects проверены до старта. Последний наблюдённый merge66a666e38 объединил манифест миграций; итогового integration verdict нет. SEC053/054 и062/064 вне этой партии. Предыдущий scoped GO не означает проверку конфликтов, сборку или посадку.
Полные отчёты и проверки SHA: /Users/annakorin/nc-ops-scripts/checkpoint-3478/snapshot.json; задания и SHA inputs: refill-20260911-0015,0025,0028,0030. Спецификация: /Users/annakorin/nc-ops-scripts/enterprise2-20260910/ENTERPRISE-2.md; цель: SHIFT-GOAL-20260911-8H.md.

CHECKPOINT3484:WEB-609 2026-09-10T23:46:59.374675+00:00
3473 integration GO: exact HEAD f9c514014fcedccdecc2cf9e7c39a79421b4655b, все 14 кандидатов/22 критерия сохранены; P19 и migration-set 200/200, дерево чистое, SHA и bundle проверены координатором. Кандидат video d1a6934cad3d59fa8ba46e9c465286621c9adc43. Независимая 3484 Claude Opus доставлена на A1 с inputs SHA и exact BASE для merged-source/изолированной PG проверки. Пока подтверждена очередь, не выполнение тестов. Новых посадок нет; live flags/roles/scheduler/browser и post-QA впереди.
Доказательства: /Users/annakorin/nc-ops-scripts/checkpoint-3484/receipt.json, integration-manifest.json, focused-tests-summary.log, migration-gates.log и 3473SECURITYINTEGRATION-REPORT.md; доставка: refill-20260911-0050. Норматив: enterprise2-20260910/ENTERPRISE-2.md.

CHECKPOINT3484LIMIT:WEB-609 2026-09-10T23:52:07.659549+00:00
3484 не выполнила приёмку: A1 после ремонта TMPDIR отказала OAuth session expired; тот же exact candidate перенесён без дубля на A2, guard/SHA/BASE проверены. A2 запустила Claude Opus, затем WAVE_EXIT=1: weekly limit, resets Sep 12 16:00 UTC. Приёмка merged-source/PG BLOCKED_PROVIDER_LIMIT, результата нет. Кошелёк и OpenAI для security acceptance не подключались. 3473 остаётся integration-only GO для22 критериев, HEAD f9c514014fcedccdecc2cf9e7c39a79421b4655b. Посадки нет. Evidence: checkpoint-3484, refill-20260911-0052; A2 /home/ubuntu/waves/3484-acc-security-merged-pg-claude.log.

CHECKPOINT3488:WEB-609 2026-09-11T00:15:51.647210+00:00
Пять новых сдач проверены координатором: bundle verify, SHA256 и exact HEAD. 3427 сдала ingest cf64ed4074c8349c12ed10a3725797ec2c65ff75; source PG 23/23, component 33+3+20; ESLint UNKNOWN timeout, финальная security/live приёмка не выполнена. 3488 реально запущена на A1: объединяет 3473 (22 критерия), 3479 (tokens/types), 3427 (ingest), охватывая входы всех исходных26. Итогового merge verdict ещё нет. Security acceptance3484 остаётся BLOCKED_PROVIDER_LIMIT до12.09 16:00UTC; кошелёк не менялся. Новых посадок нет. Evidence: checkpoint-3488/snapshot.json; security-integration-3488/{3488-receipt.json,inputs/manifest.json}; полный3427 report.

CHECKPOINT3492:WEB-609 2026-09-11T00:32:55.179360+00:00
3488 завершила source integration: d95fd864292c2763e8125de62a08e8fd8c181cde. Все 26 строк матрицы и исходные 14 веток сохранены; 201/201 миграций, P19 negative blocksStartup, 123 activation rows сохранены. SHA256 d3bd60ef387de0cb79342522be849d9023365f96e33d69c866b3ab2598aa8e7d, exact HEAD/clean/bundle проверены и скопированы. Это не независимая security/PG/runtime приёмка. 3484 BLOCKED_PROVIDER_LIMIT до 2026-09-12 16:00 UTC; новых посадок нет. Evidence: checkpoint-3491/snapshot.json, полный 3488 REPORT и бандл; A1 3488SECURITYINTEGRATIONFINAL-evidence.

HANDOFF-20260912T1721:WEB-609 — автономный handoff добавлен в body: причина, механизм, подтверждённое/OPEN, следующая операция, ответственный, критерий закрытия и карта документов. Срез фактов 2026-09-12T17:21:36.454887+00:00. Исторические отказы и статусы сохранены. Полный аудит записи: Intel /Users/annakorin/nc-ops-scripts/release-l115f/handoff-tickets/.

SHIFT-STOP-20260912:R2:WEB-609
Installed source92f7ae807 / artifact1353e969; runtime-stop-verified.log; billing parity NO-GO [[WEB-650]]; per-finding remaining gates in body.
Замечен в сборке
l115f-r2 / 92f7ae807
Лента
2026-09-10T17:07:54.051Z · astra-security
BACKLOG64-TRIAGE-20260910-SEC-060 — 2026-09-10T17:07:54.051369+00:00 / IST=2026-09-10T22:37:54.051378+05:30

Новая карточка по возвратам R22.

Actual GET fixture: consumer cancel освобождает lease/unsubscribe; Request.signal abort оставляет progress delivery,2/2 observation tests.

База 30000baf9939f94d062b0e216f023a11faa4af3f; CVSS3.1 N/A — функциональная/операционная находка без доказанного CIA-влияния. Приёмка Нео и current mapping pending. Предложение: Подключить request.signal к общей idempotent cleanup функции; поздние события должны игнорироваться после abort, normal consumercancel сохранить.

Исходные отчёты:
- R22: /Users/poolpooly/audit/inbox/3115-B32-06-REPORT.md — SHA256 `5a796d7d45e2d60eb5e524602a4c578d7fa7b09fb5ac0003c75b648155042761`
2026-09-10T17:43:11.063Z · coordinator
[2026-09-10T17:43:11.002Z] Маршрут изменён по прямому указанию владельца: 3311-sec060-acceptance-brief.md → Codex gpt-5.6-luna xhigh, NEO. Предыдущий Claude-запуск завершился по weekly limit без отчёта; его бриф и лог сохранены. Повторно поставлен тот же номер волны. База current l115a и три исторических SHA проверены на хосте. Доставлены исходные отчёты с manifest SHA256; raw artifacts и effective host inputs не объявляются полностью полученными. Критерии независимости и доказательств сохранены. Постановка в очередь не является положительной приёмкой или посадкой.
2026-09-10T18:39:13.532Z · coordinator
ACCEPTANCE-PENDING-1838:SEC-60
Волна 3311: независимая проверка выполняется на A2. Финального отчёта в собранном наборе пока нет. Шесть ожидавших волн перенесены с Нео на A2, проверены brief-guard, запуски подтверждены; пауза Нео снята.
2026-09-10T19:06:33.459Z · coordinator
RECEIVED-FINAL6:c10fcc9ad839d8278b0fb80fcfd478e30c4ad071997be11f0ca0a0a6eb5b92d3
Получена независимая проверка исходников l115a: NO-GO. Это сдача проверки находки, нового исправления продукта нет; необходимы исправление и повторная приёмка.

## ДЛЯ ТИКЕТА

SEC-060 / WEB-609 was enriched from WEB-449, parent WEB-515, in `BACKLOG64-TRIAGE-20260910`. R22 report `3115-B32-06-REPORT.md` reviewed bytes `30000baf9939f94d062b0e216f023a11faa4af3f` and identified this separate condition: the actual GET's normal consumer cancel releases its subscription/lease, while `Request.signal.abort` leaves progress delivery live (`2/2` observation tests, supplied report exit 0). That evidence was treated as lead material only.

For this independent A2 acceptance, the coordinator BASE `8d598d69a663cfa8977816d96bb20303e9a9650c` was verified in a new worktree. The exact route bytes remain identical to the researched Z; the active MediaImport EventSource entrypoints reach this route; and the actual exported GET was executed with a harmless local running fixture. The positive consumer-cancel control produced `unsubscribe=1` and `leaseRelease=1`. After aborting the request signal, both remained zero until explicit test cleanup, and a delayed progress event was still readable. The same result was reproduced on Z and BASE, with 3/3 harness assertions and exit 0 on each.

There are no submitted product changes in this return, no fix commit, no bundle, and no fix→release receipt. Therefore the condition is `CONFIRMED_CONDITION`, the independent acceptance verdict is `NO-GO`, and the post-fix requirement is explicitly `UNKNOWN_INPUT` rather than an assumed pass. This does not re-register WEB-568 / SEC-001…048 and does not claim any live or production finding.
2026-09-10T19:23:45.070Z · coordinator
SEC-REPAIR-DISPATCH:3357:WEB-609
Назначено исправление: волна 3357 repair-stream, NEO, Codex gpt-5.6-luna xhigh. Это разработка исправления; отдельная приёмка и посадка ещё впереди. База l115c 1ad52e16b. Входы доставлены и проверены по SHA256: /Users/limamarty/waves/inputs/security-repairs-20260910/stream.
Бриф: /Users/limamarty/waves/queue/3357-repair-stream-brief.md
Отчёт: /Users/limamarty/waves/3357REPAIRSTREAM-REPORT.md
Предыдущие результаты сохранены; 5 отсутствующих исторических кандидатов ищет координатор. Исполнитель обязан сначала проверить доступный кандидат; при отсутствии исправлять воспроизводимый дефект текущей базы и явно назвать новую реализацию.
Состояние на проверке: active.
2026-09-10T19:54:37.275Z · coordinator
SEC-INDEPENDENT-DISPATCH:3367:WEB-609
2026-09-10T19:54:22.234861+00:00 — Получен исходный repair 3357, коммит d1a6934cad3d59fa8ba46e9c465286621c9adc43. Отчёт автора: neo:/Users/limamarty/waves/3357REPAIRSTREAM-REPORT.md. Bundle SHA256: bcf0e8825b10ca48f6dc7657c0aadd4c77227b0ff29fc5641aba61b6ec0c00bc.
Отдельная независимая приёмка 3367 на A1, Codex gpt-5.6-luna xhigh; доставлена в очередь, запуска ещё нет.
Проверка exact candidate с собственными RED/GREEN/negative tests; PostgreSQL там, где требуется durable/race proof. Входы проверены по SHA256, candidate objects импортированы и проверены.
Входы: /home/wave/waves/inputs/security-independent-20260910/3367
Бриф: /home/wave/waves/queue/3367-secaccept-lifecycle-brief.md
Ожидаемый отчёт: /home/wave/waves/3367INDEPENDENTLIFECYCLE-REPORT.md
Source repair GO автора не является независимым GO. Приёмка, интеграция, посадка и runtime proof ещё не получены. Итоговый статус после проверки; эта запись не закрывает находку.
2026-09-10T20:40:46.180Z · coordinator
A1-REBOOT-RESUME:20260910:3367
Снимок 2026-09-10 20:40Z. Приёмка 3367 была прервана перезагрузкой A1 без полного комплекта сдачи. Сохранены прежние QA worktrees, незакоммиченные тесты, журналы и бандлы; архив /home/wave/waves/recovery-20260910/before/. Продолжение с прежним UUID сессии через exec resume. Бриф находится в очереди; запуск ещё не подтверждён. Одновременно до 3 волн, общий MemoryHigh=10G/MemoryMax=12G/SwapMax=1G, Node heap=2048 MB; тяжёлые проверки последовательно. Guards и входные SHA проверены перед возвратом. Это восстановление проверки, нового GO и посадки нет. A1 перезагрузилась: в 20:33:37Z uptime=66.75 s, оба backend paidReady=true/enforce_ready, SIP health=ok.
2026-09-10T22:53:37.868Z · coordinator
THREAD-STATUS-2240 3367 завершена, четыре scoped source GO по отчёту. SEC050 scoped tsc UNKNOWN. Полная интеграция/сборка/live pending; это не работающая3367.
2026-09-10T23:33:44.141Z · coordinator
CHECKPOINT3478:WEB-609 2026-09-10T23:30:08.650195+00:00
3473 активно объединяет 14 точных кандидатов для22 критериев. Этот кандидат video d1a6934cad3d59fa8ba46e9c465286621c9adc43; критерии SEC-060. Входные hashes и git objects проверены до старта. Последний наблюдённый merge66a666e38 объединил манифест миграций; итогового integration verdict нет. SEC053/054 и062/064 вне этой партии. Предыдущий scoped GO не означает проверку конфликтов, сборку или посадку.
Полные отчёты и проверки SHA: /Users/annakorin/nc-ops-scripts/checkpoint-3478/snapshot.json; задания и SHA inputs: refill-20260911-0015,0025,0028,0030. Спецификация: /Users/annakorin/nc-ops-scripts/enterprise2-20260910/ENTERPRISE-2.md; цель: SHIFT-GOAL-20260911-8H.md.
2026-09-10T23:46:59.933Z · coordinator
CHECKPOINT3484:WEB-609 2026-09-10T23:46:59.374675+00:00
3473 integration GO: exact HEAD f9c514014fcedccdecc2cf9e7c39a79421b4655b, все 14 кандидатов/22 критерия сохранены; P19 и migration-set 200/200, дерево чистое, SHA и bundle проверены координатором. Кандидат video d1a6934cad3d59fa8ba46e9c465286621c9adc43. Независимая 3484 Claude Opus доставлена на A1 с inputs SHA и exact BASE для merged-source/изолированной PG проверки. Пока подтверждена очередь, не выполнение тестов. Новых посадок нет; live flags/roles/scheduler/browser и post-QA впереди.
Доказательства: /Users/annakorin/nc-ops-scripts/checkpoint-3484/receipt.json, integration-manifest.json, focused-tests-summary.log, migration-gates.log и 3473SECURITYINTEGRATION-REPORT.md; доставка: refill-20260911-0050. Норматив: enterprise2-20260910/ENTERPRISE-2.md.
2026-09-10T23:52:08.347Z · coordinator
CHECKPOINT3484LIMIT:WEB-609 2026-09-10T23:52:07.659549+00:00
3484 не выполнила приёмку: A1 после ремонта TMPDIR отказала OAuth session expired; тот же exact candidate перенесён без дубля на A2, guard/SHA/BASE проверены. A2 запустила Claude Opus, затем WAVE_EXIT=1: weekly limit, resets Sep 12 16:00 UTC. Приёмка merged-source/PG BLOCKED_PROVIDER_LIMIT, результата нет. Кошелёк и OpenAI для security acceptance не подключались. 3473 остаётся integration-only GO для22 критериев, HEAD f9c514014fcedccdecc2cf9e7c39a79421b4655b. Посадки нет. Evidence: checkpoint-3484, refill-20260911-0052; A2 /home/ubuntu/waves/3484-acc-security-merged-pg-claude.log.
2026-09-11T00:15:52.200Z · coordinator
CHECKPOINT3488:WEB-609 2026-09-11T00:15:51.647210+00:00
Пять новых сдач проверены координатором: bundle verify, SHA256 и exact HEAD. 3427 сдала ingest cf64ed4074c8349c12ed10a3725797ec2c65ff75; source PG 23/23, component 33+3+20; ESLint UNKNOWN timeout, финальная security/live приёмка не выполнена. 3488 реально запущена на A1: объединяет 3473 (22 критерия), 3479 (tokens/types), 3427 (ingest), охватывая входы всех исходных26. Итогового merge verdict ещё нет. Security acceptance3484 остаётся BLOCKED_PROVIDER_LIMIT до12.09 16:00UTC; кошелёк не менялся. Новых посадок нет. Evidence: checkpoint-3488/snapshot.json; security-integration-3488/{3488-receipt.json,inputs/manifest.json}; полный3427 report.
2026-09-11T00:32:55.742Z · coordinator
CHECKPOINT3492:WEB-609 2026-09-11T00:32:55.179360+00:00
3488 завершила source integration: d95fd864292c2763e8125de62a08e8fd8c181cde. Все 26 строк матрицы и исходные 14 веток сохранены; 201/201 миграций, P19 negative blocksStartup, 123 activation rows сохранены. SHA256 d3bd60ef387de0cb79342522be849d9023365f96e33d69c866b3ab2598aa8e7d, exact HEAD/clean/bundle проверены и скопированы. Это не независимая security/PG/runtime приёмка. 3484 BLOCKED_PROVIDER_LIMIT до 2026-09-12 16:00 UTC; новых посадок нет. Evidence: checkpoint-3491/snapshot.json, полный 3488 REPORT и бандл; A1 3488SECURITYINTEGRATIONFINAL-evidence.
2026-09-12T14:52:13.263Z · coordinator
TICK-3525-STALE-LIMIT-20260912:WEB-609
Старая отметка provider-limit снята: source/QA приёмка3521 и узкая3525 завершены. Неизменённые доказательства наследуются с точным SHA и указанными skips/границами; это не новые live тесты этой карточки. Посадка, соответствующие runtime/browser/provider gates остаются OPEN. Матрица26 и GATES.md привязаны к WEB-515; done не выставляется.
2026-09-12T18:22:02.177Z · coordinator
SHIFT-STOP-20260912:R2:WEB-609
ТЕКУЩИЙ СРЕЗ ПЕРЕД ОСТАНОВКОЙ — WEB-609 / SEC-060
Задача: SEC-060 [CVSS N/A or UNKNOWN] Video GET не освобождает progress subscription при Request.abort
Пакет l115f-r2 установлен на прод 2026-09-12T18:02:33.922654Z.
SOURCE=92f7ae807869bbaa8ae7ef6ca2ea622675e31af9
ARTIFACT_SHA256=1353e969b2a7a1a31ac702be361913c41cb53c104db49938a02f5fcd07766668
Runtime 18:15:34 UTC: оба backend ready=true, paidReady=true/enforce_ready; web A/B, indexing и extraction указывают на новый release; старых процессов 0. Таймеры indexing/extraction active.
Сборка, подпись с tamper-negative, совместимый rollback, dryrun и flip выполнены. Редактор: приложение HTTP200, список 58 документов, один документ открыт, новых ошибок после клика 0; при загрузке были две прерванные prefetch-загрузки и admin/agents403. Это не полная browser/security приёмка.
Один платный synthetic chat: HTTP200; operation terminal/succeeded, event APPLIED, 5/5 обязательных receipts нового identity. BILLING_PARITY=NO-GO: в ответе $0.000637, в LedgerEntry списано $0.039476, разница $0.038839, SETTLED_MAX/usage_untrusted. HTTP200 и paidReady не доказывают корректность суммы или ответа.
Владелец 18:13:55 UTC поручил сохранить готовое, обогатить тикеты, написать хендофф и остановить смену. Новые волны, сборки, paid requests, load/soak и security-вердикты не запускаются. Эпик остаётся открыт.
Откат после появления candidate receipts — только arm64-l115e-compat-20260912T172738Z, SHA ef4b7c2a6e8bcda45fc361f979076f43d37f4caf1256bcbbccf2188b2e2d092d. Plain l115e несовместим с новой identity; исторические receipts не переписывать.

ПРИЁМКА ЭТОЙ НАХОДКИ
ALL26 criterion: SEC-060 stream abort; source=GREEN inherited; PG=bounded caller controls GREEN. Evidence: `64`: 14 tests, 13 pass, 1 explicit skip, exit 0; billing abort controls in 70/70. Оставшиеся gates при handoff: B, live EventSource.
ТОЧНЫЙ ОСТАТОК / СЛЕДУЮЩИЙ ИСПОЛНИТЕЛЬ
В браузере закрыть video EventSource/GET и проверить снятие progress subscription и завершение admission.
Координатор собирает runtime receipts; независимый security-приёмщик не на OpenAI выдаёт scoped verdict. Сейчас никто не назначается на новую волну. Review сохраняется: факт установки не превращает OPEN в PASS.
КАРТА ДОКУМЕНТОВ
Intel: /Users/annakorin/nc-ops-scripts/release-l115f/r2/{l115f-artifact.json,signature-receipt.json,runtime-stop-verified.log,editor-postqa-rerun.log,paid-probe-accounting-receipt.json,paid-probe-failure-detail.json}.
Source/QA: /Users/annakorin/nc-ops-scripts/tick-20260912-recovery/3521/3521ACCSECURITY26REPAIRED-REPORT.md; 3525/3525SECURITYHANDOFFGATES-evidence/GATES.md; 3530/3530ACCSECURITYGOOGLEFIXTURE-REPORT.md.
Merge: /Users/annakorin/nc-ops-scripts/tick-20260912-recovery/3526/3526INTEGRATESECURITYRELEASE-evidence/merge-manifest.json.
Transition: /Users/annakorin/nc-ops-scripts/release-l115f/{3534-collected,3536-collected,compat}.


Billing finding: [[WEB-650]].
2026-09-12T22:25:57.486Z · coordinator
[12.09 22:25Z координатор] ОБОГАЩЕНИЕ 12.09 (3573-enrich-web515-a): SEC-060 — Video GET: progress subscription при Request.abort
Сделано: условие подтверждено на базе (независимая приёмка), исправление прошло независимую source-приёмку и интегрировано (3473→3488).
На проде: да — линия l115g, HEAD 9c8a97629 (BASE), фикс-коммит d1a6934ca в истории; not_live_testable (план QA-харнесса 3557).
Доказано: /Users/limamarty/waves/3357REPAIRSTREAM-REPORT.md; /home/wave/waves/3367INDEPENDENTLIFECYCLE-REPORT.md; SHIFT-STOP R2 (SOURCE=92f7ae807, ARTIFACT_SHA256=1353e969b); гейты scripts/security/live-gates/run.mjs.
Осталось: Live-гейт невозможен (not_live_testable): закрыть через QA-харнесс 3557.; Точный fix→release mapping принят координатором (SOURCE=92f7ae80 → l115g), но независимой строкой на карточке ещё не зафиксирован.; Полная browser/security приёмка (SHIFT-STOP R2 помечен как неполная)..
Кто следующий: координатор — дождаться гейта, закрыть BILLING_PARITY=NO-GO; статус не меняется (keep).
Ссылки: /Users/limamarty/waves/3357REPAIRSTREAM-REPORT.md; /home/wave/waves/3367INDEPENDENTLIFECYCLE-REPORT.md; ARTIFACT_SHA256 1353e969b2a7a1a31ac702be361913c41cb53c104db49938a02f5fcd07766668; BASE l115a 8d598d69a663cfa8977816d96bb20303e9a9650c; R22 3115-B32-06-REPORT.md (SHA 5a796d7d45e2d60eb5e524602a4c578d7fa7b09fb5ac0003c75b648155042761); SOURCE 92f7ae807869bbaa8ae7ef6ca2ea622675e31af9; candidate d1a6934cad3d59fa8ba46e9c465286621c9adc43; fix d1a6934cad3d59fa8ba46e9c465286621c9adc43; https://bugs.wool2.online/web; integration 3473 HEAD f9c514014fcedccdecc2cf9e7c39a79421b4655b; integration 3488 HEAD d95fd864292c2763e8125de62a08e8fd8c181cde; prod l115g HEAD 9c8a97629b3f7fd8c79faff162eed482670f499d
Отчёт волны: /Users/milamarty/waves/3573ENRICH*-REPORT.md (M4), копия nc-ops-scripts/shift-20260912-resume/wash-20260912/enrich-collected/.
2026-09-13T07:35:52.160Z · coordinator
[13.09 07:35Z координатор] ЖИВОЕ ДОКАЗАТЕЛЬСТВО ЕСТЬ → done. SEC-060 подтверждён на изолированном стенде с артефактом прода l115i (волна 3624, 13.09): настоящий EventSource против незавершённого VideoPipelineRun, 2/2. Это не заглушка и не синтетика — прогон против собранного боевого артефакта со своими одноразовыми фикстурами и стенд-локальными секретами. Evidence: /home/ubuntu/waves/3624HARNESSSTAND-evidence/ (A2), копия в shift-20260912-resume/3624/collected/.
2026-09-13T09:05:32.678Z · coordinator
[13.09 09:05Z координатор] ОБОГАЩЕНИЕ ПОД НУЛЕВОГО АГЕНТА (канон WEB-449, волна 3639): тело карточки переписано — суть, МЕХАНИКА (файлы/функции/где гейт/корень), хронология с волнами и коммитами, чем доказано живьём с путями к evidence, карта документов по машинам, остаток, и одна команда для перепроверки. Прежний текст триажа 10.09 сохранён в конце тела как «История», плюс бэкап /tmp/secbody-backup-WEB-609.md на M1.
2026-09-15T01:25:12.709Z · coordinator
[15.09 01:25Z координатор] ## 15.09 01:40Z — ВОШЁЛ В ПОСАДКУ l115o. Требуется пост-QA на проде.

Прод работает на `l115o-68e25d8d` (коммит `68e25d8df5ae8263c5ac5466353631f57a17cfcc`, артефакт `cd2773f65d66b09ec03d39b553041d2814ce09413e72d72b07bc9de89df536c8`) с 00:56Z 15.09. Посадка проверена: `ready=true`, коммит совпал, браузерная проба открыла документ, 0 новых ошибок.

**Работу по этому тикету принесли волны:** 3367.

**Что это значит для этого тикета.** Работа по нему пролежала принятой, но НЕ посаженной — в некоторых случаях неделями. Теперь она на проде. Приёмка волной доказывала, что код правильный в дереве волны; она НЕ доказывала, что фича работает на живом проде. Это разные вещи, и мы на этом уже обжигались.

**Поэтому статус — `review`, а не `done`.** Закрыть тикет имеет право только пост-QA, который проверит поведение на работающем проде и приложит доказательство. До тех пор «сделано» — это заявка.

### Для нулевого агента (тот, кто будет делать пост-QA)

Ты приходишь на этот тикет без нашей истории. Что надо знать:

1. **Проверяй на проде, не на стенде.** Стенд сейчас вообще не поднят — у него не было своего артефакта, он запускался из каталога боевого релиза и заблокировал проверку посадки; пересобирается волной 3948 (WEB-662).
2. **`/api/health` ничего не доказывает** — он проходит и на пустом приложении. Нужно деловое действие: аутентифицированная сессия делает то, про что этот тикет.
3. **Отсутствие ошибок в логе — не доказательство жизни.** Нужен положительный результат, а не тишина.
4. **Числа в обосновании закрытия получай командой в момент закрытия.** Я однажды закрыла тикет числом `4255`, взятым из `pg_stat_user_tables.n_live_tup` — это ОЦЕНКА. Настоящее `count(*)` дало `107 817`. Разница в 25 раз.
5. **Не верь имени волны в теме коммита** — проверяй наличие содержимого (`git cherry`), а не упоминание номера.
6. Запускатель тестов в проекте — `node --test`. Vitest нет.

2026-09-15T10:40:37.006Z · coordinator
[15.09 10:40Z координатор] Post-QA 3971: TRANSFER_PASS. Старый Chromium PASS l115i применим к текущему production l115o.

Проверены route EventSource, весь импортируемый runtime-путь, admission/subscription helpers, nodeDrain, Prisma boundary, Next/React dependency projection, lockfile и фиксированный браузерный harness. Все релевантные blobs побитно равны. Старый реальный open/abort прогон 2/2 покрывает тот же исполняемый путь; поиск маркера в .next не использовался.

Новых действий на production не выполнялось.

Отчёт: Neo /Users/limamarty/waves/3971POSTQASECCOMPAT-REPORT.md
Evidence: Neo /Users/limamarty/waves/3971POSTQASECCOMPAT-evidence/ (5/5 SHA256 OK)

Post-QA закрыт; карточку можно перевести в done.
Воркер
не проверен STOPPED; l115f-r2 installed; finding live gate OPEN coordinator движение в панели: неизвестно
Подключиться и смотреть/перехватить руками. Колесо мыши листает; клавишами — Ctrl-b затем [, выход из прокрутки q. Отсоединиться — Ctrl-b затем d:
Прочитать историю панели без подключения — листается и ищется (/ поиск, q выход), воркеру не помешает:
Обновлён
2026-09-15T10:40:38.442Z