← Back to home@snow-The

dsh-session-repair

Scans and repairs DSH session logs: re-encodes single-frame corrupt zstd files back to the multi-frame layout and marks unknown event types (e.g. llm/failover) as ignorable so older harnesses can load newer logs.

Stars
0
Language
TypeScript
Created
Aug 23, 2026
Updated
Oct 19, 2026
GitHub repo

Introduction

dsh-session-repair

Scans and repairs DSH session logs (~/.dsh/sessions/**/session.jsonl.zstd).

Fixes

  • Single-frame corrupt logs — a session file re-compressed as one zstd frame breaks the harness at boot (first frame is not exactly one header line). The plugin rebuilds the log in the canonical multi-frame layout: one JSON line per zstd frame.
  • Unknown event types — events written by newer harness builds (e.g. llm/failover) make older harnesses refuse the whole log (SessionFormatUnsupportedError). The plugin marks such events "ignorable": true (the event is kept; the harness skips it).

Tools

  • session_repair_scan — read-only report of every session log: zstd frame count, line count, header validity, parse errors, unknown event types.
  • session_repair_fix — repairs problem logs (or one sessionId). Backs up each file as <file>.bak-repair-<timestamp> before replacing it, then verifies the rebuilt layout (frames == lines). Restart the harness afterwards.

Requirements

  • zstd CLI on PATH (Debian/Ubuntu: apt install zstd).
  • The known-type allowlist is conservative; pass extraKnownTypes to fix if a type is actually known to the running harness.

Safety

  • Never writes in place: backup → rebuild to temp → verify → atomic rename.
  • Scan is strictly read-only.