🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI
广告☁️ 云服务器特惠阿里云首购 8 折 · 腾讯云合作特惠
DeepSeek Harness Hub
← 返回列表

lodfather/dsh-workspace-alias

DeepSeek Harnessspec-screened扫描:中风险在 GitHub 查看 ↗
⚠ 装前注意

DeepSeek Harness 插件:跨设备工作区路径别名。当你的

基本兼容但装前注意:未发布到 npm registry,仅可从源码安装 · 最近上游提交 2026/9/9 · 已提供中文文档

DeepSeek Harness 插件:通过跨设备路径别名(例如 macOS 的 /Volumes/Data/notes 与 Windows 的 F:\notes),将来自其他机器同步的会话归组到同一项目的本地工作区中,并提供一个应用内设置编辑器用于编辑别名表。

综合分
28.8
GitHub 分
28.8
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add lodfather/dsh-workspace-alias
未发布到 npm registry,仅可从源码安装,改用 GitHub 源安装
信任档位:已验证本站已于 0 天前真实安装成功
是什么
dsh 原生插件 · tool
装得上吗
本站已真实安装成功(非静态推断)
安全吗
本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
还在维护吗
活跃:最近一次提交在 16 天前

档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →

🟢实装验证通过· 2026/9/25
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/21(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-workspace-alias(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

未发布到 npm registry,仅可从源码安装

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/24 11:38:29

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-workspace@deepseek-ai/schemastery
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

由 DeepSeek 最新模型翻译生成
dsh-workspace-alias

[英文占位——完整设计文档见下方中文 README。]

DeepSeek Harness 插件:跨设备工作区路径别名。当你的
.dsh 会话存储在机器之间同步(Syncthing 等),但同一个
项目位于不同路径(macOS 上是 /Volumes/Data/notes,
Windows 上是 F:\notes)时,此插件会让同步的会话归入
同一项目的本地工作区,而不是保持未分组状态。

安装:

dsh plugin --profile web add https://github.com/lodfather/dsh-workspace-alias

配置 /workspace-alias.json:

{
"version": 1,
"groups": [["/Volumes/Data/notes", "F:\\notes"]]
}

dsh-workspace-alias(中文说明)

解决什么问题

.dsh 的会话按「工作区绝对路径」分组:/Volumes/Data/notes(Mac)和 F:\notes(Windows)永远对不上。用 Syncthing 同步 .dsh 后,另一台机器同步来的会话因 cwd 在本机不存在而变成「未分组」。

本插件在 workspace registry 的 cwd 归一化层加一个跨机别名表:外机 cwd → 本机同名项目的真实路径,同步会话即可正确归桶。

安装

dsh plugin --profile web add https://github.com/lodfather/dsh-workspace-alias
重启 dsh web

插件自带的 cordis.patch.yml 会禁用官方 workspace 行并挂载本包(同服务名 workspaceRegistry),workspace-controller / ui-workspace / 侧边栏全部无感。

配置

两种方式,任选其一,结果等价(workspace-alias.json 始终是唯一真源):

方式一:DSH 设置界面(推荐,v0.4.0 起)。双半区插件:host 侧向 settings 服务注册 workspace-alias namespace;client 侧(lib/client.js,DSH client-module 格式)注册 settings.section slot,设置页出现「工作区别名」完整编辑区(别名组增删改 + autoAttach 开关,草稿式编辑、原子保存),保存即写回 JSON 文件、热生效。宿主无 settings 服务时自动退化为方式二,无需任何配置。

方式二:手工编辑 /workspace-alias.json(建议纳入你的 .dsh 同步白名单,一台维护、两端生效):

{
"version": 1,
"groups": [
["/Volumes/Data/notes", "F:\\notes"]
],
"autoAttach": true
}

- groups:每个数组是一组「同一个项目在不同机器上的路径」,≥2 项
- autoAttach:启动时把「仅靠别名解析成功的会话」挂入本地 workspace(默认 true;这类会话不可能被本机主动 detach 过,不会违背手动整理意图)
- 修改后由文件 watcher 热加载;新同步进来的会话在下次重启 dsh 时归组

remarks:
- 设置界面编辑同样写回 workspace-alias.json,因此 Syncthing 同步语义不变(一端 UI 修改,另一端 watcher 热加载)
- UI 写回前会把上一版内容备份为 workspace-alias.json.bak(防误清空)
- 单成员组合法但只能告警(它永远无法 alias 到另一台机器);坏组跳过、不毒化整表(v0.2.4 容错语义)

原理(为什么不用 fork)

- 会话归属 = header 的 canonical cwd(fs.realpath)与 workspace path 字符串相等(官方 paths.ts:"ONE uniqueness canon")
- 归属校验只在两处读 cwd:WorkspaceRegistry.indexHeader(构建 sessionPaths 索引)与 WorkspaceEntity.attachSession
- 本包 AliasWorkspaceRegistry extends WorkspaceRegistry,只覆写 indexHeader 的 cwd 归一化:本机 realpath 失败 → 查别名组 → 用本机存在的兄弟路径 realpath
- 持久化 domain(workspace domain v2)与实体生命周期全部继承,零迁移

已知限制

- 需要 @deepseek-ai/dsh-workspace 的内部形态稳定(rc 期破坏性变更风险,已在 dsh.compatibility 声明 0.1.x)
- 只做「历史会话归组」;同步进行中的会话(dsh 运行时 Syncthing 写入)在下次重启时归组
- Windows 路径比较统一 / 分隔 + 大小写折叠(对 NTFS 不区分大小写的语义是正确的;对 macOS 大小写敏感盘的极端别名可能过宽)

License

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入社群

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

DPharness QQ 群二维码,QQ 扫码进群
QQ 扫码进群
DPharness 飞书群二维码,飞书扫码进群
飞书扫码进群