v5.11.47
Critical + reliability fixes.
Critical
- Savings dashboard showing $0 — the savings-headline computation crashed (
filepath.lower()on aPath) introduced in 5.11.45's outsourcerer flagging, so the dashboard fail-opened to $0 for essentially every user. Fixed via content-based outsourcerer/delegation detection (replaces the crashing path-substring approach, which also mis-flagged real work in any folder named "outsourcer*"). Your measured savings return with no data loss.
Fixes
- Claude Code stop-hook multi-minute hang —
run.pynow isolates the hook child in its own process group, forwards SIGTERM, and reaps by group, so an external timeout can't orphan a grandchild holding the stdout pipe. - Codex hooks exit 127 after plugin upgrade — generated commands fail open when the launcher path is missing;
codex-doctornow validates absolute paths so it can actually detect the staleness. - Umbrel/Docker HERMES_HOME rejected as unsafe — new default-off
TOKEN_OPTIMIZER_ALLOW_UNSAFE_RUNTIME_HOMEopt-in (scoped to HERMES_HOME; keeps symlink/exists/dir checks). - Hook timeout units — corrected
15000/60000(interpreted as seconds) to15/60; MCP archive hook made async. - Session quality filters (exclude empty/transient sessions).
Housekeeping
- Synced all Codex + marketplace manifests to 5.11.47 (Codex manifests were lagging at 5.11.45).