# 更新记录 ## 0.2.1-rc.2 · build190 / GitHub正式发布(2026-10-23) - 贡献者直接发布正式版/Latest,不创建PR;沿用2100已验收APK原字节。 - 主页更新虚拟屏、全局确认、新旧包共存、备份与交互说明,保留旧版Release、历史标签及v1.1.10及更早介绍。 - 完整源码与中英文架构/权限/运行指南同步,Release另含固定离线构建输入;Star History更新至1996。 - 精确身份、安装迁移及验证限制见[正式版说明](docs/releases/v0.2.1-rc.2-notes.md) / [English](docs/en/releases/v0.2.1-rc.2-notes.md)。下方条目保留原时点交付范围。 ## 0.2.1-rc.2 · build190 / 插件速度维护2100(2026-10-22) - 插件页使用独立轻量能力查询,来源证明以两个有界worker执行;保留完整校验、实际加载状态和结果顺序。 - 修正新增worker与旧策略补丁重入冲突,补生产Java升级及精确APK检查;2020失败候选不交付。 - PR119已有画中画修复继续保留并补22项实际布局/策略回归;默认仍关闭。 - 44类每版332项、17宿主及APK7通过;手机有效开关反馈到确认约3.10–3.39秒,整页结果波动,详细范围与未修像素缺口见[本轮记录](docs/releases/v0.2.1-rc.2-build190-ui-performance-20261022.md)。仅私有维护交付。 ## 0.2.1-rc.2 · build190 / UI与息屏维护(2026-10-22) - 修复插件配置写锁/HMR反转;合并受控开关后的重复列表读取,列表不再等待未使用的预设诊断,保持实际加载状态与外部变更刷新。 - 会话改为单击切换;消除侧栏背景按压闪屏与插件/预设等待提示挤动布局,旧预设V1升级通过真实补丁链恢复。 - 可见启动同步申请前台保护,等待真实提升,补齐超时、停止、安全恢复及服务损失的精确代次收尾;电池设置入口不再发起缺权限的直接豁免请求。 - `0.2.1-rc.2-20261022.1817-dsh0.2.1-rc.2` / code190 / `dsh.android.client`;两版关联42类各310项零失败/错误/跳过,14项宿主和APK门禁通过,Lint警告248/161保留。保留原失败与逐次修正,最终手机及限制见[本轮报告](docs/releases/v0.2.1-rc.2-build190-ui-performance-20261022.md)和[English](docs/en/releases/v0.2.1-rc.2-build190-ui-performance-20261022.md)。仅私有维护交付,公开发布继续暂停。 ## 0.2.1-rc.2 · build190 / F13(2026-10-21) - 真实目录控制器独立组合,保留后端/Gateway、Config/name与named类行为,不删除工作区、会话或附件。[操作与边界](docs/plugins.md)。 - FileUploads以精确注册对象退休,避免比较Cordis包装后的回调;保留重复拒绝、旧disposer围栏、上传接收和Session回执。[运行机制](docs/runtime-data-plugin-architecture.md)。 - 区分LIVE/UNKNOWN/EXITED;UNKNOWN保留同DOM/Gecko会话与原生状态面板,不授ready。仅同record/代次/实例/URL/端口通过kernel→HTTP→kernel后创建新registration,旧票不复活,不重发对话或后台启动。[启动与恢复](docs/startup-and-diagnostics.md)。 - Standard选定150类/952项JUnit(3跳过),Low选定150类/952项(76跳过),两版零失败/错误;Release Lint零错误、Standard/Low警告249/162,八项实际APK检查通过。原始失败/纠正/预期负控分别保留,不称一次连续全绿;无设备/ADB、真实账号/模型和新长时验收。[F13记录](docs/releases/v0.2.1-rc.2-build190-fix13-20261021.md) · [English](docs/en/releases/v0.2.1-rc.2-build190-fix13-20261021.md)。 下方旧条目的“当前/本轮”按其原时点阅读;已发布F12原记录和URL不改,F11未上传。 ## 0.2.1-rc.2 · build190 / F12(2026-10-21) - 修复插件全依赖同步扫描导致列表与DSH通道阻塞;改为真实bundle筛选、完整异步来源证明、短启停读回及独立刷新,保留事务与未知退出屏障。 - 修复严格恢复既有Web后LAN cookie未发布,以及首次说明响应丢失/Host晚保存/明确revision冲突的处理;未保存不假报成功。 - 保留自动Web端口;说明本机端口复用、origin变化及同WebServer OAuth临时回调路由,不把ADB端口与Web端口混用。 - 补齐分发文档与完整现行英文版。148类/939项每flavor,零失败/错误;Lint零错误,八项实际APK检查通过;无本轮真机/真实账号/新长时验收。见[F12记录](docs/releases/v0.2.1-rc.2-build190-fix12-20261021.md)和[English](docs/en/releases/v0.2.1-rc.2-build190-fix12-20261021.md)。 ## 0.2.1-rc.2 · build190 / F11(2026-10-21,当前私有维护版本) - 当前诊断版本 `0.2.1-rc.2-20261021.1157-dsh0.2.1-rc.2` /190;DSH0.2.1-rc.2、移动UI3.2.1、Ubuntu base10、默认proot/可选proroot及正式包名/E7E3保持。最终软件及精确APK结果见下;附件摘要与远端状态由关联Release及独立外部回执核验。 - 修订LAN后端端口、业务拒绝、回调路径和网络变化连接收尾;适配官方账号授权在内嵌浏览器的异步导航及首次说明Host确认。宿主恢复只识别同一活跃Web,不启动或重放业务;未知证据保留停止屏障及原生工作台。 - 插件按APK受管proof和实际完整内容区分签名、受管、用户/未验证来源;不再凭npm scope、前缀或安装目录漏备用户包。普通失败临时候选与UNKNOWN保留现场分开说明。 - 补齐21篇实际新Markdown和具体操作/权限/失败文档;源码分发清单2135成员/135MD,Java adoption1023。完整源码ZIP继续直接展开固定输入;最终冻结范围以回执为准。 - 本轮暂停设备、ADB、真实账号/模型对话和四/八小时验收;Star快照1827属于原仓库。详见[F11范围与实际结果](docs/releases/v0.2.1-rc.2-build190-fix11-20261021.md)。 - 最终增量构建两版各143类/881项,零失败/错误;Standard/Low跳过3/76。两版Lint零错误、249/162警告,八项实际APK检查通过;原始失败、复核负控及宿主端口占用限制见F11记录。 ## 0.2.1-rc.2 · build190 / F10(2026-10-21,已发布历史) - 以build170为基座迁入后续全局授权、虚拟屏等功能,内置DSH0.2.1-rc.2;按本轮用户决定恢复默认proot,同时保留显式proroot选择。此项覆盖下方DSHA v1.1.6的历史默认,不是宣称proroot上游版本为v1.1.6;当前vendor锁v1.2.8。详见[运行引擎与迁移](docs/runtime-engines.md)。 - 键盘动画减少逐帧整页重排,移动插件3.2.1固定main10e58ce;新增直接保存Download/DSHA的一键无密码备份,先安全停止DSH/任务,不自动重启,外置工作区内容另备。 - 新增项目框架、设备权限、运行环境/数据/插件、引擎、端口、DNS、虚拟屏架构和ADR、官方资料与来源索引;当前配置、历史性能/默认及未运行范围分开。 - 默认Web端口自动选择;备用只在本机记忆、不跨设备迁移。auto/ipv4对Node做特定lookup兼容,ipv4另加glibc no-aaaa,详见[端口](docs/ports-and-networking.md)与[DNS](docs/dns-configuration.md)。 - 软件双版各785项零失败/错误(Standard3、Low76跳过)、两版Release Lint零错误且有警告,正式Standard APK七项实际核验通过。F10当时未验手机;准确包与源码归属见[F10历史发布记录](docs/releases/v0.2.1-rc.2-build190-prerelease-20261020.md)。 ## 0.2.0-rc2 正式版 · build170(2026-10-09) - 由贡献者 [@ym2025szz](https://github.com/ym2025szz) 发布正式 Release / Latest;内置 DSH 0.2.0-rc.2、移动 UI 3.0.5,沿用包名和 E7E3 历史签名。对比上一正式版及下载见[发布说明](docs/releases/v0.2.0-rc2-notes.md)。 - 累积插件自动启用与开放依赖安装、无密码 tar.gz 导出、“数据与备份”入口整理、首次安装并行解压与离线工具准备;保留旧备份和数据兼容读取。 - 修复附件直接文档选择、多选与图片草稿保存/恢复、ADB 私有路径及冷目录准备、聊天 shell 的 /tmp;增加网页原生分享/保存、虚拟屏指引、LAN 错误说明与日志显示整理。 - 两版各45项关联检查与 Release Lint、Android13 正式包非破坏性验收通过;历史冷安装42.412秒未达30秒,未扩大无线配对、原vivo16或旧Android/16KiB验收范围。详见[build170](docs/releases/v0.2.21-build170-20261009.md)。 - 发布页仅上传两 APK 和各自校验文件;更新现有中英文主页与 Star History,历史 Release、标签、赞助和致谢信息保留。 ## 0.2.7-20261003.1944-dsh0.2.0-rc.2 / 156(2026-10-03,本地修订) - 重新核对全部236个审计编号,补修旧台账遗漏的凭据导出、特权文件竞态、取消传播、原子记录发布、CI回执和测试夹具问题;逐项事实与实际检查见[本轮交付报告](docs/releases/v0.2.7-build156-20261003.md)。 - 原生v5备份与恢复投影浏览器机器凭据,使用锁定的宿主YAML解析并保留用户provider语义;新导出继续无需密码,历史密文与原件读取继续保留。 - 拆分Web生命周期、配置、LAN、插件脚本、安装、维护工具与PTY职责,应用状态和运行端口按应用实例持有;停止采用稳定事实,显式强制停止仍需用户确认和出生身份核验。 - 原生独立会话启动增加自读出生身份握手;迁移按源与回执证明复用,移动响应改为有界异步压缩,rc2 tooltip补齐清理行为。 - 收敛371处应用文案片段及界面无障碍问题,退休无消费者的生产资产,修复历史原字节的Git属性保护,完善正式依赖/许可与真实夹具门禁。 - 保持正式插件自动启用、开放依赖和终端、独立应急修复确认、未知退出屏障与原包名/E7E3签名。用户追加授权连接真机的非破坏性正式包验收,实际结果与设备范围见本轮报告;未上传GitHub或部署网站。 ## 0.2.6-20261003.1704-dsh0.2.0-rc.2 / 155(2026-10-03,本地交付) - 应用范围统一持有 Web 生命周期状态,桥接路由显式登记;冷安装候选、解压与工具准备拆到协作者,共用有界进程输出轮询。 - Low 预览依据实际能力有限回退;DNS 临时不可用时保留上次有效受管服务器,默认错误报告减少原始日志暴露。 - 自有 Java 的 702 个适用文件通过锁定格式与 token 检查,机器生成类继续严格逐字节验证;两版完整 JUnit、Lint、APK/ELF、E7E3 签名、插件与应急门禁见[build155 本地交付报告](docs/releases/v0.2.6-build155-20261003.md)。 - 本轮未操作手机、执行覆盖安装、上线 GitHub Release 或部署网站。 ## 0.2.5-20261003.0922-dsh0.2.0-rc.2 / 154(2026-10-03,本地交付) - 完成 236 项外部审计按本轮用户约束的逐项处置,拆清启动、维护、冷安装、备份与虚拟屏状态边界;保留现行免审阅插件、开放依赖与终端、无密码用户导出及历史数据读取策略。 - 两版各 1023 项完整单测(0 失败、1 跳过)、Release Lint、正式 APK/ELF、E7E3 v1/v2/v3、插件和独立应急门禁通过;细节与剩余范围见[build154 本地交付报告](docs/releases/v0.2.5-build154-20261003.md)。 - 本轮没有操作手机、执行覆盖安装、上线 GitHub Release 或部署网站;本地网站页面及下载包已按最终 APK 生成并通过 27 项检查。 ## 0.2.4-20261002.2238-dsh0.2.0-rc.2 / 153(2026-10-02,本地交付) - 修复 152 新软件包摘要校验对 Context 平台路径别名误报 PARENT_LINK;只规范化框架提供的应用根,继续拒绝 files/guest 子链接并检查目录身份与 UID。 - 修复重建 begin 在旧目录移动后失败时,回切责任尚未登记的缺口;原件、数据保护副本和失败候选继续保留。 - 应急诊断明确区分环境就绪、当前 linux 状态与待处理事务;没有待处理事务不再被误读为环境就绪。 ## 0.2.3-20261001.2129-dsh0.2.0-rc.2 / 152(2026-10-01,本地交付) - 针对华为 Android16 日志中的 proroot Bash EINVAL / proot mkdir ENOSYS,冷安装先做能力探针,支持关闭 proot seccomp 加速的兼容方式;正式软件包安装一次,退出未确认不切换,成功运行方式保存后才发布就绪。 - 用户备份及副本导出统一无密码 tar.gz,移除新密码和加密选项;内部自动副本导出由宿主解密,旧手动加密原件只在读取时需要原密码,原件保留。 - 修复第三方插件修改 package.name 后,旧启用记录被误记为成功加载的身份核验缺口。 - 保留前后台连接恢复,并验证待确认请求不会被重连重复提交、取消或丢弃。 ## 0.2.2-20261001.2046-dsh0.2.0-rc.2 / 151(2026-10-01,本地交付) - 备份导出统一为真实标准 `.tar.gz`,保持可选密码、v5 完整性与实际备份范围;兼容旧裸 dshbak / tar.gz,导出选择过程中进程回收后要求重新发起。 - 修复 WebView / Gecko 前后台切换后输出连接卡住:恢复时合并重建官方 Connection 和物理 WebSocket,重新同步已产生输出,不重发请求。 - 可见页面为已运行的本机对话补齐前台服务,不依赖 LAN;检查保活线程实际状态,晚到的启动服务消息再次核验手动停止。 - 版本码 150 源码已由 @ym2025szz 上传至 v0.2.1-build150 标签(72a7af2)。 ## 0.2.1-20261001.1835-dsh0.2.0-rc.2 / 150(2026-10-01,本地交付) - 优化原生插件读取与启停,避免重复发现、注册和依赖树散列;支持下载的第三方插件本地编辑后重启加载。 - 修复 #83 随 DSH 安装提供的可选 bundle 误报缺失,以及 #82 旧预设顶层文件导致迁移失败;成功迁移原始回执不再反复显示。 - 修复 Web 对话带草稿/附件时无法停止,以及 Android MCP 截图路径跨用户不可读和截图资源释放。 - 修复 #84 主题无法切回跟随系统,#86 反向读屏节点占用输出配额;保留零面积文本。 - 版本名分开记录 DSHA 修订号、固定北京时间戳和 DSH 版本;文件名沿用现有名称。两版继续 E7E3 / v1+v2+v3。 - 用户要求本轮跳过真机测试与覆盖安装;仅声明实际软件检查结果。 ## 0.2.0-rc2 · build 149(2026-09-30,本地升级版) - 内置 DSH 升级至 `0.2.0-rc.2`,锁定依赖树、会话兼容读取和受管运行时描述已同步更新。 - 保留 0.1.7 rc1/rc2 数据读取兼容;覆盖安装沿用 `com.dsh.client` 与 E7E3 历史签名,版本码递增到 149。 - 按用户要求开放终端修复 shell、未锁定插件依赖安装和生命周期脚本;插件事务、目录/摘要核验和回滚边界继续保留。 - Standard/Low Release 均使用 E7E3 证书,并完成 Release 构建与覆盖安装交付检查。 详见 [0.2.0-rc2 升级记录](docs/releases/v0.2.0-rc2-20260930.md)。 ## 0.1.7-rc2.1 · 2026-09-30 维护修订 - 备用 DSH 在检测到受管 CLI/Node 依赖缺失时可提出 `repair-cli-dependencies`,由宿主从签名 APK 恢复并经过原有停止屏障、摘要核验和隔离试运行;不开放任意 shell、未锁定安装或直接写用户 `node_modules`。 - 队列卡片的插话箭头在回合结束后仍可触屏操作;空闲时改为唤醒新的 follow-up 回合,运行中继续使用 steer,保留忙状态防重复。 - 手动/救援备份改为密码可选;勾选密码时继续使用 v5 AEAD,留空时写入带完整摘要校验的 DSHADATA v5 容器,旧加密备份仍可恢复;自动副本仍使用内部随机密码加密。 - ADB 已验证探活后,若系统仍保留用户开启的无障碍服务但 ROM 已解除绑定,后台请求一次受控重绑定;用户手动关闭服务后不会重新开启,并补齐服务解绑状态清理。 本轮未执行真机功能回归;两 flavor 的单测、Release Lint、E7E3 签名校验和 APK 打包已完成。交付摘要见 [rc2.1 维护修订记录](docs/releases/v0.1.7-rc2.1-maintenance-20260930.md)。 ## 0.1.7-rc2.1 · build 148(2026-09-29,本地版) - 修复插件已下载却停在“待审阅”、无法启用的问题。链接和本地包解析后自动安装并启用,更新和回退也不再要求二次审阅;运行中的 Web 在提交后自动重启以加载插件。 - DSH 网页插件管理允许直接安装和启用第三方插件,网页安装默认启用。升级时只解除旧版自动写入的 `DSHA_REVIEW_REQUIRED` 标记,保留用户主动禁用、安全模式和安装事务。 - Web 在浏览器握手前被重启时,已安装插件复核内容后继续加载,不再误判为“加载未确认”而停用;手动重新启用会重建加载确认记录。 - 修复插件管理搜索框收到键盘回车时可能因焦点转移而崩溃的问题。 - 仍核对插件包格式、路径、摘要和依赖,禁用依赖安装脚本;第三方插件运行时共享 DSHA 的应用权限。 交付摘要与实际验证范围见 [rc2.1 本地交付记录](docs/releases/v0.1.7-rc2.1-build148.md)。 ## 0.1.7-rc2 · 正式版 / build 147(2026-09-28) - 以贡献者身份发布正式 Release / Latest,沿用已验收的 Standard/Low APK、包名及 E7E3 历史签名;同步对应版本源码。 - 相对最近的 0.1.7-alpha2:DSH 升至 rc.2,内置移动插件 3.0.3,新增独立应急 DSH 与按需麦克风授权,完善维护、插件事务、终端、文件访问和授权生命周期。 - 修复插件安装重复加锁卡死,增加自动/npm 官方/npmmirror 下载源、最多三路并发更新查询、锁定版本缓存复用及有限回退。 - 修复旧系统安装退出状态误报(#79),补齐后台 LAN 前台服务与监听恢复(#80);原 issue 设备与长期 Doze 未在本轮实机覆盖。 - 两版各 807 项单测(806 通过、1 项既有跳过),Release Lint 与 APK/ELF/签名等门禁通过;Android 13 真机各完成 11 项非破坏性验收。 - 更新中英文主页中的后续版本介绍,保留 1.1.10 及更早历史内容和其他贡献者信息;刷新 Star History。 详见[正式版说明与历史版本对比](docs/releases/v0.1.7-rc2-notes.md)。 ## 0.1.7-rc2 · build 147(2026-09-25,本地 Release 构建) - 内置 DSH 更新至 `0.1.7-rc.2`,同步定时任务、快捷键、进行中会话启用新工具、自动审阅流程和插件源改进。 - 修复插件详情/设置页信息缺失、插件安装或设置保存中断后的恢复,以及部分长对话无法继续发送。 - 保留 rc1 的迁移保护、V4 会话链、原件快照、原生插件审阅和同签名覆盖安装;rc2 上游已接管的 Agent 预设标签与模型入口补丁不再强行覆盖。 - Standard/Low Release APK 使用 E7E3 历史发布证书,版本码 147;交付文件位于 `release`。 详见 [rc2 build 147 记录](docs/releases/v0.1.7-rc2-build147.md)。 ## 0.1.7-rc1 · build 146(2026-09-23,本地 Release 构建) - 内置 DSH 更新至 `0.1.7-rc.1`,同步 rc1 的 Session V4、Profile 设置、Agent preset 组合包、Messages-only 适配器和插件兼容检查。 - 覆盖更新前新增 rc1 迁移保护:保留旧 settings、Profile/lock/compatibility 声明、旧 `.agent-presets`、会话源摘要;settings 导入失败可安全重试。 - 旧插件源码同名冲突、缺失依赖和旧 preset 只进入隔离候选,保留当前版本和原声明,不自动启用。 - 对齐 rc1 的内置插件 peer 版本,并修复 subagent 导航补丁锚点;M367FC 真机覆盖后已正常进入 Web。 - Standard/Low Release APK 使用 E7E3 历史发布证书,版本码 146;交付文件位于 `release`。 详见 [rc1 build 146 记录](docs/releases/v0.1.7-rc1-build146.md)。 ## 0.1.6-alpha2.1 · build 142(2026-09-21,本地候选) - 修复 WebView/Gecko 画中画期间流式文字和字体闪烁;PiP 过渡期间保持渲染,退出后再恢复全屏刷新率。 - 数据与备份页的自动备份、存储空间入口改为固定统一卡片布局;Language 弹窗改为一次性窗口测量并延迟语言重建。 - 移植插件列表标题的相对 FAB 让位规则,避免窄屏/平板触控布局重叠与横向溢出。 - 新增 Android 11+ 独立虚拟屏:ADB/Shizuku/Root 通道、应用内/悬浮预览、已安装应用启动、最新帧校验的 AI 点击/滑动/输入/按键工具。 两版 E7E3 正式 APK 已完成签名、资产、Lint 和手机覆盖验收,并写入 `release` 的 alpha2.1 常规文件名。 ## 0.1.6-alpha2 · build 141(2026-09-19,本地 Release 构建) - 修复 DeepSeek Messages 在 Agent Team、子代理投递及 compact 重放中遇到嵌套 `tool-call` 时的 `UNSUPPORTED_CONTENT`;普通工具调用、错误结果和图片结果的协议语义保持不变。 - 系统插件与用户插件分层:备份只归档用户插件源码及依赖,系统插件只记录启停意图并由当前 APK 重建;旧实体与 `.disabled` 冲突时隔离旧字节,避免覆盖更新后继续加载旧插件。 - proroot JSON `per-record` 兼容升级为 V2,按声明表名与字符串目录项重开,不再依赖 `DT_UNKNOWN` 下不可用的 `lstat`。 - 受管试运行记录轮换为最近 3 条成功、5 条失败;未关闭现场永不自动删除,连续 33 次试运行仍可继续。 - 格式化对 WebView、`cache`、`code_cache` 等可再生目录的持续 `ENOTEMPTY` 给出明确警告;会话、插件、配置、API Key 与运行时等核心目录仍严格失败。 - 修复 proroot 真实 `--argv0 /usr/local/bin/node` 未被停止器识别而遗留隔离试运行进程;旧记录绑定的安全 profile 经过两次内核身份核验后可回收。维护状态、安装日志和启动日志改为低频/按修订渲染,网页兼容脚本与成功事件不再重复注入或累计。 - Web 工作台按用户刷新率上限请求高刷,省电模式自动交还系统;滚动位置改为逐帧合并、延迟落盘,触屏插件不再因每个流式消息节点而全页扫描。M367FC/API 37 实测 120 Hz、733 帧滚动 0 dropped / 0 jank、平均 114.1 FPS。 - Standard/Low 各 613 项强制全量单测、Release Lint、插件覆盖升级门禁、E7E3 正式 APK/ELF 审计,以及 M367FC/API 37 平板和 Xiaomi 2410DPN6CC/API 36 手机的非破坏性覆盖均通过;同名 `release` 产物已替换。 详见 [修复与验收记录](docs/releases/v0.1.6-alpha2-build141.md)。 ## 0.1.6-alpha2 · build 140(2026-09-19,本地 Release 构建) - 修复 proroot 将目录项报告为未知类型时,alpha.2 JSON `per-record` 存储写入后重开为空、导致受管更新试运行回滚的问题;不迁移用户数据格式。 - 修复 Web 插件待审阅入口误灰;为旧社区预设补齐 `dsh-workflow-worker-thread` 到 alpha.2 `dsh-workflow-ptc` 的受管兼容链接。 - 真机从 build 139 非破坏性覆盖到 140,proroot 受管更新、DSH/Web 启动、旧会话/API Key、自建预设、Web 上传入口及原生插件管理通过。 - 两版各 574 项单测(573 通过、1 跳过),Release Lint Error/Fatal 为 0;E7E3 签名、16 KiB 对齐和 APK 运行时完整性通过。 详见 [完整记录](docs/releases/v0.1.6-alpha2-build140.md)。 ## 0.1.6-alpha2 · build 137(2026-09-18,本地 Release 构建) - 修复覆盖更新后插件管理仍复用旧脚本和共享依赖链接缓存;受管资产与实际运行时身份绑定,变更后强制重新核验和建链。 - 升级后在空闲且运行时健康时清理精确列出的可再生插件/WebView 缓存,不遍历或删除会话、配置、API Key、工作区和第三方插件原件。 - 启动图标改用 `ic_launcher_v137` / `ic_launcher_round_v137` 资源,补齐自适应和圆形图标;版本码升至 137,解决 MIUI 覆盖更新后长期复用旧图标缓存。 - 两版各 574 项单测(573 通过、1 跳过),Release Lint Error/Fatal 为 0;7 个内置插件的实际 Node 24 + Chrome 启动通过。 详见 [完整记录](docs/releases/v0.1.6-alpha2-build137.md)。 ## 0.1.6-alpha2 · build 136(2026-09-18,本地 Release 构建) - 同步 DSH `0.1.6-alpha.2`,保留 Ubuntu 基础环境 10 和原有用户数据位置。 - 适配 alpha.2 的 Session/InputHub、插件管理、Agent 预设、文件草稿、Subagent 侧栏和客户端脚本拼接接口。 - 新增 Office DOCX/XLSX/PPTX 预览路径;Android 使用系统字体目录,转换结果仍由 DSH 授权文件作用域读取。 - 插件安装、删除和第三方启用统一回到 DSHA 原生审阅与事务入口;插件列表和后台任务状态更新减少重复启动。 - 更新应用图标;悬浮条流式刷新合并、小窗按实际尺寸自适应,新增原生后台任务查看入口。 - 两版各 568 项单测(567 通过、1 跳过),Release Lint 无错误。真机覆盖更新后会话、凭据和目录摘要保持一致,工具回归通过。 详见 [完整记录](docs/releases/v0.1.6-alpha2-build136.md)。 ## 0.1.6-alpha1 · build 135(2026-09-17,本地 Release 构建) - 插件整页滚动、带边框日志、自适应详情卡片和直接语言入口。 - 第三方模型原生配置入口、持续至本次运行结束且可撤销的读屏授权、真实敏感能力开关。 - WebView / Gecko 画中画入口及后台运行检查。 - 默认开启的可配置自动备份、三份验证副本轮换与旧环境受控自动清理。 - 网站本地加入两个社区插件下载条目;公开部署尚未完成。 详见 [完整记录](docs/releases/v0.1.6-alpha1-build135.md)。 ## 本地验收:0.1.6-alpha1 / build 134(2026-09-17) - 按 17 项反馈更新原生模型、设置、插件、设备通道、更新和诊断界面。 - 修复自建预设、子代理触摸、ADB 配对后的连接端口;Android Computer Use 真实六工具验收通过。 - 减少主线程状态检查,插件列表按可视区域渲染;保留原数据与终端结构。 - 两版正式签名 APK 本地交付,未上传。[修改、校验与验收范围](docs/releases/v0.1.6-alpha1-build134.md)。 ## 0.1.6-alpha1 (132) · 2026-09-16 · 待真机验收 - 升级完整 DSH 0.1.6-alpha.1,并锁定 Browser/Computer Use、Auto review、Team、SSH 等额外官方组件。 - 原生 UI 采用确认稿的黑白蓝主题与紧凑布局;真实模型配置、社区页、插件详情/删除入口。 - 整合 PR #68 的构建、桥凭据、通知与系统语言修订,以及 PR #70 对话画中画。 - 修复 #69:真实头尾输出、冷安装独立诊断、失败阶段、随包监督会话、显式运行兼容选项与受控重试。 - 两版 Release 构建与本机检查通过;按用户安排尚未安装手机或上传。 > 只记面向用户的变化。完整历史见 [commit log](https://github.com/qiannianhuanxiang/DSHA/commits/main)。 ### v0.1.5-rc2.1 / build 131(本地稳定性修订) - 为设备桥与 LAN 增加读取时生效的请求头限额、绝对截止时间和连接配额;修复零长度、临时响应、分块及 WebSocket 边界,保持附件/SSE 字节流和普通请求可用。 - 插件预览绑定实际 pnpm 冻结锁与依赖快照;安装、回退和中断恢复保留插件组合及激活记录。隔离插件明确审阅后才启用,真实加载失败停用候选并保留诊断与源码。 - 凭据无法读取时保留旧密文,区分未配置、暂时不可用及需要处理;提供重试、重输和明确移除,不再把解密失败冒充空密钥。 - 增加保留副本/旧树的只读清单、逐项检查、导出与预检恢复;未知数据格式不冒充可降级,不新增自动删除。 - 更新中英文状态、短屏页面与安全说明。原包名、历史签名、dsh rc.2、Ubuntu base 10 不变。详见[build 131 交付记录](docs/releases/v0.1.5-rc2.1-build131.md)及[验收证据](docs/stability-acceptance.md);此前记录保持原样。 ### v0.1.5-rc2.1 / v0.1.5-rc2.1low(本地验收交付) - 修复 #67 的全局插件不存在误报、旧梁神预设 `text` 与新 `prefix` 的兼容,以及维护显示成功但环境未就绪时的自动跳转循环。 - 修复非调试安装中终端刚启动就关闭时的进程核验竞态,保留出生身份、guest 回收和维护屏障。 - 普通覆盖更新只替换受管运行时,不归档 Ubuntu;缺失 Bash 时保留原生救援入口,重建只保护个人数据并保留可恢复原件。 - 新增宿主加密数据导出、预检与按范围恢复、私有已验证副本重新导出;配置重置和固定检查点不再要求旧 Python 可运行。SAF 取消、目标读回和权限变化有独立结果。 - 修复冷环境内置插件依赖、受管更新中的局域网设置补丁与附件原子写入;真实网页健康确认之后才提交新运行时。 - 旧运行时清理前重新核验原件,修改过或未知文件继续保留。版本码 130,历史签名不变。详见[交付与验收范围](docs/releases/v0.1.5-rc2.1-build130.md)。 ### v0.1.5-rc2 / v0.1.5-rc2low(正式版) 由贡献者 [@ym2025szz](https://github.com/ym2025szz) 发布,版本码 **129**,dsh **0.1.5-rc.2**,Ubuntu 基础环境 **10**,沿用原发布签名。完整内容见[正式版说明与历史对比](docs/releases/v0.1.5-rc2-notes.md)。 - 统一日夜主题、卡片、权限、弹窗与切换动画,完善短屏/大字体;检查日志和诊断报告独立滚动,重排关于弹窗。 - PTY 与简易终端支持独立标签,切换语言及页面保留进程;关闭后复用最小空缺编号,全部关闭后从 1 开始。 - 中英文原生/网页状态同步,修复缓存状态混用语言;用户输入、命令和第三方原始内容保持原文。 - 插件排序与操作框、dsh-web-mobile 2.4.1-dsha.2、真实 Agent 预设切换和宽屏文件入口。 - 修复 #64 多文件选择、旧 WebView/PDF Worker、#63 DNS 兼容;补齐 Shizuku 改包名识别和主动连接恢复。 - 完善端口冲突、慢鉴权、原生恢复与固定配置快照,修复旧平板环境迁移路径;保留数据与进程核验。 - 两版各 383 项单测(382 通过、1 跳过)、Lint 无错误。详见[最终验证范围](docs/releases/v0.1.5-rc2-build129.md)。 ### v0.1.5-rc1 / v0.1.5-rc1low(正式版) - 由贡献者 [@ym2025szz](https://github.com/ym2025szz) 发布为 GitHub 正式 Release / Latest;主线汇总此前重构预览改进,历史 Release 与 1.1.10 及更早说明保留。完整对比见[正式版更新介绍](docs/releases/v0.1.5-rc1-notes.md)。 - 修复文件和预览标签的关闭“×”被按钮最小高度撑到右下方的问题,恢复在标签右侧垂直居中;两种浏览内核实际关闭操作通过。同名 APK 已更新。 - dsh 更新至 `0.1.5-rc.1`,提供新版默认模型 DeepSeek-V41-Flash,保留 V4 Flash、Pro 与 Vision 实验模型的选择。 - 保留新版右栏引导页、文件预览、长内容滚动和代码复制,重新适配前端提示组件;输入框回车换行、旧内核 PDF 兼容和移动侧栏继续可用。 - 版本码 116,Ubuntu 基础环境版本 10 不变。alpha.2 自动覆盖升级实测约 7.45 秒,个人数据保持原位;连续启动鉴权约 3.43~3.66 秒。 - 沿用历史发布签名,两个 APK 和校验文件放在 `release`,不覆盖历史版本。详见[版本说明与真机验收](docs/releases/v0.1.5-rc1.md)。 ### v1.5-alpha.2 / v1.5-alpha.2low(本地候选版) - 修复空闲终端及其后台命令未回收,导致「重新解压环境」在维护门禁报错;确认终端退出后再开始备份或更新。 - 修复冷环境中原生扩展缓存被转换为悬空链接,导致首次启动找不到内置插件;统一直接加载随包扩展,并新增首次初始化校验。 - 覆盖升级直接解压独立 dsh 包,跳过 Ubuntu 大归档;冷安装仍完整安装并验证 Ubuntu、Node、Python、curl/git 等工具。 - 复用未变化的网页脚本与源码映射,避免每加载一批插件就重复拼接全部大文件;插件变更和热更新及时失效,同机连续启动约 3.1~3.4 秒。 - 启动页显示阶段耗时、插件名称、版本及实际加载错误,切换页面后仍可查看;保留上次失败输出和退出码,成功重试不再覆盖失败证据。 - 安全启动支持中止当前启动并使用独立基础界面,原插件开关、配置和会话保留;明确的插件故障可选择停用后重启。 - proroot 在鉴权前确认退出时可进行一次 proot 兼容重试;不会因等待时间长自动终止,不改用户保存的运行方式。 - 复用未变化的运行时依赖链接,避免每次注册重写脚本使工具缓存失效;修复左下角附件图标偏移。 - 修复直接重启时退出中进程的命令行变空,被误报为“无法核验本应用进程”的竞态;停止阶段复核内核退出状态,不误杀容器或其他进程。 - dsh 更新至 `0.1.5-alpha.2`,内置移动 UI 更新至 `2.4.0` 并适配官方右栏,保留新版文件预览与文件交付。 - 删除按启动次数自动备份及配置项;移除启动时的全工作区扫描,复用未变化的受管工具。 - 相同 Ubuntu 基础环境直接事务更新 dsh 和内置插件,避免重复搬迁会话、项目和第三方插件;失败可回切。 - 修复旧整数配置的类型异常;插件缺少依赖时保存已有源码并明确提示;恢复依赖使用相对链接。 - 修复旧 WebView / Gecko 的 PDF 预览兼容,新增会话删除入口沿用浏览器鉴权和来源检查。 - 双版本码 115,基础环境版本 10,保留历史发布签名。详见[版本说明](docs/releases/v1.5-alpha.2.md)。 ### v1.2.0-rc1.4 / v1.2.0-rc1.4low(预览版) 由贡献者 [@ym2025szz](https://github.com/ym2025szz) 推进,以 [GitHub Pre-release](https://github.com/DSH-APP/DSHA/releases/tag/v1.2.0-rc1.4) 发布,感谢原作者及其他贡献者。 - 同版本功能复查:安装六步检查合并探测并显示实时脱敏输出、步骤与耗时;修复静默命令超时、取消后进程残留及终端 exit 后首条输入丢失。 - “显示与运行”逐项补充作用和生效时机,接通启动更新及实际脚本更新入口;修复配置保存与 ADB 授权同步、断线重连和前台提问反馈。 - 备份与环境重建增加任务互斥和实际进程退出屏障;只省略可从 APK 补齐的原版 ADB 缓存,保留修改内容;修复更新通道来源、重建后的安装校验及阶段进度显示。见[功能验收](docs/functional-audit-rc1.4.md)。 - 同版本排版重整:统一顶部标题与返回、间距、按钮主次;设置与配置按功能分组,保存操作固定;重排插件、更新、诊断和备份页面,并完成窄屏、大字体、日夜及短视口的原生布局检查。 - 同版本主题修复:仅保留右上角白天/黑夜快捷切换,移除设置页“界面主题”区域及弹窗,修复默认按钮黑底深字、禁用文字和大字体裁切;主题切换不结束终端,版本名及版本码 113 保持不变。 - 修复四种备份范围、实际数据快照和导出校验;恢复前预检并支持失败回滚,接通启动次数自动备份。 - APK 下载可在页面关闭后继续,并保留取消/进程重建后的续传进度;插件任务增加阶段、百分比及安全取消。 - 完善插件 SemVer 与版本查询、连续启动失败恢复入口、持续运行/省电模式。 - 两种内嵌网页内核支持实际文件保存、弹层返回、图片草稿和阅读位置恢复;修复旧 WebView 启动兼容问题。 - 官网安装参数不再丢失,来源修改后撤下旧入口;增加完整参数二维码与窄屏菜单。详细记录见 [rc1.4 说明](docs/releases/v1.2.0-rc1.4.md)。 ### v1.2.0-rc1.2 / v1.2.0-rc1.2low - 对话页移除「返回 / DSHA 对话 / 浏览器打开」顶部栏,两种网页内核统一全屏显示;系统返回手势、键盘避让和错误重试保留。 - 插件市场新增「前往 dsha.cc 选插件」入口,在浏览器选取后可返回 App 粘贴下载链接或导入插件包。 - 版本码升至 111,沿用历史发布签名与环境版本,可覆盖安装。 ### v1.2.0-rc1.1 / v1.2.0-rc1.1low - 修复首次安装缺少 CA 根证书导致插件 HTTPS 下载失败,GitHub 归档直连官方 codeload;兼容运行时追加退出日志后的结果解析。 - 本地导入优先系统文件选择器,增加备用选择器,处理空返回、ClipData 与旧文件管理器读取授权。 - 两版终端补齐 npm/npx 入口与证书,新增 dsha-plugin install 安装并登记 npm 插件。 - 修正终端 JNI 的 RELRO 布局,解决部分 Android 13 设备加载库时错误报告 Out of memory;保持 16 KB LOAD 对齐。 - 本次修复包版本码为 110,文件名与版本名沿用 rc1.1 / rc1.1low,签名不变。 - 增加 Android 6—12 / arm64 兼容版,与标准版共用插件、安装修复、终端和对话功能;额外携带 Gecko 143,旧系统自动使用兼容内核。 - 兼容版 proot / loader 与终端 JNI 以 API 23 重编,回补 Java API、旧存储权限和低版本布局属性;无线调试配对码仍需 Android 11+。 - 插件页改为分区滚动布局:管理页隐藏链接安装区,名称、说明、开关分行,增加「更多」入口;长错误通过弹窗完整查看,避免挤压列表。 - 补齐安装模块第 2 步:修复 Python、按需联网安装 curl/git/证书,检测真实运行结果;恢复清晰的 1—6 步入口与失败报告,第 4 步使用内置 pnpm。 - 补齐 proot 硬链接模拟目录的映射,修复 apt 安装时 dpkg 报文件不存在的问题。 - 插件市场支持 GitHub 仓库、分支 / 子目录、Release 与 HTTPS 压缩包链接识别,可从分享文字提取链接。 - 本地导入支持 ZIP / TAR / TAR.GZ / TGZ 及多插件包;导出支持多选、作用域插件名与系统保存位置选择。 - 修复第三方插件重新启用、官方核心误报缺失、导入导出结果被刷新覆盖的问题;补齐搜索、筛选、排序与来源复制。 - 插件安装检查发布包入口与依赖;失败保留原插件,混合包明确报告部分成功,临时文件用完清理。 - 标准版最低 Android 11 / arm64,编译与目标 API 37;补齐 Android 17 局域网授权、前台服务类型和全面屏边距。Android 16 核心真机验收通过,Android 11/17 与 16 KB 设备待验证。 - 真机验收补齐 Python 的 SQLite/readline 动态库及离线 pnpm 10.34.5;插件依赖改用文件复制,修复 proot 下硬链接导致更新报错的问题。覆盖安装保留配置和会话。 - 保留完整离线环境,统一 Ubuntu Python,移除 npm 缓存、重复 Python 和其他平台的二进制;压缩资产避免被 aapt 提前展开,两版共用精简后的离线资产。 - 插件卡片长按支持删除第三方插件,清理登记与文件,保留会话、设置和其他插件;内置核心插件不可删除。 - WebView 等待 Cookie 写入完成后再进入对话,自定义端口保持正确,认证失效可重新进入。 - 网页加载或渲染进程失败时展示原因、系统内核版本和重试入口,可直接用系统浏览器打开。 - 对话页接入系统文件选择器,支持附件上传;补齐键盘缩放和网页返回导航。 - 电脑模式保留真实浏览器版本,避免伪装新内核造成能力判断错误。 - 显式声明网络监听 / Wi-Fi 权限;后台无法恢复 ADB 保活时给出状态,并在回到前台后重试。 - 从同版本源码重编 Termux JNI,满足 16 KB ELF 对齐;完整运行环境的 16 KB 真机验证仍待完成。 - 启动 / 停止共用队列,停止按钮不再在主线程等待;启动完成或失败后释放门控,旧进程输出不会覆盖新会话,看门狗尊重用户停止。 ### 🚀 v1.2.0-rc1:重构版(预发布) 从零重写、保留原版框架与内容的干净骨架。`dsh` 升级到上游最新 **0.1.2-rc.1**。 - dsh 0.1.2-rc.1:内置 Ubuntu 24.04 rootfs + Node 24 + pnpm,补齐 koffi-linux-arm64 等原生模块(修复 rc.1 WebUI 起不来) - 覆盖安装不再丢插件/配置:rootfs 版本比对机制,内置包变化时强制干净重解压 - 插件管理:4 个内置插件 + 2 个官方核心带开关(**插件市场暂未开发**) - 局域网访问:3081 代理自动绑定 + cookie 自动交换 + settings 持久化修复,主页直接显示完整地址 - 无障碍屏幕操作:读屏 / 点按 / 输入 / 按键 / 滑动 / 截屏(Android 11+) - ADB 无线配对、危险命令守卫、流式悬浮条、终端 PTY、备份恢复、Keystore 加密 API key - 57 条纯逻辑单元测试 - ⚠️ 预发布版:建议重新安装(先卸载旧版)而非覆盖;反馈加 QQ 群 **975836806** ### 🧩 v1.1.9:插件真的能装上了,停止真的能停下来 **插件市场几乎重做了一遍。** 索引换成 `plugins.json`(2249 条,带 npm 包名映射与中文 描述),装一个插件现在有四级降级:npm 直装 → 作者发布的 Release 预构建包 → 授权后重试 构建 → 容器内 clone + 构建。monorepo 子目录里的插件也能装了(此前会被截成仓库根, 装完插件页空无一物)。装不上的时候不再只甩一句失败:结果可滚动、可选中、可一键复制, 并且插件页会显示「已启用但没加载起来」以及**为什么**(这条状态是 dsh 进程内报回来的, 比 `package.json` 里写着「已注册」可信)。 | 插件相关的其它变化 | | |---|---| | 批量操作 | 长按进入多选,一次启用 / 禁用 / 导出 / 删除 | | 导入 | 认 gzip / zip / tar,按文件头判格式;单插件、多插件、GitHub zip 的多包一层都能识别 | | 导出 | 卡片上单个插件导出,或整批导出到 `Download/DSHA/插件/` | | 存档点 | 改插件之前自动留一份可回退的状态(按需生成,不占日常空间) | | 补丁热开关 | patch 层的开关不用重启,约 1 秒生效 | | 自愈 | 「装任何插件都失败」的一类根因是自指依赖导致 `ELOOP`,现在启动时自动修;修不了的移进隔离目录并告诉你需要重装哪个 | **备份:换设备恢复不再是空的。** 对话等热数据在手机上是指向公开目录的符号链接,而 `tar` 默认只存链接本身 —— 同机恢复看不出问题,换设备恢复就是一片空白,而这正是备份功能被宣传 的场景。现在备份会额外把这些数据解引用快照一份。同时备份可以**分范围**:全量 / 只对话 / 只插件,部分备份恢复时只覆盖对应内容(拿只含对话的包恢复,配置与插件保持现状)。 **停止按钮真的能停下来了。** 这条查出两个环境层面的硬事实:`/proc/net/tcp` 在非 root 的 Android 上读不到(所以 `ss`/`netstat`/端口反查全是空的),`/proc` 只看得到同一个 uid 的 进程。所以改成不靠猜命令行:启动时把进程号落盘,停止时按号精确停,并写一个「用户已停止」 标记 —— 看门狗和重启脚本每轮都检查它,看见就自己退出。停完 4 秒和 15 秒各回看一次, 真有东西把它拉起来就把「谁拉的」记进活动日志。另外**息屏保活**补上了:`WAKE_LOCK` 权限声明了很久,却从来没有一处真正获取过,熄屏后容器被冻住,回来什么都停了。 **快了一些。** 内置环境的离线包此前被打包工具白压了一遍(301MB 只压掉 1%),于是首次 解压要多解一层,现在少了这一层,解压缓冲也从 8KB 提到 256KB。插件市场页加了 6 小时 缓存,第二次打开不再等 800KB 下载,断网也能浏览。启动前的自愈脚本从 6 次容器会话合并 成 2 次,活动日志里会写「启动准备耗时」方便对比。 **其它**:`Download/DSHA/` 分成 `存档 / 插件 / 下载` 三个子目录(老位置照旧能读)· WebUI 里点下载终于有反应了(内嵌浏览器此前完全没接下载回调)· 设备桥到 27 个端点, 新增 `/app/help`(agent 按需查完整清单,不必每轮都背一份)与 `/app/version`(插件做特性 检测)· PTY 终端的显示与输入回显修复(社区 PR #38)· 纯逻辑断言 153 → 300 条,另加 解压往返与停止判据两套端到端测试。 完整说明见 [CHANGELOG.md](https://github.com/qiannianhuanxiang/DSHA/blob/main/CHANGELOG.md)。 > ⚠️ **1.1.9 在发布当天覆盖过一次**(tag 没变,versionCode 98 → 99)。首发那个包在 > 「v1 → v2 重解压内置环境」这条路上有三个问题:① 数据保护跟随符号链接 —— 一次升级把 > 对话复制三遍,空间不够时会在 rootfs 已经删掉之后失败;② `/root/plugin-src/` 整个目录 > 不在保护范围内 —— 用 clone 构建装的插件会静默消失;③ 解压前没有空间预检。 > 如果你在 2026-08-29 早上下过 1.1.9,请重新下载一次 —— 设置页「关于」里能看到 > versionCode,**修复版是 99**。 ### 🛠 v1.1.9.1:重解压不再丢工作区,升级中断了还能把数据找回来 **1.1.9 在「发现新版内置环境 → 重解压」这条路上丢了工作区里的东西。** 原来的数据保护 只挑三样复制:`.dsh`、`plugin-src`、各工作区的 `.env` **这一个文件** —— 工作区目录里 其它内容(你写的代码、agent 的产出、下载的文件)随 rootfs 一起被删了,而且不在备份里, **找不回来**。如果你在 1.1.9(versionCode ≤ 99)上做过重解压、发现工作区空了,不是你的 操作问题,是那一版的缺陷。 1.1.9.1 把数据保护改成**整个 `/root` 挪走**(而不是挑几样复制): - 不再有「哪些文件要保」这个判断 —— 它就是之前三次漏东西的共同根源; - 用移动而不是复制:同一文件系统里瞬间完成、不占额外空间。之前对话几个 GB 的用户 正是在复制这一步空间不够、导致升级中断(而且那时 rootfs 已经删了); - 还原时同名冲突**以你原来那份为准**,工作区、插件源码、配置都原样回去。 **升级中断后数据还在。** 如果重解压中途失败(空间不够、被系统杀、断电),现在启动时会 弹窗告诉你「上次升级没有完成,数据还在」,可以恢复回来;恢复时把现有的 `.dsh` 挪到 `.dsh.pre-recover-<时间>` 而不是覆盖 —— 两份都留着,你自己挑。 **这次没有可回滚的后悔药**:1.1.9.1 修的是「之后的重解压」,**已经丢掉的工作区文件 找不回来**(那版不备份它们)。建议装完这版之后手动做一次完整备份,作为你自己的保险。 > 另外提醒:如果你在 2026-08-29 早上下过 1.1.9(versionCode 98/99),它的 APK 已经 > 被替换成这个修复版 —— 重新下载一次即可,下载页两个版本(1.1.9 与 1.1.9.1)现在 > 是同一个包(versionCode 100)。 ### 📺 v1.1.8:AI 输出实时上屏,危险命令就地批准 屏幕顶部多了一条**流式悬浮条**:agent 正在生成的内容像歌词一样实时滚出来, 调工具时显示成「⚙ 正在执行命令: ls -la」——带命令原文,而不只是「正在执行命令」。 底色、不透明度、显示行数、停留时间都能调,带预览按钮,不用等 agent 说话就能试样式。 思考过程(reasoning)可选显示。**默认关闭**:内容会直接显示在屏幕上,旁边的人也看得见。 危险命令的确认也搬到了悬浮条上 —— 原来只有通知和前台弹窗两条渠道,可 agent 干活时 用户往往并不在 App 里。现在是**第三条渠道**而非替代:三条共用同一个 epoch,谁先点谁生效。 免 ROOT 做不到真正的「状态栏歌词」(只有 Flyme/exTHmUI 认 ticker flag,其余机型要 Xposed hook 系统界面),所以走自绘悬浮窗:一次性授权、全 ROM 通用。 **内置移动端适配换成 [dsh-web-mobile](https://github.com/mexiaosqwq/dsh-web-mobile)**(MIT): 窄屏单栏 + 目录抽屉、设置改底部 sheet、状态栏安全区、表格与气泡排版。 旧插件作者长期停更;升级时会自动把它从 profile 摘掉并删除实体(两个插件改造同一批 DOM 元素,同时激活会互相打架),此前手动禁用过的话新插件也保持禁用。 同版修掉的问题里,有几个是「一直没人发现它是坏的」那类: | 问题 | 根因 | |---|---| | 局域网访问打不开 | 剥离 token 时把请求行的 HTTP 版本一起吃掉(`GET /?token=x HTTP/1.1` → `GET /`),后端直接 400 | | 局域网页面能开但一直转圈 | token 靠浏览器自动带的 `Referer` 生效,而 WebSocket 握手不发 Referer → 必然 401;顺带 token 会随外链泄漏给第三方 | | 装过 rc 版就再也收不到更新 | 版本号解析把 `7-rc81` 拼成 `781`,比任何正式版都「新」 | | 脚本热更新永久失效 | 增量清单落后于 assets:下到新文件、校验旧哈希、整批丢弃,界面上什么都不说 | | 自检脚本一启动就崩 | 正则里 `\(` 写成 `\\(`,模块级 `re.compile` 直接抛错 | 现在这些都有守门人盯着:新增 Fast checks 流水线(清单一致性 + 离线验签 + 纯逻辑断言 + assets 脚本真编译),发布时证书指纹不匹配直接中止 —— 发一个用户装不上的包比发布失败糟。 ### 🔐 v1.1.7:对话数据不再随卸载消失 会话、设置、附件迁到 **内部存储/Documents/dshdata**,原位留私有符号链接。 文件管理器里直接可见、可自行备份,**卸载 App 或换机重装后数据仍在**。 进入 App 会自动申请「所有文件访问」权限并说明用途;授权后立刻迁移, 不必等下次启动。自检新增「对话数据存放位置」一项,明确告诉你现在到底会不会丢 —— 之前这个迁移在缺权限时会**静默跳过**,用户以为安全了其实没有。 刻意留在私有目录的东西:`DSH_HOME` 本体(dsh 维护的 `node_modules` 符号链接, 公开 FUSE 禁止软链)、`.credentials.yaml`(公开区强制 660,且密钥会暴露给其他 App)。 **API Key 改用 Android Keystore 加密**(AES/CBC,密钥不出 Keystore), 备份里的那份也加密后再写 —— 此前是明文进 `Download/DSHA` 公共目录。 同版还修了两个影响日常使用的问题: | 问题 | 根因 | |---|---| | 每条 agent 命令都弹危险确认 | 守卫把我们自己注入的 `source …dsh-guard.sh 2>/dev/null;` 前缀当成用户命令,其中的 `>` 让「覆盖关键路径」判据恒真 | | 深色模式按钮浅蓝底浅字看不清 | Material3 把 `