Repository navigation
Comparing changes
Open a pull request
base repository: codeworksh/codework
base: main
head repository: codeworksh/codework
compare: feat-cli-bin
- 8 commits
- 29 files changed
- 2 contributors
Commits on Oct 13, 2026
-
chore(tui): drop Intel Mac support
Stop building and publishing @codeworksh/tui-darwin-x64; the package is deprecated on npm. The launcher now reports darwin-x64 as unsupported instead of naming a package that no longer ships. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 9830006 - Browse repository at this point
Copy the full SHA 9830006View commit details -
feat(harness): share effect with plugins from a bundled host
A host bundled into one file, like the standalone binary, has no effect on disk for plugins to resolve to. It now publishes its modules through Plugin.share on globalThis[Symbol.for("codework.v1.effect")] (and codework.v1.plugin), and the plugin loader serves them as virtual modules that load each one on first import. Unbundled hosts resolve as before. scripts/shared.mjs generates that registry, with every public module's export names, for the CLI bundle. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>Configuration menu - View commit details
-
Copy full SHA for 6498c0f - Browse repository at this point
Copy the full SHA 6498c0fView commit details -
feat(cli): bundle the CLI for a standalone binary
`vp run bundle` writes dist/sea: the whole CLI as one ESM file, entry src/sea.ts, beside the assets the binary embeds. Before the CLI starts, the entry unpacks them to a per-user cache keyed by their content hash, publishes the CLI's effect for plugins, and names the unpacked paths. Packages that load files from beside their own modules are unpacked as a real node_modules instead of bundled: just-bash (its sqlite3 worker and zstd and xz addons) and photon. The harness resolves them from CODEWORK_PACKAGES. node-liblzma is rebuilt with xz linked statically, so the binary needs no system liblzma. The image worker is bundled on its own, and a managed server re-spawns the binary itself. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for ace892a - Browse repository at this point
Copy the full SHA ace892aView commit details -
Merge origin/canary into feat-cli-bin
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 6d7d9b8 - Browse repository at this point
Copy the full SHA 6d7d9b8View commit details -
feat(cli): build the standalone binary as a Node 26 SEA
`vp run sea` injects the bundle into the official Node 26.11.1 for this platform, checked against its pinned sha256, as a single executable application with every asset embedded, and signs it ad hoc on macOS. A SEA's main module has no import.meta.resolve and its own import() reaches only built-ins. The bundled entry now borrows a resolver through Plugin.lendResolve, and unpacked packages load through importModule. The bundle also defines __dirname and __filename, which npm's installer reads, so plugins install from git and the registry inside the binary. test/sea.test.ts runs the binary with no Node on PATH: it unpacks its assets, runs a plugin through the shared effect, runs sqlite3, zstd and xz in the virtual shell against live models, and installs and runs plugins from git and npm when CODEWORK_PLUGIN_LIVE=1. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 3c6bef8 - Browse repository at this point
Copy the full SHA 3c6bef8View commit details -
ci: release the standalone binary from dev and main
dev and main now build the binary for darwin-arm64, linux-arm64 and linux-x64, each on its own runner, run the offline binary test, and attach cli-<os>-<arch>.tar.gz to a GitHub Release: `devel`, one prerelease replaced on every dev push, or `cli-v<version>`, marked latest. canary stays npm-only, and npm never waits on the binary. The run computes its release id once (scripts/version.mjs) and every job uses it, so the binary reports the version npm publishes. The binary test's artifact no longer depends on the platform. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 405bb23 - Browse repository at this point
Copy the full SHA 405bb23View commit details -
Merge origin/dev into feat-cli-bin
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for f8a5a63 - Browse repository at this point
Copy the full SHA f8a5a63View commit details -
feat(www): add codework.sh/install for the standalone binary
`curl -fsSL https://codework.sh/install | sh` installs the latest release; --dev installs the devel build and --version a given one. It detects macOS and Linux on arm64 and x64, points Intel Macs and musl systems to npm, checks the archive against the release's SHA256SUMS, installs to ~/.codework/bin and adds it to PATH once. The release job now publishes SHA256SUMS with the archives. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 1b9af61 - Browse repository at this point
Copy the full SHA 1b9af61View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff main...feat-cli-bin