## 更新记录 > 说明:本文件用于记录每次客户端代码层面的更新内容,按时间倒序排列。 --- ### 2026-01-23 - **网络与构建相关** - 配置 Flutter 使用国内镜像源(`PUB_HOSTED_URL` / `FLUTTER_STORAGE_BASE_URL`),解决 `pub.dev` 访问失败问题。 - 清理并修复 Windows 构建缓存(CMake 路径不一致导致的构建失败)。 - 排查 `sqlite3` 原生资产构建失败的原因(无法访问 GitHub 下载预编译库),为后续在有外网环境下构建做准备。 - **数据库与路径** - 移除未使用的 `package:path/path.dart` 导入,database 层统一通过 `PathUtils.binFile` 处理路径。 - **重连与认证逻辑** - `ClientCore`: - 为 TCP 连接新增**指数退避重连策略**:10s、20s、40s、80s、160s,最多重试 5 次,并在连接成功后重置重试次数。 - 在连接错误、连接关闭和心跳超时(超过 60 分钟未收到 ping)时触发重连。 - **重连成功后自动发送 `auth.machineCode` 认证消息**(在已成功获取机器码和身份信息的前提下)。 - **持续挖矿(SustainMiner)** - 从 `mining.windows.conf` 的 `[sustain]` 段读取配置,校验必填字段与矿工程序路径。 - 当没有租约任务时自动启动持续挖矿,有租约任务到来时暂停,租约结束后自动恢复持续挖矿。 - 新增持续挖矿进程监控: - 监听矿工进程退出事件,如果在持续挖矿运行且未暂停的情况下进程意外退出,5 秒后自动重启持续挖矿。 - **状态与 UI 展示** - `ClientStatus`: - 新增 `sustainingMining` 状态,用于表示“持续挖矿中”,在界面上显示为**蓝色圆点 + 文案「持续挖矿中」**。 - `ClientProvider`: - 根据是否有租约任务 / 持续挖矿任务,区分显示: - `mining`:租约挖矿中。 - `sustainingMining`:持续挖矿中。 - 统一通过 `_getMiningInfo()` 构造当前挖矿信息(支持租约挖矿和持续挖矿),供界面展示。 - `MainScreen`: - “挖矿信息”按钮在以下状态下可用:`ClientStatus.mining` 或 `ClientStatus.sustainingMining`,并且存在 `miningInfo`。 - 点击后进入同一套挖矿信息界面。 - `MiningInfoScreen`: - 复用同一界面展示日志和当前任务信息。 - 当为**持续挖矿**时,不再显示“结束时间”和“剩余时间”区域,仅展示基本任务信息和日志。