The test suite was tightly coupled to Bun-specific APIs (bun:test,
Bun.sleep) making it impossible to validate behavior on other
runtimes. A module hook now rewrites bun:test imports for Node's
test runner, and fake clocks replace wall-clock delays so tests
run deterministically everywhere.
Fix FFI type mismatches and boolean normalization that caused
silent failures on non-Bun runtimes. Correct bundled asset
resolution so published packages load without a TypeScript loader.
Reorganize the example menu with themed sections, two-panel focus
management, and proper tree-sitter cleanup to prevent worker leaks.
Allow examples to run under Node 26 with --experimental-ffi in addition to
Bun. Replace some Bun-specific APIs with standard Node equivalents, lazy-load
demos that still require Bun (WebGPU, sprites, shaders), and import Rapier via
its ESM subpath.
Replace hardcoded macOS SDK paths with runtime discovery that
checks -Dmacos-sdk, SDKROOT/MACOS_SDK_PATH env vars, system
SDK detection, and the default CommandLineTools path as fallback.
Add host-only build mode so non-macOS developers can build and
test native packages for their own platform without needing to
cross-compile all targets.
Use musl for native executables on Linux to work around Zig
0.15.2 failing on newer glibc startup objects that contain
.sframe relocations. I think this is basically what it did before
the audio libs linked libc.
Move the CI preview workflow to macos-latest so it can build
darwin native packages from source.
Extract examples, assets, install.sh, and the standalone build script
into a new workspace so they consume the public package surface
(@opentui/core, @opentui/three, @opentui/keymap) instead of reaching
into sibling internals. This makes examples a consumer of
the published API.
Drop the inherited browser export condition that prevented jimp from
resolving its node entry, which broke the standalone build.