145 lines
7.9 KiB
Markdown
145 lines
7.9 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
|
|
|
|
## 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
|
|
|
|
- Implementation is complete enough for final-product qualification: the tree
|
|
now contains a final-product Pi artifact verifier, packaged Pi/provider-shaped
|
|
smoke, Spec 17.3 performance runner, expanded Electron E2E, release runbook,
|
|
and synchronized README current-state language.
|
|
- Final artifact execution and cross-platform evidence are still in progress.
|
|
PI-150 remains blocked from `Done` by the explicitly skipped macOS x64/arm64
|
|
validation, regardless of Windows/Linux results.
|
|
|
|
## Verification
|
|
|
|
- `pnpm install --frozen-lockfile` with pnpm `10.33.4`: passed; 997 packages,
|
|
lockfile unchanged.
|
|
- Focused Pi verifier/performance/docs/runtime tests: 6 files passed, 14 tests
|
|
passed, 2 skipped.
|
|
- `pnpm run typecheck`: passed after implementation and release-doc updates.
|
|
- Scoped ESLint for every changed script/test: passed.
|
|
- `pnpm run build:vite`: passed after the implementation changes.
|
|
- `pnpm exec playwright test tests/e2e/pi-coding-first-chat.spec.ts
|
|
--workers=1`: passed, 2/2. The first run correctly exposed that complete tool
|
|
cards require user expansion and that the fixture used invalid worker status
|
|
`failed`; the final test follows the real expansion path and uses contract
|
|
status `error`.
|
|
- `pnpm run lint:check`: passed with 0 errors and 5 pre-existing warnings.
|
|
- `pnpm test`: passed; 178 files, 1504 tests passed, 2 skipped.
|
|
- Full Electron E2E after the production build: passed, 24/24. An earlier
|
|
attempt hit one Canvas hover timing failure, and the next attempt had a
|
|
Windows Playwright worker exit with code `3221226505`; both isolated paths
|
|
passed and the final uninterrupted full run passed.
|
|
- Final-product artifact verification is pending.
|
|
- First Windows packaging on candidate `8820e82` passed, and the existing
|
|
Windows artifact verifier passed. The first invocation of the new Pi verifier
|
|
exposed that pnpm `10.33.4` forwards the conventional `--` separator to the
|
|
script; the parser is being corrected and the artifact will be rebuilt from
|
|
the corrected commit before evidence is accepted.
|
|
- The rebuilt `13efe84` Windows artifact passed the existing verifier. The new
|
|
verifier then found OpenCode-named files only inside the exact pinned
|
|
`@earendil-works/pi-ai/dist/providers` production package. Pi statically
|
|
imports those provider modules from `providers/all.js` and
|
|
`models.generated.js`; deleting them would corrupt the pinned closure. The
|
|
verifier is being narrowed to reject product-owned/legacy OpenCode resource
|
|
paths while reporting this upstream Pi package exception explicitly.
|
|
- A one-sample verifier probe then showed the source filename
|
|
`makelore-runtime-v3.mjs` is not retained literally by the production bundle.
|
|
The final verifier now checks four stable extension contract markers inside
|
|
`app.asar`; executable extension/subagent behavior remains owned by
|
|
`smoke:pi:real`. With both corrections applied, the final-product verifier
|
|
probe passed against the existing unpacked Windows artifact, including exact
|
|
Pi `0.84.2`, Node `24.18.1`, 130 expected production packages, six assets,
|
|
four Skills, empty product-owned OpenCode paths, the explicit upstream Pi
|
|
exception list, empty development-path residue, and actual `get_state`/
|
|
lifecycle execution.
|
|
- WSL2 Ubuntu 24.04 independently cloned `0d03d00` into its Linux filesystem,
|
|
verified Node `22.22.2`, pnpm `10.33.4`, and passed frozen install with 999
|
|
packages. Pi staging passed for Linux x64 and arm64 (131 applicable packages,
|
|
six assets each), and electron-builder produced `linux-unpacked` plus the x64
|
|
AppImage. The full `package:linux` command then failed while building deb
|
|
targets because package metadata lacked `homepage`; this is a real release
|
|
packaging blocker. The verified origin URL is being added as the minimal fpm
|
|
metadata fix before rebuilding both Windows and Linux from one final commit.
|
|
|
|
## Follow-ups
|
|
|
|
- Build and qualify Windows x64 and Linux x64 final product artifacts.
|
|
- Keep missing macOS x64/arm64 evidence as a release blocker; do not promote a
|
|
cross-platform release-ready conclusion.
|
|
|
|
## 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.
|