3a351a9665
Two growth leaks closed: 1. Pushed-branch tier (the dominant survivor class — 24 of 33 preserved trees, ~18GB on the reporting box): managed installs fetch with a single-branch refspec, so pushed PR branches never get refs/remotes/* entries and read as 'unpushed' forever. When a clean tree's branch head EXACTLY matches origin (one lazy git ls-remote per sweep), the checkout is redundant: reap the TREE, keep the BRANCH ref (shielded from the orphaned-branch pass). Anything diverged/unverifiable stays preserved. Applied to both the startup pruner and hermes worktree prune/list. 2. Cron-tick maintenance: the pruner only ran on hermes -w launches, so gateway-driven boxes accumulated trees for days. The scheduler tick now dispatches the same conservative pruner on a daemon thread, throttled to once per 6h, against the install checkout + job-workdir repos that have a .worktrees/ dir.