packages/dsh-remote-web-ui
zhu1090093659/dsh-web手机/PC 远程操控 dsh web 工作区:扫码配对、令牌门控通道、SSE 实时同步,提供移动端与完整桌面 GUI 两种远程形态。
DSH Web 界面的移动端外壳:抽屉式侧栏、可拖拽悬浮按钮、移动端输入框修复,以及悬浮在输入框上方的图片上传按钮(原生相册/拍照,走加图校验管线),桌面端零影响。已发布到 npm(dsh-webui-mobile)。
让 DeepSeek Harness 的 Web 界面在手机 / 窄屏(视口宽度 ≤ 1023px)下像原生 App 一样好用,桌面端完全不受影响。
@media (max-width:1023px) + 移动端作用域(html.dsh-mobile-shell)内,桌面端零变化全宽聊天流 + 悬浮可拖动的「小鲸鱼」菜单按钮(点击/下拉打开侧边栏)、模型/访问模式选择、完整输入栏。
输入栏右上角的小方图片按钮,直接从相册/拍照上传图片;图片以竖排悬浮在输入框上方,不挤占输入框。
抽屉固定 302px 宽度(不再随工作区加载而跳动),带一层半透明遮罩,可触摸滑动关闭。
顶部为横向标签导航条(重置原位 + 右上角关闭 X),内容单列:
设置卡片近全宽居中,提供方列表 + 编辑/删除操作在窄屏正常排布。
插件名完整可读(include / typert-registry / session-title-first-prompt-llm …),名字独占一行、状态徽章换行到下方——不再出现 "incl..."、"ses..." 这类截断。
服务器名完整显示(proxy / mailbridge / bilinote / dashscope_asr / playwright),不再被压缩成 "p..."、"b..."。
技能卡片两列排布、名称完整;点击展开时该卡片横跨整行——详情块(YAML/描述)在宽行里可读、限高内部滚动,其余卡片保持紧凑、间距不被撑大。
预设卡片 2×2 排布,四张卡片完全一致(同宽同高):标题横排、徽章换行到第二行、描述统一两行截断。
聊天底部用量条压成两行:第一行灰色小字(轮/步、LLM/工具耗时),第二行加粗高亮「缓存命中 / 输入 token / 输出 token」三项成本指标。
宽视口(≥1024px)完全保持 DSH 原生桌面布局,无任何改动。
插件对移动端内容做的是类名无关的通用处理,而不是针对某个 CSS 类写死:
这些机制与具体插件无关——任何第三方插件以后往设置里注册新的标签页 / 列表 / 卡片,内容一被挤压就会被这套规则接住。
cd ~/.dsh/profiles/web
pnpm add dsh-webui-mobile
然后在 ~/.dsh/profiles/web/package.json 的 dsh.profile.bundles 数组里加入 "dsh-webui-mobile",重启 dsh web 服务。
安装并重启后,用手机打开 DSH 网页即自动生效(视口 ≤1023px),无需其它配置。
?mobileShell=0,或localStorage.setItem('dsh-mobile-shell', '0') 后刷新。MIT License