[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:
1 parent
ed6b085966
commit
2b0c401b6d
3 files changed
+47
No files matched your search
@@ -6,6 +6,8 @@ tags:
|
||||
- cpm
|
||||
- status
|
||||
---
|
||||
> **Отдельная ветка P1/P2 — финал 16 Oct, 13:33 UTC.** Новый worktree `alex/cpm-fix-p1-p2` от текущего `alex/cpm-messaging-readiness-telemetry` (`01d4a0ec22`): только P1/P2-кандидаты и необходимые тесты. Новых методов **2 app + 4 unit**; **22 — полный старый research app-набор**. На новой signed app-сборке **2/2 PASS**, unit **165 PASS**, strict lint 0; те же два app-теста при выключенных flags дают ожидаемые функциональные FAIL. Текущая база использует episode contract: P2 `failed_measurement_response`, `reload_state=none`, плюс реальная доставка initResp в тот же документ без навигации. История исправленного test teardown сохранена. Коммитов нет; scratch не изменён; подробности и артефакты — в конце документа.
|
||||
|
||||
|
||||
# CPM Web Extension: единый статус, обновление 16 октября 2026
|
||||
|
||||
@@ -844,3 +846,32 @@ P2 first pass **85.234 s**, повтор **84.776 s**. Фактический re
|
||||
`enabled.xcresult`: 1 PASS / 1 FAIL. P1 PASS (49.389 с). P2 функциональные assertions прошли: реальная error 6, first-failure snapshot, восстановление native dashboard и page initResp исходного документа, `web_extension_cpm_episode(outcome=failed_measurement_response,reload_state=none)`, healthy existing tab/new tab/new window. Итоговый P2 FAIL (84.990 с) вызван штатным `TestRunHelper.swift:453` deallocation guard: оставшиеся AppKit window-chrome views. Это не зелёный app-прогон и не считается PASS.
|
||||
|
||||
Для исправления fixture добавлены локальные autoreleasepool вокруг проксируемого `collectDiagnostics` и синхронного unload/configuration teardown; deallocation guard не отключён, исключения не добавлены. `build-cleanup.log`: TEST BUILD SUCCEEDED. Повтор обоих app-тестов выполняется в `enabled-cleanup.xcresult`; результат cleanup ещё проверяется. Исходный scratch сверён с сохранёнными hash предыдущего 22/22 прогона: ни один из его файлов не изменён.
|
||||
|
||||
### Повтор app-прогона: оба положительных сценария PASS
|
||||
|
||||
`enabled-cleanup.xcresult`: **2/2 PASS, 0 skips, 0 failures**, exit 0. P2 84.950 с; P1 49.376 с. Штатные deallocation checks включены и прошли после локальных autoreleasepool в fixture. Production-код с момента успешных 165 unit-тестов не менялся. P2 evidence содержит actualBackgroundLoadError `[6]`, failed first probe, healthy existing/new-window/new-tab probes, terminal `failed_measurement_response` / `reload_state=none`; отдельные assertions проверяют доставку page initResp тому же исходному документу до следующей навигации и тот же context object. P1 evidence: healthy baseline и первый document после idle wake, no failures/episodes. Strict verification финальных app debug dylib и загружаемого XCTest bundle также PASS.
|
||||
|
||||
SwiftPM автоматически обновил только package-local content-scope-scripts pin 17.27→17.29 (текущий base `BrowserServicesKit/Package.swift` уже требует exact 17.29 и workspace lock уже имеет 17.29). Этот побочный diff сохранён как `swiftpm-generated-pins.diff` и отменён только в новом worktree; зависимостей в итоговом изменении нет. Baseline ZIP и все исходники финальной сборки сверены по `cleanup-source-hashes.json`: drift отсутствует.
|
||||
|
||||
Отрицательный контроль на тех же бинарниках выполняется в `disabled.xcresult`, с единственной дополнительной test-env переменной `CPM_APP_INTEGRATION_DISABLE_P1_P2_FIXES=1`. Финальный итог контроля будет записан отдельно.
|
||||
|
||||
### Финальный итог отдельной ветки P1/P2 — 16 октября 2026, 13:33 UTC
|
||||
|
||||
**Готово без коммитов:** `/Users/admin/DuckDuckGo/apple-browsers.git/alex/cpm-fix-p1-p2`, branch `alex/cpm-fix-p1-p2`, HEAD/base `01d4a0ec22b4702ca9f9ea37757e060772ec7fa9` из `alex/cpm-messaging-readiness-telemetry`. Шесть новых методов: **2 app + 4 lifecycle unit**, не 22; остальные 20 исследовательских app-кейсов оставлены в исходном worktree.
|
||||
|
||||
| Проверка этой ветки | Результат | Артефакт |
|
||||
|---|---|---|
|
||||
| Signed app: P2 same-document recovery | PASS, 84.950 с | `enabled-cleanup.xcresult` |
|
||||
| Signed app: P1 first document after slow wake | PASS, 49.376 с | `enabled-cleanup.xcresult` |
|
||||
| Lifecycle (включая 4 новых и существующие navigation-gate проверки) | 31 PASS, 0 skips | `unit.log` |
|
||||
| Существующие manager / background-load / health-monitor tests | 134 PASS, 0 skips | `unit-related.log` |
|
||||
| Те же бинарники, P2 recovery flag OFF | Ожидаемый functional FAIL, 104.468 с: timeout same-document recovery после реальной error 6 | `disabled.xcresult` |
|
||||
| Те же бинарники, P1 gate flag OFF | Ожидаемый functional FAIL, 49.933 с: нет своевременных native dashboard/page initResp, есть first failure | `disabled.xcresult` |
|
||||
| Strict SwiftLint | 14 Swift-файлов, 0 violations | `lint-final.log` |
|
||||
| Project registration | plutil PASS; 5 файлов по одному разу в каждом из двух Integration Tests targets | `project.pbxproj` |
|
||||
|
||||
Итог положительного app-прогона **2/2 PASS**, unit **165/165 PASS**. Отрицательные контроли намеренно обычные красные XCTest runs, `expectedFailures=0`: это проверка чувствительности функциональных assertions, а не инфраструктурное падение. Deallocation checks в финальном положительном прогоне прошли; первая ошибка cleanup сохранена выше как история. Проверки выполнены на текущей базовой episode-телеметрии, без переноса старых pixel cases или более поздних baseline/init-progress слоёв.
|
||||
|
||||
Все артефакты: `/private/tmp/cpm-p1-p2-clean-20261016/`; машинная сводка `validation-summary.json`, source hashes `cleanup-source-hashes.json`, JSON evidence в `enabled-cleanup-evidence/` и `disabled-evidence/`. Все 18 зафиксированных файлов (включая unchanged ZIP) неизменны во время финальных прогонов. Исходный scratch также сверён с hash прежнего 22/22 прогона: изменений нет. HEAD не сдвинут, commitsCreated=0, generated package pin diff убран из новой ветки.
|
||||
|
||||
Границы доказательства сохранены: P1 проверяет imposed 8 s worker start при gate cap 5 s; P2 — реальную error 6 на macOS с одним начальным window/tab и остановкой только своего PID. Естественный триггер в затронутых production-сессиях и поведение iOS suspension/resume этим не доказаны; отдельный resume recovery не добавлен. P3/P5 и другие research-сценарии не включены в чистую ветку и их прежние ограничения не сняты.
|
||||
Reference in new issue
Block a user