docs: record PI release qualification evidence
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
- Worktree: D:\Datas\OthersProjects\makelore-pi-release-proof-3e725ac7
|
||||
- Base commit: 977445ba450f4ad32b6e6db2caf048517513ab39
|
||||
- Owner: codex-root
|
||||
- Status: In Progress
|
||||
- Status: Ready for Integration (PI-150 release gate blocked)
|
||||
|
||||
## Scope
|
||||
|
||||
@@ -67,71 +67,86 @@
|
||||
|
||||
## 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.
|
||||
- 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
|
||||
|
||||
- `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.
|
||||
- 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
|
||||
|
||||
- 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.
|
||||
- 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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user