diff --git a/personal/plans/balda-callee-prism-plan.md b/personal/plans/balda-callee-prism-plan.md index c45042d0..d14d52e5 100755 --- a/personal/plans/balda-callee-prism-plan.md +++ b/personal/plans/balda-callee-prism-plan.md @@ -33,7 +33,7 @@ Broker/Prism/gateway и native issuers обновлены до `rc34` из за В Broker локально и на origin только `main`. Завершённые ветки удалены по явному разрешению владельца после проверки содержимого; отсутствовавшие installer/workspace настройки перенесены до удаления. Git bundle не создавались. Планы и личные журналы убраны из tracked source и перенесены с обратным чтением в [[personal/projects/archive/execution-broker-repo-cleanup-2026-10-16/index|архив 11 документов]]. -Опубликованный Virfield `v2.1.0` установлен и выявил два fresh macOS preparation failures, оба leases released. Исправление `launchctl bootstrap` собственного GUI-agent уже в запушенном Virfield `main 2c64888`. Точный неопубликованный кандидат `v2.1.1` прошёл source/package gates и отдельную fresh VM с native GUI/Keychain/SSH; эта VM released. Полный Broker → macOS XCTest на новом комплекте ещё проверяется. Этот текущий gate не подменяется историческим успехом на `8bfff9f`. +Опубликованный Virfield `v2.1.0` установлен и выявил два fresh macOS preparation failures, оба leases released. Исправление `launchctl bootstrap` собственного GUI-agent уже в запушенном Virfield `main 2c64888`. Точный неопубликованный кандидат `v2.1.1` прошёл source/package gates и отдельную fresh VM с native GUI/Keychain/SSH; эта VM released. Полный Broker → macOS XCTest на новом комплекте завершился успешно: `run-3b679ccc08ae5aafb94643d60f0410dd`, 1/1 XCTest, настоящий xcresult, все скачанные артефакты сверены, Story closed, cleanup=done/lease released. Установленный MCP2.1.1 и нулевой active pool проверены. GitHub CI Virfield `2c64888` зелёный на macOS/Linux. Публикация готового v2.1.1 пока ожидает подтверждения; его нельзя называть опубликованным релизом. GitHub Actions Broker main не стартовал из-за account billing/spending limit; это не ошибка workflow. Локальный `make check` прошёл, удалённый CI не объявляется зелёным. Точные версии и результаты — [[personal/projects/balda/execution-broker]] и [[personal/projects/virfield]]. Приватные receipts текущей сверки: `state/main-production-sync-20261016/`. diff --git a/personal/projects/balda/execution-broker.md b/personal/projects/balda/execution-broker.md index c9ceafbe..08cce718 100755 --- a/personal/projects/balda/execution-broker.md +++ b/personal/projects/balda/execution-broker.md @@ -15,7 +15,7 @@ | Оба Balda | Чистый upstream `3a58254bb05747fdeecde070b1828e770ed589a4`, image `sha256:ee0567594b8f8422d71b3bb37aa47ef1222b089af6b24e17d50ac9c63a4ef22f`, без локальных патчей; [[personal/projects/balda/setup]] | | Linux images | Smoke `sha256:2b82611cb0f35b1be006faadcad05eed558e675576cc00ecccaeb9d43cac2f81`; OpenCode/DeepSeek `sha256:526ee8382465e8f5fe3e9c55d78b3b62dff83cc8e1085c8b6f7935d2aba7848c`; Codex `sha256:cdce756babb910ac141ad926b2297d25784532d069ec774a8321a23d4e4ecd92`; dynamic Claude `sha256:a785411160b4384887654c2179cb19d92bf9ff91e1c5f5d60ccccf8ad1c1ba87`. Во всех четырёх фактические Runner/Callee bytes сверены с latest builds | | macOS bootstrap | Все четыре profiles указывают на новые `*-rc34-13c29ac.tar.gz`; Runner/Callee hashes проверены. Provider runtimes и согласованные workflow policies сохранены | -| Virfield | Опубликованный latest — `v2.1.0`, source `9658646`. После двух fresh-VM preparation failures временно установлен исправленный **кандидат v2.1.1**, source `2c64888`, для native проверки. Он пока не опубликован; [[personal/projects/virfield]] | +| Virfield | Опубликованный latest — `v2.1.0`, source `9658646`. После двух fresh-VM preparation failures временно установлен исправленный **кандидат v2.1.1**, source `2c64888`, для native проверки. Прямой native цикл и полный Broker/XCTest завершились успешно; публикация точного пакета ожидает подтверждения владельца. Он пока не опубликован; [[personal/projects/virfield]] | | Release archives Broker | Исторически принятые `rc33` из `ae92c15` сохранены в `dist/`, четыре native targets проверены. Текущий production `rc34/13c29ac` новее; GitHub Release Broker не публиковался | Broker, gateway и workers имеют согласованные immutable pins. macOS profiles используют `macos27`; роли Codex — pack `b09f2be2`, Claude/OpenCode — собственный `1b8b5ded`. Нельзя подставлять workflow Codex в OpenCode image. @@ -28,16 +28,18 @@ Broker, gateway и workers имеют согласованные immutable pins. - Новый Claude image построен штатным resolver развёрнутого gateway; provider calls и worker start не выполнялись. Binaries всех четырёх Linux profiles совпадают с latest source builds. - Сохранены все **2277** прежних событий основного Balda, 49 session metadata/bindings, provider sessions, home volumes, environment values, config hashes и auth. Изменение порядка Env при recreate не является изменением значений. - Все три Broker credential identity остались свободными, checkpointed/unrevoked: Claude generation568, Codex172, DeepSeek217. Account login/revoke/rotation не выполнялись. -- Новый macOS run `run-aadbbadcbb508f6473a3574ae700eef3` завершился до bootstrap/workload: `guest_keychain_failed`, затем `cleanup=done`; lease released. Повторная прямая диагностика локализовала `launchctl bootstrap` собственного GUI-agent, exit5. Её private logs сохранены, диагностическая VM released. Проверка исправленного кандидата сейчас продолжается; этот failed run не считается пройденным macOS gate. +- Новый macOS run `run-aadbbadcbb508f6473a3574ae700eef3` завершился до bootstrap/workload: `guest_keychain_failed`, затем `cleanup=done`; lease released. Повторная прямая диагностика локализовала `launchctl bootstrap` собственного GUI-agent, exit5. Её private logs сохранены, диагностическая VM released. Исправленный кандидат прошёл отдельную fresh VM и новый полный Broker/XCTest run `run-3b679ccc08ae5aafb94643d60f0410dd`: 1/1 XCTest, настоящий xcresult, все заново скачанные артефакты сверены по SHA256, Story closed, cleanup=done и lease released. Исходный failed run сохранён как отказ; его тестовая Story закрыта с причиной архивирования. +- Virfield `main 2c64888` прошёл GitHub CI на macOS/Linux: race/make check/build, Staticcheck, module verify, Govulncheck и Linux gitleaks. Установленный свежий MCP сообщает 2.1.1: 20 tools/4 resources, authenticated status, девять исходных образов, ноль workers/jobs. Уже запущенные адаптеры других чатов принудительно не перезапускались. +- Финальная проверка пяти production services: точные новые image IDs и binary hashes, health200, ноль Broker runs с незавершённым cleanup; issuer generations568/172/217 сохранены. - GitHub Actions для Broker main не запустил ни одного шага: account billing/spending-limit rejection. Локальные gates прошли; удалённый CI не объявляется зелёным. -Доказательства текущего обновления: `state/main-production-sync-20261016/`: `production-deployment.json`, `prepared-deployment.json`, `all-linux-runtime-provenance.json`, `linux-worker-integration.json`, `live-baldda-mcp.json`, `virfield-candidate-upgrade.json`, `macos-readiness-diagnostic/finding.json`. +Доказательства текущего обновления: `state/main-production-sync-20261016/`: `production-deployment.json`, `prepared-deployment.json`, `all-linux-runtime-provenance.json`, `linux-worker-integration.json`, `live-baldda-mcp.json`, `virfield-candidate-upgrade.json`, `macos-readiness-diagnostic/finding.json`, `macos-candidate-production-verification.json`, `virfield-installed-mcp-2.1.1.json`, `virfield-fix-github-ci.json`, `live-final-health.json`. ## Границы приёмки Предыдущая приёмка закрыта в явном согласованном режиме **«Да, закрыть в проверенном режиме»**. Beads Story `eb-71b7971ac3fdd03b8ff6b198` и все дочерние задачи closed. Производственные Story, отмена, restart, sandbox/write denial, артефакты, controlled provider refusals и protected working-account recovery приняты в своих dated receipts. -Реальный upstream revoke рабочих авторизаций и последующий browser login исключены владельцем и остаются непроверенными. Linux provider-failure checks не доказывают macOS failure lifecycle. Новое post-upgrade macOS preparation failure явно учитывается выше; исторический успех на прежнем binary не заменяет текущую проверку. +Реальный upstream revoke рабочих авторизаций и последующий browser login исключены владельцем и остаются непроверенными. Linux provider-failure checks не доказывают macOS failure lifecycle. Post-upgrade macOS preparation failure и успешный новый XCTest на исправленном кандидате учитываются отдельно выше; исторические результаты не подменяют свежую проверку. План и решение о границах: [[personal/plans/balda-callee-prism-plan]]. Старые подробные результаты: [[personal/projects/archive/broker-before-main-deployment-2026-10-16]]. Удалённые из Git планы/журналы сохранены и сверены здесь: [[personal/projects/archive/execution-broker-repo-cleanup-2026-10-16/index]]. В product repo остаются контракты и инструкции. diff --git a/personal/projects/virfield.md b/personal/projects/virfield.md index d9de3cd8..fb454766 100755 --- a/personal/projects/virfield.md +++ b/personal/projects/virfield.md @@ -10,10 +10,14 @@ Stock v2.1.0 дважды не завершил fresh macOS lease preparation: `guest_keychain_failed`, в закрытой диагностике `launchctl bootstrap` exit5. Оба leases released. Это не потерянный source fix: встроенный keychain.sh в прежнем принятом binary и v2.1.0 совпадает побайтно; используется тот же golden `image-f11d9a1ee2991eada08c4f734c33df6d`. -Свежая VM кандидата `lease-52e620c674d514dd8c9c49880e8980f6` прошла native GUI/Keychain add-read-compare-delete, unlocked console без dialogs, 1920×1080 и отдельный pinned caller SSH. VM released, cleanup job succeeded. В этом успешном запуске bootstrap recovery branch не сработал; его прохождение подтверждено regression, а не выдано за наблюдённое на VM. Полный Broker → macOS XCTest post-upgrade прогон выполняется отдельно. +Свежая VM кандидата `lease-52e620c674d514dd8c9c49880e8980f6` прошла native GUI/Keychain add-read-compare-delete, unlocked console без dialogs, 1920×1080 и отдельный pinned caller SSH. VM released, cleanup job succeeded. В этом успешном запуске bootstrap recovery branch не сработал; его прохождение подтверждено regression, а не выдано за наблюдённое на VM. Полный Broker → macOS XCTest post-upgrade run `run-3b679ccc08ae5aafb94643d60f0410dd` завершился успешно: XCTest 1/1, настоящий xcresult, заново скачанные SHA256-проверенные артефакты, Story closed, cleanup=done и lease released. Это scripts-only проверка без provider credentials и сообщений. Доказательства: `state/main-production-sync-20261016/virfield-candidate-upgrade.json`, `virfield-fix-source-checks.json`, `virfield-exact-candidate-check.log`, `macos-fix-validation/verification.json`, `macos-readiness-diagnostic/finding.json`. +GitHub CI точного `2c64888` [успешен на macOS и Linux](https://github.com/mallexxx/virfield/actions/runs/38899141941): make check/race/build, Staticcheck, module verify, Govulncheck и Linux gitleaks. Свежий установленный MCP сообщает `2.1.1`, 20 tools/4 resources; authenticated status подтверждает девять прежних images и ноль active workers/jobs. Существующие MCP processes других чатов принудительно не переподключались. Receipts: `macos-candidate-production-verification.json`, `virfield-installed-mcp-2.1.1.json`, `virfield-fix-github-ci.json`. + +Точный пакет `virfield-v2.1.1-darwin-arm64.tar.gz` готов; SHA256 `dbafeea705241286622e773c4576baa3a623cbc143398aa7bbdddac63cb782fd`. Публикация tag/release ожидает отдельного подтверждения владельца по AGENTS.md; подготовка и все проверки завершены. + ## Историческая принятая версия Исходная приёмка VM/MCP/Broker выполнена на `0.0.0-acceptance-runbooks`, source `8bfff9f59cab918877d060437a1ad190905a5040`, schema10. Следующие результаты относятся к тому датированному контуру; они не заменяют проверку текущего кандидата. diff --git a/work/projects/cpm-readiness-telemetry-tech-design-2026-10-15.md b/work/projects/cpm-readiness-telemetry-tech-design-2026-10-15.md index d5bc83d2..5a54a750 100755 --- a/work/projects/cpm-readiness-telemetry-tech-design-2026-10-15.md +++ b/work/projects/cpm-readiness-telemetry-tech-design-2026-10-15.md @@ -1,3 +1,5 @@ +> **Final local P1/P2 validation — 16 Oct, 12:30 UTC.** Current background-only candidate: 22/22 unique app methods PASS across 2+19+1+1 runs (P2 repeated); both disabled-fix controls fail functionally. P2 restores native dashboard **and page initResp on the same failed document without navigation or context replacement**, with recovered_without_extension_reload / failed_navigation. The full-context-reload prototype was rejected after repeated page-delivery loss. Package: 806 tests, 14 skips, 0 failures; strict lint: 0 violations. No commits, PR mutations or telemetry schema changes. P1's 5 s bound, macOS injected-fault scope, unresolved natural iOS/P3/P5 limits and nonfatal owned-cache SQLite cleanup warning remain explicit in [[cpm-status-2026-10-15]]. Earlier pending/20-method statements are dated history. + > **Interpretation clarification — 16 Oct.** The 20 passing app methods do **not** mean all production-data cases except P3 were reproduced. P1/P2 use injected delay/SIGSTOP; scoped message/native/dashboard loss tests are diagnostic fault injections absent from the shipping bundle. P5/P6 and Network tests exercise browser/WebKit lifecycle paths, under instrumented app-test conditions; occurrence of those exact triggers in affected production sessions remains a separate question. Even with no active scoped fault, the extracted extension carries runtime/DOM observation wrappers. Natural listener metadata loss, P5/tab=true, actual iOS lifecycle/device chains and P3 remain unresolved. The original longer app P5 did not pass and was narrowed to one failed navigation; its limit remains explicit. > **Local app validation complete — 16 Oct 2026, 01:48 Bishkek / 15 Oct 19:48 UTC.** Twenty app-hosted methods passed with **0 failures, skips or expected failures** in three invocations of the same signed build: 18 together, P5 separately, persistent cache separately. This validates the requested slow-load, one-navigation/recovery, single-tab, several-tabs/one-window and all-windows diagnostics scenarios. Source-linked app P1/P2/P5/P6 and Network paths are covered; P3 was **not reproduced** with 20,000 cached resources, background SIGKILL self-healed, and app P5 proves one lost navigation plus controls. The earlier red joint run and long P5 attempts remain documented. See [[cpm-status-2026-10-15#Финальный app-hosted итог — 16 октября 2026]] for the full matrix, evidence and limits. No commits, PR changes or telemetry schema changes. PR/CI and production-data statements below retain their original dated provenance. diff --git a/work/projects/cpm-status-2026-10-15.md b/work/projects/cpm-status-2026-10-15.md index 79299fd3..7fe5a9af 100755 --- a/work/projects/cpm-status-2026-10-15.md +++ b/work/projects/cpm-status-2026-10-15.md @@ -9,6 +9,8 @@ tags: # CPM Web Extension: единый статус, обновление 16 октября 2026 +> **Актуальный локальный итог P1/P2 — 16 октября, 12:30 UTC / 18:30 Бишкек.** В `cpm-e2e-init` добавлены точечные production-кандидаты и две app-регрессии: **22/22 текущих app methods PASS**, 0 failed/skipped/expected failures в positive runs; P2 same-document повторён дважды. С выключенными фиксами обе новые регрессии красные по функциональным причинам. Пакет: 806 tests, 14 skipped, 0 failures; strict SwiftLint — 0 нарушений. **P2 в окончательном варианте повторяет только background load и сохраняет context; full-context prototype отвергнут как нестабильный.** Подробный итог и ограничения — раздел «Окончательный итог точечных P1/P2-кандидатов». Это macOS с управляемыми fault conditions, не доказательство natural iOS production cause. Коммитов/PR изменений нет; прежние разделы и красные прогоны сохранены. + Внутренний документ. **Цифры из ClickHouse, в публичные PR, комментарии и issues не переносить** (репозитории `duckduckgo/apple-browsers` и `duckduckgo/duckduckgo-privacy-extension` публичные). Заменяет заметку `cpm-telemetry-data-requirements-2026-10-15` (теперь ссылка сюда). Исторические срезы с собственными датами и знаменателями: [[cpm-web-extension-public-attribution-2026-10-05]], [[cpm-web-extension-data-analysis-summary-2026-10-08]], [[cpm-web-extension-repro-and-fix-2026-10-08]]. Актуальная карта worktree и точек входа добавлена в [[cpm-web-extension-code-guide-2026-10-09]]; её прежние разделы сохранены как карта на 9 октября. **Дополнение 16 октября: app-hosted integration tests.** Добавлены 20 методов в `cpm-e2e-init`, схема `CPM Integration Tests`, штатная Apple Development signing, без commits. Финальный тестовый результат — **20/20 PASS в группах 18+1+1**, 0 failed/skipped/expected failures. **Это не «все production-кейсы кроме P3 воспроизведены»: часть методов использует явные fault injections, а все app methods — тестовое окружение и инструментированный bundle.** Связь с production-причинами доказана не для всех групп. Все результаты, включая красные совместные прогоны, отрицательный P3 и ограничение app P5, находятся в §13 и [[#Финальный app-hosted итог — 16 октября 2026]]. Финальную сводку §13 считать текущей; ранние «пока нет результатов» — сохранённая хронология. PR/CI и ClickHouse в рамках app-тестов заново не запрашивались. @@ -782,3 +784,40 @@ P2 реализация уточнена: manager наблюдает публи `background-retry-points.xcresult`: **2/2 PASS**, 0 failed/skipped/expected failures. **P1 49.734 s**, **P2 85.234 s**. Для P2 теперь проверено: реальный error 6 → публичный повторный `loadBackgroundContent` → **исходный failed document получает native dashboard и page initResp до любой следующей навигации**, context object остаётся тем же. Затем существующая tab, новое окно и новая tab здоровы. Доставку не имитировали и не переинициализировали документ из теста. Фактический pixel в `background-retry-points-evidence/A7C288DA-DCCE-42DC-BC30-6E8D6865526D.json`: `debug_web_extension_cpm_messaging_recovered_without_extension_reload`, `recovery_from=initialization_failed`, `recovery_document=failed_navigation`, `recovery_after=30s_to_2m`. Это **новый кандидат**, прежний once-green full-context prototype не входит в его подтверждение. Пакет: 806 tests / 14 skips / 0 failures (`unit-package-background-retry.log`), strict lint — 0 violations. Идёт общий app-run с повтором P2, затем новые negative controls и P5/cache на этой же сборке. Окончательная source matrix пока не завершена. + + +## Окончательный итог точечных P1/P2-кандидатов — 16 октября 2026, 12:30 UTC + +**Завершено локально, без commits и PR mutations.** Worktree `/Users/admin/DuckDuckGo/apple-browsers.git/cpm-e2e-init`, HEAD `46f25175c7c42766cab23ea39f447f075c7bdd24`. Сводка: `/private/tmp/cpm-p1-p2-fixes-20261016/validation-summary.json`; отдельная delta этой работы — `point-fixes.diff`, предыдущие dirty contents — `before-changes.tar.gz`. Предыдущие tracked/untracked harnesses и dirty embedded ZIP сохранены; ZIP SHA-256 по-прежнему `4254967bb447aa45deb371b26fea1dd93850a8e6a654f8ebecd70fccc3859936`. Проверены отсутствие неожиданных изменений прежних файлов, неизменность final source hashes после сборки, normal Apple Development signing app dylib/XCTest и `git diff --check`. + +### Что реализовано + +- **P1:** перед каждым HTTP(S) main-frame navigation production coordinator через manager готовит embedded background, включая повторный wake. Shared task привязана к объекту context; навигация ждёт максимум прежние **5 s** и освобождается при cancellation, даже если WebKit не завершает callback. Остальная lifecycle chain не блокируется. Управляет существующий `webExtensionStateRestorationGate`. +- **P2:** настоящий `WKWebExtensionContext.errorsDidUpdateNotification`, own/current/embedded context и domain/code 6 запускают **один повтор `loadBackgroundContent` без смены context/Tab/controller**. Старый pending startup завершается/очищается до retry, cooldown 60 s, существующий recovery kill switch и M4 in-progress guard. При known app_state=background retry не выполняется; отдельный resume handler не добавлен. M4 full reset остаётся fallback для confirmed stuck, и не держит guard бесконечным ожиданием readiness callback. +- **P2 full-context prototype отвергнут:** после once-green результата повтор опять терял page initResp в existing tab при native dashboard=true. Эти красные результаты сохранены, а не объявлены инфраструктурными. Финальный background-only кандидат требует действительного восстановления исходного документа. +- **Harness:** bounded polling реального page initResp вместо sleep 150 ms, без подделки response/monitor events. P5 с включённым P1 ожидает дополнительный view (bucket 3_to_5), но всё ещё требует actual tab_in_context=false, controller match, failed pinned navigation и healthy regular/new-tab controls. Raw P1/P3 и fault-фаза P2 явно отключают P1 gate там, где нужно сохранить исходные условия/таймер. + +### Проверенная матрица окончательного исходника + +| Run (`.xcresult` в общей папке) | Итог | Что доказывает | +|---|---|---| +| `background-retry-points` | **2/2 PASS**, 0 skips/expected failures | P1 first document после idle+8 s startup здоров; P2 error 6 → native+page ответ на том же failed document до новой navigation и без context replacement | +| `background-retry-regression` | **19/19 PASS**, 0 skips/expected failures | Все 10 core diagnostics/scopes, известные lifecycle/flag/Network/background paths; P2 same-document повторно PASS **84.776 s** | +| `background-retry-pinned` | **1/1 PASS, 75.409 s** | Реальный P5 browser→WebKit tab-registration failure с актуальным bg-view bucket; one failed navigation + healthy controls | +| `background-retry-cache` | **1/1 PASS, 61.906 s** | 20,000 actual cache responses/records; fill **55.918 s**, reload→probe **2.149 s**, `p3NoBackgroundFailure=false` | +| `background-retry-disabled` | **0/2 PASS, 2 FAIL — ожидаемый negative control** | Тот же signed binary, P1 gate/P2 retry выключены только в новых test methods: P1 снова timeout; P2 error 6 есть, same-document recovery отсутствует (timeout), а не просто «context не заменился» | + +Итого **22 уникальных app methods PASS**, 0 failed/skipped/expected failures в положительных прогонах. Это **2 + 19 + 1 + 1 = 23 положительных выполнения**, поскольку P2 повторён в двух runs; **не один combined run из 22 methods**. Две deliberate-red проверки не скрыты в этом счёте. Их официальный XCTest expectedFailures=0 — красный результат ожидается самим экспериментом, это не XCTExpectFailure. + +P2 first pass **85.234 s**, повтор **84.776 s**. Фактический recovered pixel: `recovered_without_extension_reload`, `recovery_from=initialization_failed`, `recovery_document=failed_navigation`, `recovery_after=30s_to_2m`. Test также проверяет DOM initResp и тот же объект WKWebExtensionContext; новый документ из теста не создаётся до этих assertions. Исходный fault: реальная idle-выгрузка, owned SIGSTOP 45 s, WebKit error 6 около 30 s. SIGCONT/teardown ограничены owned PID. + +**Unit/package:** `unit-package-background-retry.log` — **806 XCTest, 14 skipped, 0 failures**. Новые lifecycle unit tests проверяют bounded/cancellable ожидание при callback, игнорирующем cancellation. `lint-background-retry.log` — strict SwiftLint 6 файлов, **0 violations**. Временные resolver-изменения CSS/privacy-dashboard сохранены в artifact diff и исключены из repo diff. Final hashes — `background-retry-source-hashes.json`. + +### Практические границы + +- P1 проверен при injected 8 s startup. Ожидание 5 s не ускоряет worker и не доказывает устранение всех более долгих P1 delays; 4 s detector threshold не изменялся. +- P2 проверен в **одном исходном окне/tab** с controlled SIGSTOP. Новый window/tab и existing-tab subsequent navigation здоровы; вариант с двумя baseline окнами **не воспроизвёл error 6** и остался отрицательным экспериментом. Natural iOS suspend/resume, deferred foreground recovery и причины основных iOS production rows не доказаны. Старый standalone P2 уже мог сам восстановиться на следующем wake; текущая регрессия строже — восстановление того же документа до следующего wake/navigation. +- Все app methods работают в test environment с instrumented extracted bundle. Это реальные AppDelegate/Tab/window/provider/monitor/WebKit пути, но не unchanged shipping environment и не исчерпывающее causal attribution production cohorts. +- P3 по-прежнему **не воспроизведён**; app P5 всё ещё ограничен одной потерянной navigation, прежний long app P5 red сохранён. Отдельные SPM P5/P6 эксперименты и исторические цифры не подменяются новой app-матрицей. +- Cache cleanup снова вывел **nonfatal libsqlite3 `vnode unlinked while in use`** для только тестового UUID store `3ac0b3e6-8945-43dc-aad4-864b08bcc469` (EnhancedSecuritySites.db/-wal/-shm). XCTest assertions и публичное UUID removal завершились; целостность этой удаляемой SQLite базы этим не подтверждается. Warning не исправлялся и не скрыт. +- CI/PR/ClickHouse в рамках финальной локальной проверки не обновлялись; численные production-срезы выше сохраняют свои даты. #7379 и остальные PR не менялись, никаких commits/push не было. diff --git a/work/projects/cpm-web-extension-code-guide-2026-10-09.md b/work/projects/cpm-web-extension-code-guide-2026-10-09.md index e1cd8a44..54fe10ea 100755 --- a/work/projects/cpm-web-extension-code-guide-2026-10-09.md +++ b/work/projects/cpm-web-extension-code-guide-2026-10-09.md @@ -240,3 +240,6 @@ Worktree `cpm-e2e-init`, HEAD всё ещё `46f25175c7c42766cab23ea39f447f075c7 - Raw P1 и P3 characterization отключают navigation gate; P5 остаётся с gate включённым и ожидает bucket bg_view_creations=3_to_5: подготовка P1 создаёт дополнительный background перед rejected unknown-tab message. P5 tab-registration loss и healthy controls по-прежнему проверяются. Артефакты и snapshots: `/private/tmp/cpm-p1-p2-fixes-20261016/`. `before-changes.tar.gz` сохраняет прежние dirty changes; `point-fixes.diff` предназначен для delta этой работы. Начальный background-only result — 2/2 PASS, пакет 806/14 skipped/0 failures. Общий run/negative controls/P5/cache ещё выполняются; окончательный исход — в [[cpm-status-2026-10-15]]. Зелёный случай относится к macOS с imposed timing/process faults; natural iOS cause по-прежнему не доказан. + + +**Финальная сверка P1/P2, 16 октября 12:30 UTC:** работа завершена без commits. `validation-summary.json`: **22/22 уникальных app methods PASS**, positive groups 2+19+1+1 (P2 повторён), 0 failures/skips/expected failures; оба disabled-fix controls functional FAIL. `unit-package-background-retry.log`: 806 / 14 skipped / 0 failures; strict lint 6 файлов — 0 violations. Source hashes после сборки не менялись, прежние dirty files/ZIP сохранены. Окончательный P2 — background-only retry и same-document native+page recovery, **не context replacement**. Предыдущая full-reset реализация отвергнута после повторной потери page initResp. Current patch — `/private/tmp/cpm-p1-p2-fixes-20261016/point-fixes.diff`; P5 ожидает дополнительный view от P1, P3 остаётся отрицательным на 20,000 resources. Cache assertions прошли, но teardown снова имеет известный SQLite vnode warning для owned UUID. Подробная проверенная матрица/ограничения и весь red-history — [[cpm-status-2026-10-15]].