164 lines
9.5 KiB
Markdown
164 lines
9.5 KiB
Markdown
# 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: 977445ba450f4ad32b6e6db2caf048517513ab39
|
|
- Owner: codex-root
|
|
- Status: In Progress (planner Spec review fixes required)
|
|
|
|
## Scope
|
|
|
|
- Implement and verify `PI-150 — Packaging, E2E, and performance release proof`
|
|
from cumulative PI-140 delivery base `977445b`.
|
|
- 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-docs` updates 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:real` means 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 retains
|
|
`realTurnVerified=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
|
|
|
|
1. 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.
|
|
2. Implement focused missing harnesses/wiring/tests with behavior-level
|
|
regression coverage, then run typecheck and relevant unit tests.
|
|
3. 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.
|
|
4. 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.
|
|
5. 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 `a795e0c970e6c9fac5609bea5ceda2517bf3ca48` contains 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.2`
|
|
production-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/providers` closure 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 `Done` and the product is not cross-platform release-ready because macOS
|
|
x64/arm64 validation was explicitly skipped. QG-004/QG-005 also remain
|
|
`Explicitly Waived / Accepted Risk`, with `realTurnVerified=false`.
|
|
|
|
## Verification
|
|
|
|
- Exact pnpm `10.33.4` frozen 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:check` with 0 errors and five pre-existing warnings; `pnpm test` with 178
|
|
files, 1504 passed and two skipped; `pnpm run test:e2e` with 24/24; production
|
|
Vite/Electron build passed as part of packaging and E2E.
|
|
- `pnpm run package:win` passed. NSIS
|
|
`Makelore-2.0.0-win-x64.exe` is 211,835,138 bytes with SHA-256
|
|
`0DB9D811058595E91BED9FFE4FFF1E94D170FDAC411D1D54CD9F6856FCA60521`.
|
|
The existing packaged-runtime verifier passed for Electron `43.4.0`, Node
|
|
`24.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 p95 `20 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 p95 `626/627 ms`, Composer p95 `6
|
|
ms`, Renderer first-commit p95 `33.8181 ms` (max `54.6524 ms`), exit p95 `20
|
|
ms`, RSS p95 `126536 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 is
|
|
`8b5a23de48670bd6edfac93ef74c5ebd58645c609ccd2a504d0d94ce04a18b06`;
|
|
deb SHA-256 is
|
|
`d6f5b08dec3ffc39c1944aeb38b1e8fa6fb7e1c6fcb72092c66d7c918a5590c5`.
|
|
The Linux compatibility executable is intentionally `niancode`, 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 ms` in artifact
|
|
verification and `467/463 ms` in smoke.
|
|
- Linux Spec 17.3 performance report passed all ten scenarios and all budgets at
|
|
clean commit `a795e0c`: cold/warm RPC p95 `452/474 ms`, Composer p95 `5 ms`,
|
|
Renderer first-commit p95 `27.5318 ms`, exit p95 `8 ms`, and RSS p95 `169668
|
|
KiB`. This is WSL2 final-product/CLI/Electron-probe evidence, not an
|
|
independent Linux desktop-compositor GUI acceptance run.
|
|
- The aggregate `package:linux` command initially hit transient GitHub EOFs;
|
|
retry produced x64 AppImage/deb. Its rpm sub-target did not complete because
|
|
the isolated Ubuntu environment lacked `rpmbuild`; an attempt to install the
|
|
standard `rpm` package 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..a795e0c` returned `Standards Pass / Spec Needs
|
|
Fix` and 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 `a795e0c` and 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
|
|
`Done` conclusion without independent macOS execution.
|
|
- If RPM distribution is required, rerun the x64 rpm target on a Linux builder
|
|
with `rpmbuild` installed; 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.md` into canonical project memory after
|
|
integration review.
|
|
- PI-160 should record QG-004/QG-005 as `Explicitly Waived / Accepted Risk`,
|
|
with `realTurnVerified=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.
|