← Back to home@crwsr124

dsh-mobile-layout

DeepSeek Harness Web 移动端体验套件:手机端阅读布局 + 极光玻璃换肤(文字对比度自动适配)+ 文件浏览器页签 + abort 自愈。零依赖,一个插件让 dsh web 在手机上好看好用。

Stars
0
Language
JavaScript
Created
Aug 16, 2026
Updated
Sep 17, 2026

Introduction

dsh-mobile-layout

DeepSeek Harness Web UI 移动端体验套件:让 dsh web 在手机上好看、好用。 零依赖,装上即用;关闭皮肤即完全还原 stock 外观。

0.9.1 起适配 dsh 0.1.5:文件浏览已由 0.1.5 内置能力(右侧边栏「文件」 标签 + 文档预览)接管,本插件不再自带文件浏览器。下载与上传能力保留, 以「下载到设备」/「上传」按钮挂接到内置文件面板上:文件行下载、目录行 上传到该目录、工具栏上传到工作区 upload/。同时修复手机视口下内置面板 在玻璃/半透明皮肤下的透明问题。

功能一览

1. 移动端阅读布局(<1024px 自动生效)

banner

  • 侧栏抽屉化:无常驻窄栏,会话区占满全宽;顶栏左上角鲸鱼按钮开合会话抽屉
  • 字体密度:正文 / 标题 / 代码适度收缩,一屏容纳更多内容
  • 表格:自然宽度 + 横向触摸滚动;长词、链接自动换行不再溢出
  • 输入框:上滑阅读、切换已有会话或刷新恢复已有会话时默认收起(不会唤起手机输入法),点击消息文字即可显示并聚焦;空白新会话保持可见,桌面端不受影响
  • 设置面板:导航横排适配手机宽度;模型编辑等长表单在内容区独立触摸滚动,底部操作不会被截断

2. 换肤(侧边栏「主题与背景」按钮)

banner

  • 模式:无 / 玻璃 / 半透明,表面不透明度滑杆 0–100%
  • 极光背景:四套预设——蓝紫 / 暖阳 / 青绿(浅色底)+ 单色·墨(深色底), 彩色光斑缓慢漂移 + 电影颗粒质感
  • 自定义背景:图片 URL 或手机相册选图
  • 文字对比度自动适配:按背景明暗自动切换应用的深/浅文字主题,文字始终清晰
  • 透明化:用户气泡、代码块、滚动条滑杆随表面同源半透明,文字保持不透明
  • 0.1.5 右侧边栏覆盖:玻璃/半透明模式同样覆盖新右栏列(_rightbarCol), 内置文件面板保持磨砂可读,不会透出底层内容

3. 内置文件面板「下载到设备」挂接(0.9.0 新形态)

  • 0.1.5 内置的右侧边栏「文件」标签负责浏览,点击文件由内置文档预览打开; 本插件用 MutationObserver 给文件树的文件行与文档预览头注入一个 下载按钮(data-dml-* 标记,样式与面板自带工具按钮一致),点击即把该 工作区文件真实下载到设备(XHR 进度显示在按钮上)
  • 下载走本插件保留的流式端点 GET /mobile-files/download,不受预览大小 上限影响,可下任意大小的二进制
  • 路径直接取自内置面板 DOM(data-files-path / data-textpreview-path), 不复活任何浏览 UI;sessionId 取当前会话,Host 在服务端重新解析工作区 根并拒绝越界路径——会话失效只会得到可见报错,绝不会下错文件
  • 上传能力保留(0.9.1 恢复):工具栏「上传」按钮维持原语义——进 <workspace>/upload(自动创建,不污染根目录);每个目录行另有「上传到 此目录」按钮(dir=<该目录>),与下载按钮同款式。仍走本插件端点 POST /mobile-files/upload:名字强制单段、dir 必须 realpath 落在工作区内、 重名自动 (n) 不覆盖、默认 500 MB 上限

4. 稳定性增强

  • 历史加载 abort 错误自动重试愈合(全端生效)
  • 移动端从阅读态新建空白会话时强制恢复输入区,避免 body 级收起状态跨会话残留而只剩背景

安装

dsh plugin --profile <name> add github:crwsr124/dsh-mobile-layout
# 或本地源码: dsh plugin --profile <name> add file:<本目录绝对路径>

首次安装后重启一次 dsh web 进程(host 半的下载路由是冷路径;改 host 半 代码后同样需要重启)。client 半(布局/皮肤/下载按钮)随新页面热生效。

下载无需配置目录:根目录自动取当前会话所属的已注册工作区,无任何可选配置项。

Host 根据 sessionId 从服务端 Workspace 注册表解析 canonical path;浏览器传入的绝对路径只能位于该根内(含符号链接逃逸拒绝)。

作用范围

  • 仅移动端(媒体查询门控):阅读布局、输入框滚动收起、Session log 隐藏、 设置面板移动端布局
  • 跨端功能(有意为之):换肤、内置文件面板下载/上传挂接、abort 自愈
  • 皮肤关闭 / 卸载插件 = 完全还原 stock 外观

已知限制

  • 会话轨迹(details)列在手机上无法打开(app shell 框架限制,CSS 无法干预)
  • 下载/上传路由无内置认证——公网部署务必保持 nginx basic auth 等外部防护
  • 0.8.x 的 /mobile-files/list|read 已从代码移除(/download 保留、 /upload 于 0.9.1 恢复);已运行的 dsh web 进程在重启前仍会挂载旧版 四动作路由面(冷路径),属预期过渡态
  • 老内核浏览器:无毛玻璃模糊(透明与背景仍生效,面板内有支持诊断)

开发与设计细节

实现原理、兼容性处理、选择器约定与版本历史见 docs/DESIGN.md。

License

MIT