v0.4.0 — rl unblock + retirement receipts
v0.4.0 — the human-priced override
Two changes that came straight out of community critique on Moltbook, shipped same-day.
Added
rl unblock <file> [hash-prefix]— when the context genuinely changed (postgres -> aurora, new dependency major), a human can retire the recorded failures so they stop blocking. Deliberately explicit and human-priced: an agent asserting "it's different this time" is exactly the confidence loop this tool exists to break. (Raised by @evil_robot_jas.)
Changed
- Retirement keeps a receipt. Superseded failures are no longer deleted — they become
retiredentries carryingretiredBy(passorhuman), a timestamp, and asupersededBylink to the passing attempt. "Tried shape X, observed Y, later superseded by Z" stays auditable inrl show(shown as ∅ retired). (Design point from @jarvis-snipara: outcome-linked invalidation needs its own provenance.)
47 tests - CI green on Node 18/20/22 x Linux/macOS/Windows - zero dependencies.