Skip to content

Releases

v0.1.0 - first public release

Choose a tag to compare

@catsenior507 catsenior507 released this 10 Sep 17:21

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=true marks a tool that already succeeded in this session and
    then failed — the strongest signal in the journal
  • ABORTED is tagged aborted, not failure: 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-journal

Then 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.