diff --git a/work/projects/cpm-status-2026-10-15.md b/work/projects/cpm-status-2026-10-15.md index 0b341641..b9fa4463 100755 --- a/work/projects/cpm-status-2026-10-15.md +++ b/work/projects/cpm-status-2026-10-15.md @@ -832,3 +832,9 @@ P2 first pass **85.234 s**, повтор **84.776 s**. Фактический re Фикс P1 сохраняет предел 5 с и существующий gate flag. P2 повторяет background load в том же контексте по настоящей notification error 6, с существующим recovery flag, ограничением частоты и запретом в background; полный context reset не перенесён. На этой базе отсутствует generic applicationState из более поздних telemetry PR, поэтому добавлен только read-only `isApplicationInBackground` у recorder, читающий уже существующий appSession provider. ZIP расширения и pixel schemas не менялись, более поздние telemetry PR не включены. Изменения macOS AppDelegate/ConfigurationStore/Tab и optional controllerConfiguration нужны для изоляции app-hosted тестов; shipping defaults сохранены. Проверка новой ветки запущена: signed build-for-testing и lifecycle/navigation unit suites. Strict SwiftLint: 14 Swift-файлов, 0 violations; project.pbxproj проходит plutil, все пять новых Swift-файлов зарегистрированы в обоих Integration Tests targets. Артефакты: `/private/tmp/cpm-p1-p2-clean-20261016/`. Финальные результаты будут дописаны после прогонов; предыдущие 22/22 относятся к scratch, а не автоматически к этой новой сборке. + +### Адаптация к текущему контракту базовой ветки + +При выделении проверено, что текущий `alex/cpm-messaging-readiness-telemetry` уже использует **единый `cpmMessagingEpisode`**, а не прежние initialization_failed/stuck/recovered events. Первый build выявил несовместимость перенесённого test adapter с удалёнными enum cases (`build.log`, exit 65). Исправлен исключительно test adapter, без возврата старой telemetry schema: `CPMAppFailureRecorder` прозрачно делегирует настоящий `CPMMessagingDiagnosticsProviding.collectDiagnostics` и фиксирует реальный first-failure snapshot, terminal events пишет существующий pixel sink. P2 требует `outcome=failed_measurement_response`, `reload_state=none`, плюс фактический page initResp и идентичность context. Это соответствует новой модели: сам episode dashboard response отдельно не доказывает доставку в страницу, поэтому DOM-подтверждение сохранено. + +Повторный `build-episode-adapter.log`: TEST BUILD SUCCEEDED. Подтверждена Apple Development: Alexey Martemyanov (9SAT8X9S84), Team HKE973VLUW, strict verification app debug dylib и фактически загружаемого XCTest bundle успешна. 31 lifecycle unit test + 134 существующих manager/background-load/health-monitor unit tests = **165 PASS, 0 failures**. App positive run запущен (`enabled.xcresult`), отрицательный контроль запланирован на той же сборке. Исходный bundled ZIP 2026.10.14 не изменён, SHA256 `ff98a2b0c07819b2ee5ee6de67d6dd8d28696363c08c9fbc2c32255e9d9efa94`.