From 4b5fe9af6a9e34b9cc9874392c297fe8dee62a0b Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Fri, 16 Oct 2026 17:59:55 +0600 Subject: [PATCH] [2026-10-16] eagle: work/projects/cpm-pr0-episode-telemetry-summary-2026-10-16.md work/projects/cpm-status-2026-10-15.md --- .../cpm-pr0-episode-telemetry-summary-2026-10-16.md | 4 ++-- work/projects/cpm-status-2026-10-15.md | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/work/projects/cpm-pr0-episode-telemetry-summary-2026-10-16.md b/work/projects/cpm-pr0-episode-telemetry-summary-2026-10-16.md index df41290c..8d15b93f 100755 --- a/work/projects/cpm-pr0-episode-telemetry-summary-2026-10-16.md +++ b/work/projects/cpm-pr0-episode-telemetry-summary-2026-10-16.md @@ -22,12 +22,12 @@ The initial snapshot records fixed facts about the extension context, background Keep `daily+count`: daily estimates installations with a completed episode that day; count measures completed episodes. The first report each day sends both legs with the same payload; subsequent reports send count only. -**Fix attribution.** The agreed PR0 contract excludes graveyard attribution; removing that legacy field from the local code is still pending. Add fix-specific application/outcome metrics in the relevant fix PRs when needed. Preventive fixes must also count eligible attempts that succeed without a failure episode. Current diagnostic facts do not distinguish all five failure groups. +**Fix attribution.** Graveyard attribution is removed from the episode and its diagnostic payload. Add fix-specific application/outcome metrics in the relevant fix PRs when needed. Preventive fixes must also count eligible attempts that succeed without a failure episode. Current diagnostic facts do not distinguish all five failure groups. **Limits.** A dashboard response does not prove document-level `initResp` delivery or recovery of every failing tab. A deadline means no qualifying response was observed. Unfinished episodes can be lost when the process exits. Retired pixel definitions and unused parameters are removed on both platforms. The manager still sends the separate `debug_web_extension_reload_failed` event. -**Validation.** 82 focused tests, macOS PixelKitMock verification, both platform definition validators and strict SwiftLint passed. +**Validation.** All 742 WebExtensions tests passed after removing graveyard attribution, including a regression test proving the monitor neither reads nor reports its treatment state. macOS PixelKitMock verification, both platform definition validators and strict SwiftLint also passed. Related: [[cpm-status-2026-10-15|CPM status]], [[cpm-readiness-telemetry-tech-design-2026-10-15|Readiness telemetry design]]. diff --git a/work/projects/cpm-status-2026-10-15.md b/work/projects/cpm-status-2026-10-15.md index d25017c2..409ee1eb 100755 --- a/work/projects/cpm-status-2026-10-15.md +++ b/work/projects/cpm-status-2026-10-15.md @@ -760,3 +760,9 @@ P2 реализация уточнена: manager наблюдает публи `fixed-final.xcresult`: P1 снова **PASS 49.908 s**. P2 получил настоящий `WKWebExtensionContextErrorDomain:6` и **автоматический context reload**; но регрессия осталась **красной**: existing-tab probe имел native dashboard=true и 0 detector failures, но page initResp mark=false. Новое окно и новая вкладка получили оба подтверждения. Нельзя объявлять восстановление старого tab по одному native ack. В harness фиксированный sleep 150 ms заменён bounded polling реального page initResp (до 2 s); идёт повтор `fixed-page-ack.xcresult`. Проверка page receipt сохранена строгой, зелёный P2 пока не заявлен. Оговорка о пользе P2: исходный standalone `testBackgroundStalledPastUnloadTimerFailsToLoad` уже проверяет, что **следующий wake может восстановиться без нового фикса**. Новый кандидат делает recovery заранее, по error notification; его проверка сама по себе не доказывает, что SIGSTOP-модель объясняет persistent iOS stuck или что без reload следующая навигация обязательно сломана. + +### Первый зелёный P2 regression на окончательном production-кандидате + +`fixed-page-ack.xcresult`: **P2 PASS, 85.562 s**, 1/1, 0 failures/skips/expected failures. Exported evidence: `fixed-page-ack-evidence/755EA182-FC24-479A-95B5-CFF1493D0404.json`. Реальный error 6 записан до recovery: context_errors=WKWebExtensionContextErrorDomain:6, bg_load_error_after=25s_to_35s, app_state=inactive, view_creations=2, view_alive=false. Первая fault-navigation: native=false/page=false, 1 initialization failure. После автоматического reload, без явного test reload: **existing tab native=true/page=true, 0 failures**; новое окно и новая tab также native=true/page=true, 0 failures. Existing-tab probe занял 0.149 s: сам по себе этот повтор не доказывает, что предыдущий page-negative был только недостаточными 150 ms; intermittent/order-dependent delivery остаётся причиной дополнительной проверки повторяемости. + +Сборка `build-page-ack.log` — project signing defaults, TEST BUILD SUCCEEDED; подписи app dylib/XCTest проверены, bundled ZIP сохранён с исходным SHA-256 `4254967bb447aa45deb371b26fea1dd93850a8e6a654f8ebecd70fccc3859936`. Начат общий прогон оставшихся 19 app methods на этой же сборке (новый P1 включён, P2 уже проверен отдельно, P5/cache отдельно). Контроль с выключенными фиксами и итоговая полная матрица пока не завершены. HEAD не изменился, commits/PR изменений нет.