# @lijian-ui/dsh-session-cleaner

> 为 DeepSeek Harness (dsh) 提供会话管理：列表（含标题）/ 点击预览 / 真删除（二次确认）/ 归档分组与恢复。
> Session management for dsh: list (with titles), click-to-preview, real delete (with confirm), archive group & restore.

官方 dsh 只有"归档"没有"删除"，且归档后会话从所有视图隐藏、无恢复入口（会话记录仍占磁盘）。本插件修复这两个问题，并补上会话的**可识别性**（标题 + 内容预览），避免误删：

- **会话列表（带标题）**：文件层扫描 `~/.dsh/sessions`，显示会话标题（从日志 `session/title` 事件提取）、时间、大小、状态；分组：全部 / 已归档 / 游离
- **点击预览**：点击会话行弹出内容预览（最近 12 条对话，用户/助手气泡），预览内可直接删除
- **真删除**：删除会话目录 + 投影缓存（projcache）+ workspace 状态三处清理；**二次确认弹窗**，明确"永久删除、不可恢复"
- **归档分组**：归档走官方 `workspace.archiveSession` RPC（**官方列表即时隐藏**）；恢复/删除读写官方 `workspace.json`（官方 UI 重启后同步）

## 安装

```bash
# 开发期（link 联调）
dsh plugin --profile web add ./extensions/session-cleaner
# 或发布后
dsh plugin --profile web add @lijian-ui/dsh-session-cleaner
```

## 使用

启动 dsh 后打开设置 → **会话管理**：

![会话管理界面](image/screenshot_2026-08-17_10-52-18.png)

- 顶部：会话总数与总占用，右上「刷新」重新扫描 / 「打开配置文件」定位官方 workspace.json
- 标签页：全部 / 已归档 / 游离（数字徽标实时统计）
- 每行：**点击** → 预览弹窗（标题、ID、创建时间、大小 + 最近对话）；行内按钮：**归档**（官方列表即时隐藏）/ **恢复**（移出归档）/ **删除**（二次确认，真删除）
- 预览弹窗底部也有「删除此会话」入口

## 边界说明

- **归档**：走官方 API，官方侧边栏**即时**隐藏（无需重启）
- **恢复 / 删除**：官方无对应 API，插件直接操作文件层，**官方侧边栏在 dsh 重启后同步**（插件页面本身即时准确）
- **删除**为**永久删除**（不经过回收站），插件会在确认框明确警告
- 会话日志是**多帧 zstd** 格式，插件按帧完整解压读取标题与内容

## 许可

MIT © lijian-ui
