Repository navigation
Releases
v0.1.0 - first public release
First public release.
dsh-tool-failure-journal answers a specific complaint: a coding agent does not
only fail, it fails the same way over and over, and the evidence leaves the
context window before anyone can see the pattern.
What it does
One listener on tools/result — the harness's own final notification for a call,
emitted after pre-policy, guards, the body, post-policy and output validation —
covers a thrown tool, a value that violated its declared output schema, an
unknown tool name, a denied call, and a caller cancellation. One hook, not four.
Every abnormal call is appended as one JSONL line, outside the context window:
- signatures fold near-identical failures into one row with a count
regression=truemarks a tool that already succeeded in this session and
then failed — the strongest signal in the journalABORTEDis taggedaborted, notfailure: a withdrawn call is not a
defect, and counting it as one would poison the recurrence numbers- shipped remediation for the failure classes whose fix is unambiguous
The failure_journal tool reads it back: stats, list, show, sessions,
clear, selftest. The observer never throws and never blocks; writes are
synchronous one-line appends that survive the process dying mid-turn.
Install
dsh plugin --profile web add github:catsenior507/dsh-tool-failure-journalThen restart the host and run failure_journal action=selftest.
Verified
31 tests (npm test), including a real cordis mount driven by the genuine
tools/result event.