Skip to content

ci: typecheck through the pinned script, not bunx - #69

Merged
vvillait88 merged 1 commit into
mainfrom
ci/no-bunx
Jul 31, 2026
Merged

ci: typecheck through the pinned script, not bunx#69
vvillait88 merged 1 commit into
mainfrom
ci/no-bunx

Conversation

@vvillait88

Copy link
Copy Markdown
Contributor

Summary

CI ran bunx tsc --noEmit, which resolves TypeScript independently of the project, so the typecheck was not guaranteed to use the version this repo pins. Switched to bun run typecheck, which runs the same tsc --noEmit against the pinned compiler.

Type of change

  • Bug fix (no breaking change)
  • New feature (no breaking change)
  • Breaking change (existing callers must update)
  • Docs, tests, or internal maintenance only

Public API

None. This changes only how CI invokes the type checker; no shipped code, exported type or signature changes.

Test plan

bun run typecheck passes locally (exit 0), running the same tsc --noEmit the script has always defined.

Worth stating why this is a fix rather than tidying: the org holds TypeScript at ^6 and 7.0.2 is published, so bunx had a newer major available to reach for. That failure mode is on record. A bunx-resolved tsc fetched a different major and printed its help text while exiting non-zero, which reads exactly like a real type error and sends a verification down a false path. A CI check that can fail for a reason unrelated to the thing being tested is worse than one that does not run, because it looks like a finding.

Found while auditing hook/CI parity across the workspace; pay carried the identical line and is fixed in its own PR.

Checklist

  • Tests cover the new behavior, and the suite passes locally
  • Lint, format, and type checks pass
  • Docs and README examples updated if the public surface changed
  • No secrets, credentials, or personal data in the diff or the tests

`bunx tsc --noEmit` resolves TypeScript independently of the project, so CI
was not necessarily compiling with the version this repo pins. That is a
documented trap: a bunx-resolved tsc has fetched a different major and
printed its help text while exiting non-zero, which reads exactly like a real
type error and sends a verification down a false path.

It is live now rather than theoretical: TypeScript is held at ^6 org-wide and
7.0.2 is published, so bunx had a newer major available to reach for.

`bun run typecheck` runs the same `tsc --noEmit` against the pinned version.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@vvillait88
vvillait88 merged commit e1f2518 into main Jul 31, 2026
7 checks passed
@vvillait88
vvillait88 deleted the ci/no-bunx branch July 31, 2026 08:12
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.

1 participant