DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Mobile Upgrade — DeepSeek Harness 插件(DSH Plugin)
← Plugins

dsh-mobile-upgrade

Mobile Upgrade

DeepSeek Harness 网页配置的移动端 UI 修复:撰写器附件上传、重启行、输入模态切换、窄屏抽屉和设置选项卡、全宽模型菜单、卡住请求的网络标签、可滚动的问题区域,以及一个

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add dsh-mobile-upgrade@0.8.1
README兼容性版本
Settings tabs

兼容性与来源证明

Mobile Upgrade 以 dsh-mobile-upgrade 发布,当前版本为 0.8.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/9/20

版本

0.8.1stable
2026/9/12
0.8.0stable
2026/9/12
0.7.1stable
2026/9/11
查看其余 20 个版本收起版本
0.7.0stable
2026/9/11
0.6.8stable
2026/9/11
0.6.7stable
2026/9/11
0.6.6stable
2026/9/11
0.6.5stable
2026/9/11
0.6.4stable
2026/9/11
0.6.3stable
2026/9/11
0.6.2stable
2026/9/10
0.6.1stable
2026/9/10
0.6.0stable
2026/9/10
0.5.0stable
2026/9/10
0.4.1stable
2026/9/10
0.4.0stable
2026/9/8
0.3.1stable
2026/9/8
0.3.0stable
2026/9/8
0.2.1stable
2026/9/8
0.2.0stable
2026/9/8
0.1.2stable
2026/9/8
0.1.1stable
2026/9/8
0.1.0stable
2026/9/7

相关插件

正在加载相关插件…

最新版
0.8.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
476 kB
文件数
18
Surface
web
许可证
SySL-1.0
发布源
npm
GitHub
★ 1
周下载
294
安全扫描
✓ v0.8.1 扫描通过
最近提交
2026/9/12
查看源码 ↗项目主页 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

README

dsh-mobile-upgrade

English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español | Français | Deutsch | Русский

Mobile quality-of-life fixes for the DeepSeek Harness (dsh) web profile, shipped as a single plugin. Everything renders through the host's own slots and state signals — no layout takeover, no floating widgets, no DOM polling of chat content.

What you get

  • Restart row — a "Restart service" entry in Settings → General. Confirms first, restarts the dsh process, and reloads the page automatically once the service answers again.
  • Input-modality switches — text/image/video checkboxes on every model row of the native provider editor, writing the model's input array into settings.yaml (with a backup next to the file). Catalog models without a user-customised route show the switches read-only.
  • Narrow-screen drawer — below 1024px the sidebar collapses to a small corner chip that keeps the host's own toggle; expanding it floats the full sidebar as a drawer over full-width content, and picking a session closes it again. The chip and the drawer swap atomically (no geometry animation to freeze on a busy main thread), and a tap that closes the drawer collapses it in that same frame instead of waiting for the host's re-render — so a phone running many sessions cannot strand the drawer half-expanded, and the closed chip never sits white over a rail the host has already emptied.
  • Narrow settings tabs — below 700px the settings dialog's side navigation becomes a row of horizontally scrollable tabs.
  • Full-width model menu — below 700px the composer's model menu re-anchors to exactly the phone width (12px margins) instead of landing past the screen edge, while the host keeps owning the vertical placement above the trigger.
  • Scrollable question card — below 1024px a pending question can no longer bury its own choices: the question is capped into its own scroll region, so a long question scrolls in place while the option list below keeps whatever room is left and the options, the submit row and the minimize/close buttons stay on screen and reachable. A short question is untouched, and the card still hugs its content.
  • Details-overlay settle — the fullscreen tool-details overlay whose close control is inert in the current host is not rendered on narrow screens, so it cannot trap the chat.
  • Storm-safe reactivity — the drawer/menu observers and the settings poller react to a burst of streaming messages at a capped rate and back off while the host is unreachable, a rail remount during a reconnect keeps the drawer state instead of flapping it, and drawer close taps retry through a remount instead of landing on a stale toggle: many sessions streaming at once no longer freeze input or twitch the sidebar into unclickability, whether it is open or closed.
  • Subagent-catalog guard — the host serves the subagent catalog by enumerating the whole session corpus per request (~1s on a long history), and its client asks on every selection, chip hover, and membership event. The plugin wraps that refresh: a parent with no children in the live session list is never asked, a parent is re-asked at most once per 2.5s, and refresh starts are spaced apart — a subagent fan-out no longer starves the host with full-corpus scans.
  • Click-to-open lineage chips — on desktop the subagent chips ("N subagents" and the subagent title switcher) open on hover only in the current host; a click does nothing. The plugin translates a click on a chip into the hover event pair the host already understands, so clicking toggles the tree open/closed (ancestor crumbs keep their navigate-on-click).
  • Narrow-header collector — below 1024px the session header's chips (lineage, jobs, preset) are wider than the phone and hover-only. They fold into one pill (≡ title · N agents · M jobs); tapping it opens a full-width sheet with the session lineage (each ancestor tappable, each with its descendant count), the subagent tree rooted at the family root — rows render from the live session list, branches fetch their catalog on demand through the guarded refresh — and this session's background jobs. On desktop nothing changes.
  • Session-list render throttle — the host pushes a whole-value projection frame for every projection change of every attached session, and a running subagent's timing view changes on every committed event, so a busy background fleet streams 50-150 frames/s into the page. Each frame used to re-render the whole session list (one rebuild walks every summary plus an O(n²) cache sweep — measured as most of the main-thread time, freezing the page until reload). The plugin coalesces those re-renders onto an adaptive trailing interval while the values keep flowing into the per-session stores unchanged, so background streaming no longer freezes the page — on any session, new or old.
  • Self-update — the client bundle is served immutable per revision, so a phone tab can keep running an older build for days. The page compares the revision it booted with against the one the server publishes now and reloads itself once the page has been idle (never while a draft is being typed), or offers a tappable banner.
  • Per-feature toggles — the plugin installs a dsh-mobile-upgrade section in Settings → Plugins with a switch per feature.

Screenshots

The floating chip and the session drawer (annotated):

Floating chipSession drawer

Install

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

Restart dsh web, then open the web profile on your phone: the restart row sits in Settings → General and the feature toggles in Settings → Plugins → dsh-mobile-upgrade. Attachments come from the host's own composer attachment system.

Requires dsh 0.1.5-rc.1 or newer (the host's built-in attachment system replaced this plugin's upload feature).

Configuration

The plugin's settings card takes:

KeyDefaultMeaning
restartEnabledtrueOffer the restart row and its route

Feature toggles

Every feature above can be switched in Settings → Plugins → dsh-mobile-upgrade (effective on the next page load), or overridden per device with a localStorage key — mfx-restart, mfx-settle, mfx-drawer, mfx-settings, mfx-modality, mfx-menus, mfx-net, mfx-questions, mfx-selfupdate, mfx-agents, mfx-header, mfx-listthrottle — where the value "0" turns a feature off.

Limitations

  • The client hooks specific host UI elements by their hashed CSS class names (menu, drawer toggle, provider editor, session-header chips). A host build that renames them degrades individual features until this plugin catches up; everything else keeps working. The question card's question region is found through the card's own data-question-key hook instead, so a host rebuild that merely rehashes its CSS modules keeps it working.
  • The header collector and the lineage click shim ride the host's own data (the live session list and its subagent catalogs); they add no requests beyond the guarded branch fetches, and a tap on a row whose mode is still loading completes on its own once that catalog lands.
  • Input-modality switches can only patch provider routes you have customised yourself; catalog-only routes are read-only by design, because fabricating a catalog section collapses the model directory.

Security notes

The plugin's HTTP routes (restart, settings editing) perform no authentication of their own — they trust the dsh web surface they are loaded into. Put the deployment behind whatever gate protects the rest of the UI (reverse-proxy auth, loopback binding) before exposing it beyond localhost.

Community Links

  • Linux.Do — A community for sharing and discussing technology.

License

Distributed under the Synthetic Source License (SySL), Version 1.0.

NOTICE: This software includes code generated by artificial intelligence. See the LICENSE file for the Synthetic Source License terms, including model disclosure requirements.

相关插件

继续浏览 ui-customization 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profile用于 Agent Teams Remote 和 UI 插件的实验性 Web 配置层Client Ui Task Board@linxin666/dsh-client-ui-task-board面向 DSH Web GUI 的主机权威任务面板,支持实际会话执行、主机 cron 调度以及可选的跨平台空闲睡眠保护;以挂载方式提供,无需修改 DSH 源代码。Pet@linxin666/dsh-pet适用于 dsh Web GUI 的多宠物伴侣插件:由注册表驱动的浮动宠物,可响应模型活动,支持为每只宠物命名、抚摸/喂食互动以及亲密度评分