diff --git a/README.md b/README.md index bed7bff..ee24e70 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,11 @@ sudo install -m755 podtui /usr/local/bin/podtui > The tarball contains `podtui` plus `libopentui.` and > `libcavacore.` **beside it** — keep them together (don't move just the > binary alone), or the native FFI libraries won't load. +> +> One caveat: the embedded runtime reads a `bunfig.toml` from the directory +> you launch from. If that file has a `preload` entry (as Bun project +> directories often do), startup fails with `preload not found`. Launching +> from a normal directory (home, `~/bin`, …) works fine. ### 3. Arch Linux (AUR) @@ -187,9 +192,10 @@ make dist-mac # (run on macOS) → podtui-darwin-.tar.gz make dist-linux # (run on Linux) → podtui-linux-.tar.gz ``` -`make dist` compiles against `bunfig.standalone.toml` (a preload-free Bun -config) so the emitted binary doesn't bake in the dev-only `@opentui/solid` -preload. The solid JSX transform is registered in `build.ts` itself. +`make dist` emits a config-independent binary: Bun does not bake bunfig +settings into `--compile` output, and the solid JSX transform is registered in +`build.ts` itself. The binary then embeds the `preload`-free runtime, so launch +it from any normal directory. ## Packaging model diff --git a/bunfig.toml b/bunfig.toml index fe44855..96b1f08 100644 --- a/bunfig.toml +++ b/bunfig.toml @@ -1,4 +1,9 @@ -preload = ["@opentui/solid/preload"] +# NO top-level `preload` here — intentional. A compiled PodTUI binary's +# embedded Bun runtime reads the launching process's CWD bunfig.toml, and a +# top-level `preload` entry (e.g. "@opentui/solid/preload", which the +# standalone cannot resolve) makes the binary die at startup with +# "preload not found". Dev/test still get the solid transform via explicit +# `--preload` flags in package.json and the [test] section below. [test] preload = "@opentui/solid/preload" diff --git a/package.json b/package.json index 4fc7ab5..e606e66 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,8 @@ "podtui": "./dist/index.js" }, "scripts": { - "start": "bun src/index.tsx", - "dev": "bun --watch src/index.tsx", + "start": "bun --preload @opentui/solid/preload src/index.tsx", + "dev": "bun --preload @opentui/solid/preload --watch src/index.tsx", "build:native": "bash scripts/build-cavacore.sh", "build": "bun run build.ts", "dist": "bun dist/index.js",