Skip to content

Changelog

All notable changes to Vantris, newest first. The format follows Keep a Changelog and the project adheres to Semantic Versioning.

The canonical, full-detail changelog lives in the repository.

Unreleased

Reserved for future versions. Next up: growing the first-party plugin family on top of the plugin API.

1.2.0 — 2026-07-11

Added

  • Plugin system. Extend the dev server and the build with plugins, referenced from the config by string (a package name or a local path). Each default export — a plugin object via definePlugin or a function returning one — is used. Hooks:

    • config / configResolved — read or amend the config (partials deep-merged).
    • resolveId / load / transform — the module pipeline: redirect imports (including to virtual modules), synthesise a module's source, or rewrite its code. All three run in both dev and build.
    • transformIndexHtml — rewrite the HTML entry (dev + build).
    • handleHotUpdate — customise HMR for a change (the framework Fast Refresh seam).
    • configureServer — access the running dev server.
    • buildStart / buildEnd — build lifecycle.

    Pipeline hooks run with a this plugin context (resolve, emitFile, addWatchFile, warn, error, meta). Plugins are ordered by enforce: "pre" | "post" through one container shared by dev and build. No breaking changes — projects without plugins are unaffected.

1.1.0 — 2026-07-11

Added

  • Hot Module Replacement. The dev server applies changes in place instead of always reloading, over a typed WebSocket protocol.
    • Typed message protocol — every frame is a JSON object with a discriminating type (connected, update, reload, prune, error, custom, ping/pong); bidirectional.
    • CSS hot-swap — editing a stylesheet updates the <style> in place, no reload, no lost state.
    • JS hot updates — modules that import.meta.hot.accept() update without a reload; anything without a boundary safely full-reloads.
    • import.meta.hot APIaccept, dispose, prune, invalidate, decline, data, and the on/off/send custom-event channel, typed via vantris/client.
    • Server module graph — importer edges and accept boundaries recorded with a real ES-module parser (so accept in a string/comment is never a boundary).
    • Error overlay driven over HMR — a type: "error" message shows a dismissable overlay, cleared on the next successful update.
    • Reconnect — the client reconnects and reloads when the dev server restarts.

1.0.0 — 2026-07-09

First stable release. 🎉 The public API is now stable and follows semantic versioning. Vantris covers the full dev → build → preview cycle for React and vanilla JS/TS apps and libraries, on Node.js and Bun.

Fixed

  • Automatic JSX runtime in dev — the dev server reads JSX settings from tsconfig.json (jsx, jsxImportSource) and defaults to the automatic runtime, matching the bundler. A React 17+ component using JSX without importing React now works in dev instead of failing with React is not defined.

0.10.0 — 2026-07-09

Rounds out the dev dependency optimizer to Vite parity and hardens the dev server.

Added

  • optimizeDeps.include — pre-bundle listed packages at dev-server startup; everything else stays on-demand (zero-config preserved).
  • optimizeDeps.exclude — serve listed packages as native ESM. Pure-ESM only; a CJS one is bundled anyway with a warning.
  • In-browser error overlay — a syntax/CSS error paints a full-screen overlay with a code frame instead of a blank page.

Changed

  • DevTools ignore-list — bundled deps (/@vantris/deps/) are greyed out and skipped while stepping.
  • Browser-first dependency resolution — prefers browser/module fields.
  • Parser-accurate import rewriting — imports located with es-module-lexer, never a specifier-looking string in a comment.
  • Bun runtime validated — full suite plus real dev/build/preview runs pass under Bun.

Fixed

  • Single instance per dependency (dev) — a shared package (e.g. React) is bundled once, fixing React's "Invalid hook call" / two-copies error.
  • ESM packages expose named exports correctly.
  • Dependency cache keyed by mode & base — no stale cross-mode bundle.

0.9.1 — 2026-07-04

Fixed

  • CSS imported from JS no longer breaks the module graph — served as a style-injecting module.
  • CommonJS dependencies expose named exportsimport React, { StrictMode } from "react" works.
  • Subpath (exports) imports resolvedreact-dom/client works, bundled on demand.

0.9.0 — 2026-07-01

Dev-server hardening — a native, dependency-free server (Node.js and Bun) with real networking.

Added

  • server confighttps, proxy, cors, base, spaFallback.
  • HTTPS — self-signed dev certificate on the fly (hand-rolled X.509 via node:crypto).
  • Proxy — forwards path prefixes via the platform fetch, with changeOrigin, rewrite, and an explicit 502 on an unreachable target.
  • CORS and SPA fallback.
  • Runtime dispatchgetRuntime() picks node:http or Bun.serve.

Changed

  • Removed h3, ws, and chokidar — the server, its hand-rolled WebSocket (RFC 6455), the preview server, and the watcher (node:fs.watch) now run on native modules only.

0.8.0 — 2026-06-30

Completes the bundler core ahead of stabilisation.

Added

0.7.0 — 2026-06-29

A complete rewrite of the logger and CLI presentation — a dependency-free logger with capability detection, truecolor ANSI, OSC 8 hyperlinks, boxed start panels, and a build summary with gzip sizes.

0.6.0 — 2026-06-29

Internal refactor & quality pass. Added vantris/client types — ambient declarations for import.meta.env and asset/CSS imports.

0.5.0 — 2026-06-29

Advanced configuration & environment.

Added

  • Environment variables.env loading per mode.
  • import.meta.envVANTRIS_-prefixed vars plus MODE/DEV/PROD/ BASE_URL, statically replaced.
  • Modes--mode <mode>.
  • Aliasesresolve.alias via one central resolver.
  • Config validation — fails fast with property path, expected type, received value.

0.4.0 — 2026-06-28

Preview commandvantris preview serves the finished build with SPA fallback, network URL, and optional open. The dev and preview servers now share a single HTTP bootstrap.

0.3.0 — 2026-06-28

Production build systemvantris build bundles with Rolldown (internal): tree shaking, minification, code splitting, HTML-driven entries, JS-imported assets, a full CSS pipeline (url()/@import/ CSS Modules/Sass/Less/PostCSS/code-splitting), the base option, multiple HTML entries, and first-class output naming.

0.2.0 — 2026-06-27

Development servervantris dev serves the project, transpiles TypeScript on the fly with esbuild, enforces the serving allowlist, and live-reloads over a WebSocket. New dev config (port, host).

0.1.0 — 2026-06-27

First public foundation release — the monorepo, the extensible vantris CLI routing to a command registry, and defineConfig() with a Config interface.

Released under the MIT License.