v2.21.0: Interactive daemon picker and faster config parsing
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, orrestartis run without any daemon argument and stdout is a TTY, pitchfork now opens a fuzzy-filterable multi-select prompt instead of erroring out.startlists all configured daemons (excluding those already running, unless--force), whilestopandrestartlist currently running daemons. Use/to filter, space to toggle, and enter to confirm; daemons are always shown in their qualifiednamespace/nameform. In non-TTY contexts the commands still require explicit daemon IDs. This change also fixes column misalignment inpitchfork lswhen 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 reloadruns, or a config write occurs, avoiding repeated filesystem traversal, reads, and TOML parsing.
Changed
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.