Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .changeset/brave-lions-jump.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
"cmdly": minor
---

feat: replace ncc packaging with Node SEA standalone binaries

Switched the build pipeline from `@vercel/ncc` to Node.js Single Executable Applications (SEA). Binaries are now produced for `linux-x64`, `linux-arm64`, and `darwin-arm64` targets (`darwin-x64` is excluded due to upstream instability). The release workflow uploads the resulting binaries and checksums as GitHub Release assets.

Also fixes Effect layer dependency ordering in the `configure`, `explain`, and `suggest` commands so that `NodeFileSystem` and `NodePath` layers are provided before dependent services, resolving TypeScript errors at runtime layer composition.
5 changes: 3 additions & 2 deletions scripts/build-sea.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,10 @@ if (!enabledTargets.includes(detectedHostTarget)) {

const target = detectedHostTarget;

if (Number.parseInt(process.versions.node.split(".")[0], 10) !== 26) {
const nodeMajor = Number.parseInt(process.versions.node.split(".")[0], 10);
if (nodeMajor < 26) {
throw new Error(
`Node 26.x required for SEA build, found ${process.version}. Use Node 26.x.`,
`Node 26+ required for SEA build, found ${process.version}. Use Node 26 or newer.`,
);
}

Expand Down
Loading