前言¶
用 DeepSeek Harness(DSH)做本地智能体开发时,Web 界面会带上一批面向官方模型 API 的入口:侧栏「更多」里的意见反馈与登录、设置里的 DeepSeek 官方 Provider 卡片,以及「在使用官方模型 API 时上传 Session Log」开关。若你只用自建或第三方模型路由、并不走官方 API,这些入口只会占菜单和设置页空间,还容易误触。
下面介绍社区插件 dsh-official-cleanup(维护者 tkhs101):在不动 DSH 安装目录的前提下,通过插件槽位与 loader 补丁层隐藏或关闭上述能力,让界面更贴近「纯本地 Harness」的使用方式。
这是什么¶
dsh-official-cleanup 是分类为客户端的 DSH 插件,一句话定位是:清理 Web UI 里用不到的官方 API 相关入口,并把官方模型 Session Log 上传钉死为关闭。
实现分 Host 与 Client 两半:Client 改侧栏与样式;Host 通过 internal/config 与 cordis.patch.yml 改 loader 与配置解析。仓库:https://github.com/tkhs101/dsh-official-cleanup。目录页:https://www.skillhub.cn/plugins/tkhs101/dsh-official-cleanup。许可证 MIT。
当前 npm 包版本为 0.4.1(见仓库 package.json)。engines.dsh 声明为 >=0.2.1-rc.2 <0.3.0-0;版本不匹配时 DSH 兼容性闸门会拒绝加载并提示,而不是让 Harness 崩溃。
核心功能¶
README 用表格归纳了三类目标,下面按同样事实展开。
侧栏:设置按钮顶替「更多」,并隐藏反馈与登录行¶
-
隐藏菜单行:在会话页左下角「更多」菜单里,用插件自带样式表将「意见反馈」「登录」两行设为
display: none,并标记disabled,使键盘走位跳过它们。识别方式依赖图标几何(纸飞机 = 意见反馈,人像 = 登录),不依赖界面语言。 -
不删 DOM:
AccountMenu为硬编码 JSX,无扩展点;直接删节点会导致 ReactremoveChild报错,launcher 槽位可能被判为deadCell。因此采用隐藏而非移除。 -
设置直达:
settings.launcher为single槽位。插件以priority: -1注册一个按钮,遮住默认账号菜单(最低优先级渲染),点击直接调用openSettings()。账号菜单并未反注册,只是不再占据该槽位;设置分区、模型页登录编辑器等仍在各自槽位工作。
设置 → 模型:去掉 DeepSeek 官方 Provider 卡片¶
在 cordis.patch.yml 中将 loader entry llm-deepseek 设为 disabled: true。该 entry 同时负责 provider 目录条目与适配器路由,禁用后卡片与路由一并消失。设置页对缺行容错,会降级为 adapter-absent,不会报错。
Session Log 上传:强制保持关闭¶
「在使用官方模型 API 时上传 Session Log」的 enabled 在 schema 中默认为 true,且 bundle patch 优先级最低,会被 profile patch 与 Web 开关覆盖。Host half 在 internal/config waterfall 里将该项解析结果钉为 false,覆盖开机默认值、设置页写入与重启后的组合配置。
失败隔离¶
Client 与 Host 的各注册单独隔离错误:某一钩子被拒绝时只少一项效果并打 console 错误,不会让前端或 Harness 整体启动失败。
安装与启用¶
要求 dsh >= 0.2.1-rc.2。纯 JavaScript,无构建步骤与运行时依赖。
# 从 npm 装(推荐)
dsh plugin --profile web add dsh-official-cleanup
# 锁定版本
dsh plugin --profile web add dsh-official-cleanup@0.4.1
# 从 GitHub 装
dsh plugin --profile web add github:tkhs101/dsh-official-cleanup#v0.4.1
# 从本地目录装
dsh plugin --profile web add /path/to/dsh-official-cleanup
# 卸载
dsh plugin --profile web remove dsh-official-cleanup
dsh plugin 将参数转给 profile 目录内的 pnpm;装完后 DSH 会把包写入 dsh.profile.bundles 并应用补丁层。Client 侧刷新页面即可;因补丁修改了 llm-deepseek loader entry,需重启一次 Harness 方可在新进程生效。换用其他 profile 时,将 --profile web 改为对应名称。
npm 与 GitHub 分发已验证;rc.2 的 Discover 插件市场索引未收录本插件,需按上述命令自行安装。
典型用法与恢复¶
安装并重启后,无需额外配置:侧栏变为直达设置的按钮,模型页不再出现官方 DeepSeek Provider 卡片,Session Log 上传开关在解析层保持关闭。
若需部分还原,README 给出对应改法:
- 恢复侧栏「更多」账号菜单:删除或调整
client.js里settings launcher注册(例如去掉priority: -1),刷新页面。 - 恢复 Provider 卡片:删除
cordis.patch.yml中llm-deepseek的disabled: true段,重启 Harness。 - 恢复 Session Log 开关:删除
index.js中的internal/config监听,或卸载插件。 - 调整被隐藏菜单行:修改
client.js顶部的FEEDBACK_ICON/LOGIN_ICON常量(Harness 升级若更换图标路径时需同步)。
适用场景与注意¶
适合谁:主要使用非官方模型路由、希望 Web UI 少一层官方 API 引导的 DSH 用户;分类为客户端,作用面是 Web profile。
叠加效果:设置按钮顶替「更多」且关闭 llm-deepseek 后,本 profile 内 DeepSeek 账号登录几乎没有可见入口(模型页首启引导里的 settings.models.sign-in 依赖已被禁用的官方 Provider 卡片)。这是功能 1b 与功能 2 的设计叠加;需要登录入口时应按「恢复办法」还原其中一项。
边界:
- 菜单行隐藏依赖
Menu当前图标路径与:has()选择器;DSH 升级后可能要改client.js顶部常量,并手动用方向键确认键盘走位。 internal/config属于 Cordisinternal/*钩子,无稳定性承诺;注册失败时功能 3 可能退化为「默认关、但设置页可打开直至下次重启」。- 设置按钮外观复制宿主齿轮几何,依赖
--dsw-alias-*token;宿主改图标或尺寸时可能需改GEAR_PATHS与.doc-launcher。
安全与信任:插件以当前 dsh 进程权限运行,通过槽位与补丁层工作,不修改 DSH 安装目录文件。安装前建议阅读仓库源码与 MIT 许可证;第三方齿轮图标几何遵循 DeepSeek Harness 客户端 UI 的 MIT 声明。
DSH 生态强调「一切皆插件」;SkillHub 等社区目录独立于 DeepSeek / 幻方,并非官方应用商店。
结尾¶
dsh-official-cleanup 把侧栏、模型页与 Session Log 三条线上的官方 API 露出面收拢到插件可控范围内,适合只想把 Harness 当本地工作台用的场景。详情与 issue 见 GitHub:https://github.com/tkhs101/dsh-official-cleanup;插件目录:https://www.skillhub.cn/plugins/tkhs101/dsh-official-cleanup。