返回插件市场

dsh-client-ui-responsive

界面与体验

kelai141/dsh-client-ui-responsive

为 DeepSeek Harness Web UI 提供移动端响应式 AppFrame,派生自 dsh-client-ui-layout。在 <640px 屏幕下新增抽屉侧栏、底部 sheet 与安全区,同时保持宽屏/窄屏行为与上游一致。

  • dsh-plugin
  • mobile-ui
  • react
GitHub Stars
4GitHub
浏览量
5DSH Plugin Hub
Forks
0GitHub
开放问题
0GitHub Issues
Manifest 版本
0.1.9@dsh-android/dsh-client-ui-responsive
最近推送
2026年10月9日GitHub
许可证
MITTypeScript
插件类型
Client运行于 Web Client

验证与兼容性

这里展示目录实际采集到的证据;未声明的信息会明确标为未知。

静态检查通过
01精确来源: github · @dsh-android/dsh-client-ui-responsive@0.1.902验证时间: 2026年8月24日03验证版本: 0.1.0-rc.7
当前版本兼容性
已在当前目录版本验证
声明的 Harness 范围
未声明
声明的平台
未声明
适用 Profile
web
构建授权
未知
权限声明
未声明
外部服务
未声明
遥测声明
未知
未发现已知风险标记

这不是安全背书;安装前仍应查看源码、权限和配置。

查看证据与判定范围

验证仅覆盖标出的来源、版本和 Harness 环境,不代表未来版本仍然兼容。

  • github:kelai141/dsh-client-ui-responsive#9e04245e96ba52c6a7660141c3cbe33ea161d7b0
  • 插件通过清单与静态结构检查,尚未完成运行时加载检查。

README

查看源文件

dsh-client-ui-responsive

中文说明

dsh-mobile 生态 · dsh-mobile-apk(壳 APK)· dsh-shell-termux(shell)· dsh-host-web-compat(浏览器兼容)· dsh-mobile(协调仓库,private)

Android mobile adaptation layer for the DeepSeek Harness web UI.

0.2.0 de-forked the plugin. Up to 0.1.14 it replaced the upstream ui-layout frame with a mobile fork of its own. Upstream 0.1.5 turned ui-layout into the layout service hub (ctx.layout, the keyed main panel seat, the right column's track/fullscreen reporting) that ui-conversation, ui-sidebar and ui-sidebar-right all compose against — reproducing that surface meant re-forking it every release. The plugin now keeps upstream's frame and adds only what a phone needs.

What it does

AreaContribution
Phone form (<768px)CSS over the upstream frame: the left sidebar becomes an off-canvas drawer, the centre column spans the frame, the right Sidebar keeps upstream's own fullscreen slide-over (same 768px threshold), touch drag handles step aside
Drawer entryshell.overlay top bar with one toggle (the rail sits off-canvas on a phone, and no control is added to the composer row)
Native "open with"Session-header action (opens the workspace directory) and an extension-band tab type for archives/binaries — both raise the shell's chooser (MT Manager, system files)
ComposerInsets (system bars + IME), narrow-screen control-row cap, popup width/height/shift guard, mobile Enter guard, and an upward paperclip source menu. The menu reuses the existing hidden multiple-file input: “Upload attachment” temporarily selects */*; “Upload image” selects image/*; both preserve that filter through WebView's synchronous input-focus event, restore it when SAF settles, and use the upstream draft/upload flow.
Browser and scopeThe Files sidebar registers a native BrowserHost workbench beside workspace files. The Developer-options card 「屏幕与 Shizuku 控制」 owns the virtual-only / real-only / all screen-access selector; model tools cannot write it.
External open/shareThe consumer opens a blank temporary Session, claims opaque incoming metadata only after its Session scope exists, and adds one unsent generic file attachment through the upstream composer/upload path. It never creates an @path message and does not restore the draft after restart.
Shell surfacesDeveloper options section, Android general settings rows, export-result dialog, theme bridge, keyboard boundary
Retired with 0.1.5The frame fork, the duplicated theme presenter, the injected 「上传图片」/「导出调试日志」 menu items, the image-pick bridge, and the CSS that hid upstream's own attachment buttons

Install and mount

1. Package into the web profile's node_modules (see dsh-shell-termux for the pattern).

2. Insert in the profile's cordis.patch.yml — ui-layout stays ENABLED:

- insert:
    - id: ui-responsive
      name: '@dsh-android/dsh-client-ui-responsive'
- id: open-in-app
  disabled: true
- id: ui-open-in-app
  disabled: true

3. Restart and verify the browser roster (window.__DSH_BOOT__ entries contain both ui-layout and @dsh-android/dsh-client-ui-responsive).

Contract anchors

The narrow form keys on DOM facts, never on CSS-Module class names, and the facts themselves are published by this plugin:

FactWritten byConsumed by
html[data-dsh-mobile-form]mobile/form-marker.ts (mirrors (max-width: 767px))every injected stylesheet
[data-dsh-frame]same (tagged from upstream's [data-rightbar-col])mobile-form.css.ts, keyboard boundary
html[data-dsh-modal-open], [data-dsh-settings-dialog]samesettings-panel reflow
[data-dsh-mobile-topbar]mobile/MobileChrome.tsxcomposer popup guard

Upstream attributes the sheet relies on: data-sidebar-collapsed, data-rightbar-col, data-rightbar-panel="fullscreen", data-sidebar-right-toggle, data-conversation-header-corner.

Build

npm install          # @deepseek-ai/* pinned to 0.1.5-rc.1
npm run typecheck
npm run build        # tsc (lib/types) + tsdown (lib/client.js browser bundle)
npx vitest run

The browser bundle uses the __ModuleLoader__.load contract; rebuild before probing a live server (the registry serves lib/client.js, not sources).

License

MIT. Derived from @deepseek-ai/dsh-client-ui-layout (MIT, © 2026 DeepSeek) — see NOTICE. Design rationale: docs/design.md.

评论

0
最新优先