Skip to content

v2.12.1: Accurate process metrics and reliable cron retriggers

Choose a tag to compare

@mise-en-dev mise-en-dev released this 28 May 16:32
· 51 commits to main since this release
Immutable release. Only release title and notes can be modified.
534b00f

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_stats and get_extended_stats now 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.toml and indexing by DaemonId, which silently failed for daemons started from a project directory outside the supervisor's cwd ancestry (a common case when you pitchfork run against 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 in to_run_options also consults the daemon's own dir first 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.