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
definePluginor 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
thisplugin context (resolve,emitFile,addWatchFile,warn,error,meta). Plugins are ordered byenforce: "pre" | "post"through one container shared by dev and build. No breaking changes — projects withoutpluginsare 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.hotAPI —accept,dispose,prune,invalidate,decline,data, and theon/off/sendcustom-event channel, typed viavantris/client.- Server module graph — importer edges and accept boundaries recorded with a real ES-module parser (so
acceptin 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.
- Typed message protocol — every frame is a JSON object with a discriminating
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 importingReactnow works in dev instead of failing withReact 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/modulefields. - 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 exports —
import React, { StrictMode } from "react"works. - Subpath (
exports) imports resolved —react-dom/clientworks, 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
serverconfig —https,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, withchangeOrigin,rewrite, and an explicit 502 on an unreachable target. - CORS and SPA fallback.
- Runtime dispatch —
getRuntime()picksnode:httporBun.serve.
Changed
- Removed
h3,ws, andchokidar— 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
- Library mode (
build.lib) — one entry intoesm,cjs,iifein a single build. - Complete source maps for JS, TS, and CSS.
- Global constants (
define). build.emptyOutDir(defaulttrue), guarded.vantris build --watch.- Persistent cache in
node_modules/.vantris/. - Zero-config aliases from
tsconfig.json. - Broader asset support —
wasmandtxtjoin images/fonts/media.
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 —
.envloading per mode. import.meta.env—VANTRIS_-prefixed vars plusMODE/DEV/PROD/BASE_URL, statically replaced.- Modes —
--mode <mode>. - Aliases —
resolve.aliasvia one central resolver. - Config validation — fails fast with property path, expected type, received value.
0.4.0 — 2026-06-28
Preview command — vantris 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 system — vantris 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 server — vantris 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.