v2.12.1: Accurate process metrics and reliable cron retriggers
A small patch release that makes daemon resource metrics actually reflect what your daemons are doing and fixes cron/retry runs for slug-started daemons.
Fixed
-
Process-tree daemon metrics (#435) — @sargunv-headway. CPU and memory shown in the web UI and TUI were sampled from only the directly supervised PID, so when a daemon was launched via a wrapper like
mise run, the metrics reported the wrapper itself instead of the underlying service.get_statsandget_extended_statsnow aggregate stats across the full descendant tree (reusing the BFS already used for resource-limit enforcement), and the web/TUI list views batch this work into a single process snapshot per refresh. Includes a regression test that spawns a parent/child process tree and asserts the reported RSS includes the descendants. -
Cron and retry use the persisted command (#453) — @gaojunran. Cron triggers and retry attempts previously looked up the daemon's run command by re-merging
pitchfork.tomland indexing byDaemonId, which silently failed for daemons started from a project directory outside the supervisor's cwd ancestry (a common case when youpitchfork runagainst a slug). They now use the command stored in the daemon's state and only fall back to logging "no run command found in state" when it's truly missing. The on-output hook lookup into_run_optionsalso consults the daemon's owndirfirst so hook configuration is picked up correctly on restart. Resolves discussion #452.
Full Changelog: v2.12.0...v2.12.1
💚 Sponsor pitchfork
pitchfork is built by @jdx at en.dev — an independent studio shipping developer tools like mise, aube, hk, pitchfork, and more. Development is sustained by sponsorships.
If pitchfork has a place in your dev workflow, please consider sponsoring at en.dev. Individual and company sponsorships are what keep the project healthy and moving forward.