[2026-10-15] eagle: work/projects/cpm-status-2026-10-15.md
This commit is contained in:
1 parent
9cb5f8e6af
commit
e60db692b7
1 file changed
+16
@@ -183,3 +183,19 @@ multiIf(
|
||||
4. P6: существующая вкладка сохранила controller предыдущего менеджера; новый контекст видит вкладку через openTabs, но не внедряет в неё скрипты.
|
||||
|
||||
**Текущий статус:** читаю точки расширения harness; тесты и результаты ещё не получены. Контролируемая инъекция состояния будет явно отделена от естественного воспроизведения.
|
||||
|
||||
### P5/P6 — тесты добавлены, начат первый прогон
|
||||
|
||||
В `CPMReproLifecycleHypothesisTests.swift` добавлены 7 локальных XCTest-проверок, отдельный opt-in `CPM_REPRO_P5_P6=1` поверх `CPM_REPRO=1`:
|
||||
- P6: отсутствующий controller до idle; тот же случай после штатной выгрузки и после reload контекста; перенос существующего WKWebView в replacement manager с сохранением прежнего controller.
|
||||
- P5: забытая в WebKit, но оставшаяся открытой вкладка после двух idle-циклов; отсутствие runtime listener после следующего пробуждения; два здоровых документа с реальной задержкой image-subresource на 35 с; те же документы с искусственно потерянными dashboard-уведомлениями.
|
||||
|
||||
Harness позволяет отдельно выбирать controller вкладки, переносить существующую view и подавлять конкретный native method только в тестах. `CPMReproDelayedResource.swift` удерживает реальный subresource через WKURLSchemeHandler; навигационные finish-события не подделываются. Проверки требуют actual `stuck` от production monitor, полный набор диагностических признаков, content-script `initResp` для здоровых контролей и восстановление после снятия инъекции.
|
||||
|
||||
Первым запущен `testTabWithoutControllerMatchesP6BeforeIdleUnload`; пока идёт сборка, результата нет. Логи сессии: `/private/tmp/cpm-p5-p6-20261015/`. Команда сборки: `CPM_REPRO=1 CPM_REPRO_P5_P6=1 swift test --disable-automatic-resolution --filter CPMReproLifecycleHypothesisTests/testTabWithoutControllerMatchesP6BeforeIdleUnload`.
|
||||
|
||||
### Первый результат P6 до idle
|
||||
|
||||
Сборка прошла. Первый тест получил реальный `initialization_failed` и затем `stuck` с `load>view>proxy_on`, `context_loaded=true`, `tab_in_context=true`, `tab_controller_match=false`, `tab_has_ext_scripts=false`, `bg_view_alive=true`, `bg_view_creations=1`. Content marks пустые: CPM не внедрён. Новая вкладка с current controller получила `initResp` и вызвала recovery.
|
||||
|
||||
**Прогон пока красный (1 assertion):** дополнительное ожидание `network_restarted=false` не выполнено — поле true. Падения/замены Network-процесса тест не инъецирует. Проверяю холодный старт Network до контекста: recorder сравнивает PID с context-load, что может смешивать первичный запуск и замену. Результат нельзя объявлять полным совпадением всех признаков до этой проверки. Лог: `build-and-p6-before-idle.log`. SwiftLint пяти изменённых файлов прошёл с `--no-cache`, 0 нарушений; обычный режим упёрся в недоступный для записи кэш.
|
||||
Reference in new issue
Block a user