[2026-10-06] eagle: work/projects/cpm-web-extension-breakage-validation.md work/projects/cpm-web-extension-public-attribution-2026-10-05.md

This commit is contained in:
Alexey Martemyanov committed 2026-10-06 10:48:40 +06:00
1 parent 67281d094a
commit 72a840eb58
2 files changed
+71 -20

No files matched your search

@@ -1,28 +1,15 @@
# CPM Web Extension Breakage — статус и проверка причин
> **Текущий milestone, 2026-10-05: проверить attribution data и найти причины CPM breakage.** Исторический PR-план ниже — не текущая оценка готовности. Подробная трассировка: [[cpm-web-extension-breakage-findings]]; архитектура: [[cpm-service-worker-architecture-and-diagnostics]].
> **Актуальный отчёт за завершённый 5 октября 2026 UTC:** [[cpm-web-extension-public-attribution-2026-10-05]]. Он сверяет все `init failure.daily`, диагностические группы, соседние события, тренды до релиза и восстановление после stuck. Исторические internal-testing проверки и PR-план ниже сохранены как архив.
## Сейчас: attribution и breakage reasons
## Текущий статус
**Граница данных.** До 2026-10-05 macOS 1.210 использовалась в internal testing примерно неделю; iOS 7.240 ещё не опубликована в App Store. macOS 1.211 / iOS 7.241 — ранние internal-сборки. Считать public incidence только по данным после начала public rollout (ожидается 2026-10-06), отдельно по платформе и версии. Internal-тесты могли специально воспроизводить failure, поэтому частоту и причинность по ним не выводим.
- Основной сигнал: 6 624 iOS и 1 405 macOS `initialization.failed.after.*.daily`; эксклюзивные группы и контрольные суммы приведены в актуальном отчёте.
- Session restoration failure сохраняется: 952 iOS / 71 macOS за 5 октября. На iOS 604 имеют scripts absent + zero background views. Долю временно восстановившихся по этому reason без связывания событий посчитать нельзя.
- M4 reload после confirmed stuck даёт 916 iOS / 354 macOS `recovered.after.extension.reload.daily` от `messaging_stuck`; это подтверждает реальные успешные ответы после reload, но не success rate всех эпизодов.
- Старые версии не содержат controller/scripts attribution. По общему тренду после macOS M1 существенный эффект tab lifecycle не выделяется.
**Что видно в attribution-bearing `debug.web.extension.cpm.messaging.stuck.*` за завершённые 2026-09-28—10-04:**
| Версия | `.count` | `.daily` | Статус |
|---|---:|---:|---|
| macOS 1.210 | 131 | 82 | Internal testing; не оценка затронутых пользователей. |
| iOS 7.240 | 6 | 5 | До App Store release. |
| macOS 1.211 / iOS 7.241 | 0 | 0 | Включены в проверку; attributed stuck пока нет. |
`.count` — репорты, `.daily` — дневные пиксели, не уникальные пользователи. Большой поток iOS stuck на 7.238/7.239 в основном **без** новых attribution-полей; его нельзя смешивать с 7.240. Сверка фильтров Kibana и Grafana ещё нужна. [Breakage board](https://grafana.duckduckgo.com/d/dfon7whlilnggb/cpm-weird-error-investigation?orgId=1).
**Проверяемые сигнатуры, пока не root causes:**
1. `bg_events`: повторный `dealloc` есть в 88/131 macOS 1.210 `.count` stuck. Internal forced-failure testing может полностью объяснять этот сигнал; он **не доказывает** естественную смерть WebContent-процесса или эффект graveyard.
2. Tab-side: в 24/131 macOS stuck отсутствуют extension scripts. В 17 из 24 `tab_controller_match=false`, хотя `tab_in_context=true`; 10 из 17 помечены `app_version_change=updated`. Гипотеза: старая/restored вкладка сохраняет прежний `webExtensionController` после создания или замены WebExtensionManager. В остальных 7 controller совпадает, но `bg_view_creations=0` (6 после update): это больше похоже на недошедший до background-view/injection startup, а не на доказанное удаление scripts. `removeAllUserScripts()` остаётся отдельной кодовой гипотезой без подтверждения этими пикселями.
3. `base_url_changed`, reload и другие причины анализировать отдельно: совпадение с stuck ещё не подтверждает причинность.
**Следующая проверка:** на public macOS 1.210 / iOS 7.240 с 2026-10-06 раздельно считать affected daily users (recovered и permanent) против DAU той же версии; разбирать ordered `bg_events` и tab-поля по каждой сигнатуре. Воспроизвести на macOS 1.210 update/session restore и off→on Web Extensions с уже открытой вкладкой: сравнить старую и новую вкладки по controller, scripts и CPM outcome. До этого не ранжировать причины по internal `.count`.
## Исторические проверки и планы
## Как получить и проверить attribution data