dshbase

插件目录 / Developer / dsh-archive-vault

dsh-archive-vault

未验证 Britneycode

✓ 持续维护 基于 3 个官方 DSH 包

查看 GitHub ↗ ← 返回插件目录

1Stars
0Forks
0未关闭 issue
语言
2026-08-16最近推送
跨平台平台

功能简介

dsh 插件:在设置面板中查看、恢复与永久删除归档会话

我们的评价
未验证 — 尚未实测

dsh 插件:在设置面板中查看、恢复与永久删除归档会话 尚未验证——请自行安装测试。

「未验证」表示我们的自动化 CI 尚未安装过该插件。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

你是插件作者? 想拿到「已验证」标签——提交你自己的验证证据(截图、日志或短视频),我们审核通过后即改为「已验证」。

提交验证证据 ↗

README

dsh-archive-vault 归档对话

dsh 宿主只有"归档会话"(workspace.archiveSession:把会话从所有分组界面隐藏),
没有查看、恢复或删除归档会话的入口。本插件补齐这一环:

  • 设置页 → 归档对话:列出所有归档会话(所属工作区、创建时间、最近一条
    人类提问预览、cwd),支持关键词过滤;
  • 一键恢复:把会话从全局归档集合移除,立即回到原工作区会话列表的
    原位置(归档不改变工作区记账,恢复自动还原位置);
  • 永久删除:两步确认(点「删除」→ 变红「确认删除」),清除归档记录、
    工作区记账并删除磁盘会话日志;删除成功后重新读取宿主会话清单,已删除
    的缓存行不会短暂取消归档后残留在「未分组」;正在运行的会话会被拒绝;
  • 按归档时长清理:「清理 7 天以上」和「清理 30 天以上」按实际归档时间
    批量永久删除;第一次点击进入 5 秒确认状态,第二次点击才执行。单项失败
    不会中止其余清理,完成后分别报告成功数与失败数;
  • 实时刷新:恢复写入 workspace domain global,触发 domain/changed
    apiproxy 自动向所有已连接的 Web 客户端推送 host/archived-sessions-changed
    左侧列表实时更新,无需手动刷新页面;
  • agent 工具list_archived_sessions / unarchive_session /
    delete_archived_session,在会话里也能直接找回或清理旧对话。

恢复的写入路径(兼容性说明)

宿主 WorkspaceRegistry 只公开 archiveSession,没有 unarchive。本插件的
恢复走 registry 实例的串行写队列(enqueueOperation + setState,宿主里是
TS private、运行时可访问):

  • 与 create/delete/reorder/archive 的所有写完全互斥,不会丢并发变更;
  • 归档集合在队列内重读,排队期间其他客户端的新归档不会丢失;
  • 写入的 state 形状与宿主 recoverPendingMutation 产出的三字段一致,
    通过 apiproxy 的 workspaceDomainState zod 校验;
  • 宿主若改名这两个方法,插件显式报错(不会静默写坏状态)。

删除的写入路径

宿主全链路没有会话删除 API(持久化后端只有 create/append/read)。删除按
"失败偏向重新可见"的顺序组装:

  1. live 会话拒绝(sessions.get(id) 有值时不动文件);
  2. 从归档集合移除(同恢复路径,幂等);
  3. 从所属工作区记账移除(entity.detachSession,公开方法、domain 写链、
    幂等,自动推 host/workspace-changed 帧);
  4. persistence.locate() 定位日志文件,删除其父目录(sessions/<project>/ session-<uuid>);目录名不含会话 id 时拒绝删文件(防后端布局变化误删)。

日志删除后 persistence.list() 立即不再列出该会话(客户端基线随之消失,
删除请求发起端会立即重读该基线,无需刷新页面或重启);projection cache 行
与日志身份绑定,过期行自动作废,无需清理。
删除不要求会话仍在归档集合(幂等):中途失败后重试不会卡在半完成状态。

归档时间与批量清理

插件从安装并启用本版本后开始记录新的归档动作。升级前已经处于归档状态的
对话没有可靠的实际归档时间,会显示为「归档时间未知」,不会进入 7 天或
30 天批量清理范围;取消归档后再次归档会重新开始计时。7 天清理包含所有
已归档满 7 天的对话,因此也包含已满 30 天的对话。

归档时间默认保存在 ~/.dsh/archive-vault/archive-times.json;设置了
DSH_HOME 时则保存在 $DSH_HOME/archive-vault/archive-times.json。状态文件
使用版本化 JSON 并以临时文件原子替换。文件损坏、版本不受支持或读取失败时,
列表和批量清理都会明确报错并停止,不会根据会话创建时间猜测归档时间。

安装

推荐用 dsh 官方 CLI 安装(自动完成 pnpm 安装与 dsh.profile.bundles 对账,无需手改任何配置):

dsh plugin --profile web add dsh-archive-vault                      # npm 源
dsh plugin --profile web add github:Britneycode/dsh-archive-vault   # 或 GitHub 源
dsh plugin --profile web remove dsh-archive-vault                   # 卸载

安装后重启 dsh web,设置页会出现「归档对话」面板。注意 --profile 要跟在 plugin 子命令之后(放在前面会被参数解析器拒绝)。

也可以直接用包管理器安装,此时需手动把 dsh-archive-vault 加进 profile package.jsondsh.profile.bundles 列表再重启:

pnpm add dsh-archive-vault

开发

DSH_CHECKOUT=/d/App/dsh/deepseek-harness npm run typecheck
DSH_CHECKOUT=/d/App/dsh/deepseek-harness npm run build
npm test

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 dsh-archive-vault」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包

该插件是 GitHub 源码(未发 npm)——直接从仓库装:

Web profile:

dsh plugin --profile web add github:Britneycode/dsh-archive-vault

Headless(CLI)profile:

dsh plugin --profile headless add github:Britneycode/dsh-archive-vault

实测报告

尚未 L3 验证——若已跑过,见下方失败备注。

状态:pending · 最近测试 2026-08-26 · 标记 webonly
备注:验证: web-only;待 L4 web CDP;L4 web CDP runtime-fail on dsh 0.1.0-rc.8. 浏览全部待验证失败 →
安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

Developer 里更多

浏览全部 7795 个插件 →