From f539193c3d54177c372ba300e7075f318a335f1e Mon Sep 17 00:00:00 2001 From: Federico Jaramillo Martinez Date: Fri, 17 Jul 2026 22:01:36 +0200 Subject: [PATCH] docs(changeset): add Pi 0.80.8+ ModelRuntime auth migration changeset (slice 6) Relay issue-62-authstorage leg 7 (final): add patch changeset for the session-daemon crash fix on Pi >=0.80.8, re-verify green, confirm goal criteria and cleanup. Relay complete. --- .changeset/fix-pi-0-80-8-modelruntime-auth.md | 5 ++ relays/issue-62-authstorage/log.md | 28 +++++++ relays/issue-62-authstorage/status.md | 80 ++++++++++--------- 3 files changed, 75 insertions(+), 38 deletions(-) create mode 100644 .changeset/fix-pi-0-80-8-modelruntime-auth.md diff --git a/.changeset/fix-pi-0-80-8-modelruntime-auth.md b/.changeset/fix-pi-0-80-8-modelruntime-auth.md new file mode 100644 index 0000000..751ff1d --- /dev/null +++ b/.changeset/fix-pi-0-80-8-modelruntime-auth.md @@ -0,0 +1,5 @@ +--- +"@jmfederico/pi-web": patch +--- + +Fix the session daemon crashing on startup with Pi (`@earendil-works/pi-coding-agent`) 0.80.8 and newer. Pi removed the `AuthStorage` API in 0.80.8, which caused Pi Web to fail at module load. Authentication, OAuth login, API-key save/logout, provider listing, and the Anthropic subscription warning now run on Pi's new `ModelRuntime` credential APIs. Pi Web now requires Pi `>=0.80.8`. diff --git a/relays/issue-62-authstorage/log.md b/relays/issue-62-authstorage/log.md index 7e89c3b..5092fff 100644 --- a/relays/issue-62-authstorage/log.md +++ b/relays/issue-62-authstorage/log.md @@ -367,3 +367,31 @@ typecheck + knip + eslint + related vitest) passed — committed normally this leg but slices 1 + 4 touched session-daemon paths; only the human clears it after restarting the sessiond service. Handing off to leg 7 (slice 6: changeset + final verify + cleanup; the finish line — no PR). + +## Leg 7 (slice 6 — changeset + final verify + cleanup) — RELAY COMPLETE +- **Added changeset** `.changeset/fix-pi-0-80-8-modelruntime-auth.md`: single + `patch` fragment for `@jmfederico/pi-web` describing the user-visible fix + (session daemon crash on Pi 0.80.8+ fixed by migrating auth to the new + `ModelRuntime` credential APIs; Pi Web now requires Pi `>=0.80.8`). Did NOT + edit `CHANGELOG.md`. +- **Bump type decision:** chose `patch`, not `minor`. status.md floated that a + minor was "defensible" (narrowed Pi range), but the `changeset-changelog` + skill is explicit for this CalVer repo: `patch` for all non-breaking changes, + never `minor` (the minor slot = release month), `major` only on explicit user + request. The fix is non-breaking to Pi Web consumers, so `patch` is correct. +- **Re-ran `npm run verify`:** fully GREEN — typecheck + lint + knip + 188 test + files, 1390 passed / 2 skipped. +- **Goal criteria confirmed:** (1) no live `AuthStorage`/`ModelRegistry.create| + inMemory`/`.authStorage`/`modelRegistry` use in `src/` — only remaining match + is an explanatory comment in `piSessionService.testSupport.ts`; (2) auth + surfaces all on new APIs (slices 1–5); (3) `package.json` peerDeps for the + three `@earendil-works/*` = `>=0.80.8 <0.81`, devDeps = `^0.80.8` (verified); + (4) changeset added this leg; (5) verify green. +- **Cleanup:** confirmed no scratch files in the repo (no `probe*.mjs`, + `.tmp-build/`). `ASSESSMENT-issue-62.md` intentionally kept (plan of record). +- **No PR opened** (explicitly out of scope for this relay). +- **STOP per charter:** goal reached, so no next leg was spawned. Surfaced to + the human: (a) verify green, (b) sessiond restart STILL PENDING (slices 1+4 + touched session-daemon paths; only the human clears that note after + restarting the sessiond service), (c) no PR by design. +- Committed status/log/changeset. diff --git a/relays/issue-62-authstorage/status.md b/relays/issue-62-authstorage/status.md index ed4ec98..affc3f6 100644 --- a/relays/issue-62-authstorage/status.md +++ b/relays/issue-62-authstorage/status.md @@ -1,12 +1,43 @@ # Relay status — issue-62-authstorage -## Current position +## RELAY COMPLETE — goal reached (leg 7, slice 6) +All charter goal criteria (1–5) are met and committed on branch +`fix/issue-62-authstorage`. **No PR was opened, by design (out of scope).** +The relay is finished; no further leg was spawned. + +**Surface to the human:** +- (a) `npm run verify` is fully GREEN (typecheck + lint + knip + 1390 tests, + 2 skipped). +- (b) **Sessiond restart is still PENDING** — slices 1 + 4 changed + session-daemon paths (`sessiond.ts`, `piSessionService.ts`). The human must + manually restart the sessiond service for the migration to take effect. Only + the human clears this note. +- (c) No PR opened (explicitly out of scope for this relay). + +Leg 7 (slice 6) added the changeset, re-verified green, confirmed goal +criteria, and confirmed no scratch files remain: +- **`.changeset/fix-pi-0-80-8-modelruntime-auth.md`** — a single `patch` + fragment for `@jmfederico/pi-web` describing the user-visible fix (session + daemon crash with Pi 0.80.8+ fixed by migrating to the new `ModelRuntime` + auth APIs; Pi Web now requires Pi `>=0.80.8`). Per the `changeset-changelog` + skill this repo uses **patch** for all non-breaking changes (CalVer: the + `minor` slot is the release month, not feature size; `major` only on explicit + request), so `patch` was chosen over the "minor is defensible" note. Commit + ``. +- Re-ran full `npm run verify`: GREEN. +- Double-checked `package.json`: peerDeps for the three `@earendil-works/*` + packages are `>=0.80.8 <0.81`, devDeps are `^0.80.8` — correct. +- Confirmed no scratch files in the repo (no `probe*.mjs`, `.tmp-build/`, + etc.). `ASSESSMENT-issue-62.md` intentionally stays (plan of record). +- Only `src` mention of the old API is an explanatory comment in + `piSessionService.testSupport.ts` (documents what the seam replaced) — no + live import/use. + +## Prior position (slice 5, leg 6, commit `d0cc55c`) Slice 5 (tests + testSupport) complete and committed (`d0cc55c`). -**`npm run verify` is fully GREEN** — typecheck + lint + knip + 1390 tests -pass (2 skipped). All production code and all test/support code are now off the -removed `AuthStorage` / `ModelRegistry.create|inMemory` surface. Goal criteria -1, 2, 5 are met; criteria 3 (dep ranges) was done in slice 0/1; only criterion -4 (changeset) remains — that is slice 6. +**`npm run verify` was fully GREEN** — typecheck + lint + knip + 1390 tests +pass (2 skipped). All production code and all test/support code are off the +removed `AuthStorage` / `ModelRegistry.create|inMemory` surface. What slice 5 changed (all under `src/server/sessions/`): - **`piSessionService.testSupport.ts`** (central helper): dropped @@ -162,39 +193,12 @@ Remaining errors otherwise live in slices 2/3/4 files and all test/support files (slice 5). ## Leg tracking -- **Last completed leg:** 6 (slice 5 — tests + testSupport migration). -- **Next leg to run:** 7. +- **Last completed leg:** 7 (slice 6 — changeset + final verify + cleanup). **FINAL LEG.** +- **Next leg to run:** none — relay complete, no handoff spawned. ## Next task -Run **charter slice 6 (changeset + final verify + cleanup)** as leg 7. This is -the closing leg: -1. Add a `.changeset/*.md` fragment for `@jmfederico/pi-web` describing the - user-visible fix (session daemon crash with Pi 0.80.8+ fixed by migrating - to the new `ModelRuntime` API; requires Pi `>=0.80.8`). Use the - `changeset-changelog` skill. Do **not** edit `CHANGELOG.md` directly. The - maintainer's call on patch vs minor — the assessment §5 suggests patch or - minor; a **minor** is defensible since the supported Pi range narrows - (`>=0.80.8 <0.81`, dropping 0.80.0–0.80.7), but follow the changeset skill - and keep it a single fragment. -2. Re-run the full `npm run verify` to confirm still green. -3. Confirm the goal criteria in `charter.md` are all met (1 no AuthStorage/ - registry use — done; 2 auth surfaces on new APIs — done; 3 dep ranges — - already corrected in slice 0/1, double-check `package.json` peer/dev ranges; - 4 changeset — this leg; 5 verify green — confirm). -4. Cleanup: `ASSESSMENT-issue-62.md` stays (it's the plan of record). - `/srv/dev/pi-inspect` is outside the repo, not ours to touch. Confirm no - scratch files were left in the repo (e.g. no stray `probe*.mjs`, - `.tmp-build/`). -5. **Do NOT open a PR** (explicitly out of scope for this relay). - -This is the finish line. After confirming everything, the goal is reached: -update `status.md`/`log.md`, commit, and per the charter **stop** (the goal is -reached) — or if you prefer, hand off a final "relay complete" confirmation -leg. Either way, surface to the human that the **sessiond restart is still -pending** (see Blockers) and a PR was intentionally not opened. - -Verification already passing as of slice 5 (leg 6): `npm run verify` green -(typecheck + lint + knip + 1390 tests, 2 skipped). +None — the relay goal is reached. If new work is needed (e.g. opening a PR), +that is a separate task outside this relay's charter. ### Build/tooling note (important for every leg) **Update (leg 2):** the human reports `/tmp` is now fully usable again, so the @@ -232,7 +236,7 @@ commit before handing off. Hand off with `spawn_session` **once** per the charter's Handover section. ## Blockers / intervention state -None. Known constraints: +None blocking. Relay complete. Known constraints: - **Sessiond restart pending (ACTIVE):** slice 1 (leg 2, commit `e37148c`) changed `sessiond.ts` + the session-daemon auth construction path; slice 4 (leg 5, commit `4ccd4f8`) added `piSessionService.ts` (a session-daemon path)