[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 20:16:37 +06:00
1 parent 0fd495b288
commit 5e0ea2a5a1
3 files changed
+7 -7

No files matched your search

@@ -3,7 +3,7 @@ updated: '2026-10-20'
---
# TD: Pixel Definition: CPM Readiness Telemetry (macOS/iOS)
> **#7379 — независимый P2 flag, 20 октября 2026:** production `55a42802a6`, harness `a6e6835a5f`; новый `webExtensions.cpmBackgroundLoadRecovery` **default ON на iOS/macOS** отделяет same-context error-6 retry от `cpmMessagingHangRecovery` (full-context restart). **271 selected unit PASS**, 47 новых shared regression methods; четыре новых independence regressions дают 4 FAIL с прежними связанными проверками и PASS с новым flag. Signed macOS harness build PASS, iOS local build и CI нового head ещё выполняются/в очереди. Late GET reload по-прежнему default OFF; P4 detection независим. Подробности — в последнем разделе про independent P2 flag.
> **#7379 — независимый P2 flag, 20 октября 2026:** production `55a42802a6`, harness `a6e6835a5f`; новый `webExtensions.cpmBackgroundLoadRecovery` **default ON на iOS/macOS** отделяет same-context error-6 retry от `cpmMessagingHangRecovery` (full-context restart). **271 selected unit PASS**, 47 новых shared regression methods; четыре новых independence regressions дают 4 FAIL с прежними связанными проверками и PASS с новым flag. Signed macOS harness и полный iOS app build PASS. CI нового head: 39 SUCCESS / 13 SKIPPED / 4 IN_PROGRESS, без failures (20 октября, 14:16 UTC). Late GET reload по-прежнему default OFF; P4 detection независим. Подробности — в последнем разделе про independent P2 flag.
## Current implementation — verified 20 October 2026
@@ -626,7 +626,7 @@ Checkpoint `8a27a69776` включил эти harness fixes. Первая лок
**Регрессии:** обновлён existing runtime kill-switch test; добавлены 4 метода: actual background retry при hang recovery OFF, confirmed-hang restart при retry OFF, veto queued retry после runtime disable, и error-6 notification при retry OFF / restart ON. **271 selected CPM/lifecycle/manager PASS / 0 FAIL**; в production PR теперь **47** новых shared test methods относительно базы. Изолированный контроль с прежними `isCPMMessagingHangRecoveryEnabled()` в обоих retry guards дал **4 failed methods / 10 assertions**; исходники production для контроля не менялись.
**Платформы и CI:** strict production SwiftLint **7 files / 0 violations**, fixture lint **2 / 0**; signed macOS app + integration test build **PASS**, Apple Development / Team `HKE973VLUW`. Local iOS app build ещё выполняется. CI нового `55a42802a6` ещё выполняется/в очереди, без failures при последней проверке; прежние **43 SUCCESS / 17 SKIPPED** относятся к `9effd97877`, а не к новому flag head.
**Платформы и CI:** strict production SwiftLint **7 files / 0 violations**, fixture lint **2 / 0**; signed macOS app + integration test build **PASS**, Apple Development / Team `HKE973VLUW`. Полный local iOS app build на concrete iOS 27 simulator destination **PASS** (`ios-build-verified.log` / `ios-build-verified.xcresult`); app не запускался. Новый flag и production iOS factory также успешно компилировались для arm64 и x86_64 в первом generic build. Первый generic build остановился в существующем packaging script из-за отсутствия `TARGET_DEVICE_OS_VERSION`; concrete retry первоначально упёрся в заполненный диск. Удалены только собственные воспроизводимые compiler intermediates, app/test products и исходники сохранены; финальный concrete build успешно завершился. Промежуточный sandbox-запуск не получил доступ к Xcode simulator services; успешный финальный запуск использовал разрешённый доступ к build services. CI **точного `55a42802a6` на 20 октября, 14:16 UTC: 39 SUCCESS / 13 SKIPPED / 4 IN_PROGRESS, 0 failures**, merge state `UNSTABLE` из-за незавершённых проверок; это ещё не CI GREEN. Прежние **43 SUCCESS / 17 SKIPPED** относятся к `9effd97877`.
**Harness:** P2 метод переключает `.cpmBackgroundLoadRecovery`; `.cpmMessagingHangRecovery` остаётся false, так что P2 positive теперь отдельно проверяет retry без full restart. Negative scheme отключает новый P2 flag через прежний `CPM_APP_INTEGRATION_DISABLE_P1_P2_FIXES`; остальные controls и девять app methods сохранены. README (включая mapping P2 flag и 47 production regressions) обновлён; PR description дополнен одной строкой, существующие reviewer steps сохранены. Новый полный app ON/OFF/ON не запускался.
+3 -3
View File
@@ -11,7 +11,7 @@ updated: '2026-10-20'
> **P5 #7473 — merged 20 октября 2026, 14:17:11 Бишкек (08:17:11 UTC):** [merge `9bcce0264e`](https://github.com/duckduckgo/apple-browsers/commit/9bcce0264e60ef79b98c1b8aeb23ef9f26c45bc0) в `release/macos/1.213.0`, финальный PR head `574e9288ae`. Фикс shared-pinned window close включён по умолчанию и имеет remote failsafe. Подробности реализации, review и проверок — [[cpm-status-2026-10-15#P5 — merged 20 октября 2026]]. Merge в release branch подтверждён; публикация сборки, rollout и production effect этим не установлены. Эта сверка касается #7473.
> **#7379 — независимый P2 flag, 20 октября 2026:** production `55a42802a6`, harness `a6e6835a5f`; новый `webExtensions.cpmBackgroundLoadRecovery` **default ON на iOS/macOS** отделяет same-context error-6 retry от `cpmMessagingHangRecovery` (full-context restart). **271 selected unit PASS**, 47 новых shared regression methods; четыре новых independence regressions дают 4 FAIL с прежними связанными проверками и PASS с новым flag. Signed macOS harness build PASS, iOS local build и CI нового head ещё выполняются/в очереди. Late GET reload по-прежнему default OFF; P4 detection независим. Подробности — в последнем разделе про independent P2 flag.
> **#7379 — независимый P2 flag, 20 октября 2026:** production `55a42802a6`, harness `a6e6835a5f`; новый `webExtensions.cpmBackgroundLoadRecovery` **default ON на iOS/macOS** отделяет same-context error-6 retry от `cpmMessagingHangRecovery` (full-context restart). **271 selected unit PASS**, 47 новых shared regression methods; четыре новых independence regressions дают 4 FAIL с прежними связанными проверками и PASS с новым flag. Signed macOS harness и полный iOS app build PASS. CI нового head: 39 SUCCESS / 13 SKIPPED / 4 IN_PROGRESS, без failures (20 октября, 14:16 UTC). Late GET reload по-прежнему default OFF; P4 detection независим. Подробности — в последнем разделе про independent P2 flag.
**Сверено 20 октября 2026, 11:40–11:45 Бишкек (05:40–05:45 UTC): опубликованные heads, состояния PR, exact-head CI и исходники.** Актуальны §1–9; короткие прежние обновления перенесены в §9а, подробные журналы ниже сохраняют результаты своих дат и ревизий.
@@ -37,7 +37,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`, **`55a42802a6`** → `alex/cpm-messaging-readiness-telemetry / da8e714b33`: OPEN, **CI IN_PROGRESS/QUEUED, failures пока нет**. Добавлен independent default-enabled P2 retry flag; 271 selected unit PASS / 47 новых shared regressions. Signed macOS harness build PASS; local iOS build выполняется. Harness `codex/cpm-fix-init-loss-integration-tests / a6e6835a5f` содержит production head. Старый `9effd97877` CI 43 SUCCESS / 17 SKIPPED сохранён как история; новый полный app ON/OFF/ON не проводился.
- [#7379](https://github.com/duckduckgo/apple-browsers/pull/7379), `alex/cpm-fix-init-loss`, **`55a42802a6`** → `alex/cpm-messaging-readiness-telemetry / da8e714b33`: OPEN, **CI 39 SUCCESS / 13 SKIPPED / 4 IN_PROGRESS, 0 failures (20 октября, 14:16 UTC)**. Добавлен independent default-enabled P2 retry flag; 271 selected unit PASS / 47 новых shared regressions. Signed macOS harness и полный local iOS app build PASS. Harness `codex/cpm-fix-init-loss-integration-tests / a6e6835a5f` содержит production head. Старый `9effd97877` CI 43 SUCCESS / 17 SKIPPED сохранён как история; новый полный app ON/OFF/ON не проводился.
- [#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`, финальный head **`574e9288ae`** → **`release/macos/1.213.0`**: **MERGED 20 октября 2026, 08:17:11 UTC / 14:17:11 Бишкек**, [merge `9bcce0264e`](https://github.com/duckduckgo/apple-browsers/commit/9bcce0264e60ef79b98c1b8aeb23ef9f26c45bc0). На финальном PR head: **47 SUCCESS / 23 SKIPPED**, без failures/pending по сверке после merge; skipped entries не считаются выполненными тестами. Default-ON failsafe `webExtensionSharedPinnedTabWindowClose`. В merge только 5 production/unit-test paths; real-window fixture и его configuration hook остались локально. Подробности — [[cpm-status-2026-10-15#P5 — merged 20 октября 2026]].
@@ -1519,7 +1519,7 @@ Checkpoint `8a27a69776` включил эти harness fixes. Первая лок
**Регрессии:** обновлён existing runtime kill-switch test; добавлены 4 метода: actual background retry при hang recovery OFF, confirmed-hang restart при retry OFF, veto queued retry после runtime disable, и error-6 notification при retry OFF / restart ON. **271 selected CPM/lifecycle/manager PASS / 0 FAIL**; в production PR теперь **47** новых shared test methods относительно базы. Изолированный контроль с прежними `isCPMMessagingHangRecoveryEnabled()` в обоих retry guards дал **4 failed methods / 10 assertions**; исходники production для контроля не менялись.
**Платформы и CI:** strict production SwiftLint **7 files / 0 violations**, fixture lint **2 / 0**; signed macOS app + integration test build **PASS**, Apple Development / Team `HKE973VLUW`. Local iOS app build ещё выполняется. CI нового `55a42802a6` ещё выполняется/в очереди, без failures при последней проверке; прежние **43 SUCCESS / 17 SKIPPED** относятся к `9effd97877`, а не к новому flag head.
**Платформы и CI:** strict production SwiftLint **7 files / 0 violations**, fixture lint **2 / 0**; signed macOS app + integration test build **PASS**, Apple Development / Team `HKE973VLUW`. Полный local iOS app build на concrete iOS 27 simulator destination **PASS** (`ios-build-verified.log` / `ios-build-verified.xcresult`); app не запускался. Новый flag и production iOS factory также успешно компилировались для arm64 и x86_64 в первом generic build. Первый generic build остановился в существующем packaging script из-за отсутствия `TARGET_DEVICE_OS_VERSION`; concrete retry первоначально упёрся в заполненный диск. Удалены только собственные воспроизводимые compiler intermediates, app/test products и исходники сохранены; финальный concrete build успешно завершился. Промежуточный sandbox-запуск не получил доступ к Xcode simulator services; успешный финальный запуск использовал разрешённый доступ к build services. CI **точного `55a42802a6` на 20 октября, 14:16 UTC: 39 SUCCESS / 13 SKIPPED / 4 IN_PROGRESS, 0 failures**, merge state `UNSTABLE` из-за незавершённых проверок; это ещё не CI GREEN. Прежние **43 SUCCESS / 17 SKIPPED** относятся к `9effd97877`.
**Harness:** P2 метод переключает `.cpmBackgroundLoadRecovery`; `.cpmMessagingHangRecovery` остаётся false, так что P2 positive теперь отдельно проверяет retry без full restart. Negative scheme отключает новый P2 flag через прежний `CPM_APP_INTEGRATION_DISABLE_P1_P2_FIXES`; остальные controls и девять app methods сохранены. README (включая mapping P2 flag и 47 production regressions) обновлён; PR description дополнен одной строкой, существующие reviewer steps сохранены. Новый полный app ON/OFF/ON не запускался.
@@ -9,7 +9,7 @@ updated: '2026-10-20'
---
# CPM Web Extension — карта кода по worktree и строкам
> **#7379 — независимый P2 flag, 20 октября 2026:** production `55a42802a6`, harness `a6e6835a5f`; новый `webExtensions.cpmBackgroundLoadRecovery` **default ON на iOS/macOS** отделяет same-context error-6 retry от `cpmMessagingHangRecovery` (full-context restart). **271 selected unit PASS**, 47 новых shared regression methods; четыре новых independence regressions дают 4 FAIL с прежними связанными проверками и PASS с новым flag. Signed macOS harness build PASS, iOS local build и CI нового head ещё выполняются/в очереди. Late GET reload по-прежнему default OFF; P4 detection независим. Подробности — в последнем разделе про independent P2 flag.
> **#7379 — независимый P2 flag, 20 октября 2026:** production `55a42802a6`, harness `a6e6835a5f`; новый `webExtensions.cpmBackgroundLoadRecovery` **default ON на iOS/macOS** отделяет same-context error-6 retry от `cpmMessagingHangRecovery` (full-context restart). **271 selected unit PASS**, 47 новых shared regression methods; четыре новых independence regressions дают 4 FAIL с прежними связанными проверками и PASS с новым flag. Signed macOS harness и полный iOS app build PASS. CI нового head: 39 SUCCESS / 13 SKIPPED / 4 IN_PROGRESS, без failures (20 октября, 14:16 UTC). Late GET reload по-прежнему default OFF; P4 detection независим. Подробности — в последнем разделе про independent P2 flag.
**Проверено 20 октября 2026:** карта ниже отражает существующие worktree и опубликованные heads; старые line numbers и результаты в архивных разделах относятся к своим ревизиям. PR/CI — [[cpm-status-2026-10-15#2. PR и quality gates]]. Пользовательский dirty `Package.resolved` в telemetry worktree сохранён.
@@ -724,7 +724,7 @@ Checkpoint `8a27a69776` включил эти harness fixes. Первая лок
**Регрессии:** обновлён existing runtime kill-switch test; добавлены 4 метода: actual background retry при hang recovery OFF, confirmed-hang restart при retry OFF, veto queued retry после runtime disable, и error-6 notification при retry OFF / restart ON. **271 selected CPM/lifecycle/manager PASS / 0 FAIL**; в production PR теперь **47** новых shared test methods относительно базы. Изолированный контроль с прежними `isCPMMessagingHangRecoveryEnabled()` в обоих retry guards дал **4 failed methods / 10 assertions**; исходники production для контроля не менялись.
**Платформы и CI:** strict production SwiftLint **7 files / 0 violations**, fixture lint **2 / 0**; signed macOS app + integration test build **PASS**, Apple Development / Team `HKE973VLUW`. Local iOS app build ещё выполняется. CI нового `55a42802a6` ещё выполняется/в очереди, без failures при последней проверке; прежние **43 SUCCESS / 17 SKIPPED** относятся к `9effd97877`, а не к новому flag head.
**Платформы и CI:** strict production SwiftLint **7 files / 0 violations**, fixture lint **2 / 0**; signed macOS app + integration test build **PASS**, Apple Development / Team `HKE973VLUW`. Полный local iOS app build на concrete iOS 27 simulator destination **PASS** (`ios-build-verified.log` / `ios-build-verified.xcresult`); app не запускался. Новый flag и production iOS factory также успешно компилировались для arm64 и x86_64 в первом generic build. Первый generic build остановился в существующем packaging script из-за отсутствия `TARGET_DEVICE_OS_VERSION`; concrete retry первоначально упёрся в заполненный диск. Удалены только собственные воспроизводимые compiler intermediates, app/test products и исходники сохранены; финальный concrete build успешно завершился. Промежуточный sandbox-запуск не получил доступ к Xcode simulator services; успешный финальный запуск использовал разрешённый доступ к build services. CI **точного `55a42802a6` на 20 октября, 14:16 UTC: 39 SUCCESS / 13 SKIPPED / 4 IN_PROGRESS, 0 failures**, merge state `UNSTABLE` из-за незавершённых проверок; это ещё не CI GREEN. Прежние **43 SUCCESS / 17 SKIPPED** относятся к `9effd97877`.
**Harness:** P2 метод переключает `.cpmBackgroundLoadRecovery`; `.cpmMessagingHangRecovery` остаётся false, так что P2 positive теперь отдельно проверяет retry без full restart. Negative scheme отключает новый P2 flag через прежний `CPM_APP_INTEGRATION_DISABLE_P1_P2_FIXES`; остальные controls и девять app methods сохранены. README (включая mapping P2 flag и 47 production regressions) обновлён; PR description дополнен одной строкой, существующие reviewer steps сохранены. Новый полный app ON/OFF/ON не запускался.