Skip to content

fix(cli): forward checker controls through --check - #159

Closed
vincentkoc wants to merge 3 commits into
claude/check-cli-proof-basefrom
claude/fix-check-cli-option-forwarding
Closed

vincentkoc wants to merge 3 commits into
claude/check-cli-proof-basefrom
claude/fix-check-cli-option-forwarding

Conversation

@vincentkoc

@vincentkoc vincentkoc commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

Closed as superseded by oven-sh#45129, now ready for review. The replacement's integrated candidate 0d900695ca54e0caa58aecd3e592f9d5db37ae86 passed Linux and Darwin ARM64 native qualification, including all 61 differential registrations on each platform. Upstream CI and maintainer review remain separate gates. This fork branch preserves historical source and proof; the validation below applies only to the earlier heads it names.

bun --check --threads 2 currently treats 2 as the entrypoint, while --threads=2 is silently skipped. The runtime parser does not own checker controls, so standalone checks, run/test checks, and CLI builds lose the requested settings.

Parse checker controls only when --check belongs to Bun, then carry the parsed settings into the checker. Resolve command names from parsed positionals so a project path named build or run stays a value. Keep ordinary script arguments, -- boundaries, -p, Node aliases, Bunx, and package scripts unchanged. CLI builds forward threads and project selection; Bun.build() retains its independent defaults.

The shared option state, conditional parse tables, and execArgv handling account for the Rust change (+248 net lines). Regression coverage adds eight focused cases for spaced/equal controls, validation, formatting, successful execution, and sibling argument ownership. The workspace-filter test also covers scripts named build, test, and run, before and after successful checking. Documentation names the supported invocation forms.

Validation:

  • Exact current test source 33aa8d4a46ed24914d41c9772f2602f600e2df12 against upstream canary 1.4.4-canary.1+11b450ca9: 3 pass / 6 fail. The five forwarding cases and workspace routing fail; ordinary runtime, Node, and Bunx preservation cases pass.
  • Scoped formatting and git diff --check pass. Independent source review covered parser boundaries, option values, pretty precedence, and execArgv replay.
  • The first native Linux build (67ff797d7b) ran all 16 selected files: 15 passed; the checker file had 632 passes, 4 skips, and 3 failures. This caught a filtered-script dispatch regression and two incorrect new summary/usage assertions, now corrected. Its binary SHA-256 is 826dc4e418c2489078577344f591d180ee92684f6de7b69e3298372dc78478a9.
  • The production correction 059333b3b164c154f743fb034440c082dff18eec built on Linux and macOS in native CI. Linux ran all 16 selected files: 15 passed; the checker file had 633 passes, 4 skips, and 2 failures. macOS ran all 12 selected files: 11 passed; the checker file had 634 passes, 3 skips, and the same 2 failures. Both failures were test expectations: singular file in the summary and an unsupported bun test --filter assumption. The earlier-head results remain separate.
  • Current head 33aa8d4a46ed24914d41c9772f2602f600e2df12 changes only those test expectations. A complete Git diff verifies that production, documentation, and build inputs are identical to 059333b3b164c154f743fb034440c082dff18eec.
  • The nine focused cases from current test source 33aa8d4 pass against the verified macOS ARM64 release artifact built from 059333b3b: 9 pass / 0 fail, 16 assertions, exit 0. Command: <verified-binary> test test/cli/check/check.test.ts -t 'checker controls|--check with --filter, --parallel or --sequential'. This includes the six successful workspace-script routes. The binary reports revision 1.4.4-canary.1+059333b3b and embedded TypeScript 7.0.2.
  • Verified macOS artifact: archive SHA-256 4ea7d5abbe3fa3670beec94b6a0772e9af104f5dd1f6735f080737d469af8bfe; binary SHA-256 6efa2acf838549e137fe752446e3f340f178f6b07c45ab27d5bca2343ab44fa4. Its commit manifest matches full binary source 059333b3b164c154f743fb034440c082dff18eec.

Full native cross-platform CI at current head 33aa8d4 has not run and remains a landing gate. The focused result above qualifies the corrected test surface; it does not claim a full current-head CI pass. This PR remains a draft.

This draft targets a separate CI-only baseline built on upstream 11b450ca9b575b03f95bde209ff4f037fa14b374. The baseline carries the fork's maintained native workflow, adds an optional dispatch comparison base, and rejects truncated Git inventory output. Those carrier files are outside this PR's diff. There are no TypeScript semantic changes or incremental-cache changes here.

@autofix-troubleshooter

Copy link
Copy Markdown

Hi! I'm the autofix logoautofix.ci troubleshooter bot.

It looks like you correctly set up a CI job that uses the autofix.ci GitHub Action, but the autofix.ci GitHub App has not been installed for this repository. This means that autofix.ci unfortunately does not have the permissions to fix this pull request. If you are the repository owner, please install the app and then restart the CI workflow! 😃

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants