前言¶
在 DeepSeek Harness (DSH) 的 Web 界面中,侧边栏的工作区文件夹通常包含多个会话。针对每个会话单独点击归档既繁琐又影响效率。为了解决这个问题,需要一个插件在菜单中添加“归档全部”的功能,实现批量操作。
插件简介¶
dsh-workspace-archive-all 是一个 DSH Web 插件,由用户 1959377950-dotcom 维护,采用 MIT 许可证。它为侧边栏中的每个工作区文件夹菜单(包括未分组 bucket)添加了一个“归档全部”操作,能够将该文件夹下所有未归档的会话一次性归档。
核心功能¶
该插件主要提供以下能力:
- 批量归档:支持在确认对话框后,将指定文件夹下的所有未归档会话依次归档。
- 智能跳过:自动识别并跳过以下类型的会话,避免误操作:
- 正在运行的会话
- 当前正在查看的会话
- 空白的“新建会话”行
- 子代理会话
- 已经归档的会话
- 进度反馈:采用顺序归档方式,显示归档进度,最后给出结果摘要。
- 语言适配:支持英语和中文界面,文案会跟随 UI 语言自动切换。
安装与启用¶
使用官方 CLI 安装插件:
dsh plugin --profile web add dsh-workspace-archive-all
安装命令会通过 cordis.patch.yml 将插件挂载到配置中,无需手动编辑文件。
工作原理¶
该插件不依赖运行时拦截或脚本评估顺序,而是通过路由覆盖的方式工作:
- 路由替换:插件注册了一个精确路由来覆盖官方的 workspace 客户端 bundle 路径:
GET /plugins/@deepseek-ai/dsh-client-ui-workspace/client.js
→ this plugin's lib/workspace-client.patched.js
- 无侵入性:卸载插件会移除该路由,原始的 bundle 服务器会再次接管,官方磁盘文件不会被修改。
- 响应头一致性:插件返回的响应头与原始 bundle 服务器保持一致。
卸载与维护¶
卸载插件:
dsh plugin --profile web remove dsh-workspace-archive-all
如果需要升级 DSH,需要重新从官方 stock 文件生成补丁:
node tools/build-patch.mjs
该插件的 cordis.patch.yml 包含双重挂载保护机制:如果手动在 dsh.profile.bundles 中添加了条目,插件自身的插入行会失效,防止配置冲突。
生态背景¶
DSH 的生态理念是“一切皆插件”。该插件属于社区开发者维护的插件,可在 dsh-market 目录中查找,与 DeepSeek 或幻方研究院无官方从属关系。