DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

gsnowdrift /

gsnowdrift/dsh-archive-manager

Verified

DSH Archive Manager — 在 DeepSeek Harness 中查看、恢复和管理已归档会话

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@135fbf32

Archive Manager for DSH · 归档会话管理

给 DeepSeek Harness 补上缺失的归档管理中心:侧栏「会话」只有"显示/隐藏已归档"一个开关, 归档之后既看不见、也找不回。装上本插件,设置 → 归档会话里就能按日期翻出历史会话、 一键批量取消归档,还有一套可撤销的自动清理策略替你收拾越来越长的会话列表。

English

Listed on dsh-plugin.org

安装

dsh plugin --profile web add @gsnowdrift/dsh-archive-manager

桌面版把 profile 换成 desktop:

dsh plugin --profile desktop add @gsnowdrift/dsh-archive-manager

装完重启 DSH(或重新打开客户端),进入 设置 → 归档会话。

从源码安装 / 本地开发
git clone https://github.com/gsnowdrift/dsh-archive-manager.git
dsh plugin --profile desktop add "file:D:/path/to/dsh-archive-manager"

或在 Web 侧栏 插件 页 → 安装 → 输入本地绝对路径。 若 pnpm 拒绝 file:,可把 link: 依赖写进 profile 的 package.json,patch 见本仓库的 cordis.patch.yml。

能做什么

功能 说明
归档列表 标题、工作区、路径、归档时间、最近活动、来源(手动/自动)、运行状态
按日期筛选 归档日下拉(每天的数量)· 搜索标题/路径/会话 ID · 按工作区筛选 · 含子代理会话
分页 每页 25 条,页码与总数
批量操作 勾选后一键取消归档;单条"取消归档"
删除会话 单条删除磁盘上的会话记录,需二次确认、不可恢复(仅在你主动点击时发生)
自动清理 三种可组合、可逆的策略,支持"预览计划"和"立即执行"
设置持久化 策略保存在插件自己的 storage domain(archive_manager),跨重启保留

截图

归档会话与自动清理设置

自动清理策略

策略 作用 默认
cleanupEnabled 定时清理总开关(每 cleanupIntervalMinutes 分钟一次,默认 30) 关
autoArchiveDays 闲置超过 N 天的普通会话自动归档(从侧栏隐藏) 90 天,0 关闭
retentionDays 归档超过 N 天的会话自动取消归档(回到侧栏原位) 180 天,0 关闭
capCount 归档数量超过 N 时,自动取消归档最旧的 0 关闭
includeSubagents 子代理会话是否参与清理 关

自动清理不会物理删除任何会话日志。 DSH 的会话持久化层没有保留/清理接口,本插件的"清理" 只在归档集合与侧栏可见性之间移动会话,全部可逆;历史、工作区归属、保存的位置都不会丢。 唯一的删除入口是列表里你自己点的「删除」,且需要二次确认。

运行中的会话一律跳过(excluded),不会打断正在跑的工作。

使用

  1. 打开 设置(侧栏齿轮),左栏点 归档会话;
  2. 顶部下拉选择归档日,或用搜索 / 工作区筛选;标题未折叠完成时先显示会话 ID,几秒后自动替换;
  3. 勾选若干行 → 取消归档 N 项,它们会回到原工作区原来的位置;
  4. 下方"自动清理"卡片里调整策略 → 保存设置 → 预览计划 先看清楚,再 立即执行。

结构

package.json          # dsh.bundle.patch + dsh.client 声明
cordis.patch.yml      # bundle patch:插入 archive-manager 行
lib/index.js          # Host 半:ArchiveManagerService(Remote 命名空间 archiveManager)
lib/client.js         # Client 半:设置页 section(原生 ESM,无构建步骤)
locale/{zh,en}.json   # 面板元信息

Host Remote API(remote.archiveManager)

方法 参数 返回
list { filter?: { date?, workspaceId?, search?, includeSubagents? }, page?, pageSize? } { total, page, pageCount, items[], workspaces, dates[], pending }
getSettings — { policy, lastRun, intervalMinutes }
setPolicy policy 的部分字段 合并后的 policy
unarchive sessionIds { moved, failed[] }
deleteSessions sessionIds { deleted, done[], failed[] }
preview — 清理计划(不执行)
runCleanup { dryRun? } 执行结果 { actions[], excluded[], applied, failed[] }

依赖

Host 半只使用 profile 已经提供的包:@deepseek-ai/cordis、@deepseek-ai/schemastery、 @deepseek-ai/dsh-typert-protocol、@deepseek-ai/dsh-storage-domain、@deepseek-ai/dsh-session-query、 @deepseek-ai/dsh-workspace 与 zod(都写在 peerDependencies,不额外安装)。

权限与数据

项 说明
读取什么 profile 里已归档会话的元信息;折叠标题时读取这些会话自己的 JSONL 日志
写什么 归档集合(workspaces 的 archivedSessionIds)与插件自己的 storage 文件 archive_manager.json
删除什么 只在用户点击"删除"并二次确认后,删除对应会话日志目录;自动清理永不删除
网络 不发任何网络请求,不采集遥测,不连接外部服务
凭据 不读写任何密钥

已知限制

  • 归档集合本身不记录归档时间:本插件在看到某会话进入归档集合的那一刻记录时间; 插件首次启动前就已归档的会话,用该会话 header 的创建时间兜底。
  • 标题从会话日志里的 session/title 折叠而来,无法在请求里实时完成(冷启 85 个会话约 6 秒), 因此首次打开列表时新会话可能短暂显示 ID,后台折叠完成后自动替换。
  • 极少数只有控制事件的会话(例如被拆分进来的子会话)本身没有标题事件,显示为「(无标题)」加会话 ID。
  • 归档集合可能残留会话日志已经不存在的条目(日志被别的工具删掉,或换了机器恢复备份)。这类条目折叠不出事实、也定位不到落盘文件,所以既只显示 ID 又删不掉;插件启动时与之后每分钟做一次孤儿清理,只把这类条目从归档集合和本地记录里摘掉,不碰任何会话文件,删除按钮对它们也只是清条目。
  • 删除不是原子的「删文件 → 摘归档 → 删记录」:三个动作里任何一个没走成,就会留下上面那种空壳条目。所以插件先写墓碑、再摘归档;即使归档会员关系的写入失败,列表也不会再把该条目显示出来。
  • 只注册了 settings.section 一处入口;宿主改这个 slot 名时该分区会静默不出现。
  • 面向 DSH 0.2.x 的 Web/桌面客户端;Host 侧未在纯 CLI profile 上验证。

English

Archive Manager for DSH adds the archived-session management surface that DeepSeek Harness lacks: browse archived sessions by date / workspace / title, unarchive them in bulk, and run a reversible auto-cleanup policy (auto-archive idle sessions, restore expired or excess ones). Nothing is ever deleted by the cleanup policy; deletion only happens when you explicitly ask for it.

dsh plugin --profile web add @gsnowdrift/dsh-archive-manager

Open Settings → Archived sessions. Requires DSH 0.2.x on the desktop or web profile. MIT licensed.

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 135fbf325e9b

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout