Skip to content

v2.32.4: Fix Windows quoted commands with mise and boot paths with spaces

Choose a tag to compare

@jdx jdx released this 29 Oct 10:35
· 18 commits to main since this release
Immutable release. Only release title and notes can be modified.
c00b176

On Windows, daemons using mise = true now keep their command quoting, and pitchfork boot now works with executable paths that contain spaces. Windows also now rejects pty = true and user settings instead of silently ignoring them. Check your configuration before upgrading if you use either setting.

Fixed

  • Windows: quoted commands work with mise = true, and boot registration handles paths with spaces (#1045) by @ofek.
    • Daemons that run through cmd /C with mise enabled keep quoted executable paths and arguments, shell expansion, and compound commands. Ctrl+C handling and the shell's exit code are also preserved. With this config, a b is now passed as a single argument:

      [settings.general]
      mise = true
      
      [daemons.worker]
      run = '"C:\Program Files\Example\worker.exe" --name "a b"'

      Deferred cmd templates need mise 2026.10.10 or later. They use mise's native cmd rendering, so the quote filter keeps argument boundaries.

    • Startup registration works with executable paths that contain spaces or Unicode, such as installs under Program Files. When pitchfork updates an existing registration, it keeps the entry in its original registry root (HKLM or HKCU). Automatic path repair keeps the Task Manager approval state, so an entry you disabled stays disabled. If writing to HKLM fails with a permission error, pitchfork asks for elevation instead of creating a second entry under HKCU.

    • boot status checks each registry root separately, so a disabled entry in one root no longer hides an enabled entry in the other. boot disable removes entries from both roots, and running boot enable more than once has no extra effect. Automatic repair does not change malformed registrations. Instead, it prints instructions for replacing them.

Breaking Changes

  • Windows rejects pty = true and user settings (#1045). Earlier versions ignored these settings on Windows without any warning. Now pitchfork reports an error and does not start the daemon. If you force a restart and the config fails this check, the running daemon keeps running. To upgrade, remove these settings from Windows configs, or set pty = false and set both the daemon user and settings.supervisor.user to empty strings.

Full Changelog: v2.32.3...v2.32.4

💚 Sponsor pitchfork

pitchfork is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.

If pitchfork has a place in your development workflow, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep pitchfork fast, free, and independent.