10 KiB
10 KiB
Task: Implement PI-150 packaging, E2E, and performance proof
Identity
- Task ID: 20260824-pi-release-proof-3e725ac7
- Mode: Feature
- Branch: codex/20260824-pi-release-proof-3e725ac7-pi-release-proof
- Worktree: D:\Datas\OthersProjects\makelore-pi-release-proof-3e725ac7
- Base commit:
977445ba45 - Owner: codex-root
- Status: Ready for Planner Re-review (platform release blockers remain)
Scope
- Implement and verify
PI-150 — Packaging, E2E, and performance release prooffrom cumulative PI-140 delivery base977445b. - Own final Pi production-closure staging, electron-builder wiring, artifact verification, actual packaged Pi/provider-shaped smoke, Coding Electron E2E, performance evidence, release note/runbook draft, and README current-state updates.
- Produce Windows x64 and Linux x64 final-product artifact evidence available
from this host. Keep canonical
.project-docsupdates for PI-160 Integration Gate; this feature record contains the task-scoped evidence and promotion candidates.
Intent And Constraints
- Preserve Main-owned runtime/provider/credential boundaries, the exact pinned Pi package and pnpm versions, Makelore app identity, project-scoped state, and the single light product system.
- Final artifact checks must prove Pi version/engine/entry/resources/production
closure/
get_state, extension and skill presence, no OpenCode production residue, and no development-machine absolute path. smoke:pi:realmeans the actual Pi process seam from the final artifact using controlled loopback/provider-shaped endpoints. Real external Provider Accounts and real-provider two-worker turns are explicitly waived accepted risks, never Pass; every substitute report retainsrealTurnVerified=false.- The user explicitly skipped macOS validation. Do not manufacture or reuse static/cross-platform evidence for macOS x64 or arm64. Their missing final artifact, closure/native/resource, loopback, and performance evidence remains an explicit release blocker, so this task cannot claim cross-platform release-ready or PI-150 Done.
- The canonical project memory at this base is stale and still describes OpenCode. Treat the planner-owned PI Spec/ticket and current source as the task authority; do not edit canonical memory in this feature worktree.
- The main worktree is occupied by an older integration task. Remain rooted in this isolated worktree and do not inspect or modify peer uncommitted files.
Plan
- Audit the cumulative PI-140 tree against every PI-150 packaging, smoke, E2E, performance, release-note, and README requirement; reuse only verified existing seams and identify concrete missing behavior.
- Implement focused missing harnesses/wiring/tests with behavior-level regression coverage, then run typecheck and relevant unit tests.
- Run the full pinned validation set and build the Windows x64 final product artifact; run its verifier, actual packaged Pi/provider-shaped smoke, and required performance scenarios with structured statistics.
- Use WSL2 only if available to perform a frozen Linux x64 install, final product build, verifier/smoke, and performance run; label any environment or artifact limitation precisely.
- Record reproducible commands/results, accepted Provider risk, skipped macOS release blocker, release note/runbook, README delta, and PI-160 promotion candidates; complete the Task Documentation Gate without overstating release readiness.
Outcome
- Code candidate
df1151b5eb8588f126ccbee98cb7bf0b46285659fixes every implementation defect from the planner's first Spec review. The packaged extension/subagent proof now executes Main and runtime code from finalapp.asar/resources/pi-runtime; cold and warm prompt samples are distinct and include resources-ready, worker-spawn, RPC-ready, session-open, prompt-accepted, and agent-settled milestones; one packaged run holds four parent workers plus four child workers while exercising the real UI and then proves process/permit/dispatch/lease cleanup; the verifier enumerates ASAR internals; and a Linux x64 RPM is generated and inspected. - Windows x64 and WSL2 Linux x64 final products passed Pi
0.84.2production-closure, packaged composition, lifecycle, controlled provider-shaped, extension/subagent, 4+4 pressure/isolation, cleanup, and performance qualification. Windows NSIS and Linux AppImage/deb/RPM distributables were produced. - Full ASAR enumeration found zero product-owned OpenCode paths. Exact matches
under the pinned upstream
@earendil-works/pi-ai/dist/providers/opencode*closure remain classified separately because Pi imports them; they are not Makelore-owned runtime residue. - The five requested fixes are ready for planner re-review, but PI-150 remains
blocked from
Done, PI-160 must not start, and the product is not cross-platform release-ready: macOS x64/arm64 was explicitly skipped and no independent native non-WSL Linux desktop/compositor acceptance run exists. QG-004/QG-005 remainExplicitly Waived / Accepted Risk, withrealTurnVerified=false.
Verification
- Exact pnpm
10.33.4frozen install passed on Windows and WSL2 Ubuntu 24.04 x64; the candidate stayed clean atdf1151band the lockfile change is limited to the direct@electron/asar@3.4.1verifier dependency. - Candidate-final Windows checks passed:
pnpm run typecheck;pnpm run lint:checkwith 0 errors and five pre-existing warnings;pnpm testwith 178 files, 1505 passed and two skipped;pnpm run test:e2ewith 24/24;pnpm run build:vite; and the focused final-proof suite with 6 files/32 tests. - Final Windows NSIS
release/Makelore-2.0.0-win-x64.exeis 208,297,927 bytes with SHA-2563DDCF48D28ABA914F427DC828428E4248A9751F8A449324F48060BA981E7B3D8. The rebuiltwin-unpackedartifact verifier enumerated 10,278 ASAR entries, found zero product-owned OpenCode path or development path residue, and passed packaged Electron/Node/runtime/resource qualification. Structured evidence is in ignored release reportspi-artifact-win-followup.json,pi-product-proof-win-followup.json, andpi-smoke-win-followup.json. - The Windows packaged product proof loaded Main through final
app.asar, ran cold/warm managed workers and the materialized extension/subagent bridge, held 4 parent + 4 child workers as 8 live OS processes while the UI remained interactive, and then reported zero active/waiting process-budget entries, child permits, dispatches, parents, PIDs, and write leases. - Windows formal five-sample performance evidence
pi-performance-win-followup.jsonpassed every budget. Managed cold p95 was resources25 ms, spawn13 ms, RPC669 ms, session3 ms, accepted1 ms, settled309 ms; warm p95 was8/13/674/8/0/270 ms. Pressure UI p95 was176 ms; Renderer first-commit p95 was33.6402 ms(max48.8593 ms). - WSL2 Linux final product was rebuilt at the exact same clean commit. Final RPM
release/Makelore-2.0.0-linux-x86_64.rpmhas SHA-256c7d7eac673abed61d83af2fbd2cc33d81ffa3b2c1e449ad89ee8f118f7400c64. RPM inspection reports Nameniancode, Version2.0.0, Release1, Archx86_64, and contains/opt/Makelore/niancode,/opt/Makelore/resources/app.asar, and/opt/Makelore/resources/pi-runtime/dist/cli.js. - Linux artifact verification enumerated 10,280 ASAR entries and found zero
product-owned OpenCode path. WSLg launched the final packaged product from
app.asar; extension/subagent, live 4+4/8-PID pressure, UI interaction, and zero-resource cleanup all passed. Evidence is inpi-artifact-linux-rpm-followup.json,pi-product-proof-linux-rpm-followup.json, andpi-smoke-linux-rpm-followup.jsonin the Linux checkout's ignoredrelease/evidencedirectory. - Linux formal five-sample report
pi-performance-linux-rpm-followup.jsonpassed every budget. Managed cold p95 was resources14 ms, spawn6 ms, RPC456 ms, session2 ms, accepted1 ms, settled284 ms; warm p95 was4/4/465/1/1/256 ms. Pressure UI p95 was99 ms; Renderer first-commit p95 was27.897758 ms(max42.186106 ms); exit p95 was7 ms. - Linux results are WSL2/WSLg final-product evidence, not an independent native non-WSL Linux desktop/compositor/distribution acceptance run. Controlled provider-shaped smoke issued six requests per protocol (distinct cold, warm, and abort-isolation paths); real Provider verification remains false by the explicit waiver.
Follow-ups
- Request planner re-review of
c7e7772..df1151b. The five prior findings now have direct final-product implementation and structured Windows/Linux evidence; no source-only unit-test result is used as their release proof. - Do not start PI-160 or integrate
df1151bwhile PI-150 remains blocked by the accepted platform evidence boundary. If the planner accepts the five fixes, keep PI-150 as the active frontier until the missing platform decision or evidence is resolved. - Keep missing macOS x64/arm64 artifact/runtime/resource/performance evidence as
a release blocker; do not promote a cross-platform release-ready or PI-150
Doneconclusion without independent macOS execution. - Keep the lack of an independent native non-WSL Linux desktop/compositor/distribution run explicit. The WSL2/WSLg run qualifies the generated Linux artifacts and final process seam but does not erase that environment boundary.
- Real Provider Account and real-provider concurrency/credential/protocol compatibility remain accepted risk unless the user explicitly revokes the waiver and supplies provider access.
Promotion Candidates
- After PI-150 is actually unblocked, PI-160 may promote the current Pi
runtime/Conversation state from README and
docs/pi-runtime-release-runbook.mdinto canonical project memory during integration review. - PI-160 must record QG-004/QG-005 as
Explicitly Waived / Accepted Risk, withrealTurnVerified=false; this is not a Pass. - PI-160 must preserve any unresolved macOS x64/arm64 or native Linux missing-evidence blocker; this candidate does not authorize overriding it.