docs(project): record Pi resilience verification

This commit is contained in:
2026-08-25 12:30:43 +08:00
parent 589b139f1f
commit e2e0cf4e5f

View File

@@ -8,7 +8,7 @@
- Worktree: D:\Datas\OthersProjects\makelore-pi-worker-exit-thinking-5e7c2a91
- Base commit: 274187e3cfe2ae6cb97f2b4bcb422b3fdf06fbf2
- Owner: codex-root
- Status: In Progress
- Status: Completed
## Scope
@@ -85,10 +85,9 @@
task's base and identifies this executor task as `PI-R001`. Its
`RES-INV-001..009`, `RES-ACC-001..016`, release blockers, Main-only privacy
boundary, and final packaged fault-injection matrix are additional acceptance
contracts for this implementation. The pure-document commit will be brought
into the implementation branch before final delivery so planning and code
share one history; it is deferred until the current red-test/code work is at
a safe commit boundary.
contracts for this implementation. It is present in this branch as the
conflict-free cherry-pick `2b13454`, so planning and implementation share one
history without rewriting either line of work.
## Plan
@@ -141,25 +140,60 @@
settled-before-close, target recovery, sibling isolation, child/write-lease
cleanup, explicit deliberate stop, redacted lifecycle evidence, and clean
process exit.
- Formal NSIS packaging and final packaged execution are still pending; no
installer or real-Provider result is claimed at this checkpoint.
- Concurrent packaged workers exposed a reachable Windows rename collision
while materializing the same managed extension. Materialization is now
single-flight per extensions directory; eight concurrent registrations share
one atomic result without changing the extension contract.
- Formal Windows `package:win` completed from the clean code candidate, including
pinned Python/uv acquisition, Vite production build, Pi runtime bundling, and
NSIS generation. The final product verifiers and the final-ASAR resilience
proof pass. Real Provider verification is not claimed.
## Verification
- `corepack pnpm install --frozen-lockfile` — pass with pinned pnpm `10.33.4`.
- Focused Pi/runtime/pool/RPC/extension/subagent/UI regressions — pass, latest
combined run: 6 files / 60 tests.
- Focused Pi/runtime/pool/RPC/extension/subagent/UI regressions — pass, including
6 files / 60 tests for the lifecycle contract and 2 files / 9 tests after the
extension materialization concurrency repair.
- `corepack pnpm run typecheck` — pass.
- `corepack pnpm run lint:check` — pass with 0 errors and 5 pre-existing
warnings in unrelated `Home`/`Makelore` files.
- `corepack pnpm test` — pass: 178 files / 1519 passed / 2 skipped, plus the
- `corepack pnpm test` — pass: 178 files / 1520 passed / 2 skipped, plus the
isolated pressure file 1/1 passed.
- `corepack pnpm run build:vite` — pass for Renderer, Main, Preload, and utility
bundles; existing dynamic-import and chunk-size warnings remain non-blocking.
- `corepack pnpm run test:electron:windows` — pass: 2 files / 4 tests.
- Formal `package:win`, artifact/runtime closure verifiers, final packaged
resilience proof, installer byte size/SHA-256, and zero-residue evidence —
pending the clean committed candidate.
- `corepack pnpm run package:win` — pass from the clean `7aa9f79` product-code
candidate. Two earlier attempts were blocked only by a transient GitHub uv
0.10.0 download timeout; the final formal command downloaded both x64/arm64
archives and completed without staging reuse.
- `corepack pnpm run verify:artifact:win` — pass: final `app.asar`, Electron
`43.4.0`, Node `24.18.1`, bundled Python/pip/sqlite/SSL, uv `0.10.0`, npm
`11.6.2`, required native modules/assets, and NSIS validated. The pre-task-doc
candidate installer was `211912226` bytes with SHA-256
`54559D5ADEFAF84F3F124A535A811778E2A347E1B5247F43C0D5A31BBDFC6C0D`;
the post-documentation clean-HEAD artifact metadata is reported in the final
handoff rather than being recursively embedded into the artifact-producing
commit.
- `corepack pnpm run verify:artifact:pi` — pass: Pi `0.84.2`, final
`resources/pi-runtime/dist/cli.js`, 130 production packages, 6 runtime assets,
5 native assets outside asar, managed Skills, and materialized
extension/subagent closure all present and executable.
- `corepack pnpm run verify:publish-runtime` — pass with npm `11.6.2`.
- `corepack pnpm run test:pi-subagent:packaged` — pass against the real final-ASAR
Main composition. Target worker exit and strict protocol invalidation reached
bounded recoverable terminal states; abort-after-exit did not restore
`running`; settled-before-close stayed terminal; sibling Conversation kept
running; recover reused the same binding and did not replay the uncertain
prompt. Lifecycle classifications and all stop/replacement reasons were
present and redacted, Renderer was unlocked with recovery available, all
pool/subagent/extension/write-lease counters returned to zero, and no tracked
Electron/Pi process lingered after exit. `realTurnVerified=false`.
- The first final proof attempt selected the still-running isolation Conversation
after reload, and the next locator matched both sidebar and header controls.
The harness now selects the fault-target sidebar entry deterministically and
emits Main/UI state on failure; no product assertion, timeout, or lifecycle
contract was relaxed.
## Follow-ups