跳过主要内容
C

dsh-plugin-workspace-archive

chineseryan/dsh-plugin-workspace-archive

在工作区行菜单里加一项「归档工作区」:对该工作区下每个会话调用官方归档命令,当前正在查看的那条保持打开;组内有会话仍在运行时整批拒绝。官方会隐藏已归档的会话,却把清空后的工作区行留在侧栏——本插件把这一行也一并收起,并从底部面板按 $DSH_HOME/storages 里带跨进程锁写入的账本整组恢复。数量角标可设为常驻、仅新归档时、或隐藏。

安装

dsh plugin --profile web add github:chineseryan/dsh-plugin-workspace-archive

README

归档工作区 · dsh-plugin-workspace-archive

一键归档整个工作区,让侧边栏只留下你正在用的东西。

归档工作区


安装

方式一:从 GitHub 安装

dsh plugin --profile <profile> add "git+https://github.com/<你的用户名>/dsh-plugin-workspace-archive.git"

方式二:本地开发

git clone https://github.com/<你的用户名>/dsh-plugin-workspace-archive.git
dsh plugin --profile <profile> add "link:/path/to/dsh-plugin-workspace-archive"

安装后需要重启一次 dsh 宿主。 宿主侧的 JS 不热重载;浏览器半侧刷新页面即可。 如果你的 profile 由桌面应用独占管理,请在「设置 → 插件」中安装,或使用桌面版自带的 CLI。

卸载:

dsh plugin --profile <profile> remove dsh-plugin-workspace-archive

使用

操作位置
归档工作区工作区行右侧「…」→ 归档工作区
查看 / 恢复侧边栏底部 已归档工作区(带数量角标)
角标显示方式面板标题右侧的三枚图标:常驻显示 / 首次显示 / 永不显示(悬停看名称)

角标三档的含义:

  • 常驻显示:只要有归档记录,就一直显示当前数量。
  • 首次显示:只有出现新的归档时,才显示一个蓝色气泡;打开「已归档工作区」 面板即视为已确认,气泡消失,直到你再次归档新的工作区。
  • 永不显示:角标始终隐藏,入口按钮仍在。

面板可直接按 Esc 或底栏「关闭」关闭。0.1.6 起角标偏好保存在宿主状态文件(与归档账本同一份文件), 重启 dsh 后不会回到默认的「常驻显示」;本机浏览器 localStorage 只作即时缓存。

归档时发生了什么?

  1. 插件对该工作区下的全部会话逐个调用官方归档命令;
  2. 全部成功后,把「工作区 → 会话 ID 名单」写入宿主状态文件;
  3. 该工作区的会话全部归档后,工作区行随之从侧边栏消失——与它下面的会话 保持一致的可见性。插件只在 DOM 上给这样的行加隐藏标记, 不读写、不改写官方任何视图数据。

恢复时发生了什么? 按账本里的会话名单逐个还原,全部成功才删除记录。 恢复最后一条记录后,「已归档工作区」面板会自动关闭。

归档不会删除任何文件、会话或历史记录。正在运行的会话无法归档, 菜单会提示「有会话正在运行,请先停止」。

数据与隐私

  • 插件只在本地一个位置写入数据: $DSH_HOME/storages/dsh-workspace-archive.json(归档账本 + 角标偏好)
  • 写入采用「原子 rename + 跨进程文件锁」,多窗口并发不会丢失记录;
  • 不联网、不上传、不收集任何信息;不读取会话内容,只记录 ID 名单。

删除该文件即等同于放弃恢复入口(已归档的会话仍在官方归档里,可从官方入口恢复)。

兼容性

项要求
dsh0.2.1-rc.2 及以上
依赖无运行时第三方依赖

常见问题

Q:能不能只归档部分会话? 单条会话请用官方自带的「归档会话」;本插件处理的是整个工作区。

Q:归档后还能搜到这些会话吗? 它们处于官方归档状态,行为与官方「归档会话」完全一致。

Q:和别的插件冲突吗? 本插件不包装、不改写任何官方服务,只读取工作区快照,只在工作区行上添加一个 自带清理的隐藏标记,因此与其它插件无冲突。

Q:归档后我正在看的那个会话还会留在列表里吗? 会。官方不会把正在查看的会话藏起来,本插件也一样;切到别的会话再切回来, 该工作区行就和其他已归档工作区一样不再显示。

Q:本来就没有任何会话的工作区,能归档吗? 能。0.1.5 起,空工作区归档后同样会从工作区列表里消失,只在「已归档工作区」 面板里出现;点「恢复」即可回到列表。0.1.4 及以前这类工作区会两处同时显示, 这是已修复的 bug。

开发

package.json           dsh.bundle / dsh.client / exports / locale / icon
cordis.patch.yml       bundle 层(含幂等守卫,重复挂载不会注册两次路由)
lib/index.js           宿主半侧:状态文件 + /dsh-workspace-archive/{ping,state,archive,unarchive,prefs}
client/client.js       浏览器半侧:「…」菜单注入 + 已归档面板
locale/{zh,en}.json    插件元数据文案
icon.svg               图标

宿主半侧用 Cordis 服务(inject = ['webServer']),浏览器半侧通过 dsh.client 声明注入点,所有注册挂在 ctx.effect 上,可完整卸载。

许可

MIT

相关插件