[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:
1 parent
96b43e8ae2
commit
2ffd28cdb3
3 files changed
+9
-9
No files matched your search
@@ -3,7 +3,7 @@ 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.
|
||||
> **#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 завершён: **43 SUCCESS / 17 SKIPPED**, без failures/pending, merge state CLEAN. 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
|
||||
|
||||
@@ -603,7 +603,7 @@ Checkpoint `8a27a69776` включил эти harness fixes. Первая лок
|
||||
|
||||
**Проверки:** до обновления базы 260 selected PASS; после merge базы и окончательного выделения main-actor CPM setup — **267 PASS / 0 FAIL** (CPM, lifecycle, manager), strict SwiftLint **8 files / 0 violations**. В отдельной source copy с исходными guards оба новых iframe/Shadow DOM теста дают нежелательный реальный reload и **2 failed tests / 6 assertions**; с исправлением проходят. Это red controls, не проигнорированные CI failures. Pixel validators и formatting обеих платформ PASS; wide-event consistency/schema checks PASS после merge commit.
|
||||
|
||||
**CI:** прежний failed workflow [39272483366](https://github.com/duckduckgo/apple-browsers/actions/runs/39272483366) на `674bb809f2` падал crash процесса xctest в `ConfigurationFetcherTests.testFetchAllWhenAssetsAreModifiedThenAllFetchedConfigurationsAreReturned`. Извлечённый .ips: **SIGBUS / EXC_BAD_ACCESS**, triggered stack `swift_retain → Foundation Locale.preferredLanguages → APIRequest.Headers.acceptLanguage → ConfigurationFetcher.fetch(all:)`; второй thread тоже читает Locale. Это установленное место падения, не установленная причина corruption/race и не доказательство infrastructure-only. Код Configuration/Networking не менялся. **Attempt 2 SUCCESS** без изменения binaries/source этого head. На новом `9effd97877` shared-package tests и BSK macOS/iOS unit jobs уже SUCCESS; остальные CI jobs ещё выполняются.
|
||||
**CI:** прежний failed workflow [39272483366](https://github.com/duckduckgo/apple-browsers/actions/runs/39272483366) на `674bb809f2` падал crash процесса xctest в `ConfigurationFetcherTests.testFetchAllWhenAssetsAreModifiedThenAllFetchedConfigurationsAreReturned`. Извлечённый .ips: **SIGBUS / EXC_BAD_ACCESS**, triggered stack `swift_retain → Foundation Locale.preferredLanguages → APIRequest.Headers.acceptLanguage → ConfigurationFetcher.fetch(all:)`; второй thread тоже читает Locale. Это установленное место падения, не установленная причина corruption/race и не доказательство infrastructure-only. Код Configuration/Networking не менялся. **Attempt 2 SUCCESS** без изменения binaries/source этого head. На новом `9effd97877` **все checks завершены: 43 SUCCESS / 17 SKIPPED, 0 FAILURE, 0 pending; merge state CLEAN**. Зелёные workflow: [BSK](https://github.com/duckduckgo/apple-browsers/actions/runs/39386391730), [macOS PR checks](https://github.com/duckduckgo/apple-browsers/actions/runs/39386391695), [iOS PR checks](https://github.com/duckduckgo/apple-browsers/actions/runs/39386391681), а также UI/PIR, pixel validation, SwiftLint и Danger. Итог повторно проверен по опубликованному head; 0 открытых review threads.
|
||||
|
||||
После `f08aefe1b8` GitHub не запускал checks из-за **DIRTY merge state** с текущей базой. Merge `da8e714b33` разрешил два конфликта (manager и pixel enum), сохранив обе стороны; CPM setup вынесен в `@MainActor configureCPMMonitoring()`, чтобы соблюсти strict complexity lint. Force push не использовался. Ранее существовавшие локальные Package.resolved изменения не включены в commits.
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ 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.
|
||||
> **#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 завершён: **43 SUCCESS / 17 SKIPPED**, без failures/pending, merge state CLEAN. 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а, подробные журналы ниже сохраняют результаты своих дат и ревизий.
|
||||
|
||||
@@ -22,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**: 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.
|
||||
- **#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 завершён: **43 SUCCESS / 17 SKIPPED, без failures/pending**.
|
||||
- **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.
|
||||
@@ -35,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`, **`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.
|
||||
- [#7379](https://github.com/duckduckgo/apple-browsers/pull/7379), `alex/cpm-fix-init-loss`, **`9effd97877`** → `alex/cpm-messaging-readiness-telemetry / da8e714b33`: OPEN, **CI GREEN: 43 SUCCESS / 17 SKIPPED, 0 failures/pending; merge state CLEAN**. BSK, iOS/macOS app builds/tests, shared packages, UI/PIR, validators и lint завершены. Сверены 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 напрямую.
|
||||
@@ -232,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 успешно повторён; на новом `9effd97877` BSK/shared jobs SUCCESS, остальные CI jobs ещё выполняются. Точная причина исходного crash не установлена; stack и результаты сохранены в последнем разделе.
|
||||
3. Прежний красный BSK gate #7379 успешно повторён; на новом `9effd97877` CI **43 SUCCESS / 17 SKIPPED, без failures/pending; CLEAN**. Точная причина исходного 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.
|
||||
@@ -1483,7 +1483,7 @@ Checkpoint `8a27a69776` включил эти harness fixes. Первая лок
|
||||
|
||||
**Проверки:** до обновления базы 260 selected PASS; после merge базы и окончательного выделения main-actor CPM setup — **267 PASS / 0 FAIL** (CPM, lifecycle, manager), strict SwiftLint **8 files / 0 violations**. В отдельной source copy с исходными guards оба новых iframe/Shadow DOM теста дают нежелательный реальный reload и **2 failed tests / 6 assertions**; с исправлением проходят. Это red controls, не проигнорированные CI failures. Pixel validators и formatting обеих платформ PASS; wide-event consistency/schema checks PASS после merge commit.
|
||||
|
||||
**CI:** прежний failed workflow [39272483366](https://github.com/duckduckgo/apple-browsers/actions/runs/39272483366) на `674bb809f2` падал crash процесса xctest в `ConfigurationFetcherTests.testFetchAllWhenAssetsAreModifiedThenAllFetchedConfigurationsAreReturned`. Извлечённый .ips: **SIGBUS / EXC_BAD_ACCESS**, triggered stack `swift_retain → Foundation Locale.preferredLanguages → APIRequest.Headers.acceptLanguage → ConfigurationFetcher.fetch(all:)`; второй thread тоже читает Locale. Это установленное место падения, не установленная причина corruption/race и не доказательство infrastructure-only. Код Configuration/Networking не менялся. **Attempt 2 SUCCESS** без изменения binaries/source этого head. На новом `9effd97877` shared-package tests и BSK macOS/iOS unit jobs уже SUCCESS; остальные CI jobs ещё выполняются.
|
||||
**CI:** прежний failed workflow [39272483366](https://github.com/duckduckgo/apple-browsers/actions/runs/39272483366) на `674bb809f2` падал crash процесса xctest в `ConfigurationFetcherTests.testFetchAllWhenAssetsAreModifiedThenAllFetchedConfigurationsAreReturned`. Извлечённый .ips: **SIGBUS / EXC_BAD_ACCESS**, triggered stack `swift_retain → Foundation Locale.preferredLanguages → APIRequest.Headers.acceptLanguage → ConfigurationFetcher.fetch(all:)`; второй thread тоже читает Locale. Это установленное место падения, не установленная причина corruption/race и не доказательство infrastructure-only. Код Configuration/Networking не менялся. **Attempt 2 SUCCESS** без изменения binaries/source этого head. На новом `9effd97877` **все checks завершены: 43 SUCCESS / 17 SKIPPED, 0 FAILURE, 0 pending; merge state CLEAN**. Зелёные workflow: [BSK](https://github.com/duckduckgo/apple-browsers/actions/runs/39386391730), [macOS PR checks](https://github.com/duckduckgo/apple-browsers/actions/runs/39386391695), [iOS PR checks](https://github.com/duckduckgo/apple-browsers/actions/runs/39386391681), а также UI/PIR, pixel validation, SwiftLint и Danger. Итог повторно проверен по опубликованному head; 0 открытых review threads.
|
||||
|
||||
После `f08aefe1b8` GitHub не запускал checks из-за **DIRTY merge state** с текущей базой. Merge `da8e714b33` разрешил два конфликта (manager и pixel enum), сохранив обе стороны; CPM setup вынесен в `@MainActor configureCPMMonitoring()`, чтобы соблюсти strict complexity lint. Force push не использовался. Ранее существовавшие локальные Package.resolved изменения не включены в commits.
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ 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.
|
||||
> **#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 завершён: **43 SUCCESS / 17 SKIPPED**, без failures/pending, merge state CLEAN. 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 сохранён.
|
||||
|
||||
@@ -690,7 +690,7 @@ Checkpoint `8a27a69776` включил эти harness fixes. Первая лок
|
||||
|
||||
**Проверки:** до обновления базы 260 selected PASS; после merge базы и окончательного выделения main-actor CPM setup — **267 PASS / 0 FAIL** (CPM, lifecycle, manager), strict SwiftLint **8 files / 0 violations**. В отдельной source copy с исходными guards оба новых iframe/Shadow DOM теста дают нежелательный реальный reload и **2 failed tests / 6 assertions**; с исправлением проходят. Это red controls, не проигнорированные CI failures. Pixel validators и formatting обеих платформ PASS; wide-event consistency/schema checks PASS после merge commit.
|
||||
|
||||
**CI:** прежний failed workflow [39272483366](https://github.com/duckduckgo/apple-browsers/actions/runs/39272483366) на `674bb809f2` падал crash процесса xctest в `ConfigurationFetcherTests.testFetchAllWhenAssetsAreModifiedThenAllFetchedConfigurationsAreReturned`. Извлечённый .ips: **SIGBUS / EXC_BAD_ACCESS**, triggered stack `swift_retain → Foundation Locale.preferredLanguages → APIRequest.Headers.acceptLanguage → ConfigurationFetcher.fetch(all:)`; второй thread тоже читает Locale. Это установленное место падения, не установленная причина corruption/race и не доказательство infrastructure-only. Код Configuration/Networking не менялся. **Attempt 2 SUCCESS** без изменения binaries/source этого head. На новом `9effd97877` shared-package tests и BSK macOS/iOS unit jobs уже SUCCESS; остальные CI jobs ещё выполняются.
|
||||
**CI:** прежний failed workflow [39272483366](https://github.com/duckduckgo/apple-browsers/actions/runs/39272483366) на `674bb809f2` падал crash процесса xctest в `ConfigurationFetcherTests.testFetchAllWhenAssetsAreModifiedThenAllFetchedConfigurationsAreReturned`. Извлечённый .ips: **SIGBUS / EXC_BAD_ACCESS**, triggered stack `swift_retain → Foundation Locale.preferredLanguages → APIRequest.Headers.acceptLanguage → ConfigurationFetcher.fetch(all:)`; второй thread тоже читает Locale. Это установленное место падения, не установленная причина corruption/race и не доказательство infrastructure-only. Код Configuration/Networking не менялся. **Attempt 2 SUCCESS** без изменения binaries/source этого head. На новом `9effd97877` **все checks завершены: 43 SUCCESS / 17 SKIPPED, 0 FAILURE, 0 pending; merge state CLEAN**. Зелёные workflow: [BSK](https://github.com/duckduckgo/apple-browsers/actions/runs/39386391730), [macOS PR checks](https://github.com/duckduckgo/apple-browsers/actions/runs/39386391695), [iOS PR checks](https://github.com/duckduckgo/apple-browsers/actions/runs/39386391681), а также UI/PIR, pixel validation, SwiftLint и Danger. Итог повторно проверен по опубликованному head; 0 открытых review threads.
|
||||
|
||||
После `f08aefe1b8` GitHub не запускал checks из-за **DIRTY merge state** с текущей базой. Merge `da8e714b33` разрешил два конфликта (manager и pixel enum), сохранив обе стороны; CPM setup вынесен в `@MainActor configureCPMMonitoring()`, чтобы соблюсти strict complexity lint. Force push не использовался. Ранее существовавшие локальные Package.resolved изменения не включены в commits.
|
||||
|
||||
|
||||
Reference in new issue
Block a user