[2026-10-16] 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-16 18:25:13 +06:00
1 parent f684e6a9cc
commit 4416d5435e
3 files changed
+28

No files matched your search

@@ -225,3 +225,18 @@ App harness isolation follow-up: extension resources now use an owned UUID direc
16 Oct clarification/rerun: all 20 current app methods passed again in 18+1+1 groups, same signed build and source hashes; `/private/tmp/cpm-app-integration-20261015/rerun-failed-20261016-042858/rerun-summary.json`. This is an instrumented app-test environment, not an unchanged shipping binary. P1/P2 delay/SIGSTOP and message/native/dashboard loss are imposed faults; P5/P6/Network use real lifecycle paths but their production occurrence/causal attribution is a separate claim. Old long P5 is still outside the verified app scope; P3 remains unreproduced. Cache teardown has a recorded nonfatal SQLite warning. Submodules are not required by these CPM cases: privacy-reference-tests resources map to Unit Tests targets, SnapshotReferences to snapshot testing support, not XCUI accessibility snapshots. Neither submodule was initialized or modified by this rerun.
## Локальный кандидат P1/P2 — 16 октября 2026 (без commits)
Worktree `cpm-e2e-init`, HEAD всё ещё `46f25175c7c42766cab23ea39f447f075c7bdd24`. Эта секция дополняет прежнюю карту: #7379 не изменялся, новая работа пока только локальная.
- `WebExtensionLifecycleCoordinator.initialLoadWaiter`: после launch gate проверяет подготовку background на каждом HTTP(S) main-frame navigation. Await ограничен прежними 5 s и отменой navigation; AsyncStream позволяет освободить navigation даже при callback WebKit, игнорирующем cancellation. Жизненный цикл load/sync этим не блокируется.
- `WebExtensionManaging.prepareEmbeddedBackgroundForNavigation`: новый protocol hook с no-op default для лёгких conformers. Реализация — `WebExtensionManager.swift`, без нового project file.
- `WebExtensionManager.loadEmbeddedExtensionBackgroundContent`: публичный callback API + одна shared startup task на текущий context. Error notification завершает/очищает старую readiness task, чтобы новая попытка не приклеилась к завершённому старому startup.
- `WebExtensionManager.recoverEmbeddedBackgroundLoadFailure`: собственный текущий embedded context, настоящий domain/code 6, существующий recovery kill switch, known app_state != background, отсутствие M4 in-progress и cooldown 60 s. **Повторяется только background load; context/Tab/controller не заменяются.** Полный M4 reload остаётся при confirmed stuck. Старый full-context P2 prototype отброшен: он терял page initResp в existing tab при повторе.
- `CPMAppKnownFailureIntegrationTests.testSlowBackgroundWakeKeepsFirstNavigationHealthy`: actual idle + 8 s worker delay, первый документ получает native+page без detector failure.
- `...testFrozenBackgroundRecoversAutomaticallyForNextNavigation`: actual one-tab idle wake, owned SIGSTOP 45 s, настоящий error 6. Требует native+page на **том же failed document до новой navigation**, тот же объект context и recovery_document=failed_navigation; затем healthy existing/new-window/new-tab.
- Raw P1 и P3 characterization отключают navigation gate; P5 остаётся с gate включённым и ожидает bucket bg_view_creations=3_to_5: подготовка P1 создаёт дополнительный background перед rejected unknown-tab message. P5 tab-registration loss и healthy controls по-прежнему проверяются.
Артефакты и snapshots: `/private/tmp/cpm-p1-p2-fixes-20261016/`. `before-changes.tar.gz` сохраняет прежние dirty changes; `point-fixes.diff` предназначен для delta этой работы. Начальный background-only result — 2/2 PASS, пакет 806/14 skipped/0 failures. Общий run/negative controls/P5/cache ещё выполняются; окончательный исход — в [[cpm-status-2026-10-15]]. Зелёный случай относится к macOS с imposed timing/process faults; natural iOS cause по-прежнему не доказан.