dsh-official-cleanup:精简 DSH Web 界面中的官方入口

前言

用 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 用表格归纳了三类目标,下面按同样事实展开。

侧栏:设置按钮顶替「更多」,并隐藏反馈与登录行

  1. 隐藏菜单行:在会话页左下角「更多」菜单里,用插件自带样式表将「意见反馈」「登录」两行设为 display: none,并标记 disabled,使键盘走位跳过它们。识别方式依赖图标几何(纸飞机 = 意见反馈,人像 = 登录),不依赖界面语言。

  2. 不删 DOM:AccountMenu 为硬编码 JSX,无扩展点;直接删节点会导致 React removeChild 报错,launcher 槽位可能被判为 deadCell。因此采用隐藏而非移除。

  3. 设置直达: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 给出对应改法:

  1. 恢复侧栏「更多」账号菜单:删除或调整 client.js 里 settings launcher 注册(例如去掉 priority: -1),刷新页面。
  2. 恢复 Provider 卡片:删除 cordis.patch.yml 中 llm-deepseek 的 disabled: true 段,重启 Harness。
  3. 恢复 Session Log 开关:删除 index.js 中的 internal/config 监听,或卸载插件。
  4. 调整被隐藏菜单行:修改 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 属于 Cordis internal/* 钩子,无稳定性承诺;注册失败时功能 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。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye