Repository navigation
chore(deps-dev): pi 1.0.2 + 4 patch bumps; make package-lock.json the only lockfile - #37
Merged
Merged
Conversation
…est 5.0.3 pi-coding-agent 1.0 adds seven required ExtensionAPI members (registerToolRenderer, getSettings, registerMcpServer, unregisterMcpServer, getMcpServers, registerVirtualModel, unregisterVirtualModel). Give the test fake no-op stubs for them. Supersedes #36.
Dependabot's npm updates rewrite package.json and package-lock.json but not bun.lock, so every grouped bump failed CI at 'bun install --frozen-lockfile' (#35 needed a hand-pushed bun.lock commit, #36 failed). Bun 1.4.2 installs from package-lock.json and --frozen-lockfile still fails when it is out of date, so drop and gitignore bun.lock and document the single-lockfile rule.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Supersedes #36.
What
@earendil-works/pi-coding-agentand@earendil-works/pi-tui0.87.1 -> 1.0.2,@biomejs/biome2.5.15,@types/node26.6.4,vitest5.0.3.test/helpers/fake-pi.tsfor the members pi 1.0 added toExtensionAPI.package-lock.jsonbecomes the only lockfile.bun.lockis removed and gitignored; docs, CI and Dependabot config carry a note explaining the rule.Why #36 failed: two separate causes
1. Stale
bun.lock(this is what failed CI)All 3 failed test jobs on #36 died in "Install dependencies", before any test ran:
Dependabot's
npmecosystem updatedpackage.jsonandpackage-lock.jsonbut notbun.lock. Thenpm-consumerjob passed because it installs withnpm ci.This recurs on every grouped bump: #35 needed a hand-pushed "update bun.lock" commit as well.
2. pi 1.0 grew
ExtensionAPI(tests only)With
bun.lockregenerated,bun run checkfailed with tsgo TS2740 attest/helpers/fake-pi.ts:183and:270. pi 1.0 added 7 required members toExtensionAPI. I compared the 0.87.1 and 1.0.2types.d.ts; nothing was removed or renamed.registerVirtualModel,unregisterVirtualModel540e174("Virtual models", #10035)registerMcpServer,unregisterMcpServer,getMcpServers8562bcf("codemode and MCP")registerToolRenderer1144973getSettingssrc/compiles unchanged. The fake gets no-op stubs.Why not pi 1.0.4: it also makes
hiddenToolsrequired in the system-prompt options type, which breaksfake-pi.ts:17. That is a separate change, left for the next bump.Why one lockfile, and why
package-lock.jsonpackage-lock.jsonhas real consumers. Extension hosts install pi extensions from git withnpm install(README, CONTRIBUTING), and thenpm-consumerjob runsnpm ci. Dependabot'snpmecosystem already maintains it.bunecosystem would only move the drift topackage-lock.json, and running both ecosystems would open two PRs per bump, each failing the other lockfile's check.Measured with Bun 1.4.2 in a temp dir holding only
package.jsonandpackage-lock.json:In sync:
bun install --frozen-lockfileinstalls frompackage-lock.jsonwith exit 0 (165 packages). Compared with the lock entries, every installed version matches. The only difference is hoisting, i.e. which copy sits at the top level. For example, the lock hasretry0.13.1 at the root and 0.12.0 nested underproper-lockfile, while Bun hoists 0.12.0 and nests 0.13.1 underp-retry: same versions, same dependents.Out of date, the gate still holds:
package.jsonasking forvitest5.0.2 while the lock has 5.0.3:error: lockfile had changes, but lockfile is frozen, exit 1.package.jsonbut not to the lock: the same error, exit 1.So
--frozen-lockfileenforcespackage-lock.json, and thenpm-consumerjob'snpm cienforces it independently.Verification (local, Bun 1.4.2, Node 26)
All checks ran in a clean checkout of this branch: no
node_modulesand nobun.lock.bun install --frozen-lockfilepackage-lock.json; the generatedbun.lockis ignored (git check-ignore)bun run check(tsgo + biome)bun run testbun run test:integrationnpm ci && npm test(thenpm-consumersteps)npm pack --dry-runSummary by cubic
Bumps dev dependencies (pi 1.0.2, biome 2.5.15, @types/node 26.6.4, vitest 5.0.3) and makes
package-lock.jsonthe only lockfile so CI no longer fails on a stalebun.lock. pi 1.0 adds seven requiredExtensionAPImembers, so the test fake gets no-op stubs for them.Lockfile
package-lock.json; the oldbun.lockdrifted and brokebun install --frozen-lockfile.package-lock.json, and--frozen-lockfilestill detects out-of-date locks, so the single lockfile keeps both ecosystems verified.bun.lockis removed and gitignored; docs, CI comments, and Dependabot config now note the rule.Written for commit a23ba96. Summary will update on new commits.