[2026-10-16] eagle: work/projects/cpm-readiness-telemetry-tech-design-2026-10-15.md work/projects/cpm-status-2026-10-15.md

This commit is contained in:
Alexey Martemyanov committed 2026-10-16 10:34:29 +06:00
1 parent 1c997a8587
commit 40d4dfd62c
2 files changed
+17 -1

No files matched your search

@@ -1,3 +1,5 @@
> **Interpretation clarification — 16 Oct.** The 20 passing app methods do **not** mean all production-data cases except P3 were reproduced. P1/P2 use injected delay/SIGSTOP; scoped message/native/dashboard loss tests are diagnostic fault injections absent from the shipping bundle. P5/P6 and Network tests exercise browser/WebKit lifecycle paths, under instrumented app-test conditions; occurrence of those exact triggers in affected production sessions remains a separate question. Even with no active scoped fault, the extracted extension carries runtime/DOM observation wrappers. Natural listener metadata loss, P5/tab=true, actual iOS lifecycle/device chains and P3 remain unresolved. The original longer app P5 did not pass and was narrowed to one failed navigation; its limit remains explicit.
> **Local app validation complete — 16 Oct 2026, 01:48 Bishkek / 15 Oct 19:48 UTC.** Twenty app-hosted methods passed with **0 failures, skips or expected failures** in three invocations of the same signed build: 18 together, P5 separately, persistent cache separately. This validates the requested slow-load, one-navigation/recovery, single-tab, several-tabs/one-window and all-windows diagnostics scenarios. Source-linked app P1/P2/P5/P6 and Network paths are covered; P3 was **not reproduced** with 20,000 cached resources, background SIGKILL self-healed, and app P5 proves one lost navigation plus controls. The earlier red joint run and long P5 attempts remain documented. See [[cpm-status-2026-10-15#Финальный app-hosted итог — 16 октября 2026]] for the full matrix, evidence and limits. No commits, PR changes or telemetry schema changes. PR/CI and production-data statements below retain their original dated provenance.
# TD: Pixel Definition: CPM Readiness Telemetry (macOS/iOS)
+15 -1
View File
@@ -11,7 +11,7 @@ tags:
Внутренний документ. **Цифры из ClickHouse, в публичные PR, комментарии и issues не переносить** (репозитории `duckduckgo/apple-browsers` и `duckduckgo/duckduckgo-privacy-extension` публичные). Заменяет заметку `cpm-telemetry-data-requirements-2026-10-15` (теперь ссылка сюда). Исторические срезы с собственными датами и знаменателями: [[cpm-web-extension-public-attribution-2026-10-05]], [[cpm-web-extension-data-analysis-summary-2026-10-08]], [[cpm-web-extension-repro-and-fix-2026-10-08]]. Актуальная карта worktree и точек входа добавлена в [[cpm-web-extension-code-guide-2026-10-09]]; её прежние разделы сохранены как карта на 9 октября.
**Дополнение 16 октября: app-hosted integration tests.** Добавлены 20 методов в `cpm-e2e-init`, схема `CPM Integration Tests`, штатная Apple Development signing, без commits. Финальный результат — **20/20 PASS в группах 18+1+1**, 0 failed/skipped/expected failures. Все результаты, включая красные совместные прогоны, отрицательный P3 и ограничение app P5, находятся в §13 и [[#Финальный app-hosted итог — 16 октября 2026]]. Финальную сводку §13 считать текущей; ранние «пока нет результатов» — сохранённая хронология. PR/CI и ClickHouse в рамках app-тестов заново не запрашивались.
**Дополнение 16 октября: app-hosted integration tests.** Добавлены 20 методов в `cpm-e2e-init`, схема `CPM Integration Tests`, штатная Apple Development signing, без commits. Финальный тестовый результат — **20/20 PASS в группах 18+1+1**, 0 failed/skipped/expected failures. **Это не «все production-кейсы кроме P3 воспроизведены»: часть методов использует явные fault injections, а все app methods — тестовое окружение и инструментированный bundle.** Связь с production-причинами доказана не для всех групп. Все результаты, включая красные совместные прогоны, отрицательный P3 и ограничение app P5, находятся в §13 и [[#Финальный app-hosted итог — 16 октября 2026]]. Финальную сводку §13 считать текущей; ранние «пока нет результатов» — сохранённая хронология. PR/CI и ClickHouse в рамках app-тестов заново не запрашивались.
**Предыдущая сверка — 15 октября, 17:26 UTC / 23:26 Бишкек.** Разделы 1–9 — сводный статус; §10–11 — сохранённая хронология экспериментов, где «пока», «не найдено» и красные ожидания относятся к моменту записи. Текущий итог всех 14 P5/P6-проверок, границы доказательства и команды — §12. PR/CI сверены read-only через GitHub; результаты локальных тестов сверены с существующими логами и исходниками, в этом документационном проходе тесты и ClickHouse-запросы заново не запускались.
@@ -702,3 +702,17 @@ Worktree `/Users/admin/DuckDuckGo/apple-browsers.git/cpm-e2e-init`, branch `scra
- Strict SwiftLint **11 Swift files: 0 violations**, `git diff --check` чистый. Прежний dirty bundle сохранён (2026.10.14, SHA-256 `4254967bb447aa45deb371b26fea1dd93850a8e6a654f8ebecd70fccc3859936`) вместе с прежними untracked SPM files. Другой remaining-failures worktree не менялся.
Повторение: схема **CPM Integration Tests** с project signing defaults; полная инструкция в `macOS/IntegrationTests/CPM/README.md`, карта файлов — [[cpm-web-extension-code-guide-2026-10-09#5. App-hosted CPM integration tests — 16 октября 2026]]. Default scheme пропускает два expensive opt-ins. Реальный timeout включать test-host env `CPM_APP_INTEGRATION_EXPENSIVE=1`. Cache выбирать **отдельным методом** с `CPM_APP_INTEGRATION_CACHE=1`, execution allowance 2400 s (count override `CPM_APP_INTEGRATION_CACHE_ENTRIES`); cache switch применяется ко всем harness instances выбранного invocation. Финальные `.xctestrun` планы сохранены в `DerivedData/Build/Products/CPM-App-Final.xctestrun` и `CPM-App-Cache.xctestrun`. PR/CI/ClickHouse snapshot выше не обновлялся этим локальным тестовым проходом.
### 16 Oct: explicit interpretation correction and requested rerun
The statement “all cases from production data reproduced except P3” is **not supported**. The 20 green methods establish their assertions, not 20 identified production causes. All run inside the actual app/system WebKit, but in an app-hosted test environment with isolated stores, mocked feature/config inputs, intercepted pixel transport and an **instrumented extracted bundle** (the runtime listener wrappers/DOM observation are present even when a scoped fault is disabled). This is not a black-box test of an unchanged shipping binary.
- P5 closure, conditional P6 flag transitions and real Network-process termination exercise actual browser/WebKit lifecycle paths. P5 app scope is one failed navigation; the original two-timeout app attempt remains unverified/red because of the DEBUG window guard. Actual main-flag transitions in the affected production sessions are not established. SIGKILL is a forced process failure, not an observation of its production trigger.
- P1 worker delay and P2 SIGSTOP reproduce a timing/timeout mechanism under imposed conditions; they do not identify why a production worker is slow/frozen. First embedded install uses the real app callback with an injected startup delay.
- Single-/multi-tab/all-window message filtering, native-method delay and dashboard suppression are explicit fault injections for diagnostics/recovery. Those injection hooks are not shipped production behavior. Matching a failure signature is not causal attribution.
- Still unproven: P3, natural listener-metadata loss, P5 with tab_in_context=true, real iOS lifecycle/device chains, and production occurrence of the P6 transition. Background SIGKILL self-healed on this WebKit.
The user requested rerunning failed selections. Current unchanged source hashes match the final prior build. Repeat launched in `/private/tmp/cpm-app-integration-20261015/rerun-failed-20261016-042858/`: the prior red shared selection of 18 methods, current one-navigation P5 method, and current persistent-cache method. Historical removed unsigned/bootstrap variants and the old longer P5 source are **not** being presented as rerun/fixed. Results pending; no source or submodule changes.
Submodule source check: `.gitmodules` lists SnapshotReferences and privacy-reference-tests, both uninitialized here. SnapshotTestingSupport resolves its image/data references under SnapshotReferences; privacy-reference-tests is used by BrowserServicesKit reference tests and is listed in Xcode resource phases. No direct reference to either exists in the new CPM integration files. These app integration runs are not the macOS/XCUI scheme; that scheme's Review cleanup pre-action is not invoked.