DSH Hub
dsh-session-repair cover

Zn-Dk/dsh-session-repair

dsh-session-repair

UIWeb UI0 GitHub stars· updated 2026-08-24

dsh-session-repair is a community DeepSeek Harness plugin. Read the repository README before installing.

Install

npx @deepseek-ai/dsh plugin --profile web add dsh-session-repair

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-session-repair DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-session-repair.svg)](https://dshhub.dev/plugins/dsh-session-repair)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from Zn-Dk/dsh-session-repair, cleaned of badges and images.

dsh-session-repair

English | 中文

A DSH Web plugin for session diagnosis, trusted checkpoints, pre-repair backups, and safe repair.

Installation

From npm (recommended)

dsh plugin --profile web add dsh-session-repair

Restart dsh web after installation, then refresh http://127.0.0.1:3080.

From GitHub

dsh plugin --profile web add github:Zn-Dk/dsh-session-repair

Development: link local source

cd /root/proj/dsh-proj/dsh-session-repair
pnpm install
pnpm build
dsh plugin --profile web add link:/root/proj/dsh-proj/dsh-session-repair

After modifying the source, restart the existing dsh web process; do not start a replacement server. If the deepseek-harness dev:web watcher is running, the Client bundle can receive updates through the existing HMR.

Severity levels

The severity of a diagnostic report is derived from its checks and decides whether writable repair entry points are shown:

statuscase-when
healthyNo blocked/repairable/warning checks. seq-gap and unclosed turn/step in a live session are informational only and do not raise the level.
warningA settled (non-live) history contains unclosed turn/step structures or other potential issues. Readable; no writable repair is offered.
repairableDeterministically fixable issues exist (e.g. empty tool-call ID chains); a repair plan can be submitted.
blockedThe session cannot be displayed normally and has a hard conflict that cannot be auto-fixed (ID conflict, zstd damage, session mismatch).

Why this plugin

If a session refuses to load after the DeepSeek gateway emitted an empty id/name on a tool-call delta (the "identity-loss" family tracked upstream in discussion #4365), the persisted history is poisoned — every later load throws message must have tool source.

dsh-session-repair fixes that poisoned history in place, from the broken session's own header — no manual sessionId copying, no agent involvement, no hand-splitting zstd frames:

  • One click: Session Health Check → Backup & Repair on the unopenable session.
  • Covers all three identity-loss shapes: missing, null, and "".
  • Repairs the full chain (assistant/message, tool/call, tool/result) in one batch.
  • Always writes a pre-repair backup first, with one-click rollback and an audit trail.

Upstream verified the root cause and adopted our close-block fallback as a new layer of the engine-side fix blueprint (discussion #4365). This plugin remains the load-path recovery complement: it restores already-poisoned history, while the engine patch prevents new poison from being written.

Usage

Open any session and click Session Health Check in the Chat header. When the report is repairable and has at least one deterministic repair plan, the panel shows a Backup & Repair button and lists every seq chain to fix. Clicking it first confirms the target seqs and the pre-repair backup, then applies the repair in one batch and revalidates; ambiguous, live, changed-artifact, or otherwise blocked states never show a writable repair button.

Panel buttons:

Related plugins