npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@leitaoy/dsh-archive-manager

v0.1.19

Published

NPM-installable DSH Web plugin for managing archived sessions.

Readme

DSH Archive Manager

在 DeepSeek Harness 中安全管理已归档会话

English · 更新日志 · Apache-2.0

许可证:Apache-2.0 npm package npm 下载量 DSH Web Plugin Node.js 22 or later

DSH Archive Manager 是社区维护的 DeepSeek Harness(DSH)插件,并非 DeepSeek AI 官方产品。

本项目是 @michengai/dsh-archive-manager 的复刻分支,已基于上游 0.1.36 重建。本分支移除了侧栏的「删除会话」入口,避免误删;永久删除仍可在「设置 → 归档会话」中完成。其余功能与上游保持一致。

功能概览

把暂时不用的会话收起来,需要时再找回。集中搜索、恢复和清理归档记录,让日常任务列表更清爽。

  • 收起已完成的任务:归档单条聊天,也可归档整个工作区的未归档聊天。
  • 快速找回历史:在「设置 → 归档会话」搜索标题、按项目筛选,或按时间和标题排序。
  • 恢复继续工作:恢复单条会话、整个项目或全部归档会话。
  • 按需清理记录:在「设置 → 归档会话」中单条或批量永久删除,执行前会要求确认。永久删除无法撤销。
  • 与本分支的差异:侧栏会话菜单和归档卡片不再提供「删除会话」,因此在侧栏误点不会销毁会话;永久删除仍保留在「设置 → 归档会话」。

界面预览

在「设置 → 归档会话」中搜索、排序、按项目筛选、取消归档或永久删除:

已归档聊天设置页面

DSH 产品生态

想直接使用完整工作台,可下载 DSH Codex Desktop;已有 DeepSeek Harness 环境,可按需独立安装以下 8 个自研插件。桌面端已随附这些插件。

| 插件 | 你可以用它做什么 | | --- | --- | | Codex UI | 整理项目与会话、搜索任务、跳转对话轮次 | | IM Connect | 从微信、飞书、钉钉等消息平台下任务、收回复 | | Automation | 按计划执行任务,查看每次运行的结果 | | Skills Manager | 统一查找、启停、创建和导入本机技能 | | Archive Manager | 搜索、恢复或清理已归档会话 | | Agency Agents | 按任务选择并召唤专业角色 | | BTW | 在当前上下文中临时旁问,不打断主任务 | | Simplify | 用 /simplify 整理 Git 改动范围内的代码 |

前置条件

  • 当前源码已适配 DeepSeek Harness 0.1.5-rc.1,并保留下表中的旧版兼容路径;本机实际安装的 0.1.2-rc.1 宿主同样包含在该矩阵内。

  • 已可正常运行 DeepSeek Harness Web,且可在 PowerShell 中使用 dsh

  • 以下示例使用 web profile;请替换为实际目标 profile。

  • 从源码安装或二次开发需要 Node.js 22+ 与 pnpm;仅从 npm 安装无需另外执行 pnpm install

DSH peer 依赖仅接受 0.1.0-rc.8 || 0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.5-rc.1;不自动接纳其他 RC 或正式版。开发依赖仍固定为 0.1.5-rc.1

安装

源码回归使用 pnpm test:compat,在隔离依赖环境中运行同一份插件产物,已验证以下组合(不代表覆盖所有中间版本):

  • pnpm test:构建并执行本地常规测试,不包含 test/fixtures;实际依赖可能受本机宿主链接影响。
  • pnpm test:matrix:先构建,再隔离安装四个宿主版本,执行完整矩阵。
  • pnpm test:latest:先构建,再隔离运行最新版的 6 项真实存储回归。
  • pnpm test:compat:旧缓存迁移验证加完整矩阵。

不要直接执行 test/fixtures/*.mjs;夹具会在加载宿主前检查隔离入口、依赖版本及实际路径。若本机依赖脱节,可先执行 pnpm install --frozen-lockfile 恢复声明的开发依赖;它不保证清理未声明包或 test/node_modules 的宿主链接,兼容性验收以隔离命令为准。

| DSH | Cordis | 自动回归 | | --- | --- | --- | | 0.1.0-rc.8 | 4.0.1 | 154 项通过 | | 0.1.1-rc.2 | 4.0.1 | 154 项通过,另含旧缓存迁移验证 | | 0.1.2-rc.1 | 4.0.2 | 154 项通过 | | 0.1.5-rc.1 | 4.0.2 | 157 项通过 |

上表数量为本复刻分支在 Linux / Node.js 24 下实测。0.1.5-rc.1 是当前支持的最新版本,registry 中已存在更新的兄弟组合(0.1.5-rc.2):直接 npm installdsh-session-title@^0.1.5-rc.1 这类 peer 会被解析到更新的兄弟版本,而它们的 peer 链(dsh-agentdsh-system-promptdsh-toolsdsh-user-approvaldsh-invariants 要求 ^0.1.5-rc.2)与固定的 0.1.5-rc.1 组合冲突,npm 在运行任何插件代码前即以 ERESOLVE 中止。该现象在未改动的上游 main 上同样复现(两者依赖声明完全一致),属于 registry 漂移而非插件回归。因此该档的隔离安装会传入 --before=2026-09-10T12:00:00.000Z(最后一批 0.1.5-rc.1 发布与最早一批 0.1.5-rc.2 发布之间的中点),把整个 @deepseek-ai/dsh-* 依赖树解析为精确的 0.1.5-rc.1;最新支持版本变化时同步更新该分界点。

覆盖新版工作区导航、全局面板退出、异步导航取消、侧栏接线、peer 版本接纳、客户端 Remote、归档/恢复、真实 JSONL/Zstandard 删除与子会话级联、删除后重新查询及重新打开存储。上游的验证环境为 Windows / Node.js 24,并已在隔离 DSH 0.1.5-rc.1 Web Profile 中完成真实浏览器验收:包安装、归档恢复、取消与确认删除、子会话级联、跨筛选批量删除、工作区选择、全局面板返回会话、新建与分叉、正文搜索和重启持久性均通过。正文搜索需开启宿主查询数据库;上游将隔离 Profile 的 openAt: never 改为 startup 后验证通过。本复刻分支只重跑了自动测试,未重复浏览器验收;其余三个版本仅完成隔离自动测试。未调用外部模型。新版存储夹具仅隔离上游无法在 Windows 加载的 POSIX fs-ext 导入,实际文件操作与 Windows 原生锁仍使用官方实现。

以下安装命令使用官方 npm 源。

让 Agent 帮你安装(推荐)

把下面这段话发给任意能够执行本机终端命令的 Agent。将 web 替换为实际使用的 profile;安装完成后,在 DSH 中使用本插件。

请将 DSH 插件 @leitaoy/dsh-archive-manager 安装到本机 web profile,执行:dsh plugin --profile web add @leitaoy/dsh-archive-manager@latest --registry=https://registry.npmjs.org/。安装后执行 dsh --profile web --dump-config,确认配置包含 workspace-archive-manager, ui-workspace-archive-manager,并告诉我如何重新加载 DSH 和开始使用。

从官方 npm 安装最新版

在任意 PowerShell 目录执行:

[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
dsh plugin --profile web add @leitaoy/dsh-archive-manager@latest --registry=https://registry.npmjs.org/
dsh --profile web --dump-config

需要钉死某一版时,把 @latest 换成具体版本,例如 @x.y.z

本复刻分支此前发布在 @ggtec528 scope 下。若已从该 scope 安装,请先执行 dsh plugin --profile web remove @ggtec528/dsh-archive-manager 再安装本包,因为两者声明了相同的服务行;设置项随后由 @leitaoy/dsh-archive-manager 提供。

配置输出中应包含 workspace-archive-managerui-workspace-archive-manager。安装后重启 DSH Web 并在浏览器硬刷新;请勿手工复制客户端文件,否则设置页和归档菜单不会被挂载。

在线更新

设置标题会显示当前版本和“检查更新”按钮。发现新版后,只有检测到 DSH CLI 或 Desktop 更新服务时才可使用“自动更新”;其他环境会在弹窗中提供可复制、与当前 Profile 对应的手工更新命令。

使用

  1. 在侧栏右键或打开会话菜单,选择「归档会话」。
  2. 打开「设置 → 归档会话」,按工作区查看归档会话。
  3. 按标题搜索,按更新时间、创建时间或标题排序,或按项目筛选列表。
  4. 点击「取消归档」恢复单个会话,或在顶部点击「全部恢复」。
  5. 打开项目标题右侧菜单,可恢复或删除该项目的全部已归档聊天。
  6. 要永久移除单个会话,请打开「设置 → 归档会话」,找到该会话后点击删除图标;删除前有确认提示。删除无法撤销。 本分支的侧栏不再提供删除入口。

安装或升级后找不到入口时,重启 DSH Web 并硬刷新浏览器;入口位于「设置」中,连接器之后。

数据处理边界

  • 删除操作始终需要确认,且唯一入口是「设置 → 归档会话」。
  • 删除会移除工作区记录、归档标记和投影缓存。官方 JSONL 后端在目录布局校验通过后,会一并删除会话专属目录及其中的附件等内容;其他后端或未知布局仅删除定位到的转录工件,不删除其父目录。
  • 不清理项目分组目录或存储根目录。官方布局的项目/会话目录若为符号链接或 Windows junction,会拒绝删除并保留可重试状态。
  • 布局校验优先使用官方后端初始化时确定的绝对根路径,相对路径配置不再受宿主工作目录变化影响;若无法取得该字段,则只接受绝对路径配置。官方 JSONL 布局校验失败时,会记录包含会话 ID 和工件路径的警告,再降级为仅删除工件。
  • 目录校验不是跨进程文件锁:删除期间不要由其他进程迁移、替换存储目录或改写目录链接。插件不将可被不可信进程改写的存储路径视为安全隔离边界。
  • 正在写入的会话会在完成写入后清理,避免截断数据。
  • 本插件替换 DSH 默认的工作区和会话投影服务;请仅通过 DSH profile 安装,避免手工拼接补丁配置。

二次开发

从源码安装

适用于调试或使用未发布改动。克隆后的目录会直接作为插件安装路径:

[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
git clone https://github.com/leitaoyu/dsh-archive-manager.git
Set-Location .\dsh-archive-manager
pnpm install --frozen-lockfile
pnpm build
dsh plugin --profile web add .
dsh --profile web --dump-config

完成后重启 DSH Web 并硬刷新浏览器。dsh plugin ... add . 会读取当前目录的包信息和 cordis.patch.yml;不要改为直接复制 lib 目录。

src 是唯一可维护源码目录,pnpm build 使用 esbuild 将其编译为可发布的 lib。请勿直接修改 lib,否则下次构建会覆盖改动:

修改 src 后,执行测试并确认生成的 libsrc 一同提交,再用本地目录重新安装:

[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
pnpm test
pnpm pack:check
dsh plugin --profile web add .

pnpm test 会先执行 pnpm build。构建在临时目录中从 src 生成全部 lib 产物;仅在生成成功后才原子替换旧产物,构建失败时会保留旧的 lib

验证

[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
pnpm verify

prepublishOnly 会在发布前执行完整验证,并确认提交的 lib 与当前 src 构建结果一致。

致谢

感谢上游项目 @michengai/dsh-archive-manager,本分支基于它复刻。

许可证

本项目采用 Apache License 2.0

发布前在 PowerShell 7 (pwsh) 执行 pnpm release:preflight,通过后再创建、推送版本标签。该入口使用官方 npm registry、冻结锁文件及与 CI 一致的 1440 分钟依赖冷却策略,然后运行完整 verify。刚发布的依赖仅通过已提交的精确版本豁免接纳;手动重试不会动态修改豁免配置。

标签发布与手动重试统一经过 npm 精确版本和 gitHead 校验,确认 npm 可查询后才创建或更新双语 GitHub Release。网络、权限或元数据异常会停止流程;旧标签重试不会抢占 npm 最新版本对应的 GitHub Latest。仅新增了发布控制,不改变四个宿主版本的兼容范围。

恢复已发布版本时,流程先校验 npm 包名、版本和标签提交:一致则跳过依赖安装、完整构建和再次发布,仅补同步 Release;未发布的旧标签仍需满足原标签的冷却策略,不能通过重试绕过。精确版本及 latest 传播分别最多等待两分钟,latest 落后时不提前创建非 Latest Release。

已推送的旧标签不会因 main 更新而重新触发。推送工作流更新后,可手动运行 publish.yml,选择 main 并填写原标签(例如 v0.1.18);无需移动或重新创建标签。