This release adds external configuration attachments so generators can wire pitchfork into a project without dropping a file in its repo, upgrades pitchfork wait to handle multiple daemons and groups, and fixes two long-standing issues on Windows and behind the HTTPS proxy.
Added
-
Attach external config files to projects (#853) — @jdx. A new
pitchfork configcommand lets an external generator register a TOML file against a project without copying it into the repository. Registrations are stored in the namespace registry and are resolved by both the CLI and running supervisors, so cron, hooks, watches, sessions, and proxy auto-start all pick them up. Registered files override ordinary project config; paths inside them (including daemondirand watch patterns) resolve against the project directory.pitchfork config add /path/to/generated.toml --dir /path/to/project pitchfork config list --json pitchfork config remove /path/to/generated.toml
For one-off overrides,
PITCHFORK_CONFIGsupplies an invocation-scoped platform path list (:on Unix,;on Windows) that beats registered attachments without registering anything, and is deliberately not inherited by a supervisor pitchfork spawns automatically. See the new external configuration guide. -
pitchfork waitnow handles multiple daemons, groups, and interrupts (#820) — @gaojunran. Wait on several daemons at once (pitchfork wait api worker), on a whole group with--group, or run with no arguments to get a fuzzy multi-select picker mirroringpitchfork stop. Exit-code propagation is now real:waitexits 0 only when every daemon stopped cleanly, otherwise it returns the exit code of the first failing daemon in argument order (daemons that already finished still count). The new--killflag stops the still-running daemons gracefully when a signal arrives, then exits with128 + signolike the shell.pitchfork start api worker pitchfork wait --kill api worker # tails both; Ctrl-C stops both gracefully
Fixed
-
No more stray console windows on Windows (#849) — @JamBalaya56562. A background supervisor previously left a visible console window on the desktop for every daemon, log sink, hook, readiness/health probe, and VCS query it spawned. All supervisor-side spawns now suppress the console window (only when the supervisor itself has no console), so ordinary use no longer flashes or leaves windows behind. Unix and foreground supervisors are unaffected.
-
Cookies split by HTTP/2 clients are rejoined correctly in the proxy (#845) — @iain. HTTP/2 clients (including browsers) may send each cookie as its own
cookieheader field. The proxy forwarded these untouched to HTTP/1.1 daemons, which joined them with", "and corrupted every cookie after the first, breaking signed session cookies and login flows. The proxy now joins the fields with"; "when downgrading to HTTP/1.1.
Changed
- Shell completions ship with releases (#832) — @jdx. Native Bash, Zsh, and Fish completion scripts are now published as signed Packslip resources alongside the usage spec, letting installers register tab completion without a separate usage executable.
- Documentation overhaul (#834) — @jdx. The docs site has a redesigned landing page and theme with light/dark support and grouped navigation, and the guides, concepts, and CLI reference were rewritten with runnable, verified examples plus new health-check and HTTP API references.
Full Changelog: v2.24.2...v2.25.0
💚 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.