ohmejj/dsh-chat-archive1

@ohmejj/dsh-chat-archive

DeepSeek Harness plugin: automatically archive idle conversations after a configurable threshold (hours/days), with its own Settings section UI.

包名
@ohmejj/dsh-chat-archive
版本
0.3.0
许可证
MIT
最近更新
2026年9月2日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:ohmejj/dsh-chat-archive

使用 DSH 命令安装(推荐)


# 如果是其他 profile,使用对应的启动命令

工作原理:插件包含 dsh.bundle.patch 配置,会自动向 DSH 的 Cordis loader 注册自己。安装命令会将插件添加到 profile 的 dsh.profile.bundles 列表中,DSH 启动时会自动加载。

本地开发安装

如果你需要从本地源码安装(用于开发或测试):


# 使用一键脚本安装到 web profile
bash scripts/enable-in-profile.sh web

注意:本地开发安装使用软链接和手动配置 cordis.patch.yml 的方式,与通过 dsh plugin add 安装的机制不同。两种方式不应同时使用,否则会导致插件重复加载。

🎮 使用指南

访问设置界面

  1. 启动 DSH Web GUI 后,点击侧边栏底部的 设置 图标
  2. 在设置弹窗的左侧菜单中找到 对话自动归档 (Auto-archive conversations)
  3. 进入配置界面

配置项说明

配置项说明默认值
启用自动归档总开关,关闭后不扫描不归档关闭
闲置阈值会话闲置超过该时间后将被归档
支持单位:分钟/小时/天72 小时
扫描间隔Host 端每隔多久扫描一次(分钟)30 分钟
立即归档点击后立即按当前配置扫描一次-

使用说明

  • 修改配置:在界面中修改配置后,点击 保存 按钮才会生效(可点击 放弃 取消修改)
  • 配置生效:保存成功后会立即触发一次扫描,并显示"已保存,立即生效"提示
  • 持久化:配置自动保存到 $DSH_HOME/settings.yamlchat-archive 章节
  • 周期执行:首次扫描后,按设定的扫描间隔定期执行

归档规则

  • 会被归档:闲置时间超过阈值的非活跃会话
  • 不会归档
    • 当前正在运行的会话
    • 已经在归档集中的会话
    • 无法确定活动时间的会话
  • 📏 闲置时间判定:基于会话持久化日志文件(session.jsonl)的最后修改时间(mtime)
  • 🛡️ 防误归档:会话须连续闲置 max(阈值, 一个完整扫描间隔) 才会被归档

🔍 预览功能

在实际启用归档前,可以使用预览脚本查看哪些会话将被归档:


## 🎮 使用指南

### 访问设置界面

1. 启动 DSH Web GUI 后,点击侧边栏底部的 **设置** 图标
2. 在设置弹窗的左侧菜单中找到 **对话自动归档** (Auto-archive conversations)
3. 进入配置界面

### 配置项说明

| 配置项 | 说明 | 默认值 |
|--------|------|--------|
| **启用自动归档** | 总开关,关闭后不扫描不归档 | 关闭 |
| **闲置阈值** | 会话闲置超过该时间后将被归档
支持单位:分钟/小时/天 | 72 小时 |
| **扫描间隔** | Host 端每隔多久扫描一次(分钟) | 30 分钟 |
| **立即归档** | 点击后立即按当前配置扫描一次 | - |

### 使用说明

- **修改配置**:在界面中修改配置后,点击 **保存** 按钮才会生效(可点击 **放弃** 取消修改)
- **配置生效**:保存成功后会立即触发一次扫描,并显示"已保存,立即生效"提示
- **持久化**:配置自动保存到 `$DSH_HOME/settings.yaml` 的 `chat-archive` 章节
- **周期执行**:首次扫描后,按设定的扫描间隔定期执行

### 归档规则

- ✅ **会被归档**:闲置时间超过阈值的非活跃会话
- ❌ **不会归档**:
  - 当前正在运行的会话
  - 已经在归档集中的会话
  - 无法确定活动时间的会话
- 📏 **闲置时间判定**:基于会话持久化日志文件(`session.jsonl`)的最后修改时间(mtime)
- 🛡️ **防误归档**:会话须连续闲置 `max(阈值, 一个完整扫描间隔)` 才会被归档

### 配置项说明

| 配置项 | 说明 | 默认值 |
|--------|------|--------|
| **启用自动归档** | 总开关,关闭后不扫描不归档 | 关闭 |
| **闲置阈值** | 会话闲置超过该时间后将被归档
支持单位:分钟/小时/天 | 72 小时 |
| **扫描间隔** | Host 端每隔多久扫描一次(分钟) | 30 分钟 |
| **立即归档** | 点击后立即按当前配置扫描一次 | - |

### 使用说明

- **修改配置**:在界面中修改配置后,点击 **保存** 按钮才会生效(可点击 **放弃** 取消修改)
- **配置生效**:保存成功后会立即触发一次扫描,并显示"已保存,立即生效"提示
- **持久化**:配置自动保存到 `$DSH_HOME/settings.yaml` 的 `chat-archive` 章节
- **周期执行**:首次扫描后,按设定的扫描间隔定期执行

# 使用默认配置预览(72 小时阈值,30 分钟间隔)
node scripts/preview-archive.mjs

### 使用 DSH 命令卸载

```bash

### 使用脚本卸载(本地安装)

```bash
bash scripts/disable-from-profile.sh web

注意:卸载插件不会影响已归档的会话,这些会话仍然存在于归档集中,可通过 DSH 原生功能恢复。

保存配置时提示"保存失败"?

  • 检查配置值是否合法(必须是 ≥1 的整数)
  • 确认 DSH 设置服务正常运行
  • 查看控制台是否有错误信息