• v2.0.0 b11f9fa8ae

    MOXYTOOL v2.0.0
    CI / Build, Type Check & Test (push) Successful in 1m3s
    Release / build-and-release (push) Successful in 8m17s
    CI / Build All Platforms (push) Successful in 8m41s
    Stable

    jkunz released this 2026-10-15 07:41:06 +00:00 | 5 commits to main since this release

    Breaking Changes

    • install.sh and moxytool update install MOXYTOOL 2.0.0 and later only: the installer requires every release asset it installs (the executable, its third-party notices and uninstall.sh, each listed in SHA256SUMS.txt), which releases before 2.0.0 do not carry. The @serve.zone/moxytool@1.5.2 npm package keeps its own postinstall.
    • The executables are Node.js single executable applications built by @git.zone/tssea from a @git.zone/tsbundle bundle, instead of deno compile binaries. The release asset names stay moxytool-linux-x64, moxytool-linux-arm64, moxytool-macos-x64, moxytool-macos-arm64 and moxytool-windows-x64.exe, so install.sh, moxytool update and the npm wrapper download them as before. Linux hosts now need glibc 2.28 or later, libstdc++.so.6 and libatomic.so.1 (Debian packages libstdc++6 and libatomic1); Alpine/musl is not supported. Each executable is released with its third-party notices (<asset>.third-party-notices.txt and .json). The Windows executable is built and checked structurally but not smoke-tested on Windows.
    • moxytool --version, help, update and vgpu-setup no longer load and refresh the community script index. Every command used to start a background refresh when the index was missing or older than 24 hours, which kept the process running until the refresh finished and printed its progress and errors next to the command's output. Only the scripts subcommands that read the index (list, search, info, run) refresh a stale index in the background; scripts refresh no longer starts a second refresh next to its own.
    • The source is a Node.js package: deno.json, mod.ts and scripts/compile-all.sh are removed, ts/index.ts is the entry point, pnpm run build:binary builds the executables, and the package declares its dependencies in package.json. Deno is not supported.

    Fixes

    • uninstall.sh removes the directory it was installed into (the --install-dir one, not only /opt/moxytool) and understands the --remove-config and --remove-data flags its messages name; an unknown option is refused.
    • install.sh (and so moxytool update) verifies the downloaded executable and its third-party notice files against the release's SHA256SUMS.txt and runs the executable with --version before it touches the current installation. It moves the current installation aside instead of deleting it first, and puts it back when a later step fails. It installs the notice files and uninstall.sh into /opt/moxytool beside the executable, accepts only SemVer versions (--version 1.2.3 or v1.2.3), downloads over HTTPS only (also on redirects), and --dry-run checks a release's assets without root and without changing anything.
    • The npm postinstall script installs the downloaded executable and its notice files only when every file matches the release's SHA256SUMS.txt, follows all HTTPS redirect kinds, and gives up on a stalled download. The npm wrapper forwards SIGTERM and SIGHUP to the executable, SIGINT only when it has no controlling terminal (a terminal Ctrl+C reaches the executable directly), and ends with the executable's exit status or signal.
    • The help printed its colour escape sequences as visible text (\u001b[1m…); it is styled text now, coloured on a terminal and plain otherwise.

    Maintenance

    • install.sh, the npm wrapper and postinstall script and the tag release workflow are generated by @git.zone/cli 9.1.0 from the binaryCli assets in .smartconfig.json. The release workflow takes the release notes from this changelog, publishes uninstall.sh with the executables, refuses to replace an existing release asset, and keeps the newest three releases (tags stay).
    • Tests for the script index cache (fetch, write, read, staleness, search and type filter) and for the CLI's argument handling, help and scripts subcommands run with @git.zone/tstest; CI builds, type-checks and tests on Node.js and builds all five executables.
    • Release tooling currency: pin pnpm@12.10.1; the build and test tooling enters at @git.zone/tsbuild ^6.0.2, @git.zone/tsbundle ^3.6.1, @git.zone/tssea ^1.2.1, @git.zone/tstest ^8.0.0 and @types/node ^26.6.4 (pnpm 12.11 and later and @types/node 26.6.5 stay out until they clear the seven-day rule).
    Downloads