Skip to content

ci: gate zero deps, tree-shaking, tsrs pins and lockfile sync - #105

Merged
joeblau merged 1 commit into
mainfrom
fix/invariants-e
Nov 10, 2026
Merged

joeblau merged 1 commit into
mainfrom
fix/invariants-e

Conversation

@joeblau

@joeblau joeblau commented Nov 10, 2026

Copy link
Copy Markdown
Contributor

Closes #101
Closes #102
Closes #103
Closes #104

What changed

Four CI-only gates. No library code under packages/chart/src changes, so the published dist/ is byte-identical to main.

npm run check:invariants runs all four checks, then 19 node:test regression tests. Those tests run each check against a temporary broken fixture (a runtime dependency, a required React peer, React leaking into core, a bare import or re-export, a dynamic builtin import, a kernel leak, a budget overrun, ^ and drifted tsrs pins, platform-binary drift in each lockfile, and an npm-only, bun-only or nested-version mismatch), and each one fails as expected. The gates are documented in docs/ci-runners.md.

Proof

  • npm run check:invariants: all four checks pass, and 19/19 regression tests pass.
  • npm run typecheck:tsc, npm run lint and npm run build: all pass.
  • Library tests and coverage are unchanged, because no src or test files change. The CI coverage gate still enforces 100%.
  • Benchmarks: no runtime code changed, so the hot paths (setData, appendData, render) can't regress.

@joeblau
joeblau merged commit f175c09 into main Nov 10, 2026
14 checks passed
@cursor
cursor Bot deleted the fix/invariants-e branch November 10, 2026 19:20
@joeblau joeblau mentioned this pull request Nov 11, 2026
joeblau added a commit that referenced this pull request Nov 11, 2026
- Set @bloxwap/chart (and the workspace apps) to 0.5.0 for the invariant
  and tsrs release (#74, #75, #105–#110)
- Docs, README, llms.txt, OpenAPI and the site's structured data name 0.5.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment