[2026-10-20] eagle: work/projects/cpm-readiness-telemetry-tech-design-2026-10-15.md work/projects/cpm-status-2026-10-15.md work/projects/cpm-web-extension-code-guide-2026-10-09.md

This commit is contained in:
Alexey Martemyanov committed 2026-10-20 13:39:15 +06:00
1 parent 58712005d7
commit 96b43e8ae2
3 files changed
+12 -6

No files matched your search

@@ -3,6 +3,8 @@ updated: '2026-10-20'
---
# TD: Pixel Definition: CPM Readiness Telemetry (macOS/iOS)
> **#7379 — дополнение 20 октября 2026:** production `9effd97877`, review fixes `f08aefe1b8`, все 6 threads resolved; **267 selected unit PASS**, 43 новых shared regression methods. Предложенный focus/iframe guard применён и проверен настоящим WKWebView; late reload default OFF, P4 detection независим. Старый BSK crash run повторён успешно; CI нового head ещё выполняется без failures. Harness `0b1d6771fe` наследует этот production head, signed build-for-testing PASS, 14 fixture-only paths. Подробности и ограничения — в последнем разделе «#7379: review fixes и CI». Эта сверка не переоценивает остальные CPM PR.
## Current implementation — verified 20 October 2026
The earlier proposal to add parameters to separate failure/recovery pixels has been superseded. The current published #7376 branch (`5d1cb4abd2`) sends **one terminal `web_extension_cpm_episode`, daily+count**, and removes 11 old CPM pixel definitions. The PR is **closed without merge** despite approved review and green exact-head CI; this is not shipped behavior. The macOS counterpart #7484 has the earlier contract and a base conflict.
@@ -605,7 +607,7 @@ Checkpoint `8a27a69776` включил эти harness fixes. Первая лок
После `f08aefe1b8` GitHub не запускал checks из-за **DIRTY merge state** с текущей базой. Merge `da8e714b33` разрешил два конфликта (manager и pixel enum), сохранив обе стороны; CPM setup вынесен в `@MainActor configureCPMMonitoring()`, чтобы соблюсти strict complexity lint. Force push не использовался. Ранее существовавшие локальные Package.resolved изменения не включены в commits.
**Harness:** `codex/cpm-fix-init-loss-integration-tests` обновляется до production `9effd97877`; служебные visibility/pixel seams остаются только там, live PixelKit lookup в harness тоже выполняется при fire. Signed build-for-testing проверяется с новым artifact cache. Новый полный app ON/OFF/ON пока не выполнялся: прежний macOS 27 результат **9 PASS → 6 expected FAIL → 8 PASS / 1 unexpected P2 FAIL** остаётся историческим фактом; повторный настоящий WebKit error 6 на P2 retry этим review fix не исправляется.
**Harness:** `codex/cpm-fix-init-loss-integration-tests / 0b1d6771fe` опубликован и содержит production `9effd97877` как ancestor; ровно **14 fixture-only paths**, 43 новых production shared regressions унаследованы. Служебные visibility/pixel seams остаются только там; live PixelKit lookup в harness тоже выполняется при fire. **Signed build-for-testing PASS**, Apple Development / Team `HKE973VLUW`, strict harness lint 2 files / 0 violations; использован новый locked artifact cache. Новый полный app ON/OFF/ON пока не выполнялся: прежний macOS 27 результат **9 PASS → 6 expected FAIL → 8 PASS / 1 unexpected P2 FAIL** остаётся историческим фактом; повторный настоящий WebKit error 6 на P2 retry этим review fix не исправляется.
`webExtensions.cpmLateBackgroundDocumentRecovery` по-прежнему **default disabled на iOS и macOS**; P4 detection работает независимо и не требует reload или safety-script evaluation. Этот проход не включает rollout flag и не доказывает готовность включать late reload для всех документов.
+6 -4
View File
@@ -9,6 +9,8 @@ updated: '2026-10-20'
---
# CPM Web Extension: единый статус
> **#7379 — дополнение 20 октября 2026:** production `9effd97877`, review fixes `f08aefe1b8`, все 6 threads resolved; **267 selected unit PASS**, 43 новых shared regression methods. Предложенный focus/iframe guard применён и проверен настоящим WKWebView; late reload default OFF, P4 detection независим. Старый BSK crash run повторён успешно; CI нового head ещё выполняется без failures. Harness `0b1d6771fe` наследует этот production head, signed build-for-testing PASS, 14 fixture-only paths. Подробности и ограничения — в последнем разделе «#7379: review fixes и CI». Эта сверка не переоценивает остальные CPM PR.
**Сверено 20 октября 2026, 11:40–11:45 Бишкек (05:40–05:45 UTC): опубликованные heads, состояния PR, exact-head CI и исходники.** Актуальны §1–9; короткие прежние обновления перенесены в §9а, подробные журналы ниже сохраняют результаты своих дат и ревизий.
**#7376 закрыт без мержа** 20 октября в 03:30 Бишкек (19 октября 21:30 UTC), head `5d1cb4abd2`; CI зелёный и review APPROVED не означают, что изменение попало в релиз. macOS #7484 открыт на старом контракте и конфликтует с базой. Текущий состав episode report — [[cpm-pr0-episode-telemetry-summary-2026-10-16]]. Ни один из этих статусов не доказывает rollout.
@@ -20,7 +22,7 @@ updated: '2026-10-20'
## 1. Коротко
- **Телеметрия #7376 реализована и опубликована, но PR закрыт без мержа.** Один `web_extension_cpm_episode`, daily+count, вместо 11 отдельных failure/stuck/recovery/reload-failed пикселей. `stuck` различает подтверждённость повторного сбоя и одну/несколько наблюдавшихся failing tabs; `bg_events` для stuck содержит начальный снимок и продолжение до первого подтверждения. Все параметры, частота и удаления — в [[cpm-pr0-episode-telemetry-summary-2026-10-16]].
- **#7379** теперь содержит install/upgrade readiness, P1 wake, P2 retry и независимый P4 detection; default late-document reload OFF. Текущий CI красный в BrowserServicesKit: один crashed XCTest (§2). Исторические зелёные app-прогоны не отменяют этот gate.
- **#7379**: head `9effd97877` содержит install/upgrade readiness, P1 wake, P2 retry и независимый P4 detection; late-document reload default OFF. Шесть review threads исправлены и resolved; предложенный focus/iframe guard и пять real-WKWebView тестов добавлены. 267 selected unit PASS / 43 новых shared regression methods. Старый BSK crash workflow повторён успешно; CI текущего head ещё выполняется без failures.
- **Network recovery #7459** опубликован с отдельным `web_extension_cpm_network_process_recovery_applied` daily+count без custom parameters. Это измерение выполненного restart, не доказательство восстановления и не замена network-атрибуции каждого failure report.
- **P3 #7493** реализует стабильный приватный origin, CI зелёный; полный production no-background failure не воспроизведён. **P5 #7473** исправляет shared-pinned window close, CI зелёный; это один доказанный механизм, не вся P5-когорта.
- **Полная диагностика Others и отсечение всех ложных срабатываний ещё не обеспечены.** Нет page ACK/последнего подтверждённого этапа, конечного исхода изначально pending load и `network_replaced_since_view` в episode report (§6). `reason=other` — контекст навигации, не историческая причинная группа Others.
@@ -33,7 +35,7 @@ updated: '2026-10-20'
- [#7376](https://github.com/duckduckgo/apple-browsers/pull/7376), `alex/cpm-messaging-readiness-telemetry`, head **`5d1cb4abd2`** → `release/ios/7.243.0`: **CLOSED, не merged**, review APPROVED, CI зелёный (65 check-run entries). Локальный worktree: `alex/cpm-telemetry-pr0`. Полный пакет на этом исходнике: **777 tests / 0 failures**, strict lint 6 файлов / 0 violations, pixel definitions обеих платформ PASS. Тесты выполнялись в изолированной копии с актуальным dependency resolution; пользовательский `Package.resolved` в worktree сохранён.
- [#7484](https://github.com/duckduckgo/apple-browsers/pull/7484), `alex/cpm-messaging-readiness-telemetry-macos-release`, **`3fb13b81fe`** → `release/macos/1.213.0`: OPEN, CI зелёный (68 entries), **merge conflict / dirty**. Это копия более раннего #7376: ещё `was_stuck`, нет four-state `stuck` и двухфазного `bg_events`. Называть PR идентичными сейчас нельзя.
- [#7379](https://github.com/duckduckgo/apple-browsers/pull/7379), `alex/cpm-fix-init-loss`, **`674bb809f2`** → `alex/cpm-messaging-readiness-telemetry`: OPEN, **CI FAIL**. BSK report: 3710 tests, 3696 passed, 13 skipped, 1 failed; annotation — `ConfigurationFetcherTests.testFetchAllWhenAssetsAreModifiedThenAllFetchedConfigurationsAreReturned`, **Crashed: xctest**. Это наблюдаемый failed gate, не установленная причина crash и не доказанная flaky-ошибка. iOS/macOS/DBP aggregates и Danger success. Production worktree `alex/cpm-fix-init-loss-production`; harness отдельно, `codex/cpm-fix-init-loss-integration-tests`. Старые app ON/OFF/ON относятся к указанным в журнале ревизиям.
- [#7379](https://github.com/duckduckgo/apple-browsers/pull/7379), `alex/cpm-fix-init-loss`, **`9effd97877`** → `alex/cpm-messaging-readiness-telemetry / da8e714b33`: OPEN, **CI IN_PROGRESS, без failures на текущем head**; BSK macOS/iOS и shared-package jobs SUCCESS. Сверены 6 resolved review threads, 267 selected unit PASS, 43 новых shared regression methods и validators. Исходный crash `674bb809f2` / run `39272483366` подробно сохранён в последнем разделе; attempt 2 SUCCESS не устанавливает его root cause. Production worktree `alex/cpm-fix-init-loss-production`; review-only harness `codex/cpm-fix-init-loss-integration-tests / 0b1d6771fe`, 14 paths, signed build-for-testing PASS. Новый app ON/OFF/ON не проводился; прежние результаты относятся к указанным heads.
- [#7459](https://github.com/duckduckgo/apple-browsers/pull/7459), `alex/cpm-network-process-recovery`, **`f41c7b7047`** → `alex/cpm-messaging-readiness-telemetry`: OPEN, CI зелёный (59 entries). Network recovery default ON на обеих платформах, remote kill switch сохранён; добавлен applied pixel. Review-only harness — `codex/cpm-network-process-integration-tests`.
- [#7493](https://github.com/duckduckgo/apple-browsers/pull/7493), `alex/cpm-p3-stable-base-url`, **`dd96018da9`** → `alex/cpm-messaging-readiness-telemetry`: OPEN, CI зелёный (60 entries). P3 stable-origin policy, default ON с remote kill switch; harness `codex/cpm-p3-integration-tests`. PR содержит результаты 784 package tests и signed ON 10/10 → OFF ровно 3 origin-continuity failures → ON 30/30 executions. Это проверка origin/migration и CPM controls на macOS, не воспроизведение полного P3 failure и не iOS runtime test.
- [#7473](https://github.com/duckduckgo/apple-browsers/pull/7473), `alex/cpm-p5-pinned-window-close`, **`574e9288ae`** → **`release/macos/1.213.0`**: OPEN, CI зелёный (61 entries), mergeable. Default-ON failsafe `webExtensionSharedPinnedTabWindowClose`; PR сообщает девять app integration scenarios. Он таргетит macOS release напрямую.
@@ -230,7 +232,7 @@ Parser должен разделять по **`,` и `;`**, игнорирова
1. #7376 закрыт без merge; зависимые #7379/#7459/#7493 по-прежнему основаны на его ветке. Это незавершённая публикация, а не shipped telemetry.
2. macOS #7484 нужно синхронизировать с текущим episode contract и устранить release-base conflict; сейчас его payload отличается. В этом документационном проходе код и PR не менялись.
3. Красный BSK gate #7379 остаётся открытым; crash annotation приведена в §2 без предположения о причине.
3. Прежний красный BSK gate #7379 успешно повторён; на новом `9effd97877` BSK/shared jobs SUCCESS, остальные CI jobs ещё выполняются. Точная причина исходного crash не установлена; stack и результаты сохранены в последнем разделе.
4. Для `bg_events` остаётся риск вытеснения всего initial snapshot; резервирование бюджета двух фаз не реализовано. Аналитические consumers должны поддержать `;` и `...`.
5. Нужны целевые измерения §6: end-to-end stages/page ACK, final pending-load outcome, network replacement относительно view; текущий applied pixel закрывает только учёт применения B. Healthy baseline и targeted startup/no-view measurements не реализованы.
6. Для нового `stuck` и двухфазного `bg_events` требуется актуальный privacy contract и оценка комбинированной различимости; прежние расчёты не переносить на новый payload.
@@ -1485,7 +1487,7 @@ Checkpoint `8a27a69776` включил эти harness fixes. Первая лок
После `f08aefe1b8` GitHub не запускал checks из-за **DIRTY merge state** с текущей базой. Merge `da8e714b33` разрешил два конфликта (manager и pixel enum), сохранив обе стороны; CPM setup вынесен в `@MainActor configureCPMMonitoring()`, чтобы соблюсти strict complexity lint. Force push не использовался. Ранее существовавшие локальные Package.resolved изменения не включены в commits.
**Harness:** `codex/cpm-fix-init-loss-integration-tests` обновляется до production `9effd97877`; служебные visibility/pixel seams остаются только там, live PixelKit lookup в harness тоже выполняется при fire. Signed build-for-testing проверяется с новым artifact cache. Новый полный app ON/OFF/ON пока не выполнялся: прежний macOS 27 результат **9 PASS → 6 expected FAIL → 8 PASS / 1 unexpected P2 FAIL** остаётся историческим фактом; повторный настоящий WebKit error 6 на P2 retry этим review fix не исправляется.
**Harness:** `codex/cpm-fix-init-loss-integration-tests / 0b1d6771fe` опубликован и содержит production `9effd97877` как ancestor; ровно **14 fixture-only paths**, 43 новых production shared regressions унаследованы. Служебные visibility/pixel seams остаются только там; live PixelKit lookup в harness тоже выполняется при fire. **Signed build-for-testing PASS**, Apple Development / Team `HKE973VLUW`, strict harness lint 2 files / 0 violations; использован новый locked artifact cache. Новый полный app ON/OFF/ON пока не выполнялся: прежний macOS 27 результат **9 PASS → 6 expected FAIL → 8 PASS / 1 unexpected P2 FAIL** остаётся историческим фактом; повторный настоящий WebKit error 6 на P2 retry этим review fix не исправляется.
`webExtensions.cpmLateBackgroundDocumentRecovery` по-прежнему **default disabled на iOS и macOS**; P4 detection работает независимо и не требует reload или safety-script evaluation. Этот проход не включает rollout flag и не доказывает готовность включать late reload для всех документов.
@@ -9,6 +9,8 @@ updated: '2026-10-20'
---
# CPM Web Extension — карта кода по worktree и строкам
> **#7379 — дополнение 20 октября 2026:** production `9effd97877`, review fixes `f08aefe1b8`, все 6 threads resolved; **267 selected unit PASS**, 43 новых shared regression methods. Предложенный focus/iframe guard применён и проверен настоящим WKWebView; late reload default OFF, P4 detection независим. Старый BSK crash run повторён успешно; CI нового head ещё выполняется без failures. Harness `0b1d6771fe` наследует этот production head, signed build-for-testing PASS, 14 fixture-only paths. Подробности и ограничения — в последнем разделе «#7379: review fixes и CI». Эта сверка не переоценивает остальные CPM PR.
**Проверено 20 октября 2026:** карта ниже отражает существующие worktree и опубликованные heads; старые line numbers и результаты в архивных разделах относятся к своим ревизиям. PR/CI — [[cpm-status-2026-10-15#2. PR и quality gates]]. Пользовательский dirty `Package.resolved` в telemetry worktree сохранён.
## 0. Текущая карта worktree и точек входа
@@ -692,7 +694,7 @@ Checkpoint `8a27a69776` включил эти harness fixes. Первая лок
После `f08aefe1b8` GitHub не запускал checks из-за **DIRTY merge state** с текущей базой. Merge `da8e714b33` разрешил два конфликта (manager и pixel enum), сохранив обе стороны; CPM setup вынесен в `@MainActor configureCPMMonitoring()`, чтобы соблюсти strict complexity lint. Force push не использовался. Ранее существовавшие локальные Package.resolved изменения не включены в commits.
**Harness:** `codex/cpm-fix-init-loss-integration-tests` обновляется до production `9effd97877`; служебные visibility/pixel seams остаются только там, live PixelKit lookup в harness тоже выполняется при fire. Signed build-for-testing проверяется с новым artifact cache. Новый полный app ON/OFF/ON пока не выполнялся: прежний macOS 27 результат **9 PASS → 6 expected FAIL → 8 PASS / 1 unexpected P2 FAIL** остаётся историческим фактом; повторный настоящий WebKit error 6 на P2 retry этим review fix не исправляется.
**Harness:** `codex/cpm-fix-init-loss-integration-tests / 0b1d6771fe` опубликован и содержит production `9effd97877` как ancestor; ровно **14 fixture-only paths**, 43 новых production shared regressions унаследованы. Служебные visibility/pixel seams остаются только там; live PixelKit lookup в harness тоже выполняется при fire. **Signed build-for-testing PASS**, Apple Development / Team `HKE973VLUW`, strict harness lint 2 files / 0 violations; использован новый locked artifact cache. Новый полный app ON/OFF/ON пока не выполнялся: прежний macOS 27 результат **9 PASS → 6 expected FAIL → 8 PASS / 1 unexpected P2 FAIL** остаётся историческим фактом; повторный настоящий WebKit error 6 на P2 retry этим review fix не исправляется.
`webExtensions.cpmLateBackgroundDocumentRecovery` по-прежнему **default disabled на iOS и macOS**; P4 detection работает независимо и не требует reload или safety-script evaluation. Этот проход не включает rollout flag и не доказывает готовность включать late reload для всех документов.