DeepSeek Harness Hub
← 返回列表

langyo/dsh-mobile-upgrade

DeepSeek 客户端兼容 / 相关生态spec-screened在 GitHub 查看 ↗
未验证

针对 DeepSeek Harnessdshweb…

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/12 · 已提供中文文档

DeepSeek Harness Web 配置文件的移动端 UI 修复:输入框上传、重启行、窄抽屉与标签页,以及全宽模型菜单。

综合分
30.2
GitHub 分
30.2
用户评分
★ Stars
1
周下载量
兼容 / 相关生态插件(非 dsh 原生,请按其对应运行时安装)
git clone https://github.com/langyo/dsh-mobile-upgrade.git
数据截至 2026/9/18(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-mobile-upgrade

针对 DeepSeek Harness(dsh)web 配置的移动端体验优化,以单个插件的形式发布。所有内容都通过宿主自身的插槽和状态信号进行渲染——不接管布局、不添加浮动控件、不轮询聊天内容的 DOM。

你将获得

- 重启行 —— 在“设置 → 通用”中新增“重启服务”条目。会先进行确认,然后重启 dsh 进程,并在服务再次响应后自动重新加载页面。
- 输入模态开关 —— 在原生提供商编辑器的每一行模型上提供文本/图像/视频复选框,将模型的 input 数组写入 settings.yaml(并在该文件旁生成备份)。没有用户自定义路由的目录模型会以只读方式显示这些开关。
- 窄屏抽屉 —— 在 1024px 以下,侧边栏会折叠为一个小角落按钮,并保留宿主自身的切换控件;展开时会将完整侧边栏作为抽屉悬浮在全宽内容之上,选择会话后再次关闭。按钮和抽屉以原子方式切换(没有几何动画,避免在繁忙的主线程上卡顿),并且关闭抽屉的点击会在同一帧内将其折叠,而无需等待宿主重新渲染——因此即使手机上运行着大量会话,抽屉也不会卡在半展开状态,关闭后的按钮也绝不会在宿主已清空的侧栏上显示为白色。
- 窄屏设置标签页 —— 在 700px 以下,设置对话框的侧边导航会变成一行可横向滚动的标签页。
- 全宽模型菜单 —— 在 700px 以下,编辑器的模型菜单会重新锚定到正好等于手机宽度(12px 边距),而不会超出屏幕边缘,同时宿主仍然负责其在触发按钮上方的垂直位置。
- 可滚动的问题卡片 —— 在 1024px 以下,待处理的问题不再会遮住自己的选项:问题会被限制在自身的滚动区域内,因此较长的问题会在原地滚动,而下方的选项列表保留剩余空间,选项、提交行以及最小化/关闭按钮都保持在屏幕上且可触达。较短的问题不受影响,卡片仍然贴合其内容。
- 详情浮层稳定处理 —— 在当前宿主中关闭控件无效的全屏工具详情浮层不会在窄屏上渲染,因此它不会困住聊天界面。
- 风暴安全响应式 — drawer/menu 观察器和设置轮询器以受限速率响应突发流式消息,并在主机不可达时退避;重连期间的 rail 重新挂载会保留 drawer 状态而不是使其抖动;drawer 关闭点击会通过重新挂载重试,而不是落在过期的切换上:许多会话同时流式传输时,不再冻结输入或让侧边栏抽搐到无法点击,无论它是打开还是关闭。
- 子代理目录防护 — 主机通过每次请求枚举整个会话语料库来提供子代理目录(在长历史记录上约 1 秒),而其客户端在每次选择、chip 悬停和成员事件时都会询问。该插件包装了该刷新:实时会话列表中没有子级的父级永远不会被询问,父级最多每 2.5 秒被重新询问一次,并且刷新启动之间有间隔 — 子代理扇出不再因全语料库扫描而使主机饥饿。
- 点击打开谱系 chip — 在桌面上,子代理 chip(“N subagents”和子代理标题切换器)仅在当前主机中悬停时打开;点击没有任何作用。该插件将 chip 上的点击转换为宿主已经理解的悬停事件对,因此点击会切换树的打开/关闭(祖先面包屑保留其点击导航)。
- 窄标题收集器 — 在 1024px 以下,会话标题的 chip(谱系、作业、预设)比手机更宽且仅支持悬停。它们折叠为一个 pill(≡ title · N agents · M jobs);点击它会打开一个全宽 sheet,其中包含会话谱系(每个祖先可点击,每个都带有其后代计数)、以家族根为根的 subagent 树 — 行从实时会话列表渲染,分支通过受保护的刷新按需获取其目录 — 以及此会话的后台作业。在桌面上没有任何变化。
- 会话列表渲染节流 — 主机为每个已附加会话的每次投影变化推送一个全值投影帧,而正在运行的 subagent 的计时视图会在每个已提交事件上变化,因此繁忙的后台集群会以 50-150 帧/秒的速度向页面流式传输。每个帧过去都会重新渲染整个会话列表(一次重建会遍历每个摘要,再加上一次 O(n²) 缓存扫描 — 测得为主线程时间的大部分,冻结页面直到重新加载)。该插件将这些重新渲染合并到一个自适应的尾随间隔上,同时值继续不变地流入每个会话存储,因此后台流式传输不再冻结页面 — 在任何会话上,无论新旧。
- 自更新 — 客户端 bundle 按修订版本以不可变方式提供,因此手机标签页可以继续运行较旧构建数天。页面将其启动时的修订版本与服务器现在发布的修订版本进行比较,并在页面空闲后(绝不在正在输入草稿时)重新加载自身,或提供一个可点击的横幅。
- 按功能切换 — 该插件在 Settings → Plugins 中安装一个 dsh-mobile-upgrade 部分,每个功能都有一个开关。

截图
浮动芯片、会话抽屉、窄屏设置标签页和窄屏页头收集器(带注释):

| | |
|---|---|
| 浮动芯片 | 会话抽屉 |
| 设置标签页 | 页头收集器 |

安装

dsh plugin --profile web add dsh-mobile-upgrade

重启 dsh web,然后在手机上打开 web 配置文件:重启行位于设置 → 通用,功能开关位于设置 → 插件 → dsh-mobile-upgrade。附件来自宿主机自带的编辑器附件系统。

需要 dsh 0.1.5-rc.1 或更新版本(宿主机内置的附件系统取代了本插件的上传功能)。

配置

插件的设置卡片接受:

| 键 | 默认值 | 含义 |
|---|---|---|
| restartEnabled | true | 提供重启行及其路由 |

功能开关

上述每项功能都可以在设置 → 插件 → dsh-mobile-upgrade 中切换(下次页面加载时生效),也可以通过 localStorage 键按设备覆盖——mfx-restart、mfx-settle、mfx-drawer、mfx-settings、mfx-modality、mfx-menus、mfx-net、mfx-questions、mfx-selfupdate、mfx-agents、mfx-header、mfx-listthrottle——其中值 "0" 表示关闭该功能。

限制

- 客户端通过宿主 UI 元素的哈希 CSS 类名来挂钩特定元素(菜单、抽屉切换按钮、提供商编辑器、会话页头芯片)。如果宿主构建重命名了这些类名,各项功能会降级,直到本插件跟进适配;其他一切仍可正常工作。问题卡片的问题区域则通过卡片自身的 data-question-key 钩子来定位,因此即使宿主重建只是重新哈希其 CSS 模块,它仍能正常工作。
- 页头收集器和谱系点击垫片依赖宿主自身的数据(实时会话列表及其子代理目录);除了受保护的分支请求外,它们不添加任何额外请求,并且当某一行仍处于加载模式时,一旦该目录就绪,点击该行会自行完成。
- 输入模态切换只能修补你自己自定义过的提供商路由;仅目录路由在设计上是只读的,因为伪造目录区段会导致模型目录崩溃。

安全说明

插件的 HTTP 路由(重启、设置编辑)本身不执行任何身份验证——它们信任所加载到的 dsh web 界面。在将其暴露到 localhost 之外前,请将部署置于保护其余 UI 的同一道关卡之后(反向代理认证、回环绑定)。

社区链接

- Linux.Do — 一个分享和讨论技术的社区。

许可证

在 Synthetic Source License (SySL), Version 1.0 下分发。

注意:本软件包含由人工智能生成的代码。有关 Synthetic Source License 的条款,包括模型披露要求,请参阅 LICENSE 文件。

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

💬 加入 DPharness 群聊

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

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群