🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

一键重启与安全归档 SMPcosy/dsh-easy2restart

DeepSeek Harness
SMPcosy5 天前有提交已提供中文文档扫描:含敏感能力

双击侧边栏按钮重启,归档前确认并自动备份会话

29.8/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/11/2 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add SMPcosy/dsh-easy2restart
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/03·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 5 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令发起外部网络请求
查看扫描证据(共 11 处,展示前 11 条)
  • 执行外部命令固定命令
    lib/index.js:310
    execFile(
  • 执行外部命令固定命令
    lib/index.js:433
    execFile("schtasks", ["/Create", "/TN", taskName, "/TR", action, "/SC", "ONCE", "/ST", "00:00", "/F"], (err, stdout, stderr) => {
  • 执行外部命令固定命令
    lib/index.js:443
    execFile("schtasks", ["/Run", "/TN", taskName], (err2, out2, errOut2) => {
  • 执行外部命令固定命令
    lib/index.js:453
    execFile("schtasks", ["/Delete", "/TN", taskName, "/F"], (e3) => {
  • 执行外部命令固定命令
    lib/index.js:1076
    const child = spawn("explorer.exe", isDir ? [resolved] : ["/select,", resolved], {
  • 发起网络请求
    lib/client.js:40
    fetch(API + "/diag", {
  • 发起网络请求
    lib/client.js:468
    const r = await fetch(`${API}/health`);
  • 发起网络请求
    lib/client.js:486
    const res = await fetch(`${API}/restart`, {
  • 发起网络请求
    lib/client.js:862
    const res = await fetch(url, { headers: { accept: "application/json" } });
  • 发起网络请求
    lib/client.js:925
    const res = await fetch(API + path, {
  • 发起网络请求
    lib/client.js:1185
    const res = await fetch(API + "/archive/open", {
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DSH 插件:双击侧边栏按钮重启 DeepSeek Harness;内置安全归档确认、归档即备份与「已归档会话」右侧栏。Renamed from dsh-plugin-easy2restart.

README

由 DeepSeek 最新模型翻译生成
dsh-easy2restart DSH 重启 + 安全归档插件。0.2.0 起由 dsh-plugin-easy2restart 与 dsh-plugin-safe-archive 合并而来,0.2.1 完成界面重做与「自动备份」可配置化,0.2.2 修复界面上暴露的 5 处问题。 📦 包名 / 仓库已改名旧:dsh-plugin-easy2restart(GitHub 同名仓库)+ dsh-plugin-safe-archive → 新:dsh-easy2restart 旧包仍可安装但不再更新,请迁移到新包,详见 RENAME.md。 - 重启:侧边栏底部「重启」按钮,双击即整进程重启 DeepSeek Harness;会话运行中自动置灰。 - 安全归档:任何归档入口先弹确认框;会话仍在活动时给出活动清单 + 10 秒倒计时,倒计时结束才能「停止并归档」。 - 归档即备份:归档成功后宿主在 3 秒后自动备份会话文件、附件、标题缓存与元数据;备份目录可在界面里改,也能整个关掉。 - 右侧栏「已归档会话」:以归档会话文件夹为根的文件树,可在资源管理器中直接定位。
展开完整文档(README 剩余 1 节)
dsh-easy2restart

DSH 重启 + 安全归档插件。0.2.0 起由 dsh-plugin-easy2restart 与 dsh-plugin-safe-archive 合并而来,0.2.1 完成界面重做与「自动备份」可配置化,0.2.2 修复界面上暴露的 5 处问题。

📦 包名 / 仓库已改名旧:dsh-plugin-easy2restart(GitHub 同名仓库)+ dsh-plugin-safe-archive → 新:dsh-easy2restart 旧包仍可安装但不再更新,请迁移到新包,详见 RENAME.md。

- 重启:侧边栏底部「重启」按钮,双击即整进程重启 DeepSeek Harness;会话运行中自动置灰。
- 安全归档:任何归档入口先弹确认框;会话仍在活动时给出活动清单 + 10 秒倒计时,倒计时结束才能「停止并归档」。
- 归档即备份:归档成功后宿主在 3 秒后自动备份会话文件、附件、标题缓存与元数据;备份目录可在界面里改,也能整个关掉。
- 右侧栏「已归档会话」:以归档会话文件夹为根的文件树,可在资源管理器中直接定位。

⚠️ 已知 DSH 启动问题(与本插件无关)

现象|Symptom

DSH 启动失败弹窗(截图)

启动 DSH 时弹出上面这个窗口:「The application could not start or stopped unexpectedly.」,正文是 desktop welcome: Web authentication failed,并附诊断日志路径(%APPDATA%\@deepseek-ai\dsh-desktop\logs\ 下的 crash/host 日志);按钮为 Exit / Restart / Disable third-party plugins, back up profile patch, and restart。主界面进不去,日志目录里每次多一条 phase: startup 的崩溃记录。

原因|Cause

每次启动 DSH 都会向桌面 cookie 库新增一条 dsh-auth- cookie(127.0.0.1、每次启动端口随机,所以 cookie 名不同、不会覆盖旧条目)。它的有效期是 30 天,30 天内不会自己消失;累积到 71 条时 Cookie 请求头超过 16 KB 上限,host 返回 431,桌面握手失败 —— 就是上面这个弹窗。所以重启越频繁,越快撞线:一天重启几次的话,大约一个月内必然出现。

为什么点「Disable…」没用|Why the "Disable" button doesn't help

这个按钮只是禁用所有第三方插件(注意是禁用,不是删除、不是清空 —— 插件本体和配置都还在),然后重启一次。问题出在 cookie 累积,跟插件没有关系,所以点完照样起不来,反而暂时失去全部第三方插件能力,还得手动重新启用。Restart 按钮同理,只会再撞一次。

处理办法|Fix

1. 完全退出 DSH(含托盘与后台进程)。
2. 清掉 %APPDATA%\@deepseek-ai\dsh-desktop\Network\Cookies 里的 dsh-auth-:用 SQLite 执行 DELETE FROM cookies WHERE host_key='127.0.0.1' AND name LIKE 'dsh-auth-%';,或直接删除 Cookies 文件(只影响免登录状态,不影响账号与会话)。
3. 或安装 dsh-cookie-guard:DSH 关闭时每分钟自动清理,推荐用于长期防复发。
4. 重新打开 DSH;cookie 会按需重新签发,不用重新登录,会话与工作区不受影响。

🀄 中文(默认展开)

已发布到官方 NPM

DSH 重启 + 安全归档插件:双击侧边栏按钮整体重启 DeepSeek Harness;归档会话前先确认,会话仍在活动时倒计时后才能停止归档;归档成功自动备份,备份到哪、备不备份都由你定。

功能

一、重启 DSH

- 侧边栏 sidebar.footer.action 位置注入「重启 DSH」按钮(账号头像、设置上方),图标为手绘缺口环 + 箭头。
- 双击按钮 → 宿主用 Windows 计划任务拉起一个脱离 DSH 进程树的 PowerShell 脚本,taskkill /T 强杀整个 DSH 进程树,随后重新启动 DeepSeek Harness.exe。
- 有 Agent 会话运行中时按钮置灰禁用(依据 DSH 会话状态 running),鼠标悬停给出原因。
- 宿主保存一个「重启待办」,便于后续扩展「重启后回到原会话」等流程。

二、安全归档(确认 + 活动保护)

1. 点击归档(菜单 / 行尾按钮 / 快捷键)先弹确认框
- 开启自动备份时:「确认归档该会话吗?归档后会话窗口会关闭。归档完成后会自动备份到:<备份目录>。」
- 关闭自动备份时:第二行变红字「自动备份已关闭,本次归档不生成备份副本。」
2. 会话仍在活动时的二次确认
- 点「确认归档」后若 Host 拒绝(workspace/session-active),对话框切换为「会话正在活动」+ 活动清单(进行中回合 / 子代理 / 后台任务 / 定时任务);
- 「停止并归档」按钮 10 秒倒计时后才解禁,防止误操作。

三、归档即备份(事件驱动,不轮询)

- 宿主半侧包装 workspaceRegistry.archiveSession:归档成功后等 3 秒收尾,把会话文件 + 附件 + 标题缓存 + 元数据复制到 <备份根目录>\<会话名>-<归档日期-时间>\;
- 去重/状态按 会话 ID + SHA256 记录在 <备份根目录>\_auto-backup-state.json;manifest.json 自动落种子;
- 插件启动 5 秒后补扫「已归档但未备份」的会话,也可 POST /scan 手动补扫;
- 每次备份追加一行到 归档清单.md 与 _auto-backup-manifest.json;
- 备份根目录可改、自动备份可关闭(见下一节)。

四、自动备份设置(右侧栏内直接改)

右侧栏「已归档会话」页顶部有「自动备份」卡片,默认收起成一行摘要(开关状态 + 当前目录 + 状态徽章),点开后:

- 开启 / 关闭:关闭后归档照常进行,只是不生成备份副本;
- 备份根目录:输入框直接改,或点「选择…」弹系统文件夹对话框;
- 保存前先探测:目录不存在会自动创建,再写一个探针文件验证真的可写;不可写则红字提示原因且不落盘;
- 字段下方常驻一行状态:「✓ 可写,已备份 N 个会话」/「目录不存在,保存后自动创建」/「目录不可写,请换一个位置」/「自动备份已关闭:归档只留在 DSH 会话目录」,并标出来源(默认路径 / 用户设置 / 环境变量);
- 配置写在 ~/.dsh/storages/dsh-easy2restart/config.json,环境变量优先(见「配置」);
- 改路径只影响之后的归档,已有备份不会被搬动。

五、右侧栏「已归档会话」

- DSH 右侧栏引导页新增「已归档会话」条目(文件资源管理器式页面);
- 根目录 = 归档会话文件夹 <DSH_HOME>/sessions(归档会话文件真实位置);
- 不连接备份副本(只做提示,路径守卫会 403 拒绝访问它);
- 含「归档清单」(按 workspace.json 的 archivedSessionIds,标题缓存 + 会话文件回读兜底)与「会话存储目录」两棵树,文件点击可在资源管理器中定位;头部「刷新」「打开文件夹」,并实时显示「自动备份 / 备份关闭 / 备份不可写」状态。

六、界面(0.2.1 重做)

- 统一淡暖纸本配色(纸 #FBF6EC / 卡 #FFFDF8 / 墨 #2A2119 / 线 #E5D8C4),红黄绿蓝紫青六色只表达语义,一屏最多两色;
- 圆角只有 16 / 10 两档,正文 15px 起,一屏字号不超过三档;
- 所有图标改为内联 SVG(重启缺口环、归档托盘、文件夹、警示),不再依赖位图;
- 禁用态用灰底 + 去阴影(不用半透明,避免读成“坏了”);报错紧贴字段,不弹 toast;
- 动效 120–300ms,且完整响应系统的「减少动态效果」;按钮热区 36px,键盘可聚焦并有可见焦点环。

更多截图:screenshots/(插件列表图标、右侧栏类型选择页、归档清单)。

接口

| 方法 | 路径 | 说明 |
| GET | /api/dsh-easy2restart/health | 探针(宿主是否已加载本插件) |
| GET | /api/dsh-easy2restart/state | 重启待办(pending.json) |
| GET | /api/dsh-easy2restart/active | 是否有 Agent 会话在运行(按钮禁用依据) |
| POST | /api/dsh-easy2restart/restart | { sessionId, text } 记录待办并触发重启 |
| POST | /api/dsh-easy2restart/clear | 清除重启待办 |
| GET | /api/dsh-easy2restart/status | 已备份会话数 |
| POST | /api/dsh-easy2restart/scan | 手动补扫「已归档未备份」 |
| POST | /api/dsh-easy2restart/diag | 客户端诊断回写 |
| GET | /api/dsh-easy2restart/backup | 备份设置快照(开关 / 目录 / 来源 / 可写 / 已备份数) |
| POST | /api/dsh-easy2restart/backup | { enabled?, dir? } 保存设置;目录不可写返回 400 BACKUP_DIR_UNWRITABLE |
| POST | /api/dsh-easy2restart/backup/pick | 打开系统文件夹选择框,返回选中路径与探测结果 |
| GET | /api/dsh-easy2restart/archive/roots | 归档会话清单 + 数据源路径 + 备份状态 |
| GET | /api/dsh-easy2restart/archive/ls?path=<绝对路径> | 列举 sessions 下某一层目录(路径守卫) |
| POST | /api/dsh-easy2restart/archive/open | { path } 在资源管理器中打开/定位(路径守卫) |

离线自检(不启动 DSH、不触发重启、不动真实备份):

node test/plugin.selftest.mjs

配置

优先级:环境变量 > 配置文件 > 内置默认。

| 名称 | 取值 | 作用 |
| DSH_EASY2RESTART_BACKUP | off / 0 / false / no / disable / none | 关闭自动备份(归档照常) |
| DSH_EASY2RESTART_BACKUP_DIR | 绝对路径 | 指定备份根目录,覆盖界面设置 |
| ~/.dsh/storages/dsh-easy2restart/config.json | {"backup":{"enabled":true,"dir":"D:\\DSH备份"}} | 界面保存的位置 |
| 内置默认 | F:\AI\会话归档备份\DSH | 未配置时的目录(保留老用户习惯) |

环境变量存在时,界面上的开关与路径框变为只读并给出提示,避免「改了没生效」的困惑。

依赖

- DeepSeek Harness 桌面版(0.2.0-rc 以上)
- Node.js ≥ 22
- Windows(重启依赖计划任务 + PowerShell;文件夹选择与路径守卫按 Windows 盘符实现)

安装

前提:dsh 命令在 PATH 中(DeepSeek Harness 自带)。

在「插件 / 查检中心」里搜 dsh-easy2restart,或直接:

dsh plugin --profile desktop add dsh-easy2restart@0.2.3

为什么钉版本:pnpm 有 minimumReleaseAge(默认 24 小时),裸写包名时刚发布的新版会被跳过,装到上一版是常态。想要最新版就写死版本号,装完再 dsh plugin --profile desktop list 核对。

装完重启 DeepSeek Harness(插件不支持热加载),侧边栏底部账号头像上方即出现重启按钮,右侧栏引导页出现「已归档会话」。

从旧包迁移:先 dsh plugin --profile desktop remove dsh-plugin-easy2restart(如果你曾在本地装过 dsh-plugin-safe-archive 也一并 remove;它从未发布到 npm),再装本包。
两个旧插件的能力已全部并入,状态文件、备份目录与配置完全兼容,无需迁移数据。

使用

- 双击侧边栏按钮重启 DSH;会话运行中按钮为灰色,会话空闲时可正常重启。
- 重启由计划任务拉起,与 DSH 自身退出无关,即使 DSH 被强杀也会自动重新启动。
- 归档会话:照常用原来的归档入口,确认框会先出现;会话还在跑就等倒计时结束再「停止并归档」。
- 归档完成后约 3 秒自动备份;进度看 ~/.dsh/archive-backup/auto-backup.log。
- 换机器 / 换备份盘:右侧栏「已归档会话」→「自动备份」→ 改目录 → 保存,下次归档即生效。

卸载

dsh plugin --profile desktop remove dsh-easy2restart

然后重启 DSH 使改动生效。备份目录、日志与 config.json 保留在磁盘上,可自行删除。

工作原理(简述)

- lib/index.js(宿主 / Cordis 插件):
- 重启:注册 /api/dsh-easy2restart/*;/restart 记录待办并调用 scheduleRestart,用 schtasks 创建立即运行的重启任务(由计划任务服务启动,脱离 DSH 进程树),执行 restart/restart.ps1。
- 归档:包装 workspaceRegistry.archiveSession,归档成功后 3 秒调度备份;启动 5 秒补扫。
- 备份设置:backupSetting()(env → config → 默认)、probeBackupDir()(建目录 + 探针写)、pickBackupDirectory()(PowerShell 文件夹对话框)。
- 浏览:只读 <DSH_HOME>/sessions,带路径守卫。
- restart/restart.ps1:taskkill /PID <主进程> /T /F 结束整个 DSH 进程树,等待退出后重新 Start-Process DeepSeek Harness.exe。
- lib/client.js(Web 客户端):注入 sidebar.footer.action(重启按钮)、shell.overlay(归档确认框)、sidebar.right.pane.tab(已归档会话页),并接管 uiWorkspace.archiveSession。

目录结构

dsh-easy2restart/
├─ package.json # 插件清单(dsh.client / dsh.bundle 声明) ├─ cordis.patch.yml # bundle 挂载声明 ├─ lib/ │ ├─ index.js # 宿主端:重启调度 + 归档备份 + 备份设置 + 归档浏览路由 │ └─ client.js # 客户端端:重启按钮 + 归档确认框 + 已归档会话页 + 备份设置卡 ├─ restart/ │ └─ restart.ps1 # 重启脚本(杀进程树 + 重启 exe) ├─ test/ │ └─ plugin.selftest.mjs # 离线自检(宿主 13 条路由 + 备份设置 + 客户端注册 + 视觉层) └─ scripts/ ├─ check-readme-assets.mjs # README 图片发布门禁 └─ make-icon.py # 插件图标生成脚本(Pillow)

已知限制

- 重启依赖 Windows 计划任务与 PowerShell,非 Windows 平台无法使用。
- 归档拦截只覆盖经过 uiWorkspace.archiveSession 的入口;若 DSH 未来改走其他路径,归档不再弹确认框,备份也需另找触发点。
- 取消归档/重新归档会重新触发确认与备份(备份按 SHA256 去重,不会重复占空间)。
- 右侧栏「已归档会话」只读 DSH 会话目录,看不到备份副本(备份目录仅作提示)。
- 改备份目录不会迁移历史备份;旧目录里的内容需要自己处理。

数据与隐私

- 备份只写到本地磁盘的备份根目录(默认 F:\AI\会话归档备份\DSH\),不上传任何远端。
- 诊断日志:~/.dsh/storages/dsh-easy2restart/host-boot.log、~/.dsh/storages/dsh-easy2restart/diag.log、~/.dsh/archive-backup/auto-backup.log(以及备份目录内同名日志)。
- 不含遥测、不联网。

License

MIT

🌐 English

已发布到官方 NPM

DSH 重启 + 安全归档插件:双击侧边栏按钮即可完整重启 DeepSeek Harness;每次归档都先弹确认框(会话仍在忙时带 10 秒倒计时),并自动备份——备份到哪、备不备,都由你决定。

📦 已改名。 旧包 dsh-plugin-easy2restart + dsh-plugin-safe-archive 现合并为 dsh-easy2restart;详见 RENAME.md。

功能

1. 重启 DSH

- 在 sidebar.footer.action 插槽注入重启按钮(位于账号头像 / 设置上方),图标是内联 SVG 开口圆环加箭头。
- 双击 → 宿主通过 Windows 任务计划程序启动 PowerShell 脚本,脚本脱离 DSH 进程树运行;脚本用 taskkill /T 强杀整棵 DSH 进程树,再重新拉起 DeepSeek Harness.exe。
- 智能体会话运行中时按钮置灰,悬停提示会说明原因。
- 宿主保留「重启待处理」记录,方便以后加「重启后回到原会话」这类流程。

2. 安全归档(确认 + 活动守卫)

1. 每个归档入口(菜单 / 行内按钮 / 快捷键)都先弹确认框。 自动备份开着时,确认框会写明目标文件夹;关着时,用红字警告不会生成备份副本。
2. 会话仍在忙时二次确认:宿主返回 workspace/session-active 拒绝后,确认框切换为「会话活跃中」,并列出活动清单(运行中的轮次 / 子代理 / 后台任务 / 定时任务);「停止并归档」要等 10 秒倒计时结束才可点。

3. 归档即备份(事件驱动,不轮询)

- 宿主包装了 workspaceRegistry.archiveSession:归档成功后 3 秒,把会话文件、附件、标题缓存和元数据复制到 <备份根目录>\<标题>-<归档时间>\。
- 去重按会话 id + SHA256 记录在 <备份根目录>\_auto-backup-state.json;插件启动 5 秒后补扫一次,也可用 POST /scan 手动触发。
- 备份根目录可改,整个功能也能关掉,都在右侧边栏操作。

4. 自动备份设置(右侧边栏可编辑)

「已归档会话」页面带一张「自动备份」卡片,默认折叠成一行摘要。展开后有:

- 开 / 关开关——关掉后归档照常工作,只是不生成副本;
- 备份根目录输入框,带「浏览…」按钮(系统原生文件夹对话框);
- 保存前校验:目录不存在就创建,再写一个探测文件确认可写;不可写就在输入框旁显示原因,且不保存任何设置;
- 常驻状态行(「✓ 可写,已备份 N 个会话」/「文件夹尚不存在,保存时创建」/「文件夹不可写,请另选位置」/「自动备份已关闭:归档留在 DSH 会话文件夹」),并显示配置来源(默认 / 用户 / 环境);
- 存放在 ~/.dsh/storages/dsh-easy2restart/config.json,环境变量优先;
- 改文件夹只影响之后的归档,已有备份不会移动。

5. 右侧栏「已归档会话」页面

- 在右侧栏指南页(类似资源管理器)新增「已归档会话」入口。
- 根目录 = 归档会话文件夹 <DSH_HOME>/sessions(归档会话文件真正存放的位置);备份副本不接入,路径守卫会拒绝(403)。
- 两棵树(归档列表来自 workspace.json → archivedSessionIds,加上原始会话存储目录);点击文件会在资源管理器中定位。页头显示「刷新」「打开文件夹」和实时自动备份状态标签。

6. 界面(0.2.1 重做)

- 一套暖纸色板(纸色 #FBF6EC / 卡片 #FFFDF8 / 墨色 #2A2119 / 线条 #E5D8C4);六种语义色,每屏最多用两种。
- 只有两种圆角(16 / 10);正文从 15px 起,每屏最多三种字号。
- 所有图标都是内联 SVG(重启环、归档托盘、文件夹、警告)——不用位图。
- 禁用态用灰色填充、不加阴影,不用透明度(透明度看起来像「坏了」);错误提示紧挨对应字段,绝不放 toast。
- 动效 120–300ms,遵循 prefers-reduced-motion;按钮保留 36px 点击区域,可键盘到达,并显示可见的焦点环。

更多截图:screenshots/(插件列表图标、右侧栏选择器、归档列表)。

HTTP 路由

| 方法 | 路径 | 用途 |
| GET | /api/dsh-easy2restart/health | 探测(宿主端是否已加载) |
| GET | /api/dsh-easy2restart/state | 待重启记录 |
| GET | /api/dsh-easy2restart/active | 是否有智能体会话在运行 |
| POST | /api/dsh-easy2restart/restart | { sessionId, text } 记录并触发重启 |
| POST | /api/dsh-easy2restart/clear | 清除待处理记录 |
| GET | /api/dsh-easy2restart/status | 已备份会话数 |
| POST | /api/dsh-easy2restart/scan | 手动补扫 |
| POST | /api/dsh-easy2restart/diag | 客户端诊断 |
| GET | /api/dsh-easy2restart/backup | 备份设置快照 |
| POST | /api/dsh-easy2restart/backup | { enabled?, dir? };文件夹不可写时返回 400 BACKUP_DIR_UNWRITABLE |
| POST | /api/dsh-easy2restart/backup/pick | 系统原生文件夹选择器;返回所选路径和探测结果 |
| GET | /api/dsh-easy2restart/archive/roots | 已归档会话 + 数据源 + 备份状态 |
| GET | /api/dsh-easy2restart/archive/ls?path=<abs> | 列出 sessions 下的一层目录(带路径校验) |
| POST | /api/dsh-easy2restart/archive/open | { path } 在资源管理器中定位(带路径校验) |

离线自测(不启动 DSH,不触发重启,不碰真实备份):

node test/plugin.selftest.mjs

配置

优先级:环境变量 > 配置文件 > 内置默认值。

| 名称 | 取值 | 作用 |
| DSH_EASY2RESTART_BACKUP | off / 0 / false / no / disable / none | 关闭自动备份(归档功能照常可用) |
| DSH_EASY2RESTART_BACKUP_DIR | 绝对路径 | 覆盖界面上设置的备份根目录 |
| ~/.dsh/storages/dsh-easy2restart/config.json | {"backup":{"enabled":true,"dir":"D:\\DSH-bak"}} | 界面保存的内容 |
| 内置默认值 | F:\AI\会话归档备份\DSH | 未做任何配置时使用 |

设置环境变量后,开关和路径输入框会变为只读,并说明原因,避免出现「改了却没生效」的情况。

环境要求

- DeepSeek Harness 桌面版(0.2.0-rc 或更高版本)
- Node.js ≥ 22
- Windows(重启依赖任务计划程序 + PowerShell;文件夹选择器和路径校验按 Windows 盘符路径处理)

安装

前提:dsh 命令已在 PATH 中(DeepSeek Harness 自带)。

dsh plugin --profile desktop add dsh-easy2restart@0.2.3

为什么要锁定版本:pnpm 遵循 minimumReleaseAge(默认 24 小时),只写包名会跳过几分钟前刚发布的版本,解析到上一个版本。想要最新构建就锁定版本,装完再用 dsh plugin --profile desktop list 确认。

安装完成后重启 DeepSeek Harness(插件不支持热重载);重启按钮出现在侧边栏底部,右侧边栏会出现「已归档会话」页面。

从旧包迁移:先卸载 dsh-plugin-easy2restart(如果本地装过 dsh-plugin-safe-archive 也一并卸载——它从未发布到 npm),再安装这个包。状态文件、备份文件夹和配置完全兼容,无需迁移数据。

使用

- 双击侧边栏按钮重启 DSH;会话运行期间按钮置灰。
- 重启由计划任务拉起,不依赖 DSH 自己退出。
- 照常归档会话——先弹确认对话框;会话仍在忙就等倒计时结束,再选「停止并归档」。
- 归档后约 3 秒,备份开始运行;查看 ~/.dsh/archive-backup/auto-backup.log。
- 换到其他磁盘:右侧边栏 →「Archived sessions」→「Auto-backup」→ 修改文件夹 → 保存;下次归档就会用新路径。

卸载

dsh plugin --profile desktop remove dsh-easy2restart

然后重启 DSH。备份文件夹、日志和 config.json 仍留在磁盘上;想删就自己删。

工作原理(简述)

- lib/index.js(宿主 / Cordis 插件):通过 schtasks + restart/restart.ps1 实现重启路由;包装 workspaceRegistry.archiveSession,归档成功后 3 秒调度一次备份(启动后 5 秒还会补扫一次);backupSetting() / probeBackupDir() / pickBackupDirectory() 为设置界面提供支撑;在 <DSH_HOME>/sessions 下提供只读的归档浏览,并带路径守卫。
- restart/restart.ps1:taskkill /PID /T /F,等待进程退出,再 Start-Process DeepSeek Harness.exe。
- lib/client.js(Web 客户端):注册 sidebar.footer.action(重启按钮)、shell.overlay(归档确认对话框)和 sidebar.right.pane.tab(归档会话页),并包装 uiWorkspace.archiveSession。

已知限制

- 重启依赖 Windows 任务计划程序和 PowerShell;其他平台用不了。
- 只拦截走 uiWorkspace.archiveSession 的归档。如果 DSH 以后把归档改到别处,那条路径既没有确认对话框,也不会自动备份。
- 重复归档会再次弹出对话框并再次备份(按 SHA256 去重,不会浪费空间)。
- 右侧边栏页面只读 DSH 会话目录;备份副本在那里看不到。
- 修改备份文件夹不会迁移已有备份。

数据与隐私

- 备份留在本地磁盘(默认 F:\AI\会话归档备份\DSH\);不上传任何内容。
- 诊断日志:~/.dsh/storages/dsh-easy2restart/host-boot.log、~/.dsh/storages/dsh-easy2restart/diag.log、~/.dsh/archive-backup/auto-backup.log。
- 无遥测,无网络请求。

许可证

MIT
预览分享卡片长什么样 ↓SMPcosy/dsh-easy2restart
分享 · DeepSeek Harness Hub
SMPcosy/dsh-easy2restart

双击侧边栏按钮重启,归档前确认并自动备份会话

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部