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

实例隔离指南 baihejiangnan/dsh-home-isolation-guide

DeepSeek Harness
baihejiangnan76 天前有提交已提供中文文档扫描:无法判定

用独立 DSH_HOME 复现全新实例,隔离凭据与会话

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · dev
装得上吗
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 76 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
⚪ 扫描:无法判定尚无人工评估
展开查看扫描说明与证据 ↓

已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。

  • · 包内无可扫 JS
  • · TS 源码(可能为非 JS 实现或未发布源码),无法判定
扫描于 2026/11/3(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 隔离凭据与会话
  • 附多语言示例

可复现的 DSH_HOME 隔离指南,附 PowerShell、Node.js 和 Rust 示例

README

由 DeepSeek 最新模型翻译生成
DSH_HOME 隔离与全新实例复现指南 本仓库说明如何为 DeepSeek Harness(DSH)创建一个真正全新的状态环境,使它不共享已有 API Key、会话、设置、存储和用户 Agent 预设,并提供 PowerShell、Node.js 与 Rust 的可运行示例。 核心结论 隔离单位是 DSH_HOME,不是 profile 名称。 旧实例 新实例 C:\Users\you\.dsh D:\dsh-instances\desktop-a |-- .credentials.yaml |-- profiles\tauri\package.json |-- sessions\ -- profiles\tauri\cordis.patch.yml -- .agent-presets\ 启动新实例时设置: DSH_HOME=D:\dsh-instances\desktop-a dsh --profile tauri --host 127.0.0.1 --port 3081 DSH 之后产生的凭据、会话和预设都会落到新目录,不会从 C:\Users\you\.dsh 读取。 前置条件 - 已安装可用的 dsh 命令,或者知道 DSH CLI 的完整路径。 - Windows PowerShell 5.1+ 或 PowerShell 7+。
展开完整文档(README 剩余 1 节)
DSH_HOME 隔离与全新实例复现指南

本仓库说明如何为 DeepSeek Harness(DSH)创建一个真正全新的状态环境,使它不共享已有 API Key、会话、设置、存储和用户 Agent 预设,并提供 PowerShell、Node.js 与 Rust 的可运行示例。

核心结论

隔离单位是 DSH_HOME,不是 profile 名称。

旧实例 新实例 C:\Users\you\.dsh D:\dsh-instances\desktop-a
|-- .credentials.yaml |-- profiles\tauri\package.json
|-- sessions\ -- profiles\tauri\cordis.patch.yml
-- .agent-presets\

启动新实例时设置:

DSH_HOME=D:\dsh-instances\desktop-a
dsh --profile tauri --host 127.0.0.1 --port 3081

DSH 之后产生的凭据、会话和预设都会落到新目录,不会从 C:\Users\you\.dsh 读取。

前置条件

- 已安装可用的 dsh 命令,或者知道 DSH CLI 的完整路径。
- Windows PowerShell 5.1+ 或 PowerShell 7+。
- Node.js 20+(仅 Node.js 示例需要)。
- Rust 1.77+(仅 Rust 示例需要)。

先确认:

dsh --help
node --version
rustc --version

最快复现:PowerShell

从仓库根目录运行:

.\examples\powershell\new-dsh-home.ps1
-DshHome "D:\dsh-instances\desktop-a"
-Profile "tauri"
-Port 3081

脚本会:

1. 拒绝任何已经存在的目标目录。
2. 创建 profiles\tauri。
3. 写入 dsh-base 与 dsh-web-app bundle 清单。
4. 仅对子进程设置 DSH_HOME。
5. 启动 http://127.0.0.1:3081。

只初始化、不启动:

.\examples\powershell\new-dsh-home.ps1
-DshHome ".\.DSH_HOME\desktop-a"
-InitializeOnly

如果 dsh 不在 PATH:

.\examples\powershell\new-dsh-home.ps1
-DshHome "D:\dsh-instances\desktop-a"
-DshCommand "C:\path\to\dsh.cmd"

Node.js 示例

node .\examples\node\launcher.mjs "D:\dsh-instances\node-a" tauri 3082

可以通过 DSH_BIN 指定 CLI:

$env:DSH_BIN = "C:\path\to\dsh.cmd"
node .\examples\node\launcher.mjs "D:\dsh-instances\node-a"

Rust 示例

cargo run --manifest-path .\examples\rust-launcher\Cargo.toml --
"D:\dsh-instances\rust-a" tauri 3083

Rust 版本只使用标准库,可直接嵌入 Tauri 或其他桌面应用的后端。

验证隔离

验证两个根目录解析结果不同,并查看各状态入口是否存在:

.\scripts\verify-isolation.ps1
-FirstHome "C:\Users\you\.dsh"
-SecondHome "D:\dsh-instances\desktop-a"

重要:验证脚本不会读取 API Key、会话内容或设置内容,只检查路径与文件是否存在。

本机实际案例

在一次 Windows 桌面端集成中,原有 CLI 使用:

C:\Users\\.dsh

桌面应用改为使用其 AppData 专属目录:

C:\Users\\AppData\Roaming\\data\dsh

应用启动 DSH 前执行等价逻辑:

let dsh_home = app_data_dir.join("data").join("dsh");
std::fs::create_dir_all(&dsh_home)?;

Command::new(dsh_binary)
.args(["--profile", "tauri", "--host", "127.0.0.1", "--port", "3081"])
.env("DSH_HOME", &dsh_home)
.spawn()?;

结果:桌面端第一次打开时没有旧 API Key、旧会话或旧用户 Agent 预设。这不是数据丢失,而是新 DSH_HOME 正常隔离的证据。

Profile 清单为什么这样写

templates/tauri-profile/package.json 使用:

{
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app"
]
}
}
}

这两个 bundle 来自 DSH 发行包。清单只是引用程序模块,不会复制 web profile,也不会复制任何用户状态。

数据是否共享

| 数据 | 同一 DSH_HOME、不同 profile | 不同 DSH_HOME |
| API Key | 共享 | 隔离 |
| settings.yaml | 共享 | 隔离 |
| 会话 | 共享 | 隔离 |
| 用户 Agent 预设 | 共享 | 隔离 |
| profile bundle/patch | 隔离 | 隔离 |

更多设计细节见 docs/architecture.md。

面向未来版本升级

对于可能包含破坏性变化的 DSH 新版本,不应让新旧二进制直接共享正式 DSH_HOME。推荐同时隔离 DSH 安装目录、DSH_HOME 和端口,将升级变成并行候选环境测试。

可以只把稳定环境的 profile 定义复制到新的候选 DSH_HOME:

.\scripts\copy-profile-for-upgrade-test.ps1
-SourceHome "D:\dsh\stable"
-TargetHome "D:\dsh\candidate-v2"
-Profile "tauri"

脚本不会复制 API Key、会话、设置、Agent 预设或旧 node_modules。目标 DSH 版本重新安装插件后,可在独立端口验证兼容性。兼容则提升候选版本;不兼容则停止候选进程并重新启动原 DSH_HOME,无需反向迁移或恢复备份。

完整理念、适用场景、兼容性判定和蓝绿升级流程见 docs/version-isolation.md。

清理测试实例

先停止对应 DSH 进程,再明确检查路径,最后手动删除测试目录。不要把递归删除命令写成依赖未验证环境变量的脚本。

本仓库有意不提供自动删除工具,避免错误路径导致数据损失。

License

MIT
预览分享卡片长什么样 ↓baihejiangnan/dsh-home-isolation-guide
分享 · DeepSeek Harness Hub
baihejiangnan/dsh-home-isolation-guide

用独立 DSH_HOME 复现全新实例,隔离凭据与会话

回到顶部