dsh-archived-sessions

DSH PLUGINUI 与外观

仓库 kaelorvyn/dsh-archived-sessions · npm dsh-archived-sessions

UI 与外观 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

为 DeepSeek Harness 设置面板新增「已归档会话」页,列出全部已归档会话并支持一键恢复,恢复后侧边栏实时同步。

一句话选型结论

按资料字段整理

dsh-archived-sessions 是UI 与外观类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,列出 4 项功能,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类UI 与外观 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 2 复刻 0 · 未关闭 issue 0
最近更新 2026-09-16 创建于 2026-09-09
README 9.8 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:kaelorvyn/dsh-archived-sessions#v1.3.0
  1. 1
    确认版本与运行环境

    兼容的 DSH 版本为 0.2.0-rc.2 等 7 个;版本不匹配时安装会报错。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本0.2.0-rc.2 等 7 个版本版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖@deepseek-ai/cordis@^4.0.1、react@^18.2.0需要同时安装的同级依赖
npm 包名dsh-archived-sessions可用 npm view 查看包信息

能做什么

4 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-archived-sessions:在 DeepSeek Harness 设置面板里恢复已归档会话

  • 设置页列出全部已归档会话
  • 每条一键恢复(取消归档)
  • 恢复后实时同步无需刷新
  • 归档状态持久化不反弹

适用场景

存储

上游标签

dsh-plugin

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。
  • 标注了兼容的 DSH 版本(0.2.0-rc.2 等 7 个),按版本装不容易报错。
  • 列出了 4 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 需要同时装好同级依赖,漏装会启动失败。
  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在UI 与外观场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-archived-sessions当前 L5 · 运行验证通过 低风险 2 0.2.0-rc.2 等 7 个 有
awesome-dsh-plugin L4 · 沙盒安装通过 低风险 1.8 万 0.1.1-rc.2 有
deepseek-balance-whale-widget L4 · 沙盒安装通过 低风险 4,492 0.1.7-rc.2 等 2 个 有
dsh-better-sidebar L4 · 沙盒安装通过 低风险 4,112 0.1.7-rc.2 等 10 个 有
dsh-deep-whale L4 · 沙盒安装通过 低风险 2,470 未标注 有
deepseek-design L4 · 沙盒安装通过 低风险 1,438 未标注 有

仓库档案

UI 与外观
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方kaelorvyn仓库 dsh-archived-sessions · 默认分支 main
分类UI 与外观ui
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue2 / 0 / 0收录时的数值,非实时
创建 / 更新2026-09-09 · 2026-09-16最后推送 2026-09-16
本站收录2026-09-10首次进入本站目录的时间

README 全文

9.8 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-archived-sessions

设置面板新增一页「已归档会话」:列出全部已归档会话,可单条或批量恢复(取消归档),
也可以永久删除 —— 直接从电脑上删掉会话文件,把硬盘空间要回来。

Adds an Archived sessions page to the DSH settings panel: it lists every archived session and can restore them (one or many) or permanently delete them — removing the session files from disk to reclaim space.

功能 / Features

  • 在 设置 → 已归档会话 中列出全部已归档会话,显示标题、工作目录与最近活动时间。
  • 恢复:取消归档,该条立即从列表消失,会话重新出现在它原来的分组中。
  • 永久删除:把会话文件从磁盘上删掉,并显示这次释放了多少空间。
  • 多选与批量:点顶部「多选」后每行出现复选框,上方提供「全选 / 批量恢复 / 永久删除」。
  • 实时生效:操作后无需刷新页面,侧边栏与列表同步更新。
  • 归档数据持久化在 DSH 自己的工作区注册表里,重启后不反弹。

  • Lists every archived session (title, working directory, last activity) under Settings → Archived sessions.

  • Restore: unarchives it; the row disappears and the session reappears in its original group.
  • Delete permanently: removes the session files from disk and reports how much space was freed.
  • Multi-select & batch: hit Multi-select at the top, checkboxes appear on every row, and a bar offers Select all / Restore selected / Delete permanently.
  • Live update: no page refresh needed.
  • The archive set lives in DSH's own workspace registry, so a restore survives a restart.

安装 / Install

dsh plugin --profile  add github:kaelorvyn/dsh-archived-sessions

或从本仓库本地安装 / or from a local checkout:

dsh plugin --profile  add file:

安装后重启 DSH,打开 设置 → 已归档会话。
Restart DSH after installing, then open Settings → Archived sessions.

使用 / Usage

  1. 打开任意会话(两个动作都通过宿主命令执行,需要当前会话存在)。
  2. 进入 设置 → 已归档会话。
  3. 单条:点某行的「恢复」或「永久删除」。
    批量:点顶部「多选」→ 勾选若干行(或「全选」)→ 点「批量恢复」或「永久删除」。

  4. Open any session (both actions run a host command inside the current session).

  5. Go to Settings → Archived sessions.
  6. One row: click Restore or Delete permanently.
    Batch: click Multi-select at the top → check rows (or Select all) → click Restore selected or Delete permanently.

命令方式 / Command form(等效,可一次给多个 id):

/archive    [more-ids…]
/unarchive  [more-ids…]
/purge      [more-ids…]

永久删除做了什么 / What "delete permanently" does

会话在磁盘上是 ~/.dsh/sessions/<分组编码>/<会话id>/(内含 session.v3.jsonl.zstd)。
会话 id 本身就带 session- 前缀,目录名就是 id。

A session lives at ~/.dsh/sessions/// (containing session.v3.jsonl.zstd); the id already carries the session- prefix and is the directory name.

  • 整目录删除,并报告释放的体积。
    Removes the whole directory and reports the freed size.
  • 同一个 id 可能在多个分组目录下各有一份(会话移动过分组时会发生),所以会把所有同名目录都删掉,不留残留。
    The same id can exist under several group directories (which happens when a session was moved between groups), so every matching directory is removed — no leftovers.
  • 从 Codex 导入的会话,源文件也一并删掉。 DSH 里那些 session-codex- 是从
    ~/.codex/ 导入的(sessions/<年>/<月>/<日>/rollout-<时间>-.jsonl,或
    archived_sessions/ 下平铺)。只删 DSH 的副本,下一次导入会把会话原样带回来 ——
    用户看到的就是「永久删除了怎么又全回来了」。而且源文件那边通常大得多
    (实测 605MB vs 191MB),不删也谈不上省空间。
    Sessions imported from Codex have their source file deleted too. Those
    session-codex- entries are imported from ~/.codex/; deleting only DSH's copy
    means the next import brings the session straight back. The source is usually much
    larger anyway (measured: 605 MB vs 191 MB).
  • 删除不改变可见性。 删完会话仍然留在归档集合里(否则就等于取消隐藏,
    它们会当场全部回到侧边栏)。想让它重新可见,用「恢复」。
    Deleting does not change visibility. A deleted session stays archived;
    otherwise the deletion would effectively un-hide it and every one of them would
    reappear in the sidebar at once. Use Restore to make it visible again.
  • 磁盘上已经没有文件的条目按「幽灵条目」处理:保持归档,不报错。
    Entries with no files on disk are treated as ghosts: they stay archived, without an error.
  • DSH 没有会话索引数据库(列表是扫磁盘得来的),所以删掉目录就是彻底消失。
    DSH keeps no session index database (the list is built by scanning the disk), so deleting the directory is enough.

安全设计 / Safety

删除不可逆,所以做了这些防护:

Deletion is irreversible, so:

  1. 会话 id 必须匹配 ^session-[A-Za-z0-9._-]+$ —— 从根上杜绝把 id 当路径用(目录穿越)。
    The id must match ^session-[A-Za-z0-9._-]+$, which rules out path traversal at the source.
  2. 解析后的绝对路径必须仍在会话根目录之内(二次防线)。
    The resolved absolute path must still be inside the sessions root.
  3. 只允许删除归档集合里的会话 —— 正在使用的会话结构上就删不到。
    Only sessions in the archive set can be deleted; the session in use cannot be reached at all.
  4. 界面里正在使用的会话不参与多选,也不给删除按钮。
    In the UI, the session in use cannot be selected and gets no delete button.
  5. 删除按钮要点两次(「永久删除」→「确认删除」),中途可取消。
    The delete button must be clicked twice, with a cancel in between.
  6. 批量时只要有一个 id 不合法就整批拒绝,不做「删一半」。
    In a batch, one invalid id rejects the whole batch — no half-done deletes.
  7. 单次最多 1000 个 id。
    At most 1000 ids per call.

实现说明 / How it works

DSH 0.1.2-rc.1 没有公开的「取消归档」或「删除会话」API —— 归档集合是工作区注册表的持久状态
(storages/workspace.json 的 global.archivedSessionIds),只有 archiveSession()
一个写入口,没有反向方法。本插件的宿主半部注册 /unarchive 与 /purge 两个命令,
在 WorkspaceRegistry.enqueueOperation() 内用 setState() 修改该集合;
域变更会经工作区控制器的 feed 广播为 archived 增量,前端随即实时更新。

setState / requireState / enqueueOperation 是服务实例上的方法而非公开契约,
因此宿主半部在写入前用 typeof 守卫:若未来版本改变了这些内部接口,插件只返回
明确错误,不会修改任何数据。浏览器半部只用官方 remote.commands 通道,不含
自定义 Remote 清单。

批量是一条命令带多个 id,而不是循环调用:宿主侧一次校验、一次事务、汇总一个总体积。

DSH 0.1.2-rc.1 exposes no public "unarchive" or "delete session" API: the archive set is
durable workspace registry state (global.archivedSessionIds in storages/workspace.json)
with a single write path, archiveSession(), and no inverse. This plugin's host half
registers /unarchive and /purge; inside WorkspaceRegistry.enqueueOperation() it
changes that set with setState(). The workspace controller broadcasts the resulting
domain change as an archived increment, so the browser updates live.

setState / requireState / enqueueOperation are service-instance methods rather than
a public contract, so the host half guards them with typeof checks: if a future DSH
version changes them, the plugin reports a clear error instead of touching data.
The browser half only uses the official remote.commands channel and ships no custom
Remote manifest.

A batch is one command carrying many ids, not a loop: the host validates once, commits
once, and reports a single total size.

结构 / Layout

cordis.patch.yml        # 挂载宿主行的 bundle patch
lib/index.js            # 宿主半部:注册 /unarchive 与 /purge
lib/client.js           # 浏览器半部:设置页 + 恢复 / 永久删除 / 多选批量
test/purge.test.mjs     # 宿主半部检查(含原子性、去重、目录穿越防护)
test/client-smoke.mjs   # 浏览器半部检查(真求值 bundle 并渲染多选模式)

跑测试 / Run the tests:

node test/purge.test.mjs
node test/client-smoke.mjs

两个脚本都不依赖任何测试框架,只用 Node 标准库;purge 那个会在 test/fakehome/
下造一个临时的 DSH 主目录来真跑删除,结束后自行清理。

Both scripts are plain Node with no test framework; the purge one builds a throwaway DSH
home under test/fakehome/, exercises real deletions, and cleans up afterwards.

兼容性 / Compatibility

在 DSH 0.1.2-rc.1 上开发与验证(dsh-plugin-desktop 2.0.5)。
Developed and verified on DSH 0.1.2-rc.1 (dsh-plugin-desktop 2.0.5).

许可 / License

MIT

常见问题

9 问
答案由本站依据条目字段整理,不引用上游原文
dsh-archived-sessions 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:kaelorvyn/dsh-archived-sessions#v1.3.0` 即可。对应的 npm 包名是 `dsh-archived-sessions`。

dsh-archived-sessions 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-archived-sessions 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-archived-sessions 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-archived-sessions 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.1.7-rc.2、0.1.7-alpha.2、0.1.6-alpha.2、0.1.6-alpha.1、0.1.5-rc.2、0.1.5-rc.1。

dsh-archived-sessions 需要什么运行环境?

需要同时安装 @deepseek-ai/cordis@^4.0.1、react@^18.2.0。环境不满足时安装会失败,建议先确认本机版本。

dsh-archived-sessions 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-archived-sessions 有哪些功能?

设置页列出全部已归档会话、每条一键恢复(取消归档)、恢复后实时同步无需刷新、归档状态持久化不反弹。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

8 条
不同作者的仓库分开列,请确认你要装的是哪一个
UI 与外观
按星标排序,可作替代方案

awesome-dsh-plugin

awesome-dsh-plugin

A curated list of plugins for DeepSeek Harness (dsh) · DeepSeek Harnes

L4 · 沙盒安装通过 1.8 万 星

deepseek-balance-whale-widget

DeepSeek-Balance-Whale-Widget

DSH 界面右下角的常驻小鲸鱼余额挂件,实时显示 DeepSeek 账户余额、今日已用与每轮对话消耗,支持拖拽吸附、Q 弹动画与音效,开箱即

L4 · 沙盒安装通过 4,492 星

dsh-better-sidebar

DSH-better-sidebar

面向 DeepSeek Harness 的服务化侧边栏工作台插件,把文件编辑、终端、Git 变更、子代理任务与侧边对话整合进右侧栏与底部面板

L4 · 沙盒安装通过 4,112 星

dsh-deep-whale

dsh-deep-whale

DSH Web 鲸鱼娘皮肤系列(深海女仆工坊 maid-atelier)。

L4 · 沙盒安装通过 2,470 星

deepseek-design

deepseek-design

可视化设计工作室,支持网站、App 原型、海报、信息卡、报告和杂志的模板创建、元素编辑、选区级 AI 草稿衔接与导出。

L4 · 沙盒安装通过 1,438 星

superdesign-skill

superdesign-skill

Superdesign为DeepSeek Harness等编码代理提供设计判断力,将AI生成的平庸UI转化为可交付的精致前端,支持设计系统、

L3 · 安装规范通过 647 星

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。