Repository navigation
Releases: Steveandkrepa/DSHMobile
Release list
DSHMobile v1.0.1
DSHMobile v1.0.1 — 修四个实际使用问题 + 液态玻璃 UI
未签名 IPA,用 SideStore 免费 Apple ID 重签安装(iOS 17+,iPhone / iPad 通用)。
本次修复 v1.0.0 的实际问题,建议升级安装。
修复
-
刷新网页后局域网显示「设备未配对」
网页认证入口/pair-app的首帧脚本会把地址栏改写成/,而局域网来源的/由服务器配对页接管
(只有回环地址才交给 Web 控制台),明文 HTTP 的局域网又不是安全上下文、没有 service worker 兜底。
于是「刷新网页」实际请求了配对页。现在原生记住认证入口:下拉刷新 / 抽屉 / 设置菜单都会重新加载
/pair-app(并重新探测局域网/公网、重注入设备 cookie),加载完成后自动回到刷新前的会话。 -
任务清单(Todo)与排队消息不再被挡住
网页输入区是一条 slot 链:任务清单、排队消息、输入框是同级节点。原实现把整个输入区隐藏了,
于是任务清单也一起消失。现在只隐藏「确实包含官方输入框的那一层」,任务清单与排队消息始终可见。 -
网页提问卡 / 权限确认可以正常回答
网页提问与审批会「接管」整个输入区(此时 DOM 里没有输入框)。新增回传通道:
一旦网页接管,原生输入条自动让位,提问卡与权限确认完整可见,可直接点选或输入答案。 -
删掉网页里注入的「App 设置」按钮
原生入口统一在顶栏齿轮与会话抽屉;同时移除功能重复的 Web 控制面板。 -
加载失败页的「重试」原来点了没反应(只重算 URL,宿主不变时不触发新加载),已修。
新增
- 液态玻璃 UI:光斑背景 + 半透明模糊材质 + 高光描边 + 投影,顶栏与输入条变成悬浮玻璃岛;
不依赖 iOS 26 的glassEffect,iOS 17 同样呈现。 - 生成中可选「排队」或「马上插话」:输入条上方胶囊决定这条消息是
queue(不打断当前生成)
还是steer(立刻插话改方向),发送键图标同步变化。
界面与用法(完整说明见仓库 README)
| 区域 | 谁在渲染 | 内容 |
|---|---|---|
| 顶部玻璃栏 | 原生 | 会话抽屉 · 标题 · 运行中 · 模式 · 模型 · 权限 · 新建会话 · 设置 |
| 中间对话流 | 官方 DSH Web | 消息 / 思考 / 工具调用 / 任务清单 / 提问卡 / 权限确认(与网页端一致) |
| 底部玻璃输入条 | 原生 | 文本 · 语音 · 文件 · 照片 · 斜杠命令 · 排队/插话 · 停止 |
- 顶栏
sparkles/cpu/checkmark.shield分别切模式、模型、会话权限;square.and.pencil新建会话;
齿轮里有 App 设置与「重新加载网页」。 - 输入条
terminal是斜杠命令面板(与网页同源),paperclip/photo/mic是文件、照片、语音。 - 会话抽屉:按工作区分组,运行中置顶,可设特别关注、重命名、新建会话。
连接与系统能力
- 配对:扫码 / 手动粘贴令牌,配对令牌永久有效;同一 WiFi 走局域网直连,否则走公网中转。
- 灵动岛 / 实时活动:真实上下文占用、token 消耗、当前步骤。
- 本地通知:完成 / 失败 / 提问;会话级「特别关注 / 静音」;点通知直接在网页里打开对应会话。
- 网页自愈:渲染进程被回收或崩溃时自动重载(连续 3 次才报错),随时可「重新加载网页」。
安装
- 下载下方
DSHMobile-unsigned.ipa - 用 AirDrop / 文件 App 打开 → 选择 SideStore → 签名安装(免费 Apple ID 证书 7 天过期需重签)
- 首次启动按 App 内提示配对(可扫 DSH 主机上的配对链接二维码)
DSHMobile v1.0 — 网页承载对话流 + 原生按键(完全可用版)
DSHMobile v1.0 — DSH 的 iOS 客户端(网页承载对话流 + 原生按键)
未签名 IPA,用 SideStore 免费 Apple ID 重签安装(iOS 17+,iPhone / iPad 通用)。
主界面
对话流(会话列表、消息、思考过程、工具调用、流式输出)由嵌入式官方 DSH Web 控制台渲染,
与网页端同一份状态,不会出现「App 里多出网页没有的会话」或重复历史;按键与输入全部原生:
- 原生顶栏:会话抽屉 · 会话标题 · 运行中指示 · 模式(Agent 预设)/ 模型 / 会话权限 / 新建会话 / 设置
- 原生会话抽屉:窄屏下官方侧栏收成 56px 轨道且行会被虚拟化,手机上很难点;
抽屉用官方 RPC 渲染原生列表(运行中置顶、按工作区分组、相对时间、特别关注、重命名),
点一下即在网页里打开对应会话 - 原生输入条:文本 · 语音(SFSpeechRecognizer)· 添加文件 · 添加照片 · 命令面板
(commands/list+commands/execute,与网页斜杠命令同源)· 发送(生成中自动转为
steer 插话)· 停止生成;失败自动回填,不丢内容
输入框永久不变式
网页输入条只在原生输入条确实在屏幕上时才隐藏 —— 同一段 JS 的同一次判定同时决定
「原生条显示」与「网页条隐藏」,因此桥接任何一环失败都只会退回网页输入条,
不会出现「一个输入框都没有」。
连接与系统能力
- 配对连接:扫码 / 手动,配对令牌永久有效;同一 WiFi 走局域网直连,否则走公网中转
- 权限:经 DSH 官方
/remote镜像通道,与浏览器同权访问全部 RPC - 灵动岛 / 实时活动:真实上下文占用、token 消耗、当前步骤
- 本地通知:完成 / 失败 / 提问;会话级「特别关注 / 静音」;点通知直接在网页里打开对应会话
- 稳定性:网页白屏或渲染进程被回收时自动重载(连续 3 次才报错),随时可「重新加载网页」
- Widget 扩展、完整的原生会话列表 / 聊天界面保留在源码中作为备用实现
安装与校验
- 文件:
DSHMobile-unsigned.ipa - SHA-256:
bb0d1a6e7825416c94e9bca9c1829f69742d39b619a6c3db07b9f1936821208a - Bundle ID:
com.yuanjunhao.dshmobile(Widget:com.yuanjunhao.dshmobile.widgets) - 最低系统:iOS 17.0;版本:1.0 (1)
- 构建:GitHub Actions(macOS runner + Xcode),流水线
build-ipa.yml,提交9455b88
安装步骤
- 下载本页
DSHMobile-unsigned.ipa - 用 SideStore / AltStore 以免费 Apple ID 重签并安装
- 首次启动扫码配对(或手动填地址 + 令牌),即可使用