Skip to content

v2.21.0: Interactive daemon picker and faster config parsing

Choose a tag to compare

@jdx jdx released this 10 Aug 10:53
· 41 commits to main since this release
Immutable release. Only release title and notes can be modified.
f774e7f

This release adds an interactive multi-select picker when you run start, stop, or restart with no arguments, and speeds up the hot config-parsing path with an mtime-based cache.

Added

  • Interactive daemon selection (#709) — @gaojunran. When pitchfork start, stop, or restart is run without any daemon argument and stdout is a TTY, pitchfork now opens a fuzzy-filterable multi-select prompt instead of erroring out. start lists all configured daemons (excluding those already running, unless --force), while stop and restart list currently running daemons. Use / to filter, space to toggle, and enter to confirm; daemons are always shown in their qualified namespace/name form. In non-TTY contexts the commands still require explicit daemon IDs. This change also fixes column misalignment in pitchfork ls when cells contain colored text.

  • mtime-based cache for config parsing (#711) — @gaojunran. Merged config loading is on a hot path invoked frequently by the interval watcher, lifecycle hooks, and autostop checks. Results are now cached per working directory and reused until a source file's modification time changes, an explicit settings reload runs, or a config write occurs, avoiding repeated filesystem traversal, reads, and TOML parsing.

Changed

  • Updated the rmcp MCP SDK to v3 (#725) and clap_usage to v5 (#724).

Full Changelog: v2.20.0...v2.21.0

💚 Sponsor pitchfork

pitchfork is maintained by @jdx, an open source developer for entire.io, the title sponsor of the jdx.dev open source tools including mise, aube, hk, and more. Development is sustained by sponsorships.

If pitchfork has a place in your dev workflow, please consider sponsoring at jdx.dev. Individual and company sponsorships are what keep the project healthy and moving forward.