feat(snapshot): accept bun globals from CLI publish payload#14
Merged
fullstackjam merged 1 commit intoJun 6, 2026
mainopenbootdotdev/openboot.dev:mainfrom
feat/snapshot-bun-globalsopenbootdotdev/openboot.dev:feat/snapshot-bun-globalsCopy head branch name to clipboard
Merged
feat(snapshot): accept bun globals from CLI publish payload#14fullstackjam merged 1 commit intomainopenbootdotdev/openboot.dev:mainfrom feat/snapshot-bun-globalsopenbootdotdev/openboot.dev:feat/snapshot-bun-globalsCopy head branch name to clipboard
fullstackjam merged 1 commit into
mainopenbootdotdev/openboot.dev:mainfrom
feat/snapshot-bun-globalsopenbootdotdev/openboot.dev:feat/snapshot-bun-globalsCopy head branch name to clipboard
Conversation
- Read `snapshot.packages.bun` from the upload body - Bucket bun globals as `type: 'npm'` in the typed packages array so the downstream alias/install endpoints (which only special-case `npm` and `cask`) install them via `npm install -g` from the same registry, rather than misrouting them to `brew install` - Dedupe against existing npm entries - Bun provenance preserved in the raw `snapshot.packages.bun` blob for future UI work
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
4 tasks
fullstackjam
added a commit
to openbootdotdev/openboot
that referenced
this pull request
Jun 6, 2026
Add a new capture step "Bun Global Packages" that runs `bun pm ls -g` and records installed bun globals in PackageSnapshot.Bun. The parser strips tree-drawing characters and ignores the path header line; bun itself and duplicates are filtered out. PackageSnapshot.UnmarshalJSON handles bun across all three accepted JSON shapes (structured object, rich object array, typed array), so snapshots produced or consumed by other tools round-trip cleanly. The server side (openbootdotdev/openboot.dev#14) accepts the new `packages.bun` field and buckets bun globals into the existing npm slot so the alias install endpoint installs them via `npm install -g` from the same registry — no downstream changes required yet.
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.
Summary
snapshot.packages.bunfromopenboot snapshot --publishuploads.type: 'npm'in the persistedpackagesarray. The downstream alias/install endpoints only special-casenpmandcask— every other type falls into the brewformulaearray, which would misroute bun globals tobrew install. Bucketing as npm lets them install vianpm install -gfrom the same registry.snapshot.packages.bunarray is preserved in the snapshot blob for future UI work that wants to render bun separately.Cross-repo
internal/snapshot/CaptureBun()and ships them inPackages.Bun. Merge this PR first — once the CLI starts sending the field, the server needs to know how to handle it (otherwise bun globals get dropped from the typed packages array).Test plan
npm test— 181/181 pass (validation + from-snapshot path)npm run check— 0 errorsGET /<user>/<slug>/configand verify the bun package appears as atype: 'npm'entry in the returned packages array.