Changelog

The fastest way to see what changed in Elide. Highlights come first; detailed version notes follow for each public release line.

Latest published release: 1.3.6+20260705. For install and upgrade commands, see Releases.

Highlights

  • JS Node.js compatibility is moving quickly. Recent work adds node:fs, node:crypto, node:path, node:assert, node:util, node:test, streams, process behavior, module shims, and worker-thread plumbing.
  • Python Python support is more practical. Elide now tracks Python 3.12-era behavior, fixes stdlib discovery from the shipped Python home, improves cold-start setup, and adds an elide python command.
  • JVM JVM and Bazel workflows are sharper. Kotlin and Java compiler work adds elide jdeps, Bazel-aware diagnostics, Kotlin ABI improvements, digest-driven incremental compilation, used-dependency reporting fixes, and faster warm javac workers.
  • Install Installation is more complete. The installer path now covers unified NPM/PyPI/JVM dependency installation, local JAR dependencies, Windows installer repair, full-archive upgrades, and smaller NPM platform packages.
  • CLI Runtime diagnostics are easier to act on. Guest module-resolution errors, Kotlin diagnostic floods, upgrade output, elide info, and version/channel reporting all received user-facing improvements.

By Area

AreaRecent user-visible changes
JavaScript and TypeScriptNode API coverage, Web Crypto digest support, print, plain error output, $262 Test262 hooks, worker-thread work
PythonPython 3.12 alignment, stdlib layout fixes, Python home discovery, cold-start preinit work, elide python
JVM, Kotlin, and Bazelelide jdeps, Kotlin ABI headers for mixed source sets, Bazel-friendly diagnostics, classpath and incremental-compile fixes
Install and packagingUnified dependency installation, NPM distribution work, full-archive upgrades, Windows installer staging fixes
CLI and docsBetter elide upgrade, elide info, version/channel reporting, examples page, crawler metadata, and issue links

About This Page

This page is curated from recent merged changes, plus public release tags on elide-dev/elide. Dependency-only, CI-only, and test-only changes are omitted unless they affect installation, security, packaging, or runtime behavior. Version grouping uses release milestones where they are set and the public nightly release line otherwise.

Next: 1.4.0

The next 1.4.0 line updates the runtime base and lands a large JavaScript and Python compatibility batch.

✨ Features

  • Added broader Node.js compatibility, including node:path, process behavior, node:assert, node:util, node:test, module shims, stream behavior, and worker thread plumbing.
  • Added an elide python subcommand with CPython-style flag compatibility.

🛠️ Fixes

  • Fixed JavaScript module loading, CommonJS resolution, worker-thread runtime ownership, structured clone/message ports, stream lifecycle behavior, fetch URL resolution, and catchable guest errors for out-of-CWD module failures.
  • Fixed embedded native-image operation, embedded JVM staging, Pkl engine isolation, Python builtins imports, and runtime API compatibility.
  • Changed NPM platform packages to download the Elide binary during install instead of bundling very large tarballs.

🧹 Chores

  • Updated the runtime/toolchain base, refreshed managed toolchains, and updated PGO/BOLT profile wiring.

1.3.6

The 1.3.6 nightly line focuses on installers, dependency installation, JVM tool fixes, MCP improvements, Python layout fixes, and JavaScript conformance hooks.

✨ Features

  • Added packaged installer support around embedded aube for NPM and uv for PyPI, with unified install smoke coverage.
  • Added local JAR dependencies for JVM projects.
  • Added MCP insight and debugging tools, including project/build inspection and guest-code execution support.
  • Added JavaScript conformance hooks: global print, plain scriptable error output, and $262 host API support for Test262 tooling.
  • Added web templates for elide init.

🛠️ Fixes

  • Fixed the docs Examples button by adding the backing code samples page.
  • Fixed elide run for spawned JVM processes that read from stdin.
  • Fixed MCP HTTP mode and high-level insight scripting behavior.
  • Fixed javaformat and ktfmt helper handling for @argfile arguments.
  • Fixed several installer and snippet-runner issues.
  • Fixed embedded javac compatibility with ambient CLASSPATH defaults and DocLint reflection behavior.
  • Improved runtime error reporting for module-resolution failures.
  • Fixed Python home selection by using the on-disk Python layout.
  • Moved temporary writes into a dedicated process directory that is freed on exit.
  • Fixed NPM publishing reliability by reclaiming disk and surfacing publish errors.

🧹 Chores

  • No public-user chore entries.

1.3.5

Elide 1.3.5 improves Kotlin/Bazel workflows, starts shipping a fuller Node filesystem implementation, and tightens update and docs behavior.

✨ Features

  • Added Java ABI output for mixed Kotlin and Java source sets in elide kotlinc --abi-only.
  • Added Bazel-aware Kotlin compiler diagnostics and project-relative source paths.
  • Added node:fs and node:fs/promises support with a filesystem capability sandbox.
  • Added a docs "File an issue" action and fixed mobile layout for page actions.

🛠️ Fixes

  • Made explicit elide kotlinc --plugins= selections authoritative.
  • Fixed elide upgrade to download the full archive, not only the binary, when resources are needed.
  • Fixed docs crawler/discovery files and robots behavior.
  • Fixed NPM publishing by moving @elide-dev/elide publishing into a dedicated, testable workflow.

🧹 Chores

  • Disabled telemetry, cloud, and sidecar by default behind optional Cargo features.

1.3.4

Elide 1.3.4 is centered on JVM build performance and Kotlin compiler correctness under persistent-worker use.

✨ Features

  • Added Kotlin Build Tools API work for Elide JVM builds.
  • Added Pro i18n support.

🛠️ Fixes

  • Fixed Kotlin incremental compilation behavior with digest-driven invalidation, heap sizing, and classpath-default handling.

🧹 Chores

  • Cached warm javac classpath state in persistent workers to reduce repeated classpath indexing.

1.3.3

Elide 1.3.3 adds Python 3.12 and native compression work, expands NPM distribution infrastructure, and fixes several JVM build and transport issues.

✨ Features

  • Added Python interop, Python 3.12 alignment, and sys.argv fixes.
  • Added native compression for gzip, Brotli, and Zstandard, replacing zstd-jni and brotli4j in the transport path.
  • Added NPM distribution infrastructure for Elide binary packages.
  • Added publishing infrastructure for @elide-dev/types.
  • Added roll-up behavior for excessive Kotlin compiler diagnostics.

🛠️ Fixes

  • Fixed Python cold-start preinitialization on the Python 3.12 base.
  • Bumped Netty to address open Netty dependency alerts.
  • Fixed zstd JNI class registration on the dynamic dylib path.
  • Fixed native-image task output path semantics.
  • Fixed Kotlin stdlib inclusion when Kotlin sources are present.
  • Fixed Kotlin compiler API and language-version argument capture.
  • Fixed build-cache fingerprint corruption after cache restore.
  • Fixed external native-image driver selection.
  • Fixed JVM codegen so build/version config stays in sync.
  • Fixed build-cache file attribute preservation.

🧹 Chores

  • No public-user chore entries.

1.3.2

Elide 1.3.2 improves CLI version reporting and upgrade behavior, fixes Windows installer packaging, and closes Python/native-image resource gaps.

✨ Features

  • Show the Elide masthead in elide info.

🛠️ Fixes

  • Made elide upgrade channel-aware and cleaned up user-facing upgrade output.
  • Fixed musl/LTO builds by restoring Rust memory intrinsics via compiler-builtins-mem.
  • Fixed license registration pages to use elide pro activate.
  • Added channel and precise-version awareness to elide --version and elide info.
  • Fixed the Windows installer to sync the staged Elide home instead of relying on stale hand-enumerated file paths.
  • Fixed Python stdlib version resolution from the on-disk Python home layout.
  • Fixed native-image jdeps resource bundle inclusion for used-dependency reports.
  • Corrected docs for multiplex persistent-worker support.

🧹 Chores

  • No public-user chore entries.

1.3.1

Elide 1.3.1 adds jdeps, improves JS crypto support, and fixes Kotlin/Bazel and formatter regressions.

✨ Features

  • Added elide jdeps.
  • Added node:crypto, Web Crypto digest behavior, and transparent tool passthrough.
  • Added reference and guide docs for remaining runtime/tooling topics.

🛠️ Fixes

  • Added self-healing for corrupt Kotlin incremental-compile caches.
  • Fixed Bazel flags.
  • Fixed G1 garbage-collector build/linkage support while keeping it disabled by default.
  • Fixed formatter check-mode output and Kotlin source counting.
  • Fixed generated Java projects so they do not include Kotlin dependencies.

🧹 Chores

  • No public-user chore entries.

1.3.0

Elide 1.3.0 contains early installer, project-template, and native-image fixes from the reviewed PR range.

✨ Features

  • Added elide init template and metadata improvements, including inverted blocks, binary files, and conditional build/test/run invocation support.

🛠️ Fixes

  • Fixed installer script argument parsing and Unix executable permissions.
  • Fixed native-image localization configuration for ICU.
  • Fixed missing annotations for Java test compilations.
  • Fixed a build-time nanoTime value that caused instant timeout behavior.

🧹 Chores

  • No public-user chore entries.

1.0.x - 1.2.x Pre-Releases

Elide 1.0.x through 1.2.x were early prerelease lines. They are archived for reference and should not be used for new projects.


Elide Classic

Elide Classic is the pre-1.0 code line preserved in elide-dev/elide on the v5 branch. Classic releases used beta and release-candidate style versions, such as 1.0.0-beta11-rc6, and are useful mainly for understanding older projects that pinned themselves to that era of Elide. The last Classic release was 1.0.0-beta11-rc6; the last public non-RC release is 1.0.0-beta10.

Modern Elide is the current runtime and toolchain line documented above. It uses the newer packaging, installer, JVM toolchain, JavaScript/TypeScript, Python, and native-image architecture represented by the 1.3.x and 1.4.x releases. Classic should be treated as historical unless you are maintaining an existing project on that branch.