Conversation
Fresh npm installs of ^0.80.3 resolve to 0.80.10 which dropped AuthStorage, so the pi subagent crashes on AuthStorage.create. Pin the package (and sibling overrides for pnpm 11) to 0.80.7 and lock the regression. Fixes Waishnav#360
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Advanced Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (3)
Included review availability: Your plan provides up to 8 included reviews per hour; 7 remain after this review. 📝 WalkthroughWalkthroughThe Pi package family is pinned to 0.80.7. Workspace overrides keep sibling packages on the same version. New tests verify manifest, workspace, lockfile, and source consistency for ChangesPi AuthStorage compatibility
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix · Severity of issue fixed: Medium Suggested reviewers: Merge Risk: 🔵 Low · up to The dependency pin addresses the known Pi failure, but fresh-install runtime compatibility is not directly exercised, so merge is reasonable with bounded owner awareness. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 1 files. (2 skipped: 2 unsupported.)
✨ Finishing Touches 💡 1🧪 Generate unit tests (beta)
🛠️ Fix failing CI checks 💡
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. A rabbit reads each line, Comment |
|
| test("pi sibling packages stay on the AuthStorage pin", () => { | ||
| const npmOverrides = packageJson.overrides ?? {}; | ||
| const workspace = parseYaml( | ||
| readFileSync(new URL("../pnpm-workspace.yaml", import.meta.url), "utf8"), | ||
| ) as { overrides?: Record<string, string> }; | ||
| const pnpmOverrides = workspace.overrides ?? {}; | ||
| for (const name of PI_SIBLINGS) { | ||
| assert.equal( | ||
| npmOverrides[name], | ||
| AUTOSTORAGE_PIN, | ||
| `${name} must be overridden in package.json to exact ${AUTOSTORAGE_PIN} so a fresh npm install cannot float onto an AuthStorage-less release`, | ||
| ); | ||
| assert.equal( | ||
| pnpmOverrides[name], | ||
| AUTOSTORAGE_PIN, | ||
| `${name} must be overridden in pnpm-workspace.yaml to exact ${AUTOSTORAGE_PIN}; pnpm 11 does not apply package.json overrides`, | ||
| ); | ||
| } | ||
| }); |
There was a problem hiding this comment.
Consumer Resolution Is Untested
These assertions only compare override text in repository manifests; they never install DevSpace from a separate consumer project or inspect the resolved Pi dependency tree. A fresh consumer installation can resolve the Pi siblings to 0.80.10 while this predicate still passes, so the test provides false confidence that published dependency resolution remains pinned. This is non-blocking, but it leaves consumer dependency-resolution regressions undetected.
Artifacts
- The executable script checks the exact focused manifest predicate and performs a fresh override-free pnpm consumer installation; it is the executed source for the result.
- Captured output from executing the validation script in `/home/user/repo`; it shows the text-only predicate passes while the real consumer resolves incompatible 0.80.10 siblings, confirming the gap.
Comments Outside DiffThese findings sit on lines the diff does not cover, so they could not be posted inline. Each one leaves this list once its file changes.
|
Summary
Fresh installs of
@waishnav/devspaceresolve@earendil-works/pi-coding-agentvia^0.80.3to 0.80.10, which dropped theAuthStorageexport.defaultPiSessionFactorystill callsAuthStorage.create(...), so everydevspace agents run pi ...fails immediately withTypeError: Cannot read properties of undefined (reading 'create')(AGENT_INTERNAL_ERROR, ~2ms).The lockfile hid this in CI by freezing 0.80.3. This PR pins
pi-coding-agent(and the siblingpi-agent-core/pi-ai/pi-tuioverrides that pnpm 11 otherwise floats to 0.80.10) to 0.80.7, the last release that still exports AuthStorage.Fixes #360
Verification
pnpm exec tsx --test --test-concurrency=1 src/local-agent-pi-authstorage-pin.test.ts4/4 pass (range cannot satisfy 0.80.8–0.80.10; npm + pnpm overrides pinned; lockfile frozen; source still constructs AuthStorage).
Notes
pisubagent from ChatGPT/Claude MCP; without the pin the firstagents run pidies before any model turn.Summary by CodeRabbit
Bug Fixes
Tests