diff --git a/work/projects/cpm-status-2026-10-15.md b/work/projects/cpm-status-2026-10-15.md index e066b0df..476dfd10 100755 --- a/work/projects/cpm-status-2026-10-15.md +++ b/work/projects/cpm-status-2026-10-15.md @@ -514,3 +514,13 @@ Strict SwiftLint запускался для восьми перечисленн Выбран `cpm-e2e-init` (HEAD `46f25175c7c42766cab23ea39f447f075c7bdd24`): здесь уже PR0/baseline/init_stage и изменённый до этой работы JS bundle для init-progress. Существующие dirty bundle и SPM harness сохраняются. Новый слой — macOS app-hosted `Integration Tests`, реальный DuckDuckGo.app/AppDelegate/Tab/MainWindowController, production navigation/native/diagnostics. Это отличается от прежнего standalone SPM harness с собственными window delegates. Планируется отдельная схема без destructive UI-scheme clean-app pre-action. Внешние сервисы/config и pixel transport изолируются, production monitor/navigation callbacks вручную не подделываются. Естественные P5 shared-window / условный P6 flag / process failure и controlled diagnostic scopes будут явно различаться. Начата предварительная сборка в `/private/tmp/cpm-app-integration-20261015/`; результатов новых integration tests пока нет. + +### App integration: реализация, 16 октября + +В `cpm-e2e-init/macOS/IntegrationTests/CPM/` добавлены app-hosted harness и отдельные методы для slow HTTP, slow native settings (`received` → recovery), одной потерянной навигации, persistent one-tab, нескольких tabs одного окна, всех окон и dashboard-transport negative control (`initResp` получен, detector timeout). Естественные/условные пути вынесены в `CPMAppKnownFailureIntegrationTests`: реальные AppDelegate flag callbacks, shared pinned window close, process termination, первая embedded install, slow wake, opt-in 30s WebKit timeout. + +Тесты используют реальные `Tab`, `MainWindowController`, `WindowsManager`, macOS provider/native handler/delegate, navigation callbacks и системный WebKit. Monitor events вручную не вызываются. `CPM Integration Tests.xcscheme` не содержит pre/post actions для очистки Review или `killall tests-server`; тесты запускаются только при explicit opt-in и не параллельно. Собственные HTTP listener на loopback, временная распакованная extension copy, in-memory installation store, nonpersistent WebKit data store и recorder transport. Существующий dirty ZIP не менялся этой работой. + +Минимальные seams: DEBUG-only AppDelegate factory, доступная лишь в `.integrationTests` при `CPM_APP_INTEGRATION=1`; необязательная `controllerConfiguration` у shared manager для изоляции data store (default production прежний). Контролируемые scoped faults меняют доставку настоящих autoconsent messages в extracted test copy; они не являются доказательством естественной причины production-событий. + +Xcode bootstrap: исходный frozen lockfile отсутствовал на workspace-level; resolver подготовил зависимости. Попытка ad-hoc build упёрлась в provisioning app/VPN/helpers; начата unsigned build. В sandbox Xcode ошибочно объявлял существующий workspace не-workspace из-за доступа к build services, повтор выполняется с разрешённым доступом. Strict SwiftLint новых 6 Swift + 2 seams: 0 violations (`--no-cache`). Исполнение новых integration tests ещё не подтверждено; результаты будут дописаны после сборки.