Repository navigation
Releases: just-a-FA-for-name/DSHgo
Release list
DSHgo V1.3 · 针对 #5/#6 的连接恢复与 WebView 兼容性修复
DSHgo V1.3 · 连接恢复与 WebView 兼容性修复
大家反馈的问题我都有在看,没有装死。 这次针对 issue #5:页面一直加载、issue #6:连接失败,结合实际诊断日志做了集中修复。感谢提供日志和复现信息的朋友。
本次修复
- 复杂网络下反复断连、恢复过程被打断:只在实际承载网络、DNS 或验证状态变化时处理网络切换,避免后台蜂窝网络回调误触发重连;健康连接不再被简单网络提示强制打断,同一故障周期减少重复恢复事件。
- #5 页面卡在加载、脚本与插件无法正常启动:电脑桥接不再默认强加 COOP/COEP,保留上游策略;提前补齐缺失的 Promise.withResolvers / AbortSignal.any,手机使用真实 WebView UA,增加脚本、插件资源和页面启动阶段的诊断分类。
- #6 部分设备和内网地址连接失败:隧道 socket 绑定改用公开 Android API,替代隐藏字段反射;允许显式配置的 tailnet、私有局域网 HTTP 地址,并检查地址范围。公网地址仍要求 HTTPS,不自动降级,不绕过 HTTPS 证书或 SNI 校验。
- 电脑插件启动与重试:自动查找桌面版自带的 dsh CLI,减少 PATH 不完整造成的启动失败;Tailscale Serve 失败采用退避,避免反复等待同一请求。
- 连接状态误报:认证失败、限流和服务器错误独立显示,HTTP 业务错误不再直接视为断网。
- 诊断更准确:正确说明内置隧道,删除误导性的独立 Tailscale 安装提示及不存在的脚本提示;增加实际 MagicDNS 配置、socket 绑定、实际网络变更和页面资源失败信号。
两端都要升级
- 手机覆盖安装 DSHgo-v1.3.apk,同签名升级保留原有数据和设置。
- 电脑下载 DSHgo-pc-plugin-v1.3.zip 并完整解压,进入
pc-plugin,运行install.bat更新现有插件。 - 等电脑任务结束后,退出并重新打开 dsh 桌面版。
这是现有 dsh-phone-remote 的升级,无须另装一套远程工具或重装 Tailscale。只更新 APK,无法获得电脑桥接里的页面启动兼容修复与插件重试策略。
测试情况与后续反馈
39 项隔离回归通过。一加 Android 16 / WebView 156 上验证了实际 socket 绑定、压缩页面及同步/模块脚本加载、GET 连接 reset 后恢复、POST 到达隔离上游后断开不由应用/桥接重复提交,以及 WebSocket 握手。正常网络前台观察 138 秒没有新增异常或重连状态。
#5/#6 已做针对性修复,但报告者的 WebView 150、Android 13 / WebView 116 和真实复杂运营商 5G 环境仍待复测。 目前不声称已确认所有故障的唯一根因,也不将发布版本等同于所有机型均已解决。详细测试范围见 V1.3 验收记录。
仍有问题请在设置 → 故障排查 → 导出诊断包,附上出现问题的时间、手机系统/WebView 版本及网络情况。无需 root;日志只保存有界数字状态分类,不记录聊天、连接地址、Cookie 或 Token,不自动上传。
V1.2 已有的文件分块续传、应用专用隧道、可切换大肥鱼主题及开屏动画继续保留。
DSHgo V1.2 · 连接稳定性与弱网修复、文件续传、诊断日志和大肥鱼主题
DSHgo V1.2
这次集中修复了很多连接、弱网恢复和文件上传问题,也补上了免 root 诊断日志,并重新整理手机竖屏触控界面。
升级时请同时更新手机 APK 和电脑端插件。 手机安装 DSHgo-v1.2.apk;电脑下载并解压 DSHgo-pc-plugin-v1.2.zip,进入 pc-plugin 双击 install.bat,完成后重启 dsh 桌面版。
修复了什么
- 5G / relay 下卡在“正在载入”:针对 issue #4,向 Android 显式下发 MagicDNS,修复隧道通了但
.ts.net域名无法解析的问题;保留正确域名、SNI 和证书校验。 - 隧道影响其他软件:改为 DSHgo 应用专用 VPN,其他 App 继续走自己的网络。
- 频繁断连、网络切换后恢复不正常:改进物理网络选择、上游 DNS 更新和连接恢复,避免正常恢复过程反复整页重载。
- 弱网下功能未挂载、白屏或看起来像“退回旧版本”:禁用工作台 HTML/API 的陈旧缓存,提前安装传输和手机适配,修复慢速加载时的重载干扰,并识别 Chromium 内部错误页。
- “显示已连接”但实际发不出去:下行 WebSocket 心跳不再掩盖 HTTP 上行失败,连接提示更接近实际状态。
- 文件上传断一次就卡住:新增自适应分块与网络中断续传,修复创建/分块确认丢失、半截 TCP 一直占用上传通道等问题。
- 桥接和实时连接问题:修复端口发现竞争、错误端口猜测、WebSocket Host/Origin 不一致、流式转发和缓存等问题;发送命令不会因网络重试被重复执行。
新增了什么
- 文件分块续传:分块从 128 KiB 开始,按网络自适应调整到 32 KiB–1 MiB,进度以已确认字节计算;电脑暂存采用流式落盘。
- 免 root 诊断日志:设置 → 故障排查 → 导出诊断包。插卡手机出现问题后,可以直接导出 ZIP,并说明时间和复现操作。支持关闭与清除,不自动上传,不记录聊天、文件名、IP、域名、Cookie 或 Token。
- 可切换的大肥鱼主题:顶部连接状态徽章、侧栏、输入卡片、连接/错误插画统一适配,原有主题保留;切主题不再销毁当前网页和草稿。
- 手机触控优化:继续以手机竖屏使用为主,扩大顶栏点按区域、设置开关支持整行点按,刷新前提示草稿和上传风险。
- 开屏动画调整:保留较慢的从右往左拉出;作者头像、哔哩哔哩和 FA 2517 同组同步出现,换用浅蓝渐变背景。
为什么电脑插件也要更新?怎么更新?
这里的插件是现有 dsh-phone-remote 的 V1.2 升级版,不是再装一套远程软件。它是手机与电脑工作台之间的桥接,负责登录转接、页面/实时连接转发,以及这次新增的电脑端分块暂存、续传和上传回执。
只更新 APK,手机端的 MagicDNS 和专用 VPN 修复会生效,但旧插件没有 V1.2 的续传接口及桥接修复,无法获得完整的新上传能力。大文件上传、弱网恢复请两端一起更新。
- 电脑保持原有 Tailscale 安装和账号,无须重装 Tailscale。
- 下载
DSHgo-pc-plugin-v1.2.zip,完整解压。 - 打开解压出的
pc-plugin文件夹,双击install.bat。它会更新已有插件并注册到 dsh 的 profile;重复运行不会嵌套安装bridge/bridge。 - 退出并重新打开 dsh 桌面版,让桥接加载新版本。
- 手机覆盖安装
DSHgo-v1.2.apk,再打开 DSHgo 连接。
默认不需要手改代码、重新配对或开放公网端口。若你原本使用自定义 Tailscale serve / 插件配置,请保留并检查自己的配置。
验证与已知限制
- 34 项连接、上传与真 Chromium 手机适配回归通过;最终非调试 APK 已在 SM-F7310 覆盖安装并启动,免 root 的系统保存 ZIP 流程也实际验证过。
- 测试涵盖随机丢包、抖动、乱序、限速、随机断连、外层中继连接重置和黑洞。约 32 MiB 文件在恢复正常网络后完成上传,草稿和当前页面保留。
- 极端 45% 丢包、64 kbit/s 阶段会停滞;不承诺这种条件下仍能流畅使用。真实运营商 5G、不同设备后台策略仍请继续反馈。
- 网络中断可续传;App/WebView 被杀、电脑桥接重启或登录身份改变后,需要重新选择文件。
- 分块适配当前 DSH 文件 Worker 的 Blob 协议;图片保留原有图片协议,本次验证了合成 PNG。不能据此宣称所有图片格式均已解决。
- 单文件协议上限 2 GiB,本次真机最大实测约 32 MiB,2 GiB 仍未压力验证。
更多测试范围见 V1.2 验收记录。大肥鱼图片署名与独立许可见 素材许可。
反馈时请附版本、复现时间、网络类型与导出的诊断 ZIP;请勿在公开 Issue 上传个人凭据或聊天内容。
DSHgo V1.1
V1.1 — 2026-10-22
V1.1 连接恢复紧急修复
- 补回已经打开工作台之后的自动重连,网络恢复时重新启动工作台连接,不依赖整页刷新。
- 修复恢复后仍显示「连接异常」:不再根据残留错误提示或聊天文字判断网络,
改为连通性探测和实际 API / 实时流响应共同确认恢复。 - 修复隧道短暂断开后,原生界面误走首次加载分支、可能刷新当前页面的问题。
- 重连保留当前草稿和附件,不重放发送消息或上传请求;遵守自动重连开关并限制重试频率。
- 旧探测超时不会覆盖较新的成功状态。仅网页可访问、实时会话尚未恢复时,继续显示恢复中。
- 对外版本仍为 V1.1,Android 内部版本代码更新为 3,可直接覆盖安装。
新增
- 手机对话文件上传:从输入区「+ → 文件」打开 Android 系统文件选择器,按网页要求支持单选或多选。文件先添加到草稿,仍由用户确认发送。
- 窄屏抽屉式侧边栏:默认收起,通过顶栏左侧菜单图标展开;点遮罩、选会话或按返回键后收起。设置开关即时生效。
- 手机布局适配:侧边栏展开时覆盖在对话之上,不再挤压对话宽度;右侧预览区、弹窗和顶栏按钮适配窄屏。
优化
- 流畅度:不再在每次流式输出时遍历整页弹窗和所有子元素;改为按帧合并更新、处理新增节点,并在页面隐藏时暂停额外适配工作。
- 启动体验:工作台就绪后尽快进入页面,不再强制等待 6.5 秒启动动画。
- 交互:保留正文选择复制,限制会话切换引起的自动键盘弹出;顶栏图标补充无障碍描述。
- 串流:SSE / NDJSON 逐块转发,其他文本按需流式 gzip,减少首包等待及完整响应缓冲。
- 弱网恢复:页面加载失败采用带随机抖动的退避重试;遵守自动重连开关,手动重连无需等待。
修复
- 修复侧边栏收起后对话区域落入零宽度网格列、出现白屏的问题。
- 修复旧网络断开事件清空仍可用的新网络,以及资源转发目标切换后仍连接旧电脑的问题。
- 修复重复轮询、已销毁界面遗留网络监听,以及 WebSocket / HTTP 断开后的连接清理问题。
- 修复写入请求在断线时被自动重放的风险;仅对只读请求进行网络失败重试,取消请求不重试。
- 不再根据聊天正文里的「请重试」等文字自动点击按钮或刷新页面,也不再把旧 API 缓存冒充成功响应。
- 允许 App 的本机回环 HTTP / WebSocket 转发,避免 Android 拦截本机 inspector 通道;其他明文目标仍禁用。
- 修复电脑插件重复安装时生成
lib/lib、bridge/bridge,导致更新文件没有替换到运行位置的问题。
已知问题
- 三星 SM-F7310 测试机仍可能提示「文件资源服务不可用」,无法预览读取的图片。另一台主力机正常;本版暂不修复此设备兼容问题。
- 真实运营商网络切换和长期后台运行仍需持续观察,不代表所有设备与网络环境均已完成验收。
升级方式
- 手机覆盖安装
DSHgo-v1.1.apk,无需卸载,保留登录和设置。 - 电脑更新插件文件,重新运行
pc-plugin/install.bat并重启 dsh。 - Android 版本名
1.1,当前版本代码3;电脑插件版本1.1.0。
DSHgo v1.0
首个正式版本
- 手机端 DSHRemote.apk(内置 Tailscale,arm64 + armv7)
- PC 端见仓库 pc-plugin/(install.bat 一键安装)
- 使用说明:docs/使用说明.md
有问题 B 站视频下方交流 @Fa2517