fix(pstack): require Bun at bootstrap boundary - #21
Merged
Conversation
ericlitman
marked this pull request as ready for review
August 26, 2026 03:10
|
Tick the box to add this pull request to the merge queue (same as
|
hieusats
referenced
this pull request
in hieusats/omp-pstack
Aug 30, 2026
fix(pstack): require Bun at bootstrap boundary
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.
Closes #18
Why
The Bun-only bootstrap currently lets Node fail at
import.meta.dirwith an opaque path stack. The first shared module boundary can report the required runtime before either direct bootstrap orwatch-prreaches a Bun-only API.What changed
bootstrap.tswhen the Bun global is missing and print the Bun installation URL.watch-primporter under Node 22.23.2. The package test command includes this test, and CI pins the same Node version.no-commentsatcodex-tools.mdinstead of repeating Codex dispatch mechanics. Update NOTICE provenance for the port-authored test and script edits.Tradeoffs
Node remains unsupported. The guard covers only entry points that evaluate
bootstrap.ts;orchfails earlier during Node's TypeScript parsing and stays outside this change.Blast radius
The runtime change is one predicate before
import.meta.dir. Bun execution falls through to the existing dependency installation and freshness checks. No runner,orch, version, or changelog code changed.Verification
Local verification:
v22.23.2and Bun1.4.0.bun install --frozen-lockfile: passed.bun test bootstrap: 2 passed, 0 failed, 6 assertions.bun run test: 101 passed, 0 failed, 451 assertions across 10 files.bun run typecheck: passed.PSTACK_STATIC_ONLY=1 bash tests/skill-collision-repro.sh: passed.quick_validate.py plugins/pstack/skills/no-comments: passed.git diff origin/main...HEAD --check: passed.node bootstrap.tsandnode watch-pr/watch-pr: each exited 1 withpstack poteto-mode tooling requires Bun (https://bun.sh). Install Bun, then re-run.and no path-error stack.bun bootstrap.tsandbun watch-pr/watch-pr --help: each exited 0.package.jsonandbun.lock.Live evidence:
Head
8b8741bca172afa5a1ab41e7b28dbcaa0d27ed7cpassed the installed-payload gate./Users/ericlitman/.claude/plugins/cache/open-pstack/pstack/1.1.0matched the branch package./Users/ericlitman/.codex/plugins/cache/open-pstack/pstack/1.1.0matched the branch package.node_modulesdirectory.bootstrap.tsandwatch-pr.pstack poteto-mode tooling requires Bun (https://bun.sh). Install Bun, then re-run.watch-prprintedUsage: watch-pr [options].