Skip to content

feat(SDK): 支持 SD 卡 FAT32 异步格式化与进度反馈 - #29

Open
orulink-wugui wants to merge 5 commits into
mainfrom
codex/sd-fat32-format-install
Open

feat(SDK): 支持 SD 卡 FAT32 异步格式化与进度反馈#29
orulink-wugui wants to merge 5 commits into
mainfrom
codex/sd-fat32-format-install

Conversation

@orulink-wugui

Copy link
Copy Markdown
Contributor

变更说明

  • 新增 FAT/FAT12/FAT16 介质格式化为 FAT32 的维护接口,并拒绝 exFAT、NTFS 等非 FAT 系列文件系统。
  • 将格式化改为异步维护任务:请求立即返回任务,客户端按实际状态轮询,不采用固定 120 秒等待。
  • 任务分阶段上报准备、格式化、重新识别与验证进度;成功后返回 FAT32 卷信息。

验证

  • 已通过控制 REST 相关 pytest。
  • 已使用实际 FAT16 介质完成格式化为 FAT32、重新识别并安装 v0.0.8 资源的端到端验证。

配套变更

  • 桌面端 PR:将格式化确认、任务轮询、进度显示与 Daemon 代理白名单接入界面。

新增 Daemon 维护接口,将已明确确认的可移动 SD 卡格式化为 FAT32,并在完成后重新读取卷信息和新的卷序列号。

格式化流程拒绝系统盘和维护任务进行中的卡;桌面端可使用返回的新 volume_id 自动继续官方资源安装。补充格式化命令、FAT32 重检和 REST 接口测试。
Daemon 格式化接口仅接受 FAT、FAT12、FAT16 文件系统;FAT32 保持不变,exFAT、NTFS 和未知格式将被拒绝。

补充非 FAT 文件系统拒绝测试,防止直接调用维护接口误格式化不受支持的存储介质。
格式化接口立即返回维护任务,由任务实际完成 Windows 格式化、重新识别和 FAT32 校验后才报告成功,不再依赖固定请求超时。
@orulink-wugui
orulink-wugui marked this pull request as ready for review August 11, 2026 03:42
异步 FAT32 格式化接口新增 202 响应时,误将读取 SD 作品和查询当前维护任务两个同步接口的既有断言一并改为 202,导致所有 Python 依赖矩阵测试失败。

本提交将这两个无关接口恢复为 200 断言,并保留格式化任务接口的 202 语义。已在项目虚拟环境中通过 620 项 pytest 和完整 mypy 检查。
Linux CI 中即使模拟 win32 平台,tmp_path 仍以 /tmp 开头,导致格式化逻辑无法提取 Windows 盘符,三个新增用例在全部 Python 矩阵中失败。

本提交使用明确的 E:\\ 卷根并模拟目录存在,使测试真实覆盖 Windows 盘符解析、FAT32 幂等处理和非 FAT 文件系统拒绝,同时不依赖运行器操作系统。已通过 620 项 pytest 与完整 mypy 检查。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant