9.5 KiB
9.5 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: In Progress (planner Spec review fixes required)
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
- Candidate
a795e0c970e6c9fac5609bea5ceda2517bf3ca48contains the final-product Pi artifact verifier, packaged Pi/provider-shaped smoke, Spec 17.3 performance runner, expanded Electron E2E, release runbook, synchronized README, Linux package metadata fix, and Linux compatibility-executable fix. - Windows x64 and Linux x64 final unpacked products passed Pi
0.84.2production-closure, resource, lifecycle, controlled provider-shaped, extension/subagent, concurrency/isolation, and performance qualification. Windows NSIS and Linux x64 AppImage/deb distributables were produced. - Product-owned OpenCode resource paths and development-machine path residue are
empty. OpenCode-named files retained under the exact pinned upstream
@earendil-works/pi-ai/dist/providersclosure are reported separately because Pi statically imports them; deleting them would corrupt the pinned runtime. - The implementation is ready for PI-160 integration, but PI-150 remains blocked
from
Doneand the product is not cross-platform release-ready because macOS x64/arm64 validation was explicitly skipped. QG-004/QG-005 also remainExplicitly Waived / Accepted Risk, withrealTurnVerified=false.
Verification
- Exact pnpm
10.33.4frozen install passed on Windows (997 packages) and WSL2 Ubuntu 24.04 x64 (999 packages); lockfile remained unchanged. - Candidate-final Windows checks passed:
pnpm run typecheck;pnpm run lint:checkwith 0 errors and five pre-existing warnings;pnpm testwith 178 files, 1504 passed and two skipped;pnpm run test:e2ewith 24/24; production Vite/Electron build passed as part of packaging and E2E. pnpm run package:winpassed. NSISMakelore-2.0.0-win-x64.exeis 211,835,138 bytes with SHA-2560DB9D811058595E91BED9FFE4FFF1E94D170FDAC411D1D54CD9F6856FCA60521. The existing packaged-runtime verifier passed for Electron43.4.0, Node24.18.1, bundled Python/uv/npm, native modules, and Unicode copy behavior.- Windows final-product Pi artifact verifier passed with five samples: 130
applicable production packages, six assets, four packaged Skills, no missing
or relocated packages, no product-owned OpenCode paths, no development path
residue, cold/warm ready p95
653/628 ms, and exit p9520 ms. - Windows packaged smoke passed all coverage flags for session, prompt, tool, abort, settle, reopen, two-worker overlap/isolation, provider abort isolation, subagent, and shutdown. Each of the four controlled protocol shapes issued four image requests; real Provider verification remained false by waiver.
- Windows Spec 17.3 performance report passed all ten scenarios and all budgets
at clean commit
a795e0c: cold/warm RPC p95626/627 ms, Composer p956 ms, Renderer first-commit p9533.8181 ms(max54.6524 ms), exit p9520 ms, RSS p95126536 KiB, and 100 runtime patch items transported in 20 batches/21 SSE frames/20 Renderer transactions. - Linux x64 final product was built under WSL2 kernel
6.6.87.2-microsoft-standard-WSL2. AppImage SHA-256 is8b5a23de48670bd6edfac93ef74c5ebd58645c609ccd2a504d0d94ce04a18b06; deb SHA-256 isd6f5b08dec3ffc39c1944aeb38b1e8fa6fb7e1c6fcb72092c66d7c918a5590c5. The Linux compatibility executable is intentionallyniancode, preserving the project identifier contract; the verifier default and unit test now match the actual electron-builder output. - Linux final-product artifact verification and packaged smoke passed with five
samples and the same coverage/waiver contract. The 131-package/six-asset
closure had no missing/relocated package, no product-owned OpenCode path, and
no development path residue. Cold/warm ready p95 was
447/445 msin artifact verification and467/463 msin smoke. - Linux Spec 17.3 performance report passed all ten scenarios and all budgets at
clean commit
a795e0c: cold/warm RPC p95452/474 ms, Composer p955 ms, Renderer first-commit p9527.5318 ms, exit p958 ms, and RSS p95169668 KiB. This is WSL2 final-product/CLI/Electron-probe evidence, not an independent Linux desktop-compositor GUI acceptance run. - The aggregate
package:linuxcommand initially hit transient GitHub EOFs; retry produced x64 AppImage/deb. Its rpm sub-target did not complete because the isolated Ubuntu environment lackedrpmbuild; an attempt to install the standardrpmpackage was stopped after the Ubuntu mirror stalled. No x64 rpm artifact is claimed. This does not invalidate the qualified unpacked product, AppImage, or deb, but a later RPM release must run on a prepared Linux builder.
Follow-ups
- Planner review of
977445b..a795e0creturnedStandards Pass / Spec Needs Fixand requires direct final-ASAR composition smoke, distinct cold/warm prompt milestones, live 4-parent/4-child UI pressure plus cleanup proof, ASAR path enumeration for OpenCode residue, and the declared Linux x64 RPM target. - PI-160 should integrate candidate
a795e0cand this task record, then perform canonical project-memory reconciliation in an integration-owned worktree. - 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. - If RPM distribution is required, rerun the x64 rpm target on a Linux builder
with
rpmbuildinstalled; do not infer rpm validity from AppImage/deb. - 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
- PI-160 should promote the current Pi runtime/Conversation state from README
and
docs/pi-runtime-release-runbook.mdinto canonical project memory after integration review. - PI-160 should record QG-004/QG-005 as
Explicitly Waived / Accepted Risk, withrealTurnVerified=false; this is not a Pass. - PI-160 must preserve the macOS x64/arm64 missing-evidence blocker unless a later task supplies independent final-product evidence.