From 1d4730ab0515ffbbba1152179bbcdbf7a490cd3a Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Fri, 16 Oct 2026 00:47:48 +0600 Subject: [PATCH] [2026-10-16] eagle: work/projects/cpm-status-2026-10-15.md --- work/projects/cpm-status-2026-10-15.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/work/projects/cpm-status-2026-10-15.md b/work/projects/cpm-status-2026-10-15.md index efcd5104..1d1dc812 100755 --- a/work/projects/cpm-status-2026-10-15.md +++ b/work/projects/cpm-status-2026-10-15.md @@ -556,3 +556,16 @@ Baseline №4: настоящие HTTP navigation callbacks/native dashboard у Проверенные поля: controlled loss → `init_stage=none`; native settings delay → `received`, recovery=`failed_navigation`, `4s_to_10s`; потеря dashboard подтверждения при наличии page initResp → `response_sent`; scoped loss → actual init_failed/stuck и recovery=`later_navigation`; M4 recovery идёт after_extension_reload. При proxy off новый view не имеет readiness-параметра, CPM отвечает; при on готовность снова измеряется. Vault-обход удалён, подпись штатная. Known-failures suite начат с включённым expensive flag. Первый background-SIGKILL автоматически восстановился в том же контексте: actual page initResp + native ответ, timeline содержит died_crash/dealloc/new view. Следующий explicit reload потерял первую навигацию (`init_stage=none`, ready уже under_1s) — известная startup race A, а не доказательство неустранимого worker death. Recovery-контроль уточнён: после explicit reload дождаться production `loadEmbeddedExtensionBackgroundContent`, как уже сделано в embedded-only negative control. Исходный красный прогон сохраняется. Embedded-only cycle, first embedded install и first main-enable уже прошли; выполняется реальный WebKit load timeout. + +### Known paths: P1/P2/P6 и Network подтверждены; P5 требует повторной диагностики + +Первый `signed-known-failures.xcresult`: +- Embedded-only negative control pass 1.243 с; первая embedded install pass 11.934 с: первая навигация потеряна, view/handler/tab/scripts корректны, readiness=pending, затем CPM работает — controlled A/P4. +- First main-enable pass 9.130 с и main true→false→true pass 14.616 с: реальные AppDelegate callbacks оставляют nil/старый controller у существующих Tab; новые tabs здоровы — app-level P6. +- Frozen background **pass 68.319 с**: настоящая idle-выгрузка, SIGSTOP нового background process, WebKit error 6; `bg_load_error_after=25s_to_35s`, app_state=inactive, context_errors=`WKWebExtensionContextErrorDomain:6`, хвост содержит unresponsive/dealloc/error, creations=2. SIGCONT отправлен в defer/teardown. +- Slow idle wake **pass 50.469 с**: busy startup 8 с задан до context load; после healthy baseline/idle получены pending + timeout и поздний ответ, затем здоровая навигация. +- Network SIGKILL дал **4/4 отказавших tabs двух окон**, actual `init_stage=none`, observation=`global failure reproduced`. Первый recovery-контроль после explicit reload попал в startup race A; добавлен readiness wait, идёт повтор. +- Background SIGKILL сам восстановился (не утверждается persistent failure); первый post-reload контроль тоже попал в A; уточнён тем же readiness wait. +- Реальный shared-pinned-window close дошёл до WebKit `Tab not found` после двух здоровых idle cycles. Однако XCTest host завершился **signal INT** без финальных assertions/attachment; это пока не green app-level P5. Запущен отдельный повтор со stack sample, причина SIGINT ещё не установлена. + +Добавлен 20-й метод P3 `testLargePersistentCacheRecordsContextReloadInjectionGap`: opt-in `CPM_APP_INTEGRATION_CACHE=1`, свежие собственные UUID website/controller stores, 20k loopback cache entries, настоящий baseURL-changing reload и проверка actual no-view failure. Сборка signed успешна, strict SwiftLint всех 11 текущих изменённых Swift — 0 violations. P3 ещё не исполнялся; normal suite остаётся nonpersistent. Persistent данные удаляются WebKit API только для UUID данного теста.