WEB-531 · Задача · — · web
SEC-014 [severity pending; read-only] ARI URL log redaction
Закрыт
P2
ведёт: —
эпик: WEB-515
Суть
## ДЛЯ НУЛЕВОГО АГЕНТА (обновлено 2026-09-05 UTC)
- **Суть одной строкой:** SEC-014 [severity pending; read-only] ARI URL log redaction
- **Текущее состояние:** статус: backlog; что на проде: body: Текущее состояние:** статус: backlog; что на проде: 2026-09-05T05:09:16.806Z: BLOCK5-FINAL-SEC-014-child — 2026-09-05T05:09:16.706318+00:00 / IST 2026-09-05T10:39:16.706318+0; 2026-09-05T05:09:16.806Z: BLOCK5-FINAL-SEC-014-child — 2026-09-05T05:09:16.706318+00:00 / IST 2026-09-05T10:39:16.706318+05:30 SEC-014 / WEB-531, parentWEB515. BASE6930c6832744e273; что принято/ждёт посадки: body: Текущее состояние:** статус: backlog; что на проде: 2026-09-05T05:09:16.806Z: BLOCK5-FINAL-SEC-014-child — 2026-09-05T05:09:16.706318+00:00 / IST 2026-09-05T10:39:16.706318+0; 2026-09-05T05:09:16.806Z: BLOCK5-FINAL-SEC-014-child — 2026-09-05T05:09:16.706318+00:00 / IST 2026-09-05T10:39:16.706318+05:30 SEC-014 / WEB-531, parentWEB515. BASE6930c6832744e273; что в работе: body: Текущее состояние:** статус: backlog; что на проде: 2026-09-05T05:09:16.806Z: BLOCK5-FINAL-SEC-014-child — 2026-09-05T05:09:16.706318+00:00 / IST 2026-09-05T10:39:16.706318+0; 2026-09-05T05:09:16.806Z: BLOCK5-FINAL-SEC-014-child — 2026-09-05T05:09:16.706318+00:00 / IST 2026-09-05T10:39:16.706318+05:30 SEC-014 / WEB-531, parentWEB515. BASE6930c6832744e273
- **Кто работал:**
- 2026-09-05T05:09:16.806Z: BLOCK5-FINAL-SEC-014-child — 2026-09-05T05:09:16.706318+00:00 / IST 2026-09-05T10:39:16.706318+05:30 SEC-014 / WEB-531, parentWEB515. BASE6930c6832744e273
- **Ветки/бандлы/отчёты:**
- body: Ветки/бандлы/отчёты:**
- 2026-09-05T05:09:16.806Z: BLOCK5-FINAL-SEC-014-child — 2026-09-05T05:09:16.706318+00:00 / IST 2026-09-05T10:39:16.706318+05:30 SEC-014 / WEB-531, parentWEB515. BASE6930c6832744e273
- **KNOWN ISSUES / ТРАБЛШУТИНГ:** симптом → проверка → причина (file:line, если есть) → лечение
- body: KNOWN ISSUES / ТРАБЛШУТИНГ:** симптом → проверка → причина (file:line, если есть) → лечение
- 2026-09-05T05:09:16.806Z: BLOCK5-FINAL-SEC-014-child — 2026-09-05T05:09:16.706318+00:00 / IST 2026-09-05T10:39:16.706318+05:30 SEC-014 / WEB-531, parentWEB515. BASE6930c6832744e273
- **Эволюция:**
- 2026-09-05T05:09:16.806Z → BLOCK5-FINAL-SEC-014-child — 2026-09-05T05:09:16.706318+00:00 / IST 2026-09-05T10:39:16.706318+05:30 SEC-014 / WEB-531, parentWEB515. BASE6930c6832744e273ccad495caba9b31329761650;
- **Следующий шаг:** см. текущую работу из комментариев: 2026-09-05T05:09:16.806Z: BLOCK5-FINAL-SEC-014-child — 2026-09-05T05:09:16.706318+00:00 / IST 2026-09-05T10:39:16.706318+05:30 SEC-014 / WEB-531, parentWEB515. BASE6930c6832744e273
Связи
- связан → WEB-515 — ЭПИК: АУДИТ БЕЗОПАСНОСТИ проекта (Codex gpt-6-astra как security lead) — карта поверхности, threat model, ASVS L2, реестр находок, фиксы с adversarial-приёмкой на Claude
Лента
2026-09-05T05:09:16.806Z · astra-securityBLOCK5-FINAL-SEC-014-child — 2026-09-05T05:09:16.706318+00:00 / IST 2026-09-05T10:39:16.706318+05:30
SEC-014 / WEB-531, parentWEB515. BASE6930c6832744e273ccad495caba9b31329761650; /Users/poolpooly/audit/nc l106-line.
Source infra/sip/gateway/stasisSnoopIngressSpike.js11196-11210 URLcredentialquery→log. Exact bounded statements with syntheticruntime/inertWebSocket/logger4pass/1behaviorred. Actual.env/credential/journal/liveports/calls не читались и не проверялись. УсловияэффектаStasisexecution+logaccess неизвестны, CVSSpending. ProposalONLY in report; NO gatewayedit/NO editbrief. Wildcardtemplates не доказательство liveexposure.
Report /Users/poolpooly/audit/reports/2026-09-05-sip-block5.md
Evidence /Users/poolpooly/audit/evidence/block5/sip/ ; independentadjudication /Users/poolpooly/audit/evidence/block5/review-adjudication.md ; finalcommands /Users/poolpooly/audit/evidence/block5/parent-validation.json. Register /Users/poolpooly/Projects/nc-agent-ops/board/specs/SECURITY-FINDINGS-REGISTER.md updateddelta.
KNOWN ISSUES / ТРАБЛШУТИНГ: parentselected8invocations35tests32pass3expectedfail(twoactualbehaviorred+onedependencypolicyred), notgreenproductfix. Initial ancestorworkspaceaudit0 rejected; --ignore-workspace fixes scope. Initial localharnessdependency/extractionissues fixed, exact commands/exits/hash in evidence. Source/lockunchanged. No prod/live/SSH/build/install/payloads/realdata. Workerhasheshistorical; finalMANIFEST/parentvalidation governs snapshot.
ДЛЯ ТИКЕТА: review packetpublished; landedreport/evidence/specdelta only; nofixcommit/deploy; independentreview/implementation remainsperrouting. Outbox2000URGENT,2001/2002HOLD; old1940–43renamed1950–53HOLD perCONT5. SIPdispatchnone. Archive /Users/poolpooly/audit/outbox/2000-2002-boundary-evidence.tar.gz SHA256 f66fcd0e6fdc81c971aae053dd11a68101cc86a53b055dbf51bd6a97ddae9e78;69manifestfiles verified. Pickup not yet confirmed.
2026-09-06T09:49:46.687Z · coordinator[06.09 09:49Z координатор] [2026-09-06T09:49Z координатор] Волны поставлены (форс слотов): WEB-506 куки-баннер 390px → 2242 (M4), WEB-507 data-testid → 2243 (M4), WEB-504 экспорт из читалки v2 → 2244 (M4), WEB-531 SEC-014 ARI URL redaction → 2245 (A1). Пост-QA l113d на проде через app.sixbyy.com → 2239 (A2).
2026-09-06T10:03:18.409Z · coordinator[06.09 10:03Z координатор] [2026-09-06T10:03Z координатор] Автор сдал GO: WEB-504 a7a1ac6d (2244, M4) → приёмка 2254; WEB-507 cd6afbf9 (2243, M4) → приёмка 2255; WEB-531 SEC-014 4f6ef9c5 (2245, A1) → приёмка 2256.
2026-09-06T11:14:42.571Z · coordinator[06.09 11:14Z координатор] [2026-09-06T11:14Z координатор] WEB-531 (SEC-014) круг 2: автор 2263b сдал 01963d68 (GO, 102 строки) → приёмка 2284-accweb531b (A1) по 5 пунктам ACCWEB531.
2026-09-06T11:35:00.227Z · coordinator[06.09 11:34Z координатор] [2026-09-06T11:34Z координатор] WEB-531 (SEC-014) круг 2: приёмка 2284 = NO-GO 01963d68 — все 5 пунктов круга 2 закрыты (207/207, tsc rc 0), но независимый grep нашёл ещё 7 raw sinks в infra/sip/gateway (index.js:2141,2148; stasisSnoopIngressSpike.js:3617,9254,9928-9929,9966,9970) → круг 3 = 2291-web531-sec014c (A1) + grep-гард как тест.
2026-09-06T11:50:20.039Z · coordinator[06.09 11:50Z координатор] [2026-09-06T11:50Z координатор] Авторы сдали GO → приёмки: WEB-531 круг 3 4ac68392 (2291) → 2296 (A1); WEB-550 круг 2 ed246cae (2260) → 2297 (M4, harness ACCWEB550); периметр 500/400-до-auth 5837dd0f (2288) → 2298 (A2). Astra: независимая приёмка client-completion (WEB-549/551) = GO — сверяю sha с фиксом 2093 для l113f.
2026-09-06T11:58:07.042Z · coordinator[06.09 11:58Z координатор] [2026-09-06T11:57Z координатор] ПРИНЯТО: WEB-531 (SEC-014) круг 3 — 2296 ACCWEB531C = GO 4ac68392 (grep-контроль 0 находок, гард-тест) → кандидат l113f. WEB-507 круг 2: автор 2292 сдал 8b155fc1 (GO) → приёмка 2299 (A1).
2026-09-06T11:59:32.036Z · coordinator[06.09 11:59Z координатор] [2026-09-06T11:59Z координатор] WEB-531: цепочка 4f6ef9c5→01963d68→4ac68392 конфликтует на кандидате l113f (audiosocketTransport.js: SEC-014 vs barge-in WEB-463 / reload WEB-508) → слияние 2302-web531merge (A2).
2026-09-06T12:11:03.504Z · coordinator[06.09 12:11Z координатор] [2026-09-06T12:10Z координатор] ПРИНЯТО: WEB-550 (SEC-033) круг 2 — 2297 ACCWEB550B (M4) = GO ed246cae (единый owner-state resolver, harness приёмки зелёный) → кандидат l113g (l113f уже в сборке). WEB-531 слияние на кандидат = GO e8c97f1f (2302) → l113g. Batch-CLI ремонта карантина: автор 2289 сдал 81acd297 (GO) → приёмка 2304 (A2, sol xhigh, PG, историческая фикстура). WEB-568 круг 2: автор 2303 сдал faf26ab9 (GO) → приёмка 2305 (M4).
2026-09-06T13:17:06.792Z · coordinator[06.09 13:17Z координатор] [2026-09-06T13:15Z координатор] ПОСАЖЕНО: ПРОД = l113g 4c322c46 (flip 13:14:18Z, без простоя; оба бэкенда ready, paid enforce_ready, edge 200×8; миграция WEB-550 file_link_lifecycle применена (188/193); hetzbk l113g-4c322c46 + env-pack, Pi standby → l113g). Состав (20 коммитов над l113f): большой PDF — финализация 3 круга (3c6a6f86, 76dcb114, 7779df11: короткая идемпотентная tx, hook вне tx, no-indexable-chunks для документов без текста), revive-identity 5 + WEB-499 doc_ner identity (a958df4b…42b61743), WEB-531 SEC-014 3 круга (ca35fbeb, ad7c0cfd, e8c97f1f — слияние), WEB-568 SEC-046 (84dce358, faf26ab9), WEB-550 SEC-033 (819da84e, ed246cae), WEB-552 SEC-035 (9d47fdf4, ecca7846), манифесты (188 миграций). Откат = l113f 221e8f39 (RUN l113f-221e8f39, REL arm64-l113f-20260906T123500Z). Дальше: revive документа cmtkm80jo… по инструкции приёмки; l113h = roles r3 (приёмка), WEB-560 build-fix (приёмка), WEB-507 8b155fc1.
2026-09-06T14:11:34.879Z · astra-securityblock19-wave-2124-web-531 — 2026-09-06T14:11:34.878761+00:00 / IST=2026-09-06T19:41:34.878770+05:30
Правила обогащения: WEB-449. ДЛЯ ТИКЕТА: BLOCK19 REVIEW, gpt-5.6-sol, URGENT / open SEC closure.
Remaining original open SEC519/531 now need exact source/host separation. Currentg contains531 mapped dcb98b44/096b06fa/d443e772 (coordinatorca35/ad7/e8c chain), including infra/sip/gateway/index.js and stasisSnoopIngressSpike.js; targeted test infra/sip/gateway/__tests__/sec014RawSinkGuard.test.js.519 accepted cleanup contract is represented by fastAgiArtifactOwnership.test.js:25–39,74 and actual artifactOwnership.cleanup call chain. Resolve current exact file:line/hashes; do not copy repo gateway over host. Coordinator2315 host-sync plan may already own activation: consume its sanitized allowlist/receipt if supplied. NewFIX only if independent ordinary codeproof finds residual; no source change in this review.
Бриф M1 /Users/poolpooly/audit/outbox/2124-gateway-owned-artifacts-and-diagnostics-review-brief.md; SHA256 605492884b1215afeb25d3d7fb2700d8be681acae2ccaf7e4e801030ae037036. База 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-GATEWAY-OWNED-ARTIFACTS-AND-DIAGNOSTICS-REVIEW-REPORT.md
2026-09-06T15:24:16.228Z · astra-securityblock20-wave-2135-web-531 — 2026-09-06T15:24:16.227938+00:00 / IST=2026-09-06T20:54:16.228021+05:30
Правила обогащения: WEB-449. ДЛЯ ТИКЕТА: BLOCK20 FIX, gpt-5.6-luna, URGENT / remaining diagnostic sink.
CONT19-RELAY3 BLOCK19-GATEWAY-OWNED-ARTIFACTS-AND-DIAGNOSTICS-REVIEW-REPORT.md NO-GO found actual remaining currentgdiagnosticcarrier after mapped dcb98b44/096b06fa/d443e772. infra/sip/gateway/stasisSnoopIngressSpike.js:1165–1173 sanitizes directconsolemessage at1168 but passes raw {message} to emitGatewayDiagnosticsBeacon1170–1173; diagnosticsBeacon.js:57–65 serializes/logs [hang-report],81–85 sends samebody to configured diagnosticPOST. sec014RawSinkGuard.test.js:19–50,97–142 omitsbeaconboundary. Fix at sharedbeaconboundary or sourcecaller with recursive bounded safe serialization, preserving safe event/label/host/call correlation and rejection outcome. Existing519ownedcleanup isaccepted cfbb6886, do not rewrite it. Realhostsync2355/2315/SIPwindow ownedbycoordinator; repo candidate only, no deployment.
Бриф M1 /Users/poolpooly/audit/outbox/2135-gateway-beacon-diagnostic-boundary-fix-brief.md; SHA256 279123a9689a1173648b72a909396898caee12aa074469dab97a5204e03b8e56. База 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/block20/fanout-jobs.json; будущий отчёт worker ~/waves/BLOCK20-GATEWAY-BEACON-DIAGNOSTIC-BOUNDARY-FIX-REPORT.md 2026-09-06T15:30:02.272Z · astra-securityblock20-block19-gateway-owned-artifacts-and-diagnostics-review-web-531 — 2026-09-06T15:30:02.271441+00:00 / IST=2026-09-06T21:00:02.271471+05:30
Правила обогащения: WEB-449. ДЛЯ ТИКЕТА / CONT19 relay15:20, BLOCK20.
Вердикт: MIXED:519 source GO;531 residual NO-GO.
Причина/действие: 519ownership cfbb6886 acceptedsource.531 beacon gets rawmessage from stasisSnoopIngressSpike1165–1173 after directconsolealreadyredacted; diagnosticsBeacon57–65/81–85 logs/postsrawbody.2135 fixes beaconboundary and addspermanenttest. Hostactivation remains separatefromsourceGO.
Report header: VERDICT=NO-GO; metadata {"commit": "4c322c4606a1695fc896ecd6313842d55679b472", "base": "4c322c4606a1695fc896ecd6313842d55679b472", "fix_commit": "none", "branch": "agent/2124-gateway-owned-artifacts-review-20260906", "root": "/private/tmp/nc-block19-2124-review"}.
KNOWN ISSUES / ТРАБЛШУТИНГ
Симптом: authorGO не заменяет independentacceptance/посадку; reviewNO-GO может быть missinghostinput или отдельный testcontract. Проверка: исходныйreport Provenance/3groups/rawresults, metadata above и current ledger46.json. Лечение: 519ownership cfbb6886 acceptedsource.531 beacon gets rawmessage from stasisSnoopIngressSpike1165–1173 after directconsolealreadyredacted; diagnosticsBeacon57–65/81–85 logs/postsrawbody.2135 fixes beaconboundary and addspermanenttest. Hostactivation remains separatefromsourceGO.
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-3/BLOCK19-GATEWAY-OWNED-ARTIFACTS-AND-DIAGNOSTICS-REVIEW-REPORT.md
SHA256 6ad06183b6e4b6938333a841b65a2aee840ce8b946067081b84507ecb46f2f21
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:22:46.468Z · astra-securityblock21-block20-gateway-beacon-diagnostic-boundary-fix-web-531 — 2026-09-06T18:22:46.468309+00:00 / IST=2026-09-06T23:52:46.468316+05:30
Правила обогащения: WEB-449. ДЛЯ ТИКЕТА / BLOCK21, CONT19-RELAY-6.
Вердикт: GO author; independent pending2371–2373
Scope: 47e82846 beacon shared collector boundary
Report metadata: {"commit": "47e82846deb96420885e7cdd1d993f53bfacb16b", "base": "4c322c4606a1695fc896ecd6313842d55679b472", "fix_commit": "47e82846deb96420885e7cdd1d993f53bfacb16b", "branch": "agent/2135-gateway-beacon-final-20260906", "root": "/private/tmp/nc-block20-2135-clean-final"}
Доказательство: Actual deferred→beacon log/POST baselineRED/candidateGREEN; safe correlation and rejection identity preserved; focused28/28, inventory8 zero findings, syntax/lint pass.
KNOWN ISSUES / ТРАБЛШУТИНГ
h diagnosticsBeacon.js:57–65 still serializes raw payload from stasisSnoopIngressSpike.js:1166–1172. Candidate bounded shared sanitizer only; accepted WEB519 ownership unchanged. Host parity not established.
Следующее действие: Consume exact assigned2371–2373 gateway acceptance, then coordinator controlled replay/host plan. No duplicate or repo-to-live gateway copy.
Текущая 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/BLOCK20-GATEWAY-BEACON-DIAGNOSTIC-BOUNDARY-FIX-REPORT.md
SHA256 7d6a408aaef89f1696ab1d72aace0977186a423a9e10cc1262dda5c6ef0dd041
M1 /Users/poolpooly/audit/evidence/block21/adjudications.json; ledger46.json; /Users/poolpooly/audit/reports/block21-checkpoint.md. 2026-09-06T20:46:08.915Z · coordinator[06.09 20:46Z координатор] ACCBLOCK20BEACONR2 (M4, NO-GO на ec6c98b8): закрыты телефоны E.164/нац., SIP/SIPS userinfo, URL userinfo/query token, compound phoneNumber/sipPassword/accessToken, размер ≤256 KiB, WEB-519 ownership/rejection identity/best-effort; остались 2 gap: raw `Authorization: Bearer <token>` доходит дословно до обоих collectors; compound-ключ serviceCredentials не sensitive. → круг 3 2445 BLOCK20BEACONR3 (M4): header-паттерны Authorization/Proxy-Authorization/X-Api-Key/Cookie, расширенный список credential-ключей рекурсивно, generic-паттерны (sk-/pk_/JWT/hex после key|token|secret).
2026-09-06T21:37:37.140Z · astra-securityblock22-wave-2158-web-531 — 2026-09-06T21:37:37.139644+00:00 / IST=2026-09-07T03:07:37.139655+05:30
ДЛЯ ТИКЕТА / BLOCK22 release closure. Beacons2898c34e await2460; ec6c98b8 and47e82846 failed independent collectors. Earlier ARI fixes do not close this scope.
Бриф /Users/poolpooly/audit/outbox/2158-gateway-diagnostic-collectors-post-l113j-closure-brief.md; SHA256 5e7da4614b256cec018c247e0e43201c7c1dc89298f1e0347c8b42ec3200b2e7. MODEL=gpt-5.6-sol, A2 cap11, M4 cap3 без автоматического переноса. WAITING_RELEASE_l113j: не запускать до полного deployed-SHA/artifact/backend receipt. Сейчас reportedprod i18f130938b8d2a8f4376811651ad21beb4e28838; M1 source checkout толькоh.
Три группы: exactrelease/source mapping; live: Obtain active gateway/sanitizer/receiver artifact hashes and bounded collector policy receipt without rawlogs or tokens. No synthetic diagnostic POST to production or live call.; companion: Only local inert collectors: preserve ordinary correlation, rejection identity and best-effort; classified raw fields omitted and total serialized body within receiver limit. Consume2460; do not duplicate its repair. Host mismatch remains open.
KNOWN ISSUES: sent≠running, code/authorGO≠liveclosure. При отсутствующем fix в j — NOT_DEPLOYED. Никаких paid/provider effects, реальных удалений/отказов сервиса. Existing2455/2450/2460/2462/2458 и старые работы не дублируются. Историческиеanchors infra/sip/gateway/diagnosticsBeacon.js:57–85; infra/sip/gateway/stasisSnoopIngressSpike.js:1165–1173; candidate2898c34e per2460. Fullreport future /home/ubuntu/waves/BLOCK22-GATEWAY-DIAGNOSTIC-COLLECTORS-POST-L113J-CLOSURE-REPORT.md. Evidence M1 /Users/poolpooly/audit/evidence/block22/fanout-jobs.json; checkpoint /Users/poolpooly/audit/reports/block22-checkpoint.md. Статус тикета не менялся.
2026-09-06T21:43:33.227Z · astra-securityblock22-accblock20beacon-web-531 — 2026-09-06T21:43:33.227052+00:00 / IST=2026-09-07T03:13:33.227057+05:30
ДЛЯ ТИКЕТА / BLOCK22, CONT19-RELAY-7.
Вердикт: NO-GO independent; superseded
Report header: NO-GO
Report metadata: {"commit": "47e82846deb96420885e7cdd1d993f53bfacb16b", "base": "4c322c4606a1695fc896ecd6313842d55679b472", "fix_commit": "47e82846deb96420885e7cdd1d993f53bfacb16b"}
Связанные темы отчёта: WEB-531
Доказательство: baseline4/4,focused28/28; threeindependentnegativesfail
KNOWN ISSUES / ТРАБЛШУТИНГ
47e82846 phone/SIP/compoundfields and aggregate256KiB bound incomplete; no rawdata reproduced here.
Следующее действие: Consume laterR3/2460, no duplicatefix.
Продуктовая посадка сейчас: l113i18f130938b8d2a8f4376811651ad21beb4e28838 по координатору и L113I8; предыдущие assembly ec5c/bad68 не равны prod. M1 физически располагает толькоh83683d48; i/j source/runtime bytes не проверены. Тесты из отчёта не выполнялись родителем/5reviewerGPT5.5. Bundle/rawархивы report-attested. Statusdone и authorGO не заменяют independent/liveGO. Чужие статусы не менялись; числовойCVSS не повышен.
Документ: /Users/poolpooly/audit/evidence/block22/intake-originals/ACCBLOCK20BEACON-REPORT.md
SHA256 8875d1b95794366552467fa848ebe783a73bfb1996615cee99cbf7626e92d88d
Реестр: /Users/poolpooly/audit/evidence/block22/ledger46.json
Checkpoint: /Users/poolpooly/audit/reports/block22-checkpoint.md. 2026-09-06T21:43:33.232Z · astra-securityblock22-accblock20beaconr2-web-531 — 2026-09-06T21:43:33.231652+00:00 / IST=2026-09-07T03:13:33.231657+05:30
ДЛЯ ТИКЕТА / BLOCK22, CONT19-RELAY-7.
Вердикт: NO-GO independent latest delivered
Report header: NO-GO
Report metadata: {"commit": "ec6c98b8500be5ade78eb3418318115f1c112ad2", "base": "4c322c4606a1695fc896ecd6313842d55679b472"}
Связанные темы отчёта: WEB-531
Доказательство: phone/SIP/sizecontrolsnowgreen,focused29/29
KNOWN ISSUES / ТРАБЛШУТИНГ
Remaining header-like diagnostic values and compound credential field reach collectors.
Следующее действие: 2460 acceptance ofR3; neither earlierGO closeshost.
Продуктовая посадка сейчас: l113i18f130938b8d2a8f4376811651ad21beb4e28838 по координатору и L113I8; предыдущие assembly ec5c/bad68 не равны prod. M1 физически располагает толькоh83683d48; i/j source/runtime bytes не проверены. Тесты из отчёта не выполнялись родителем/5reviewerGPT5.5. Bundle/rawархивы report-attested. Statusdone и authorGO не заменяют independent/liveGO. Чужие статусы не менялись; числовойCVSS не повышен.
Документ: /Users/poolpooly/audit/evidence/block22/intake-originals/ACCBLOCK20BEACONR2-REPORT.md
SHA256 84032c100974760c7130e7d71b32e41adbf539c9d3c28b4852807d0d1433c13f
Реестр: /Users/poolpooly/audit/evidence/block22/ledger46.json
Checkpoint: /Users/poolpooly/audit/reports/block22-checkpoint.md. 2026-09-06T21:43:33.603Z · astra-securityblock22-block20beaconr2-web-531 — 2026-09-06T21:43:33.602713+00:00 / IST=2026-09-07T03:13:33.602740+05:30
ДЛЯ ТИКЕТА / BLOCK22, CONT19-RELAY-7.
Вердикт: GO author superseded by NO-GO
Report header: GO
Report metadata: {"commit": "ec6c98b8500be5ade78eb3418318115f1c112ad2", "base": "4c322c4606a1695fc896ecd6313842d55679b472"}
Связанные темы отчёта: WEB-531
Доказательство: fixture4/4,focused29/29,syntax/lint/tscgreen
KNOWN ISSUES / ТРАБЛШУТИНГ
ec6c98b8 later rejected for header-likevalues/serviceCredentials classification.
Следующее действие: Await2898c34e independent2460.
Продуктовая посадка сейчас: l113i18f130938b8d2a8f4376811651ad21beb4e28838 по координатору и L113I8; предыдущие assembly ec5c/bad68 не равны prod. M1 физически располагает толькоh83683d48; i/j source/runtime bytes не проверены. Тесты из отчёта не выполнялись родителем/5reviewerGPT5.5. Bundle/rawархивы report-attested. Statusdone и authorGO не заменяют independent/liveGO. Чужие статусы не менялись; числовойCVSS не повышен.
Документ: /Users/poolpooly/audit/evidence/block22/intake-originals/BLOCK20BEACONR2-REPORT.md
SHA256 301905f77f5034b7a938b474c1f4fb58bb3b5055a0de778a4e9ba73061e9a415
Реестр: /Users/poolpooly/audit/evidence/block22/ledger46.json
Checkpoint: /Users/poolpooly/audit/reports/block22-checkpoint.md. 2026-09-06T21:43:33.607Z · astra-securityblock22-block20beaconr3-web-531 — 2026-09-06T21:43:33.607285+00:00 / IST=2026-09-07T03:13:33.607341+05:30
ДЛЯ ТИКЕТА / BLOCK22, CONT19-RELAY-7.
Вердикт: GO author; pending2460
Report header: GO
Report metadata: {"commit": "2898c34ede09e9166dcefea1b4e130e3184a5607", "base": "4c322c4606a1695fc896ecd6313842d55679b472"}
Связанные темы отчёта: WEB-531
Доказательство: fixture4/4,focused33/33,lint/syntax/bundlegreen
KNOWN ISSUES / ТРАБЛШУТИНГ
2898c34ede09e9166dcefea1b4e130e3184a5607 no independent result delivered; effectivehost separate.
Следующее действие: Conditional j via2455 onlyafter2460GO;2158postjclosure.
Продуктовая посадка сейчас: l113i18f130938b8d2a8f4376811651ad21beb4e28838 по координатору и L113I8; предыдущие assembly ec5c/bad68 не равны prod. M1 физически располагает толькоh83683d48; i/j source/runtime bytes не проверены. Тесты из отчёта не выполнялись родителем/5reviewerGPT5.5. Bundle/rawархивы report-attested. Statusdone и authorGO не заменяют independent/liveGO. Чужие статусы не менялись; числовойCVSS не повышен.
Документ: /Users/poolpooly/audit/evidence/block22/intake-originals/BLOCK20BEACONR3-REPORT.md
SHA256 58e24e0bc5cbb3b66e6ebc48ce46ab4efaf34d8855be67793205e7b2085cab5a
Реестр: /Users/poolpooly/audit/evidence/block22/ledger46.json
Checkpoint: /Users/poolpooly/audit/reports/block22-checkpoint.md. 2026-09-06T21:57:41.343Z · astra-securityblock22-relay8-accblock20beaconr3-web-531 — 2026-09-06T21:57:41.342487+00:00 / IST=2026-09-07T03:27:41.342523+05:30
BLOCK22 RELAY-8 — GO independent2460
R3verifier4/4,priorverifier4/4,baseline/R1/R2REDcontrols;gatewayownership33/33,syntax/lint/scopedtscgreen
KNOWN ISSUES / ТРАБЛШУТИНГ: 2898c34ede09e9166dcefea1b4e130e3184a5607 nowaccepted; source candidate notin i, actualgatewayhostunverified.
Действие: Queue accepted chain through2468; retain2158postjhold, no newbeaconFIX.
Report /Users/poolpooly/audit/evidence/block22-relay8/intake-originals/ACCBLOCK20BEACONR3-REPORT.md
SHA256 910e0c210cc8a2934b154c48a45871fe4b79c6785b0ca91eca068f417516002c
Metadata {"commit": "2898c34ede09e9166dcefea1b4e130e3184a5607", "base": "4c322c4606a1695fc896ecd6313842d55679b472"}
Locali18f13093sourcebundleverified;runtime/live receipt-only. Parent/reviewerproducttestsNOTRUN;newbriefs0;46postjclosureheld. Currentledger evidence/block22/ledger46.json; report reports/block22-relay8-update.md. AuthorGO andrunningacceptance neverequalindependentGO. 2026-09-06T23:52:21.545Z · astra-securityblock22-relay9-adjudication-web-531 — 2026-09-06T23:52:21.545067+00:00 / IST=2026-09-07T05:22:21.545090+05:30
BLOCK22 RELAY-9: вердикты по доставленному пакету. l113j 46393080 source bundle проверен локально; runtime и live — по расписке. Численные тесты ниже выполнены авторами доставленных отчётов, родитель их не перезапускал.
ACCBLOCK20BEACONR2-REPORT.md — повтор ранее полученных байтов, не новая приёмка.
Вердикт: NO-GO independent; superseded by R3 GO
Commit/base: ec6c98b8500be5ade78eb3418318115f1c112ad2 / 4c322c4606a1695fc896ecd6313842d55679b472
Доказательства: base RED 4/4; r1 RED 4/4; candidate green expectation failed 2 pass/2 fail; focused gateway and WEB-519 suites 29/29; node --check exit 0; scoped ESLint exit 0 with existing warnings; scoped tsc exit 0; diff-check exit 0
Anchors: infra/sip/gateway/telephonyRedaction.js:99; infra/sip/gateway/diagnosticsBeacon.js:92; infra/sip/gateway/stasisSnoopIngressSpike.js
KNOWN ISSUES / ТРАБЛШУТИНГ: R2 still leaked Authorization Bearer tokens and compound serviceCredentials into collectors. Host parity was not checked.
Действие: Consume R3/2460 acceptance and do not keep R2 as current blocker.
Report: /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/m4/ACCBLOCK20BEACONR2-REPORT.md
SHA256: 84032c100974760c7130e7d71b32e41adbf539c9d3c28b4852807d0d1433c13f
ACCBLOCK20BEACONR3-REPORT.md — повтор ранее полученных байтов, не новая приёмка.
Вердикт: GO independent source acceptance; no host activation proof
Commit/base: 2898c34ede09e9166dcefea1b4e130e3184a5607 / 4c322c4606a1695fc896ecd6313842d55679b472
Доказательства: new R3 verifier 4/4; previous verifier on candidate 4/4; base/r1/r2 RED controls; focused node:test 33/33; node --check exit 0; scoped ESLint exit 0 with existing warnings only; scoped tsc exit 0; diff-check exit 0
Anchors: infra/sip/gateway/telephonyRedaction.js:26; infra/sip/gateway/diagnosticsBeacon.js:62; infra/sip/gateway/stasisSnoopIngressSpike.js:1155
KNOWN ISSUES / ТРАБЛШУТИНГ: Accepted source candidate only. Host parity, deployment, copy/restart, and live traffic were not checked.
Действие: Land/integrate exact 2898c34e through existing accepted-chain and host-preserving activation workflow; do not issue a new beacon fix brief.
Report: /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/m4/ACCBLOCK20BEACONR3-REPORT.md
SHA256: 910e0c210cc8a2934b154c48a45871fe4b79c6785b0ca91eca068f417516002c
BLOCK20BEACONR3-REPORT.md — повтор ранее полученных байтов, не новая приёмка.
Вердикт: GO author, confirmed by ACC R3 source acceptance
Commit/base: 2898c34ede09e9166dcefea1b4e130e3184a5607 / 4c322c4606a1695fc896ecd6313842d55679b472
Доказательства: author verifier 4/4 with stasis=false beaconLog=false post=false; focused node:test 33/33; node --check exit 0; scoped ESLint exit 0; diff-check exit 0; bundle verify exit 0
Anchors: infra/sip/gateway/telephonyRedaction.js; infra/sip/gateway/diagnosticsBeacon.js; infra/sip/gateway/__tests__/telephonyRedaction.test.js; infra/sip/gateway/__tests__/sec014RawSinkGuard.test.js
KNOWN ISSUES / ТРАБЛШУТИНГ: No host parity/prod activation; this is a source candidate confirmed later by ACC R3.
Действие: Use ACC R3 as the adjudicating acceptance and keep remaining host sync in existing lane.
Report: /Users/poolpooly/audit/evidence/block22-relay9/intake-originals/m4/BLOCK20BEACONR3-REPORT.md
SHA256: 58e24e0bc5cbb3b66e6ebc48ce46ab4efaf34d8855be67793205e7b2085cab5a
ДЛЯ ТИКЕТА: workflow backlog сохранён; Existing gateway source inherited; accepted beacon 2898c34e is not included in the j commit list or deployed-source delta.
Ожидает: Accepted beacon R3 2898c34e awaits explicit integration/host mapping; do not assume 2490 includes it without manifest.
Closure 2158: DISPATCHED_A2; completion unverified.
Coordinator supplies accepted beacon integration + actual gateway mapping; 2158 checks it. Do not reissue source FIX.
КАРТА ДОКУМЕНТОВ: /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-07T07:38:24.394Z · astra-securityBLOCK22-RELAY13-WEB-531 — 2026-09-07T07:38:24.393879+00:00 / IST=2026-09-07T13:08:24.393891+05:30
SEC-014 / WEB-531: NO_GO_FULL_CLOSURE_UNVERIFIED. Workflow backlog сохранён. Текущий m 8f4ba1d92cc15a8b64144674e35cce71fdfba43a подтверждён распиской; родитель не выполнял live.
Полный closure GO не установлен. NO-GO из-за недостающих входов не объявляется новым продуктовым дефектом. Исторический source/companion PASS сохраняется в исходном отчёте.
KNOWN ISSUES / ТРАБЛШУТИНГ
- candidate 2898c34e omitted from l113j
- 2460 acceptance checksum absent
- active gateway/sanitizer/receiver hashes absent
ДЛЯ ТИКЕТА
No new r3 wave: outside explicitly listed blockers; retain NO-GO/evidence gap for coordinator.
No additional release candidate asserted by this delta.
Полный ledger и parent adjudication: ~/audit/evidence/block22-relay13/ledger46.json; ~/audit/reports/block22-relay13-r3-plan.md.
Reports:
/Users/poolpooly/audit/evidence/block22-relay13/intake-originals/CONT19-RELAY-12/a2/BLOCK22-GATEWAY-DIAGNOSTIC-COLLECTORS-POST-L113J-CLOSURE-REPORT.md
2026-09-07T08:06:47.265Z · astra-securityBLOCK22-RELAY13-N-WEB-531 — 2026-09-07T08:06:47.265441+00:00 / IST=2026-09-07T13:36:47.265451+05:30
l113n44d8af687a9e78816b6f747b81a13402abda98bf deployed07:47:36Z по расписке; scope closure NO_GO_FULL_CLOSURE_UNVERIFIED сохранён, workflow не менялся.
Host v5 applied07:54Z per user/addendum; no inference of sanitizer/receiver/collector scoped GO. Exact active files and acceptance still pending.
KNOWN ISSUES
Host v5 applied07:54Z per user/addendum; no inference of sanitizer/receiver/collector scoped GO. Exact active files and acceptance still pending.
Ancestry/replay attestation ≠ runtime member verification; ready/deployment ≠ scoped GO.
ДЛЯ ТИКЕТА
A1 actual LIVE-WINDOW-AUTH-l113n до10:30Z с QA lease;2568 отдельно HOLD2570 independent GO+landing. No new wave.
Evidence: ~/audit/evidence/block22-relay13-n/intake/L113N-RELEASE-RECEIPT.md + L113N-TICKET-SHA-ADDENDUM.md; remaining matrix ~/audit/reports/block22-relay13-n-update.md.
2026-09-07T09:25:55.412Z · coordinator[07.09 09:25Z координатор] ARI LOG REDACTION (2587, A1, sol, 09:25Z): CONDITIONAL_GO — подтверждена утечка: живой gateway логировал `url=${wsUrl}` с `username:password` в query api_key при каждом старте (gateway.out + journal). Кит /home/ubuntu/waves/gwsync-arilog/ (10 патченных файлов, общий telephonyRedaction.js, тесты зелёные). План координатора: (1) применить v7 (2584, идёт) → (2) перебазировать arilog на v7-копию и применить → (3) ротировать ARI-пароль (ag-sip-native.env + ari.conf, restart) → (4) очистить заражённый gateway.out и journal → (5) live proof `grep -c api_key= gateway.out` = 0. KNOWN ISSUES: симптом — секрет в логе; проверка — grep api_key= в /tmp/ag-asterisk-logs/gateway.out; причина — лог полного ws URL; лечение — редактор + ротация.
2026-09-07T09:49:59.235Z · coordinator[07.09 09:49Z координатор] ARI LOG REDACTION rebase (2594, A1, 09:5xZ): CONDITIONAL_GO — кит gwsync-arilog-v7 (15 файлов: 14 изменённых + telephonyRedaction.js) поверх живой v7-копии, офлайн зелёный; координатор применяет + ротация ARI-пароля + очистка логов.
2026-09-07T09:50:21.348Z · coordinator[07.09 09:50Z координатор] ARI LOG REDACTION ПРИМЕНЁН (координатор, 09:48:45Z, 0 каналов): кит gwsync-arilog-v7 (15 файлов) поверх v7; бэкап /var/backups/ag-sip-native/20260907T094844Z-gateway-arilog; readiness 4080 + audiosocket 4084 = 200 за 6 с, ARI connected, 60 с без fatal; `api_key=` в gateway.out = 0, в journal с рестарта = 0 (ws URL логируется без query-секрета). Следующий шаг: ротация ARI-пароля (старое значение осталось в исторических journal/логах) + очистка.
2026-09-07T09:52:00.035Z · coordinator[07.09 09:51Z координатор] WEB-531 ротация ARI-пароля — ОТЛОЖЕНА в отдельное окно: SIP_SIDECAR_ARI_PASSWORD не найден ни в одном env-файле хоста (экспортируется start-sip-native.sh:723 из окружения супервизора/platform.sh — источник ещё трассируется), а потребители — gateway И приложение (src/lib/meetingRooms/asteriskRoomMediaBridgeAdapter.ts, confbridgeExternalMedia.js) → ротация = согласованная замена + рестарт стека и, возможно, приложения. Утечка ограничена историческим journal/логами хоста (root-only); свежие логи чистые. Также: /tmp/ag-asterisk-native/ari.conf генерируется с правами 0644 (ubuntu) — отдельная находка для кита (chmod 600).
2026-09-07T11:40:34.683Z · ЭВОЛЮЦИЯ ЗА 12 Ч (гигиена 2609, 11:25Z 07.09)
ХРОНОЛОГИЯ КРУГОВ
- ARI URL log redaction kit прошёл offline CONDITIONAL_GO (`A1 waves/ARILOGREDACTION-REPORT.md`); точный v7 rebase также CONDITIONAL_GO (`A1 waves/ARILOGREDACTIONV7-REPORT.md`).
- Host arilog применён 09:48Z по OPS, но обязательные ротация exposed credential, очистка contaminated flat log и live bounded proof не замкнуты.
- Линии посадки: 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.
ДЛЯ НУЛЕВОГО АГЕНТА
- На gateway redaction применяется, но секрет остаётся скомпрометированным до ротации; полный closure отсутствует.
- Следующий шаг / владелец: Координатор/owner должны найти authoritative source `SIP_SIDECAR_ARI_PASSWORD`, выполнить атомарную ротацию в окне, очистить flat log, restart/readiness + bounded log proof + контрольный звонок. До появления source статус blocked.
KNOWN ISSUES / ТРАБЛШУТИНГ
- Симптом: api_key попадал в flat gateway log → проверка redaction kit/v7 → причина и лечение описаны в `A1 waves/ARILOGREDACTIONV7-REPORT.md`; блокер: источник `SIP_SIDECAR_ARI_PASSWORD` не найден. Не печатать секрет и не ротировать вслепую.
STATUS TRAIL
- `backlog` → `blocked` после этого комментария. Основание приведено выше; эпики не переводятся в done.
СВЯЗИ / ИСТОЧНИКИ
- Release: `M4 waves/L113P-RELEASE-RECEIPT.md`; координаторский срез: `M4 waves/OPS-STATUS-HEAD-1120.md`; точные отчёты перечислены в хронологии/KNOWN ISSUES.
- Если сегодняшняя карточка уже содержит более ранний coordinator-комментарий с тем же фактом, эта запись является только дельтой 2609 и не отменяет тот trail.
2026-09-07T11:48:02.746Z · coordinator[07.09 11:48Z координатор] **Источник ARI-пароля НАЙДЕН (координатор, 12:08Z 07.09) — блокер снят, ротация ждёт окна.** Живой шлюз A1: `/home/pi/ag-voice/infra/sip/systemd-sip-supervisor.sh:7-9` жёстко `export`-ит `SIP_SIDECAR_ARI_PORT/USERNAME/PASSWORD` (значение в коде, файл в дереве живого шлюза, не в репо); `start-sip-native.sh:73` берёт `${SIP_SIDECAR_ARI_PASSWORD:-}` (пустой default) и на строке 424–434 генерирует `ari.conf` с этим паролем; `/home/pi/ag-voice/.env` ARI не содержит; в env приложения nc-a1 ARI-переменных нет (потребитель — только gateway-процесс, экспорт из того же скрипта). ari.conf-файл был 0644 (SEC-030/WEB-547 — generated config mode). План ротации (окно, т.к. restart ag-sip-native сбрасывает SIP-регистрации — WEB-508): (1) `/etc/ag-sip/ari.env` 0600 root с новым паролем; (2) drop-in `ag-sip-native.service.d/40-ari-env.conf` `EnvironmentFile=/etc/ag-sip/ari.env`; (3) убрать литерал из supervisor (export из env, fail-closed при пустом); (4) restart в согласованном с владельцем окне → проверить readiness 4080/4084, ari.conf 0600 с новым паролем, старый пароль → 401 на ARI; (5) очистка старых логов с api_key (arilog-кит уже не логирует). Статус: blocked → in_progress (координатор, host-side).
2026-09-07T12:06:52.217Z · coordinator[07.09 12:06Z координатор] **Попытка ротации в окне 12:00Z (координатор): НЕ подействовала — источник учётки не env.** Сделано: `/etc/ag-sip/ari.env` (0600) + drop-in `40-ari-env.conf` (EnvironmentFile) → рестарт стека. Факт: env супервизора содержит новый пароль (start-sip-native.sh:73 `${SIP_SIDECAR_ARI_PASSWORD:-}` уважает env), но `/tmp/ag-asterisk-native/ari.conf` (перегенерирован 12:02:52Z, mode 644 owner ubuntu — SEC-030 на живом не применён) содержит другой пароль, `curl -u agari:<new>` = 401, а gateway успешно `ari_connected` — т.е. ari.conf и учётка gateway приходят из другого писателя (гипотеза: app renderer через sync-sip-endpoints / lease-handshake). Волна **2626** (A2, sol xhigh) трассирует писателя/источник по живым скриптам + коду приложения и даёт ранбук ротации; ротация — следующим окном. Старая учётка по-прежнему действует; логи api_key уже редактируются (arilog-кит). Мой предыдущий комментарий о «systemd-sip-supervisor.sh:9» ошибочен — это были строки start-sip-native.sh:721-723 (export в дочерние процессы).
2026-09-08T04:37:39.421Z · coordinator[08.09 04:37Z координатор] ИТОГ ПО БЛОКУ 46 ТИКЕТОВ БЕЗОПАСНОСТИ: все имеют disposition.
СЧЁТ: закрыто с доказательством 38, ждёт посадки следующей линии 8, не начато 0, всего 46.
КАК НАБИРАЛИСЬ 38:
- 18 на момент составления реестра SEC-CLOSURE-LEDGER-20260908.md (волна 2697);
- +14 волной 2700 по группе WEB-521, 524, 526, 530, 543, 545, 549, 551, 552, 553, 554, 555, 559, 560 (GO 7, GO_SCOPED 7);
- +4 волной 2706: WEB-557 (GO), WEB-537, WEB-539, WEB-540 (GO_SCOPED);
- +2 волной 2724: WEB-519 и WEB-531, оба GO_SCOPED, формулировка приёмки «в заявленной scoped-границе не осталось ничего».
ЧТО СДВИНУЛО ДЕЛО. Волны месяцами упирались в одно: они не имеют доступа к /home/ubuntu/prod и не могут доказать, что фикс реально попал в живую сборку. Без этого доказательства тикет висит в NO-GO сколько угодно кругов. Разблокировала не новая работа, а координаторская расписка со ПОЛНЫМ списком членов сборки: COORDINATOR-RUNTIME-RECEIPT-l113q-20260908.md, sha256 d802453ab8a6954ceae493b07e6c63e2a3ceeadcea3e1f9b66200efa280dd87a, 3238 позиций, не обрезана. После её выдачи 14 тикетов закрылись за ОДИН круг без единой строки нового продуктового кода.
Отдельно отмечу: прежняя расписка l113p v1 была обрезана на 400 строках, из-за чего волна 2648 не нашла нужный маршрут и закрыла WEB-562 неверно. Класс ошибки закрыт.
ВОСЕМЬ, ЖДУЩИХ ПОСАДКИ: WEB-520, 522, 528, 533, 536, 542, 546, 547.
- WEB-522 и WEB-546 оказались ОДНИМ И ТЕМ ЖЕ фиксом, доехавшим двумя путями: одинаковый subject «fix(ingest): guard lazy transaction promises», один автор acc@local, одна метка времени 2026-09-07 10:11:52Z, различались только родители. Сведены в fe469fb247060176580323e2e2e1344954f148e9, вердикт GO. Прежний план требовал разрешать их порознь — это была бы работа над пустотой.
- WEB-528 0773fa1c52 и WEB-533 076e98666f ложатся на живой прод ЧИСТО, проверено пробой cherry-pick на точном коммите ec0ce4660.
- WEB-542 1d87f676: объекта нет ни в одной базе и ни в одном из 312 просмотренных бандлов. Нужен исходный бандл либо явное решение переоформить тикет на эквиваленты 0417f78b1 (CAS) и 0fc7f460c (write budget), чей ancestry в линии есть.
- WEB-547: дрейф деплоя на хосте, закрывается применением конфигурации, а не посадкой кода.
- WEB-520: решение о переоткрытии, вопрос политики.
НАЙДЕНО И ЗАКРЫТО ПО ХОДУ — УТЕЧКА КЛЮЧА ARI.
Asterisk на уровне debug писал в журнал строку «http.c: HTTP Request URI is /ari/events?app=…&api_key=…». Файл /tmp/ag-asterisk-logs/full имел права 644, каталог 755; проверено фактически — пользователь wave мог его читать. Ключ лежал на диске в общедоступном файле. Наш шлюз свои журналы редактирует (в gateway.out и console.out неотредактированных данных ноль), а Asterisk свой — нет.
Источник локализован точно: в logger.conf уровень debug включён ТОЛЬКО у файла full (console => notice,warning,error; messages => notice,warning,error,verbose; full => notice,warning,error,debug,verbose,dtmf).
Уровень debug намеренно НЕ снят — он нужен для расследования жалобы владельца на захлёбывание звука. Вместо этого добавлен постоянный drop-in /etc/systemd/system/ag-sip-native.service.d/60-logdir-mode.conf с ExecStartPost, закрывающим каталог до 750 и файлы до 640 при каждом старте службы, включая перезагрузку хоста.
ПРОВЕРЕНО ИСПЫТАНИЕМ: права намеренно возвращены в открытое состояние (755/644), служба перезапущена; после старта каталог снова 750, full 640, wave читать не может, ag-sip-native active, asterisk работает, шлюз поднялся (ari_connected, Greeting pre-warmed).
Ротация ключа вынесена владельцу, решение не получено. НЕ считать выполненной.
ВНЕ ГРАНИЦЫ, намеренно не закрыто (формулировка приёмки сохраняется): ротацию ключа даёт владелец; полную приёмку четырёх файлов шлюза как единого принятого состава даёт release owner — текущее отображение доказывает, ЧТО работает на проде, и не претендует доказывать, что весь состав прошёл приёмку; дрейф прав stasisSnoopIngressSpike.js (wave:wave 640 при соседях ubuntu:ubuntu 664) — операторская задача.
KNOWN ISSUES / ТРАБЛШУТИНГ
Симптом: тикет безопасности висит в NO-GO или WAITING_INPUT круг за кругом.
Проверка: прочитать в отчёте строку «осталось и от кого» — там обычно назван вход, а не дефект.
Причина: волна не имеет доступа к прод-сборке и не может доказать runtime-факт.
Лечение: выдать полную расписку членов живой сборки (sha256 + путь по каждому файлу .next/server, server.js, package.json), без усечения, на все рабочие хосты с одинаковым отпечатком; в брифе явно указать, что список полный.
Вторая ловушка: тонкий git bundle. Приёмочный хост обязан ИМЕТЬ объекты базы и кандидата до отправки брифа, иначе получите ложный NO-GO. Проверять git cat-file -e на хосте приёмщика.
2026-09-08T08:13:34.146Z · coordinator[08.09 08:13Z координатор] ЗАКРЫТО КООРДИНАТОРОМ НА ХОСТЕ 08.09 ~07:47Z. Это была операторская задача, не код.
ЧТО БЫЛО
Тикет: сгенерированные конфигурации ARI не имеют явных приватных прав. Принятый исходный фикс 06b2540cdbd1ef87f41fae277b836258b4eedd97 «fix: publish SIP generated configs privately and atomically» (добавляет infra/sip/private-config-publication.sh, 158 строк, плюс правки start-sip-native.sh) на хост НЕ ПРИМЕНЁН — скрипта публикации на A1 нет.
Прежние круги помечали HOST-MODE REQUIRED и вставали, потому что волны не имеют root, а синхронизация хоста — работа координатора.
ИЗМЕРЕНО НА ЖИВОМ ХОСТЕ ДО ПРАВКИ
/tmp/ag-asterisk-native/ari.conf ubuntu:ubuntu 644 СОДЕРЖИТ password
/tmp/ag-asterisk-native/pjsip-generated.conf ubuntu:ubuntu 644 СОДЕРЖИТ secret
/tmp/ag-asterisk-native/http.conf ubuntu:ubuntu 644 без учётных данных
/tmp/ag-asterisk-native/pjsip.conf ubuntu:ubuntu 644 без учётных данных
/tmp/ag-asterisk-native/pjsip-tls.conf ubuntu:ubuntu 644 без учётных данных
То есть два файла с учётными данными лежали доступными на чтение всем на машине, включая процессы волн.
ЧТО СДЕЛАНО
1. Файлы с учётными данными ужаты до 600. Проверено: sudo -u wave test -r ari.conf → отказ.
2. Мера сделана долговременной: /etc/systemd/system/ag-sip-native.service.d/61-config-modes.conf с ExecStartPost, закрывающим права после каждого старта службы. Причина: каталог живёт в /tmp и пересоздаётся при каждом старте, ручной chmod перезапуск не переживает.
3. Проверено после: служба ag-sip-native active, Asterisk работает, шлюз работает.
СВЯЗАННАЯ НАХОДКА ТОГО ЖЕ КЛАССА, закрыта отдельно (см. WEB-531)
Asterisk на уровне debug писал в /tmp/ag-asterisk-logs/full строку «http.c: HTTP Request URI is /ari/events?app=…&api_key=…». Файл имел режим 644, каталог 755, пользователь wave фактически мог читать. Уровень debug намеренно СОХРАНЁН (нужен для расследования захлёбывания звука), вместо этого drop-in 60-logdir-mode.conf закрывает каталог до 750 и файлы до 640 при каждом старте. Проверено испытанием: права намеренно возвращены в 755/644, служба перезапущена, права закрылись обратно, wave не читает, телефония поднялась целиком.
ЧТО ОСТАЁТСЯ ЗА ГРАНИЦЕЙ
Исходный фикс 06b2540cd на хост по-прежнему не применён — применён обходной путь через drop-in. Правильное завершение: синхронизировать private-config-publication.sh на хост, тогда приватные права будут ставиться при генерации, а не постфактум. Это отдельная операторская задача.
Ротация ключа ARI: владелец разрешил 08.09 06:24Z. Попытка не удалась и откачена — см. отдельную запись ниже.
РОТАЦИЯ КЛЮЧА: ПОПЫТКА И ОТКАТ
Ключ задан в строке 73 /home/pi/ag-voice/infra/sip/start-sip-native.sh ПРОСТЫМ присваиванием, что перебивает EnvironmentFile=/etc/ag-sip/ari.env из drop-in 40-ari-env.conf. Строка 432 пишет его в ari.conf, строка 723 экспортирует в шлюз — поэтому обе стороны согласованы, но на значении из скрипта.
Правка ari.env эффекта не дала (стороны разъехались). Правка строки 73 тоже не дала — значит исполняется не этот файл, а копия, которую делает systemd-sip-supervisor.sh. После трёх перезапусков живой телефонии остановился и вернул исходное состояние.
Состояние после отката проверено: ari.env восстановлен из копии .bak-arirotate-20260908T071421Z, скрипт идентичен .bak-arirotate-20260908T071230Z, служба active, ключи согласованы, отказов авторизации ноль, ari_connected есть, приветствие прогрето.
Следующая попытка: сначала установить по коду супервизора, какой файл реально исполняется, затем ОДНА правка и ОДИН перезапуск. Не подбирать место перебором на живой телефонии — владелец может позвонить в любой момент.
KNOWN ISSUES / ТРАБЛШУТИНГ
Симптом: тикет с пометкой HOST-MODE REQUIRED не движется кругами.
Причина: волны не имеют root; правка хоста — работа координатора, и её никто не делал.
Лечение: координатор делает сам и прикладывает измерения до и после.
Ловушка 1: каталог /tmp/ag-asterisk-native пересоздаётся при каждом старте — ручной chmod не переживает перезапуск, нужен ExecStartPost.
Ловушка 2: проверять права после перезапуска, а не сразу после chmod. Испытание: намеренно открыть права, перезапустить, убедиться что закрылись.
Ловушка 3: сверять ключ ari.conf против /proc/<pid шлюза>/environ НЕ во время перезапуска — там они закономерно расходятся и дают ложную тревогу.
2026-09-09T05:22:13.157Z · coordinator[09.09 05:22Z координатор] SEC-014, ВЫЧЁРКИВАНИЕ АДРЕСА ARI В ЖУРНАЛЕ: VERDICT=GO. Волна 3168, отчёт /home/ubuntu/waves/SEC014ARIREDACTION-REPORT.md, база 8780147cc (l114g). Волна шла на Claude opus, не на OpenAI-модели.
**Ключ ARI действительно утекал в журнал — тремя разными способами, все три закрыты.** Это не «нашли и не воспроизвели», это подтверждённая утечка на сегодняшней вершине.
Доказательство: набор SEC-014 вырос с 32 тестов до **62**, и негативные проверки сделаны мутацией НАСТОЯЩЕГО исходника политики, а не подделкой ожиданий. То есть если вычёркивание убрать — тесты покраснеют.
После правок ключ не попадает в журнал ни в шлюзе, ни в приложении, ни в скриптах запуска. Требование границы процесса выполнено: защита, живущая в одном модуле, не засчитывалась.
Поставка: `/home/ubuntu/waves/SEC014ARIREDACTION.bundle`, ветка `sec014-ari-url-redaction`, финальный HEAD `416f2f289abfb6321ec885767e6c48927c3f403a`, сайдкар с sha256 рядом. Базовый репозиторий и базовое дерево не тронуты.
Статус: **review, не done** — фикс лежит в бандле и на прод ещё не посажен. Переведу в done после посадки ближайшей линией.
Смежное, чтобы не потерялось: ротацию ключа ARI я не трогала, она про запуск, а не про журнал. Напоминание из ранбука — строка 73 в `start-sip-native.sh` перебивает `EnvironmentFile` из `/etc/ag-sip/ari.env`, поэтому новый ключ туда не доезжает. Пока ротация заблокирована, вычёркивание в журнале — единственная действующая защита, и теперь она доказана.
2026-09-09T06:08:42.819Z · coordinator[09.09 06:08Z координатор] ПОСАЖЕНО. Линия l114i, коммит 4f974213042a51123245888084a93d102da58011, 09.09 06:06Z. Артефакт me2-standalone-linux-arm64-4f9742130-20260909T060206Z (sha 65c3311b73722f1d88c143f366afff22c56636aae990e9f37b81f7055ee209cc). Откат = l114h. Миграций нет.
Фикс SEC-014 (ветка `sec014-ari-url-redaction`, HEAD 416f2f289abfb6321ec885767e6c48927c3f403a) вошёл в линию и теперь на проде.
ПРОВЕРКА ПОСЛЕ ПОСАДКИ (снаружи, 06:07Z): корень https://app.sixbyy.com/ = 200 ×4; вебхук POST = 401; `/api/ready` = ready:true, failures пусто, релиз 4f974213042a; `/api/ready/paid` = paidReady:true, posture=enforce_ready; гейт целостности юнитов OK — все службы на каталоге релиза l114i; sip readiness 4080 = 200, LEASE_LOST = 0; живой запрос в чат = 200 с ответом.
Тикет переведён в **done**.
Напоминание, чтобы не потерялось: ротация ключа ARI по-прежнему заблокирована устройством запуска — строка 73 в `start-sip-native.sh` перебивает `EnvironmentFile` из `/etc/ag-sip/ari.env`. Вычёркивание в журнале теперь доказано 62 тестами (было 32), но сам ключ не менялся. Если решим ротировать — сначала чинить строку 73.
Воркер
не привязан — привязать:
curl -X POST https://bugs.wool2.online/api/web/assign -H 'content-type: application/json' \
-d '{"issueId":"WEB-531","session":"<имя tmux-сессии>","host":"m4"}'
Обновлён
2026-09-09T06:08:41.483Z