Repository navigation
feat(cli): stasis github-bundle — a GitHub repo at a commit, through @exodus/stasis/vfs-bundle - #172
Merged
Merged
Conversation
exo-nikita
force-pushed
the
claude/affectionate-ritchie-1j9umy
branch
5 times, most recently
from
September 28, 2026 22:19
1680c5c to
26041a8
Compare
exo-nikita
force-pushed
the
claude/affectionate-ritchie-1j9umy
branch
from
September 30, 2026 00:11
26041a8 to
1eecd5f
Compare
--pnpm — static bundles from pnpm-lock.yaml through an in-memory node_modules--pnpm and @exodus/stasis/pnpm — static bundles from pnpm-lock.yaml through an in-memory node_modules
exo-nikita
force-pushed
the
claude/affectionate-ritchie-1j9umy
branch
9 times, most recently
from
October 1, 2026 10:20
2c97a45 to
3293350
Compare
exo-nikita
force-pushed
the
claude/affectionate-ritchie-1j9umy
branch
from
October 1, 2026 21:53
3293350 to
e40a952
Compare
--pnpm and @exodus/stasis/pnpm — static bundles from pnpm-lock.yaml through an in-memory node_modulesstasis bundle --package-manager — the CLI for @exodus/stasis/vfs-bundle
…gh @exodus/stasis/vfs-bundle `stasis github-bundle --github=owner/name --sha=commit [--directory=path] --package-manager=(pnpm|yarn1|soldeer) [--package-manager-version=version] entries...` bundles a GitHub repo at a commit with buildGitHubBundle: the tree fetched (with GITHUB_TOKEN where set) and held to its git tree id, the dependencies laid out in memory from the lockfile alone, nothing installed and no package script run. It writes the bundle to --output (stasis.code.br by default, `-` for stdout) and a JS bundle's lockfile to --lockfile, and takes `stasis bundle`'s options for the entries, which buildGitHubBundle checks. Tarballs, zips and GitHub trees are cached where `stasis audit` caches. `stasis bundle` is unchanged. Tests: githubBundleCommand over a fake client writes the repo's bundle and lockfile, and refuses a Solidity bundle's --lockfile before anything is fetched; the CLI refuses a missing --github, --sha or --package-manager. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KPSLumcb6Rdo4xXL5s5CpE
exo-nikita
force-pushed
the
claude/affectionate-ritchie-1j9umy
branch
from
October 1, 2026 22:11
e40a952 to
03ad43c
Compare
stasis bundle --package-manager — the CLI for @exodus/stasis/vfs-bundlestasis github-bundle — a GitHub repo at a commit, through @exodus/stasis/vfs-bundle
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.
What
A new command,
stasis github-bundle, a thin CLI overbuildGitHubBundlefrom@exodus/stasis/vfs-bundle. That library landed in #189, #194 and #196. This PR used to carry its own copy of the library and a--pnpmflag onstasis bundle; both are gone.stasis bundleis unchanged and still reads the project's installed modules.GITHUB_TOKENwhere it's set, and held to its git tree id.--output(stasis.code.brby default,-for stdout), and a JS bundle's lockfile to--lockfile. The bundle'srepois the repo and commit it was built from.stasis bundle's options for the entries (--scope,--conditions,--mainFields,--metro --platforms,--jsx,--flow,--typescript --tsconfig,--resources,--package-json,--mapping,--manifests,--brotli-quality).buildGitHubBundlechecks them.--metro-resolver,--cargo*and--addaren't offered.stasis auditcaches ($XDG_CACHE_HOME/stasis, else~/.cache/stasis, …).Files
stasis/src/cmd/github-bundle.js:githubBundleCommand, which builds and writes the bundle and lockfile.stasis/bin/stasis.js: the command, its flags and its usage text.stasis/README.md: a row.stasis/package.json: the new file infiles.Verification
githubBundleCommandover a fake client writes the repo's bundle and lockfile, withrepo: { github, root: true, commit }.--lockfilefor a Solidity bundle before anything is fetched.--github,--shaor--package-manager.oxlintis clean, and the full suite passes locally on Node 24.14 (2131 pass, 3 pre-existing skips).🤖 Generated with Claude Code
https://claude.ai/code/session_01KPSLumcb6Rdo4xXL5s5CpE