← Blog
The Nub Team

Nub 0.1.8

A Node augmentation batch — an interactive-TUI hang fix, native-addon ESM imports, WebAssembly and ShadowRealm unflagging, and a tree-wide compatibility opt-out.

A Node augmentation batch: an interactive-TUI hang fix, native-addon ESM imports, WebAssembly and ShadowRealm unflagging, and the NODE_COMPAT tree-wide opt-out.

Terminal foreground handoff

Interactive full-screen TUIs — Nx, Turbo — hung unkillably under nub run, with Ctrl-C unreachable. Since 0.1.6 the child runs in its own process group, but that group was never handed the terminal foreground, so any raw-mode terminal read raised SIGTTIN and stopped the process while Ctrl-C went to Nub instead of the child.

On the interactive path, Nub now hands the terminal foreground to the child's process group after spawn, and a guard restores Nub's foreground on child exit. While the child owns the terminal, the redundant SIGINT forward is suppressed — the kernel already delivers Ctrl-C to the foreground group directly — and the 0.1.6 single-SIGINT guarantee is preserved. (#32, fixes #27)

Expanded feature matrix

Three experimental Node features are now auto-injected on the Node versions that require the flag, consistent with Nub's existing posture of backfilling a feature where it was flagged. --node opts out.

FeatureFlagBands injected
Native-addon ESM imports--experimental-addon-modulesNode 22.20–23.0 and 23.6+
WebAssembly modules--experimental-wasm-modulesNode 18.19–22.19 and 23.0–24.5
ShadowRealm--experimental-shadow-realmNode 18.19+

Worker execArgv filtering also strips --harmony-* and --experimental-shadow-realm from child Worker threads to avoid bad-option startup aborts on Node versions where those flags are absent. (#31, #33)

Tree-wide compatibility opt-out

Setting NODE_COMPAT=1 (or true/yes, case-insensitive) forces zero-augmentation mode tree-wide — the persistent, inheritable form of --node. Because env vars propagate to descendants, one export in your shell, .envrc, or CI config covers the entire process tree. Version resolution and Node provisioning stay active; only runtime augmentation is disabled. It composes with --node — either one forces compatibility mode. (#34)

The full release notes list every change in this release.

Get started

Or paste this "Get Started" prompt into an agent. It will install Nub and explain how it can be used in your project. (It won't make any changes without permission.)