crwsr124
dsh-mobile-layout
DeepSeek Harness Web 移动端体验套件:手机端阅读布局 + 极光玻璃换肤(文字对比度自动适配)+ 文件浏览器页签 + abort 自愈。零依赖,一个插件让 dsh web 在手机上好看好用。
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 16, 2026
- Updated
- Aug 16, 2026
Introduction
dsh-mobile-layout
DeepSeek Harness Web UI 移动端体验套件:让 dsh web 在手机上好看、好用。 零依赖,装上即用;关闭皮肤即完全还原 stock 外观。
功能一览
1. 移动端阅读布局(<1024px 自动生效)

- 侧栏抽屉化:无常驻窄栏,会话区占满全宽;顶栏左上角鲸鱼按钮开合会话抽屉
- 字体密度:正文 / 标题 / 代码适度收缩,一屏容纳更多内容
- 表格:自然宽度 + 横向触摸滚动;长词、链接自动换行不再溢出
- 输入框:上滑阅读自动收起(释放阅读空间),点击消息文字开关式唤回; 桌面端不受影响
2. 换肤(侧边栏「主题与背景」按钮)

- 模式:无 / 玻璃 / 半透明,表面不透明度滑杆 0–100%
- 极光背景:四套预设——蓝紫 / 暖阳 / 青绿(浅色底)+ 单色·墨(深色底), 彩色光斑缓慢漂移 + 电影颗粒质感
- 自定义背景:图片 URL 或手机相册选图
- 文字对比度自动适配:按背景明暗自动切换应用的深/浅文字主题,文字始终清晰
- 透明化:用户气泡、代码块、滚动条滑杆随表面同源半透明,文字保持不透明
3. 文件浏览器(「文件」页签,与对话/轨迹并列)

- 在 dsh web 内浏览服务器目录:面包屑导航、md / 代码 / 图片 / PDF 预览、 「在新标签页打开」
- 只读 + roots 白名单,默认不开放任何目录(fail-closed)
4. 上传文件(侧边栏「上传文件」按钮)
- 侧边栏底部动作区新增「上传文件」按钮(回形针图标,与主题按钮同款式), 点击选文件(支持多选),逐个上传,状态卡实时显示进度与结果
- 上传到专用目录,不写死也不污染根目录:服务端统一落到上传目录——
uploadDir(如配置)或自动创建的<defaultPath>/upload;目录须在roots白名单内(服务端校验) - 绝不覆盖:文件名强制单段(无路径穿越),同名自动追加
(1)序号, 单个文件默认上限 500 MB(可配uploadMaxBytes),失败自动清理半截文件 - 上传成功后文件页签自动刷新;成功显示落盘完整路径,8 秒自动收起
5. 稳定性增强
- 历史加载 abort 错误自动重试愈合(全端生效)
安装
dsh plugin --profile <name> add github:crwsr124/dsh-mobile-layout
# 或本地源码: dsh plugin --profile <name> add file:<本目录绝对路径>
首次安装后重启一次 dsh web 进程(host 半的文件路由是冷路径;改 host 半 代码后同样需要重启)。
文件浏览 / 上传默认关闭。在自己的 cordis.patch.yml 里覆盖 row config 开放
(不配 config 仅文件页签与上传按钮不可用,其余功能正常):
- id: dsh-mobile-layout
config:
roots:
- /你的/项目目录
- /另一个/目录
defaultPath: /你的/项目目录
uploadDir: /你的/项目目录/workspace # 可选;无目录参数时的回退上传目录
uploadMaxBytes: 524288000 # 可选;缺省 500 MB
上传目录固定由服务端决定:
uploadDir优先,未配置则自动创建<defaultPath>/upload(不会写进根目录),realpath 校验必须在roots白名单内。 反代部署注意:若经 nginx 等网关访问,上传大文件需在网关侧放开client_max_body_size(nginx 默认仅 1 MB,超限返回 HTML 413 页)。
作用范围
- 仅移动端(媒体查询门控):阅读布局、输入框滚动收起、Session log 隐藏、 设置面板移动端布局
- 跨端功能(有意为之):换肤、文件页签、上传文件、abort 自愈
- 皮肤关闭 / 卸载插件 = 完全还原 stock 外观
已知限制
- 会话轨迹(details)列在手机上无法打开(app shell 框架限制,CSS 无法干预)
- 文件浏览按
defaultPath静态配置,不感知当前会话 cwd - 上传路由无内置认证——公网部署务必保持 nginx basic auth 等外部防护(与 文件浏览路由同一威胁模型)
- 老内核浏览器:无毛玻璃模糊(透明与背景仍生效,面板内有支持诊断)
开发与设计细节
实现原理、兼容性处理、选择器约定与版本历史见 docs/DESIGN.md。
License
MIT