- ホーム
- プラグイン
- セッションとメッセージ
- dsh-session-enhance
dsh-session-enhance
tinger-x/dsh-session-enhance
DSH Web plugin for managing sessions: archive/unarchive, guaranteed physical deletion (transcript files + ~/storages/*.json sweep), drag-and-drop workspace reassignment, and branch-based message editing (edit/retry/reroll with reversible version timelines
インストール
dsh plugin --profile web add github:tinger-x/dsh-session-enhanceREADME
⚡ DSH Session Enhance
Session management with receipts. Archive, physically delete, and drag sessions between workspaces in DeepSeek Harness Web — then edit conversation history on reversible version branches. Every action touches real files, and the sidebar always tells the truth.
The problem
DeepSeek Harness Web keeps your session list in two places: the sidebar reads ~/storages/*.json, while the conversations themselves live as transcript files on disk. The moment those two drift apart, you get sessions that vanish from the sidebar, deleted conversations that come back as ghosts, titles that show the workspace name instead of the conversation, and moves you can't resume.
DSH Session Enhance closes that gap. Every operation is a real filesystem change — verified against the disk, rolled back on failure — so the sidebar and the files can no longer disagree.
What it fixes
| You hit this… | …this plugin does that |
|---|---|
| Deleted sessions resurrect as ghosts | The real transcript directory is removed (3 retries for Windows handle release), ~/storages/*.json is swept directly, and a post-delete check reports any leftover. Tombstones stop stale lists from resurrecting them. |
| A dragged session disappears from the sidebar | The files physically move — the transcript's header cwd is rewritten (zstd-frame-aware), verified, and auto-rolled-back on failure. Subagent children cascade; the projection cache is rehomed so the title survives. |
| Restart shows the workspace name, not the title | Projection identities are reconciled against physical headers at startup, and uncached titles are warmed in the background. |
| A moved session can't continue the conversation | Running sessions are flushed and detached first, the stale agent holding the detached session is released, and a currently-open session reopens automatically. |
| Manual file edits leave records out of sync | 同步记录 reconciles ~/storages/*.json against the files on disk: ghosts purged, attribution fixed, missing entries restored. |
session.list 500s from mixed artifacts | Opposite-encoding artifacts (plaintext vs zstd written by another instance) are cleaned up after moves and during sync. |
✨ On top of that
- 🗂️ Archive management — archive from the sidebar menu; search, sort, filter, restore and batch-delete in 设置 → 对话增强 → 归档管理.
- ✏️ Message editing — from the Timeline view, edit any message, retry a turn, or reroll the last reply. Each operation forks a reversible version branch with undo/redo; deleting a branch never breaks the parent.
- 🔔 Conversation notifications — a background conversation finishing or needing your input pops a system notification while you're elsewhere.
- 📋 Copy session ID — one click in the sidebar menu, also on archived sessions.
- ⚙️ Conversation Enhance settings —
.dshhome directory and the notification toggle, in 设置 → 对话增强 → 基础设置.
📸 Screenshots

Manage archived sessions in 设置 → 对话增强 → 归档管理: search, sort, filter by workspace, 同步记录, restore and delete.

Archive any session straight from the sidebar session menu.
🚀 Install
Requires a working DeepSeek Harness Web setup (dsh on PATH, web profile initialized) and Node.js ^22.19.0 || >=24.0.0.
# From GitHub (latest commit)
dsh plugin --profile web add github:Tinger-X/dsh-session-enhance
# From npm (stable release)
dsh plugin --profile web add dsh-session-enhance
# From source (development)
git clone https://github.com/Tinger-X/dsh-session-enhance.git
cd dsh-session-enhance; pnpm install
dsh plugin --profile web add .
dsh --profile web --dump-config
Restart DSH Web and hard-refresh (Ctrl+F5). 对话增强 appears in Settings right after Connectors; every conversation gains a Timeline tab after Trajectory.
🎮 Quick start
- Archive — sidebar session menu → Archive session.
- Manage — 设置 → 对话增强 → 归档管理: search, sort, filter, restore, batch delete.
- Sync — hit 同步记录 after touching files or
storages/*.json. - Move — drag a session row onto another workspace group, or onto 未分组 to detach it.
- Delete — per-session / per-project / all, always confirmed.
- Edit — open a conversation, switch to Timeline: edit / retry / reroll, each a reversible branch.
📄 License
Apache-2.0.