跳转至

OneTHU 0.11.4-fix-1 Implementation Plan

Goal: 修复旧 0.11.4 的桌面启动阻塞和平板反馈,发布三端 0.11.4-fix-1,并完成 GitHub、云盘、官网更新链路核对。

Architecture: 学校 GUI 登录可在 CLI 不可用时继续使用本机原生会话;后台恢复后使用受账号、epoch 和退出意图保护的延迟移交。保留 xiao-dreamr 的样式及现有 CLI/OH 功能;如果修复无法形成清晰边界,再回退到样式合并基线。

Tech Stack: React / OneGUI、TypeScript、Tauri Rust、Node SDK/CLI、Android Gradle、GitHub Actions。

Task 1: 反馈证据与边界

  • 查看 Downloads 最新 JPG 和 5.4 秒视频,关键帧只保存在忽略的 output 目录,不提交真实用户数据。
  • 复现 CLI_START_FAILED 阻断 performLogin/currentFingerprint/resume 的分支。
  • 确认实用设置误命中桌面三栏 overflow:hidden 规则,以及首页吞掉课表错误的问题。

Task 2: 登录独立于后台可用性

  • 修改 apps/desktop/src/lib/clients.ts 与私有会话测试,先写失败用例:后台启动失败时登录/指纹/本机会话恢复仍可完成;账号冲突、CLI 2FA、显式退出仍阻止不安全移交。
  • 保存未绑定 epoch 的移交意图,后台恢复后只对空白非退出状态或相同账号绑定;不同账号和退出状态不覆盖。
  • 补充 cli_daemon.rs 的启动诊断与早退识别,保留原生日志的隐私边界和 App 关闭后常驻能力。
  • 验证命令:node tools/cli-session-handoff-test.mjs、node tools/login-attempt-state-test.mjs、SDK / CLI 测试及 Rust 对应检查。

Task 3: 平板设置与课程

  • 修改 SettingsOverlay 的简单设置滚动分类,保留完整模式三栏;在平板横竖屏检查滚动到底部、按钮点击、模型源切换反馈。
  • 今日课程使用与课表相同的 primary + secondary 时间窗口源;加载/失败不显示“今天没有课”,成功空结果才显示空态。保留已完成与待上课区分。
  • 为数据源、加载状态、课程时间筛选增加有意义的回归测试,使用合成课程验证。

Task 4: fix-1 版本与更新兼容

  • 版本显示、Cargo、Tauri、CLI、SDK 一致为 0.11.4-fix-1;Android versionCode 在 11013 上递增。
  • 版本比较、云盘目录选择、官网下载检查识别 fix 编号;旧 0.11.4 客户端的更新提醒使用向后兼容的发布版本标记,显示实际 fix-1 名称。
  • 验证 base→fix-1、fix-1→fix-2、fix→后续正式版、跨平台 URL/摘要;不将 hotfix 排成旧版。

Task 5: 验证与发布

  • 类型、i18n、生产构建、认证账户边界和相关手机交互检查通过后冻结源码,main/dev3 同步。
  • 同一提交触发 macOS/Windows Actions,本地正式签名构建 Android,校验版本、ABI、Logo、CLI 与 Harness 架构及摘要。
  • GitHub 草稿与既有清华云盘系统文件夹上传齐全,再公开 Latest;官网中英文及镜像快照同步。
  • 匿名完整下载三平台云盘镜像,验证 SHA256;实际 updater 及旧客户端版本比较均能发现本次更新。
  • Windows/Android 无实机时明确记录,浏览器/协议测试与设备验收分别报告;保存长期记忆。