# 手机会话取消本次开机 WiFi 提示:实现与验收 日期:2026-10-09(北京时间)。设备正式版本保持 **1.1.3**,功能更新时间为 **2026-10-09T10:26+08:00**。未导出 OTA 或 IMG;App 源码、协议、版本和依赖未变,仅构建同源 debug 测试 APK 用于登记手机的定向验收。 ## 行为与实现 手机完成加密握手、有效 `session.open` 成功后,通过可选会话回调接入现有 `dismiss_for_boot()`,取消本 boot 的断网及联网 IP 提示。无需发送显示内容,失败握手、无效参数和仅蓝牙链路连接不触发。取消标记复用运行目录及 boot ID;断开、网络变化和服务重启不恢复,整机重启重新计时。 提示取消与最终提交使用独立锁。NetworkManager 查询在锁外,提交时复查取消标记,避免慢查询阻塞连接或重新显示提示。原生驱动、显示仲裁、用户配置 schema 和公共协议保持现有契约。 ## 实际测试结果 | 验证 | 结果 | | --- | --- | | 针对性手机会话与 WiFi 测试 | 29 项通过;覆盖延迟前连接、两种提示、失败握手/参数、断开及网络变化、迟到查询、boot 标记和用户帧/状态 | | 本机完整 Python 回归 | 501 项通过,9 项按环境跳过 | | 本机前端 | 72 项通过,JavaScript 语法与生成文案目录校验通过 | | 隔离目录按文档复建 | 新建 venv;493 项通过,10 项按环境跳过;72 项前端测试及语法/目录校验通过 | | 板端离线 staging | 原生编译、fake-register 与 safeoff 通过;497 项 Python 测试通过,6 项按载荷/环境跳过 | | 离线原子部署 | 更新脚本成功,部署源码摘要与本机一致,健康和服务重启检查通过 | | 登记手机连接 | 两轮 `connection` instrumentation 均明确返回 `OK (1 test)`,断开重连及测试辅助文件清理通过 | | 真实服务重启 | 同 boot、不同进程实例,取消标记仍为 true,提示保持关闭 | | 两次整机软件重启 | 每次 boot 改变后取消标记均为 false;31 秒延迟到期后提示重新出现;随后手机会话成功即取消 | | 数据与真实驱动 | 部署后 439 个持久文件摘要不变;两次整机重启后,除既有内核健康记录更新当前 boot 外,其余 438 个文件仍不变;H618 PWM4 后端正常,OE fault 为 0;当前帧接口返回 64×64 PNG | | 仓库卫生 | 凭据门禁、Git 候选卫生检查和 diff 检查通过,未输出秘密值 | 全过程只读取状态和当前帧接口,未访问首页以免首页取消逻辑掩盖缺陷。两轮真实手机验收前均确认 `dismissed_for_boot=false`、`wifi_indicator_active=true`、模式为 `wifi_connected_indicator`;连接后手机已断开,标记为 true、提示为 false,恢复 `animation`,用户修订仍为 1。恢复后的帧摘要与本轮采样的默认内容一致。 隔离副本不复制 `.git`、私有登记、凭据或原有 venv;Git 专用卫生测试按既有门禁跳过,真实工作区另行执行卫生检查。断网与网络变化分支由本机 mock 验证,本轮未切换真实网络。驱动和底层输出实现未修改,按影响跳过真实无负载基准、实屏图案、摄像头、ADC、无关 Android 页面及 WiFi 传输/切网专项,不将这些项目记为实测通过。 ## 测试中发现并修复的问题 - 既有生成文案目录保留旧的未连接文字,与当前页面不一致;通过生成脚本同步,仅更新这一条文字,目录校验与全量回归通过。 - WiFi API 次数断言可能先于后台开机联网完成。增加 mock 激活完成事件,再记录次数基线;原网络业务逻辑未改,完整回归通过。 - 初次隔离副本早于上述目录修复,产生同一失败;同步最终修改后重跑文档入口并通过。 - 初次重定向日志混用了本机代码页与 UTF-8;仅为本次 Python 子进程显式设置编码后复验。首次 Android 临时入口创建失败;更换新入口完成离线构建,新建目录联接仅作入口,材料始终位于项目内。 - 最终全文件摘要核对发现 `kernel-recovery.json` 与部署前不同。经对应源码和实机状态确认,这是既有 `finalize_after_boot()` 更新成功 boot ID、健康状态及时间;要求记录状态成功且对应当前 boot,单独登记这一预期变化,其余文件继续严格比较,不回写旧健康记录。 可重复经验已补充到 `测试相关资料/如何测试/核桃派点阵屏控制服务测试流程.md` 的 `TEST-WIFI-MOBILE-DISMISS`;跨端影响见 `移动端相关内容/开发要求/跨端兼容与变更记录.md`。状态与帧摘要证据见同目录 `验收证据.jsonl`,不包含设备凭据或真实手机标识。 ## 清理与边界 本轮远端 `/tmp/qms-wifi-boot-0c0ee7224e06` 已删除,部署日志已拉回本机,原子更新脚本清理 staging、数据候选、测试目录及旧 release;软件重启所用瞬时 systemd 任务随重启清除。 自动审批拒绝删除首次创建但未使用的 `<公共临时目录>/wifi-boot-android`,原因是 `blocked by policy`。该目录只有本轮无用的临时入口材料,可由用户手动删除;未尝试其他删除方式。后续目录联接已正常移除。 最终清理 `测试相关资料/如何测试/本机测试环境/.local/work/wifi-boot/` 也被自动审批以 `blocked by policy` 拒绝;未更换删除手段。该目录仅含本轮部署载荷、隔离副本、临时 Android 构建、项目内下载缓存、脚本和日志,必要摘要与证据已归档,本轮进程已完成,可由用户手动删除。可复用 SSH/Android 环境、私有登记和其他任务目录不在待删范围。