[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:
Alexey Martemyanov committed 2026-10-16 20:42:17 +06:00
1 parent e23f74ef2c
commit 4ea350e1cc
3 files changed
+33

No files matched your search

@@ -184,3 +184,14 @@ P1 prepares background on each main-frame web navigation with a real 5 s bound/c
Contract regression default — **4500 ms** worker delay при прежнем **5 s** cap, строгие native dashboard + page initResp assertions. **4/4 app PASS**, install/upgrade **10/10 + 10/10 PASS**, **170 PASS** unit, lint 16 files / 0 violations; iOS shared module SDK build PASS. На той же сборке gate/recovery OFF дают **4/4 ожидаемых функциональных FAIL**, без teardown errors. Это не новые unique cases: повторяются 2 метода; всего в ветке 4 app + 9 новых unit methods.
Граничная конфигурация **5000 ms** через `CPM_APP_INTEGRATION_INSTALL_DELAY_MS` сохраняет известный failure: реальные WK callbacks 5.150336/5.184716 s приходят после cap, upgrade ранее FAIL 6/10. Этот режим не исправлен, timeout не увеличен, assertions не ослаблены. Реальный iOS app suspension/resume не запускался. Все результаты, включая красную историю: `/private/tmp/cpm-p1-p2-replacement-20261016/validation-summary.json`, [[cpm-status-2026-10-15]]. Source hashes стабильны, ZIP/schema/dependencies и scratch не изменены, коммитов нет.
## Дополнение: late background recovery — 16 октября 2026, работа продолжается
По запросу сначала сохранён прежний проверенный стейт: commit `dff29dfb1e` (`Fix CPM background wake and installation readiness`) в `alex/cpm-fix-p1-p2`. Предыдущие утверждения «коммитов нет» относятся к проверке до этого checkpoint. Новые изменения пока не закоммичены.
Добавлен кандидат восстановления потерянного первого документа при startup за пределами 5 s: отдельный remote flag `webExtensions.cpmLateBackgroundDocumentRecovery`, default disabled. Navigation cap остаётся 5 s. Кандидат привязывает документ к конкретному unfinished startup, требует настоящий missing-dashboard timeout и успешный public WK background callback; после этого допускает одну GET-перезагрузку в пределах 30 s от старта. Смена/закрытие/ошибка документа, context replacement, background app state, выключение flag, изменённые form fields/contenteditable/loading document отменяют reload. Логика независима от diagnostics flag.
Пять новых dailyAndCount pixels различают install readiness, upgrade readiness, idle background wake, error-6 background retry и late document reload. `background_ready` — факт успешного WK callback после использованного navigation wait (для error-6 retry — любого успешного retry), не доказательство initResp; `reload_started` — принятый WK reload; `response_received` — однозначно атрибутированный dashboard response после reload, не ACK content script. App tests отдельно требуют настоящий page initResp. macOS names заканчиваются `_macos`, iOS — стандартные platform/form-factor suffixes. Только outcome, appVersion и стандартные platform parameters, без URL/tab ID/form values/raw error.
На данном этапе: targeted unit suite **178 PASS**, strict lint **17 Swift / 0 violations**, pixel definitions + wide-event consistency/immutability validators обеих платформ PASS. Подписанная app-сборка и реальные install/upgrade 8000 ms regression runs ещё не завершены; over-budget failure пока НЕ объявлен исправленным. Новые артефакты: `/private/tmp/cpm-late-recovery-20261016/`.
+11
View File
@@ -944,3 +944,14 @@ Negative controls конкретно: P2 — timeout ожидания восст
**Сохранённое ограничение:** исходный gate cap не увеличен, 5 s. Искусственная 5000 ms startup-пауза вместе с overhead WebKit даёт callbacks 5.150336/5.184716 s уже после release; upgrade в этом режиме ранее потерял первый ответ в 6/10. Этот конкретный over-budget режим **не исправлен** и не считается PASS. Он воспроизводится через `CPM_APP_INTEGRATION_INSTALL_DELAY_MS=5000`; строгие contract regression cases используют 4500 ms, а bounded/cancellation unit cases отдельно требуют release без callback. Натуральный production trigger и реальный iOS suspension/resume не доказаны этими macOS тестами.
Артефакты: `/private/tmp/cpm-p1-p2-replacement-20261016/validation-summary.json`, `final-source-hashes.json`, `enabled-final-evidence/`, `disabled-final-evidence/`, `install-upgrade-final-repeat-evidence/`, все первоначальные failing/timing runs. Всего в ветке **4 новых app + 9 новых unit methods**; прежние 22 research app-кейса остаются отдельно. Хэши финальных исходников не изменились во время всех финальных прогонов; bundled ZIP равен HEAD; исходный scratch сверён с прежними hash и не изменён. Побочный generated package pin diff сохранён/убран. HEAD не сдвинут, commitsCreated=0.
## Дополнение: late background recovery — 16 октября 2026, работа продолжается
По запросу сначала сохранён прежний проверенный стейт: commit `dff29dfb1e` (`Fix CPM background wake and installation readiness`) в `alex/cpm-fix-p1-p2`. Предыдущие утверждения «коммитов нет» относятся к проверке до этого checkpoint. Новые изменения пока не закоммичены.
Добавлен кандидат восстановления потерянного первого документа при startup за пределами 5 s: отдельный remote flag `webExtensions.cpmLateBackgroundDocumentRecovery`, default disabled. Navigation cap остаётся 5 s. Кандидат привязывает документ к конкретному unfinished startup, требует настоящий missing-dashboard timeout и успешный public WK background callback; после этого допускает одну GET-перезагрузку в пределах 30 s от старта. Смена/закрытие/ошибка документа, context replacement, background app state, выключение flag, изменённые form fields/contenteditable/loading document отменяют reload. Логика независима от diagnostics flag.
Пять новых dailyAndCount pixels различают install readiness, upgrade readiness, idle background wake, error-6 background retry и late document reload. `background_ready` — факт успешного WK callback после использованного navigation wait (для error-6 retry — любого успешного retry), не доказательство initResp; `reload_started` — принятый WK reload; `response_received` — однозначно атрибутированный dashboard response после reload, не ACK content script. App tests отдельно требуют настоящий page initResp. macOS names заканчиваются `_macos`, iOS — стандартные platform/form-factor suffixes. Только outcome, appVersion и стандартные platform parameters, без URL/tab ID/form values/raw error.
На данном этапе: targeted unit suite **178 PASS**, strict lint **17 Swift / 0 violations**, pixel definitions + wide-event consistency/immutability validators обеих платформ PASS. Подписанная app-сборка и реальные install/upgrade 8000 ms regression runs ещё не завершены; over-budget failure пока НЕ объявлен исправленным. Новые артефакты: `/private/tmp/cpm-late-recovery-20261016/`.
@@ -272,3 +272,14 @@ Worktree `cpm-e2e-init`, HEAD всё ещё `46f25175c7c42766cab23ea39f447f075c7
Финальная валидация: общий signed app **4/4 PASS**; install/upgrade **10/10 + 10/10 PASS** на той же сборке; targeted unit **170 PASS**, strict lint 16 files / 0 violations; WebExtensions generic iOS Simulator module **BUILD SUCCEEDED**. Все 4 disabled-flag controls функционально FAIL без teardown errors. Коммитов и изменений scratch/ZIP/schema/dependencies нет.
Локальные `[CPM Background]` logs показывают медленный WK callback (>=1 s) и release gate по deadline. Они подтвердили предел: fixture 5000 ms даёт фактическую готовность после 5 s cap и может потерять первый upgrade document (6/10 ранее). Этот over-budget режим не исправлен и сохраняется через `CPM_APP_INTEGRATION_INSTALL_DELAY_MS=5000`; здоровые contract regression cases проверяют 4500 ms. Это не доказательство всех natural production causes и не реальный iOS suspension/resume run. Артефакты и история: `/private/tmp/cpm-p1-p2-replacement-20261016/validation-summary.json`, [[cpm-status-2026-10-15]].
## Дополнение: late background recovery — 16 октября 2026, работа продолжается
По запросу сначала сохранён прежний проверенный стейт: commit `dff29dfb1e` (`Fix CPM background wake and installation readiness`) в `alex/cpm-fix-p1-p2`. Предыдущие утверждения «коммитов нет» относятся к проверке до этого checkpoint. Новые изменения пока не закоммичены.
Добавлен кандидат восстановления потерянного первого документа при startup за пределами 5 s: отдельный remote flag `webExtensions.cpmLateBackgroundDocumentRecovery`, default disabled. Navigation cap остаётся 5 s. Кандидат привязывает документ к конкретному unfinished startup, требует настоящий missing-dashboard timeout и успешный public WK background callback; после этого допускает одну GET-перезагрузку в пределах 30 s от старта. Смена/закрытие/ошибка документа, context replacement, background app state, выключение flag, изменённые form fields/contenteditable/loading document отменяют reload. Логика независима от diagnostics flag.
Пять новых dailyAndCount pixels различают install readiness, upgrade readiness, idle background wake, error-6 background retry и late document reload. `background_ready` — факт успешного WK callback после использованного navigation wait (для error-6 retry — любого успешного retry), не доказательство initResp; `reload_started` — принятый WK reload; `response_received` — однозначно атрибутированный dashboard response после reload, не ACK content script. App tests отдельно требуют настоящий page initResp. macOS names заканчиваются `_macos`, iOS — стандартные platform/form-factor suffixes. Только outcome, appVersion и стандартные platform parameters, без URL/tab ID/form values/raw error.
На данном этапе: targeted unit suite **178 PASS**, strict lint **17 Swift / 0 violations**, pixel definitions + wide-event consistency/immutability validators обеих платформ PASS. Подписанная app-сборка и реальные install/upgrade 8000 ms regression runs ещё не завершены; over-budget failure пока НЕ объявлен исправленным. Новые артефакты: `/private/tmp/cpm-late-recovery-20261016/`.