﻿0.3.14 新增已保存飞行表管理（OS 1.6.34 源码校验）
右键 OS 矿机 → OS 矿机 → 已保存飞行表。
支持开始 / 停止 / 重启 / 恢复普通任务、修改钱包矿池算法参数、开机挖矿及删除。
每次操作刷新并校验矿机本地 ID 和 revision；运行中的核心不能修改或删除。
勾选第三方核心确认后执行对应操作，删除另有一次确认；等待最终操作回执再记录结果。

以下一键切换流程继续有效：
群控 0.3.13 — HiveOS 飞行表一键切换（2026-10-25）

使用方法
1. 在群控勾选 OS 矿机，点击“一键切换”，再点击底部“一键切换飞行表”。
2. 首次点击“连接 OS”，填写矿机本地网页端口（默认 9999）和密码。
   一次连接可为选中的矿机设置相同密码；密码不同的机器可分别勾选后配置。
3. 选择 HiveOS 导出的 JSON 文件，或直接粘贴 JSON；勾选第三方核心及切换任务确认项，点击“读取飞行表”。
4. 多个飞行表可在下拉框选择一个，填写钱包地址和“开机自动挖矿”选项，点击“一键切换”。
   群控会为每台矿机检查、下载或复用已保存的核心，再切换。矿工名使用各客户端自己的设置。
5. 每台矿机的处理结果显示在弹窗表格和维护日志中。主列表仍显示客户端实际广播的运行和算力数据。
   “已切换，等待算力回报”只表示客户端已选中并启动该任务，不表示已经取得算力或收益。

支持范围
按当前 OS 1.6.28 自定义飞行表接口版本 1 实现。需要 OS 客户端广播 / 网页状态中的 custom_protocol=1。
支持 HiveOS miner=custom 的飞行表；对象、数组、多个导出对象及自定义字段由 OS 原生解析器处理。
每份 JSON 上限 64 KiB，最多 16 个任务；一次选择一个任务批量下发，最多同时处理 4 台。
相同原始飞行表和钱包优先复用各矿机自己的已保存记录；不会将 A 矿机的缓存 ID 下发到 B 矿机。
修改开机选项后重新读取 revision，再启动。过期记录、其他操作抢占、下载错误或不完整回执均不会报成功。
不改变矿机现有超频、风扇、矿工名、全局自动开挖开关。超频保留现有 8 卡紧凑布局。
任务开机选项需要矿机全局开机运行与自动开挖总开关同时开启才生效。
若当前正在运行另一张自定义飞行表，导入新核心前会停止它；下载失败时不会自动恢复旧任务。
若当前是普通核心任务，OS 在核心检查通过并执行切换时才停止普通任务。

连接、结果与取消
飞行表使用现有鉴权 HTTP /api/custom-debug 接口，不能通过旧版群控 UDP 或云中继下发完整飞行表。
群控需要通过局域网 / VPN 访问矿机网页，密码沿用“连接 OS”的本机 DPAPI 加密存储，不放入 URL 或日志。
每次写操作前验证矿机身份和接口能力；拒绝跳转，避免密码被转发到其他地址。
HTTP 200 或操作已受理不等于成功。群控按 operation id 等待最终回执，再检查被选中的缓存记录和任务状态。
结果轮询不刷日志。每台矿机仅记录一次本轮最终结果；个别失败不阻止其他矿机完成。
“停止下发”中止后续请求和结果等待，已经提交到矿机的操作不会被撤销；关闭后请在矿机网页或群控状态中核对。
上次导入的 JSON、选择项、钱包和开机选项保存在群控本地，下次打开可继续读取；第三方核心确认不自动勾选。

验证边界
验证使用本机 HTTP 测试端、真实 WinForms 控件、真实群控协议及 OS 1.6.28 源码的隔离副本。
OS 契约测试回放群控实际生成的 JSON，核对鉴权、飞行表解析、矿工名、缓存 ID、revision、开机选项及异步启停回执。
没有向实体矿机切换飞行表、下载或运行第三方核心，也没有修改实体矿机超频。
真实窗口截图和验证结果：tests/flight-review-20261025/index.html。
