[2026-10-16] eagle: work/projects/cpm-status-2026-10-15.md

This commit is contained in:
Alexey Martemyanov committed 2026-10-16 18:15:06 +06:00
1 parent 7d5e5ee141
commit 328e56026e
1 file changed
+10
+10
View File
@@ -766,3 +766,13 @@ P2 реализация уточнена: manager наблюдает публи
`fixed-page-ack.xcresult`: **P2 PASS, 85.562 s**, 1/1, 0 failures/skips/expected failures. Exported evidence: `fixed-page-ack-evidence/755EA182-FC24-479A-95B5-CFF1493D0404.json`. Реальный error 6 записан до recovery: context_errors=WKWebExtensionContextErrorDomain:6, bg_load_error_after=25s_to_35s, app_state=inactive, view_creations=2, view_alive=false. Первая fault-navigation: native=false/page=false, 1 initialization failure. После автоматического reload, без явного test reload: **existing tab native=true/page=true, 0 failures**; новое окно и новая tab также native=true/page=true, 0 failures. Existing-tab probe занял 0.149 s: сам по себе этот повтор не доказывает, что предыдущий page-negative был только недостаточными 150 ms; intermittent/order-dependent delivery остаётся причиной дополнительной проверки повторяемости.
Сборка `build-page-ack.log` — project signing defaults, TEST BUILD SUCCEEDED; подписи app dylib/XCTest проверены, bundled ZIP сохранён с исходным SHA-256 `4254967bb447aa45deb371b26fea1dd93850a8e6a654f8ebecd70fccc3859936`. Начат общий прогон оставшихся 19 app methods на этой же сборке (новый P1 включён, P2 уже проверен отдельно, P5/cache отдельно). Контроль с выключенными фиксами и итоговая полная матрица пока не завершены. HEAD не изменился, commits/PR изменений нет.
### Повтор выявил нестабильность полного P2 reload; кандидат изменён
`p2-repeat.xcresult`: **FAIL 90.533 s**. Настоящий error 6 и автоматический reload опять произошли, но existing tab снова имел native=true/page initResp=false, уже после bounded 2 s ожидания. Значит, первый зелёный `fixed-page-ack` не доказывал устойчивость: **полный context reload как готовый фикс P2 отклонён**. Проверка page receipt не ослабляется.
Новый P2 кандидат: после ошибки **повторить только `loadBackgroundContent` с сохранением WKWebExtensionContext**, чтобы не инвалидировать ожидающий ответ исходного content script. Pending readiness очищается по реальному error notification до повторного API-вызова, иначе новая попытка могла бы присоединиться к уже завершённой старой задаче. Существующий M4 full reload остаётся fallback для confirmed stuck; kill switch/cooldown/own-current-context checks сохранены. Новый regression требует **native dashboard и page initResp на том же failed document до любой новой навигации**, тот же объект context, recovery_document=failed_navigation; затем проверяет обычные следующие/new-window/new-tab навигации. Идёт пересборка, зелёного результата для этого кандидата пока нет.
`pinned.xcresult`: один assertion FAIL: bg_view_creations ожидался 2, стал 3_to_5. Остальные P5 assertions (реальная потеря tab registration, controller match, lost navigation и healthy controls) прошли. Причина дополнительного view установлена по коду: новый P1 явно будит background **перед** тем, как WebKit отвергает сообщение неизвестной pinned tab. Для включённого navigation gate актуализирован строгий ожидаемый bucket на 3_to_5; сам сбой не спрятан и не исправлен этим изменением.
`cache.xcresult`: **PASS 45.702 s**, P3 по-прежнему не воспроизведён. В teardown снова есть nonfatal libsqlite3 `vnode unlinked while in use` для owned UUID store `71644ce9-6351-4c46-b915-825beb961ee6`, в этот раз EnhancedSecuritySites.db. Это отдельное ограничение cleanup, не зелёная проверка целостности SQLite и не сбой CPM assertion. Исторические прогоны и warning сохранены.