What changes for consumers
@bloomengine/engine@0.4.1 now declares @bloomengine/jolt-prebuilt@0.4.1 as a regular dependencies entry. npm install @bloomengine/engine pulls both packages; Perry's compile step finds the prebuilt archives via node_modules/@bloomengine/jolt-prebuilt/lib/<target>/ and skips the multi-minute Jolt cmake build entirely.
If you're upgrading from 0.4.0 (or any 0.3.x), there's nothing to do beyond npm install — your first Perry compile should take seconds for the Jolt portion instead of 5–15 minutes.
Engine tarball shrinks
Dropping the bundled JoltPhysics sources from files: cuts the engine tarball from 2.2 MB → 1.2 MB packed (and 8.4 MB → 4.1 MB unpacked, 446 → 115 files). The Jolt bytes now live in @bloomengine/jolt-prebuilt, where each consumer only ever downloads one platform's worth of archives once.
Removed
scripts/prepack.sh— its only job was to verify the JoltPhysics submodule was initialised before packing source into the tarball. With source no longer shipped, the guard is meaningless.
Escape hatches
BLOOM_JOLT_FROM_SOURCE=1still forces a cmake build of Jolt for in-repo development (the submodule remains in this repository). It will not work for npm consumers, since the source is no longer in the engine tarball — by design.- If
@bloomengine/jolt-prebuiltis somehow absent (--omit=optional, custom registry filtering, etc.),build.rsfalls back to cmake and will fail with a clearbloom_jolt shim not foundmessage. Install the prebuilt package to fix.