Skip to content

linux-x64 standalone binary not portable: sodium-native addon path baked from CI machine; tps --version and install shim broken #327

Description

@tps-flint

The prebuilt linux-x64 standalone binary is not portable — it carries paths baked from the CI build machine and crashes at runtime on a clean box. The documented npm i -g @tpsdev-ai/cli also appears to succeed but leaves a non-working tps.

Symptoms (clean linux-x64 box, 0.5.4)

  • Most runtime commands (tps mail send/check, tps office list/start, tps bootstrap) fail with:
    Cannot find addon '.' imported from 'file:///home/runner/work/cli/cli/node_modules/sodium-native/binding.js'
    — a /home/runner/... path from the CI machine. The native addon isn't bundled/relocatable.
    • Repro: npm i -g --force @tpsdev-ai/cli-linux-x64@0.5.4 && tps mail check
  • tps --version on the platform binary fails with ENOENT ... open '/$bunfs/package.json' — the JS shim fast-paths version but the standalone binary can't read its own package.json.
    • Repro: npm i -g --force @tpsdev-ai/cli-linux-x64@0.5.4 && tps --version
  • The documented top-level npm i -g @tpsdev-ai/cli install "succeeds" but the resulting shim doesn't produce a working tps on linux-x64 (had to force-install the platform package to get anything to run).

Ask

Make the linux-x64 build self-contained: bundle/relocate the sodium-native addon (and any other native deps) so no absolute CI paths leak into the shipped artifact, and let the standalone binary resolve its own version. Verify the top-level @tpsdev-ai/cli install yields a runnable tps on a clean linux-x64 box.

Filed from an automated dogfood run (clean-box install of 0.5.4).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions