Back to home

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 自动生效)

banner

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

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

banner

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

3. 文件浏览器(「文件」页签,与对话/轨迹并列)

banner

  • 在 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