Phase 1 disposition
Seven live-tree diffs were replayed and sorted rather than silently carried forever. The first broad replay recorded 19,005 passed and 22 failed. That result required classification before any promotion decision.
Failure taxonomy
Phase 2 reproduced all 22 failures in focused runs and classified them:
- 2 cron-associated failures — exception class identity changed after
cron.schedulerreload; the focused cron tests pass. - 12 environment/dependency failures — Telegram mock pollution, live SessionDB leakage, and ContextVar state shadowing.
- 8 unrelated upstream baseline failures — approval, command-guard, and skill-bundle state debt outside the changed files.
All 22 node IDs passed in the focused batch. The classification means the cron load_config() repair is not a permanent logic regression. It does not turn the original broad red run into green evidence; it identifies the missing test-isolation boundary.
Promoted to the fork
Three narrow fixes completed exact-head CI, Bunsen candidate tests, and merge:
- Guard reasoning persistence against untyped fragments.
- Replace Honcho’s timestamp-only identity cache key with a content-derived signature.
- Isolate
HERMES_HOMEbefore test imports.
The TTS/footer bundle and doctor parallel-audit candidate remain separate. Neither was smuggled into the reconciled fork set.
Boundary
No patch was applied to Herman. Promotion changed only the versioned ai/hermes-agent fork and the isolated Bunsen release candidate.
Falsifier
Reopen the taxonomy if any of the 22 focused reproductions fails on the final fork head, if a merged fix introduces a new exact-head job failure, or if the final Bunsen canary attributes a runtime regression to one of the three promoted changes.