unstale

npm / bundlewatch

bundlewatch

What changed in bundlewatch 1, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-19.

10 breaking3 security6 new APIs and options3 behavior and defaults14 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli on npm

bundlewatch 136 changes

Breaking changes 10

  • Self-hosted services must return { "baselinePrefix": 1 } before prefixed clients can run; clients stop if support cannot be confirmed and never fall back to an unprefixed baseline.

    1.1.0release notes

  • Deep imports into bundlewatch/lib no longer work, except for lib/app.

    1.0.0release notes

  • ci.trackBranches replaces its defaults instead of merging with them index by index.

    1.0.0release notes

  • files replaces its defaults instead of merging with them index by index.

    1.0.0release notes

  • Proxy variables HTTP_PROXY, HTTPS_PROXY, and NO_PROXY are no longer read.

    1.0.0release notes

  • Numeric maxSize values are now enforced; 0 still means no limit.

    1.0.0release notes

  • BundleWatch 1.0 requires Node.js 22.17 or later, including in CI.

    1.0.0release notes

  • For users migrating from 0.3.x, the first 1.0 run reports files previously saved under an empty name as new until a tracked branch saves a new baseline.

    1.0.0release notes

  • Pull request builds no longer save baselines, preventing a fork's master from overwriting the repository's baseline; branch builds still save.

    1.0.0release notes

  • The service is introducing stricter authorization for saving baselines and creating short links: public-repository tokens must belong to a user with push access or be an installation token for that repository.

    1.0.0release notes

Security 3

  • Basic Auth credentials in bundlewatchServiceHost URLs continue to work and are omitted from results links, CI logs, and GitHub statuses.

    1.0.0release notes

  • Results pages escape every value and allow no scripts.

    1.0.0release notes

  • The setup page checks an OAuth state and recommends a fine-grained token.

    1.0.0release notes

New APIs and options 6

  • An optional top-level prefix gives each application its own GitHub statuses and baseline history. Prefixes must be 1–64 lowercase ASCII letters, digits, hyphens, or underscores, starting with a letter or digit.

    1.1.0release notes

  • BundleWatch discovers supported config files automatically, searching upward to the nearest package.json; a discovered config takes precedence over the package.json bundlewatch key.

    1.0.0release notes

  • Adds a service endpoint that renders a short results link.

    1.0.0release notes

  • On GitHub Enterprise Server, commit statuses are sent to GITHUB_API_URL; comparisons require a self-hosted service because service.bundlewatch.io only accepts github.com tokens.

    1.0.0release notes

  • Adds a service endpoint that creates a short results link.

    1.0.0release notes

  • Adds a flag that prints the version.

    1.0.0release notes

Behavior and default changes 3

  • Newly generated short-link IDs are 22 characters; existing result links continue to work.

    1.1.0release notes

  • Defaults to master, main, and develop, plus the repository's default branch on GitHub Actions.

    1.0.0release notes

  • TypeScript configuration files load natively on Node.js 22.18 and later.

    1.0.0release notes

Fixes and other changes 14

  • Results pages stay steady when file sections are toggled.

    1.1.0release notes

  • Runs with missing or unreadable files no longer send a baseline and log the reason.

    1.0.0release notes

  • The service writes baselines before sending the response, preventing a write from being lost when the Lambda freezes.

    1.0.0release notes

  • The 0.x entry point bundlewatch/lib/app continues to work.

    1.0.0release notes

  • The 0.x entry point lib/bin/index.js continues to work.

    1.0.0release notes

  • Setting bundlewatchServiceHost to null prints no results link, and the Node.js API returns url: undefined.

    1.0.0release notes

  • Empty files with compression set to none measure 0 B instead of failing with Could not read file.

    1.0.0release notes

  • The --config flag accepts absolute paths.

    1.0.0release notes

  • When CI is set but CI_REPO_OWNER and CI_REPO_NAME are missing, the repository is read from GIT_URL.

    1.0.0release notes

  • Failing files with paths sharing the same final 37 characters no longer share a status; the second gets a (2) suffix.

    1.0.0release notes

  • Malformed results links return 400, GitHub failures return 503, and baselines too large to store return 413.

    1.0.0release notes

  • Removed files named after Object.prototype properties show as removed, and a file named __proto__ is measured instead of dropped.

    1.0.0release notes

  • Service results links now render for files without maxSize, and accept size strings such as 100KB sent by 0.x CLIs for numeric maxSize values.

    1.0.0release notes

  • Descriptions exceeding GitHub's 140-character limit are truncated instead of leaving the status pending.

    1.0.0release notes