[2026-10-30] eagle: work/projects/CPM Breakage Testing Steps.md work/projects/cpm-post-release-analysis-2026-10-27.md work/projects/cpm-status-2026-10-15.md work/projects/cpm-web-extension-breakage-findings.md work/projects/cpm-web-extension-breakage-validation.md work/projects/cpm-web-extension-code-guide-2026-10-09.md
This commit is contained in:
1 parent
449c867f90
commit
203852d638
6 files changed
+98
-3
No files matched your search
@@ -1,8 +1,47 @@
|
||||
---
|
||||
updated: '2026-10-20'
|
||||
updated: '2026-10-30'
|
||||
---
|
||||
# CPM episode telemetry — testing steps
|
||||
|
||||
## Error-6 restart — PR 7730 (30 October 2026)
|
||||
|
||||
Current production PR: [#7730](https://github.com/duckduckgo/apple-browsers/pull/7730), **`cf668e2938`**, OPEN and not shipped. Review harness: `codex/cpm-error6-restart-harness` at **`5348c7254e`**, production code identical to the PR; its extra fixtures are outside main and production CI. Use a clean, isolated macOS checkout with the repository's Xcode toolchain.
|
||||
|
||||
1. Fetch and select the harness:
|
||||
```sh
|
||||
git fetch origin
|
||||
git switch --detach origin/codex/cpm-error6-restart-harness
|
||||
```
|
||||
2. Disable only retained-view restart:
|
||||
```sh
|
||||
CPM_REPRO=1 CPM_REPRO_RESTART=0 swift test \
|
||||
--package-path SharedPackages/WebExtensions \
|
||||
--filter CPMReproError6RestartTests/testRetainedError6RestartRestoresMessaging
|
||||
```
|
||||
Expected **functional FAIL**: `enabled=false error6=true retained=true`, original document timeout, nonempty `lost`, `restarts=0 responses=0`; existing M4 eventually repairs messaging. Setup errors, skips or absence of the injected real error are not valid negative controls.
|
||||
3. Enable restart on the same binary:
|
||||
```sh
|
||||
CPM_REPRO=1 CPM_REPRO_RESTART=1 swift test \
|
||||
--package-path SharedPackages/WebExtensions \
|
||||
--skip-build \
|
||||
--filter CPMReproError6RestartTests/testRetainedError6RestartRestoresMessaging
|
||||
```
|
||||
Expected **PASS**: `enabled=true error6=true retained=true`, original document gets an attributed dashboard response **and actual page initResp**, `lost=[] restarts=1 responses=1`, two later ordinary idle/wake cycles answer.
|
||||
4. Return to production:
|
||||
```sh
|
||||
git switch --detach origin/alex/cpm-error6-restart
|
||||
```
|
||||
|
||||
The last completed same-binary real-WebKit OFF/ON used **production `d1a2e1de65`**, not the latest head. The fixture branch is now synchronized for reviewers to rerun. This injected worker-start exception validates the retained-view mechanism; it does not establish the natural production trigger or physical iOS suspension behavior.
|
||||
|
||||
Permanent tests in the PR cover new/historical/equal errors, healthy replacements, weak ownership, foreground/wake, runtime kill switches, queued newer errors, automatic cooldown expiry and expiry in background. Telemetry tests cover success vs background_ready, measured/unobserved deadlines, suspension, supersession, reload failure/timeout and embedded upgrades. Same-identifier loaded and another extension type must not supersede an active observation. These tests run in ordinary PR CI; the optional slow fault-injection harness does not.
|
||||
|
||||
Latest local package result: **1064 PASS**; final source review with eight temporary probes: **1072 PASS**, no important findings. The temporary probes were removed. Treat `background_ready` only as a stage, not messaging success. Evaluate `web_extension_cpm_background_load_restart` using **count** rows; daily deduplication is by name. No response by deadline or a missing terminal row after process exit does not prove permanent breakage.
|
||||
|
||||
Full contract and evidence: [[cpm-status-2026-10-15#Error-6 restart — PR 7730]].
|
||||
|
||||
## Historical episode-telemetry scope — 20 October 2026
|
||||
|
||||
Verified against #7376 **`5d1cb4abd2`**, 20 October 2026. These expectations apply to that published branch; the PR is closed without merge. The macOS counterpart #7484 still has the earlier `was_stuck` contract. Full values and limitations: [[cpm-pr0-episode-telemetry-summary-2026-10-16]].
|
||||
|
||||
Use an isolated test profile and filter the Xcode console by `PixelKit` and `CPM Health Monitor`. Finish each episode before starting the next case. In production, the first completed episode per day sends `web_extension_cpm_episode_daily` and `_count` with the same payload; subsequent episodes send count only, across every reason/outcome. PixelKit dry-run logs instead of sending and compresses daily deduplication to two minutes, so a five-minute case may cross that boundary.
|
||||
|
||||
Reference in new issue
Block a user