version=2.3.27
schema=2
app_dir=C:\Users\Administrator\XiaofengVoice
installed=2026-09-30 14:25:00
updated=2026-10-22 17:00:00 【v2.3.27 · 热键对换：Ctrl+F8 与 Ctrl+Shift+F8（总监裁定）】Ctrl+F8 继续切播报模式（顺手键给高频功能），音色确认回到 Ctrl+Shift+F8——2.3.26 曾取消过音色确认键，本版恢复并按总监要求两键对调，更符合使用习惯。迁移同步调整：覆盖安装时把旧 Ctrl+F8 上的音色确认搬到 Ctrl+Shift+F8（不是丢弃）；2.3.26 已装的机器配置里没有这个键，另用一段幂等补齐。启动审计与自检第 9 项恢复「音色确认键绑上了吗」，第 10 项仍是五个录屏键加画质档。其余功能与 2.3.26 一致（三档画质、开录自检门禁、设备名播报、陈旧信号清除）。上一版 2.3.26 说明见 updated_2.3.26。
updated_2.3.26=2026-10-22 00:00:00 【v2.3.26 · 录屏三档画质 + 开录自检门禁 + 热键调整（总监需求，针对 Win11 测试机录屏无画面无声音问题）】① 三档画质（行业标准）：Ctrl+Shift+F11 循环 高清（1080p/30帧/8M） / 标准（720p/15帧/4M，默认档） / 流畅（480p/10帧/1.5M），每按一次念出档位；存 config.json 的 recording.quality_level，档位优先于旧 fps/分辨率/码率字段。② 开录自检门禁：开录前先抓 3 帧测亮度，全黑自动换 DXGI 桌面复制方式重试（双显卡机器上 GDI 抓屏全黑的正解，明确指定显示器输出、与显卡品牌无关）；仍黑就播报取消，绝不产出黑屏文件；开了 HDR 扩展色的机器会引导先关 HDR。③ 设备确认后才开录：要了系统声音或麦克风但通道没就绪时，宁可不开录也播报说明，绝不交废文件；开录时念出实际设备名（系统声音来自哪块声卡、麦克风是哪个），外置声卡用户一听就知道抓的是不是正在用的那块。④ 热键：播报模式切换改 Ctrl+F1，Ctrl+F8 恢复原有功能（两个键都能切播报模式）；窗口概览迁到裸 F2；音色确认热键取消（总监裁定，启动时自动探测播报保留）；覆盖安装走 cfg_migrate 自动迁移并备份。⑤ 修陈旧信号残留：上次异常退出残留的停止/暂停信号会让刚按下开录就结束、文件 0 字节，现在开录前主动清除。实测：高清档 1366x768@30fps H.264+AAC 冒烟通过；DXGI 与 GDI 抓屏逐字节比对一致；热键迁移六条路径自测全过；自检 10 项正常。上一版 2.3.25 说明见 updated_2.3.25。
updated_2.3.25=2026-10-21 14:40:00 【v2.3.25 · 录屏四模式 + 热键重排（总监需求）】① 录制模式从「三样一起录」改成四种可选：仅画面 / 画面+系统声音 / 画面+麦克风 / 三者全录（默认）；按 Ctrl+F11 循环切换，每按一次念出当前档位，并写回 config.json 的 recording.mode（只改这一行，不动用户注释）。没在录制时切换，下一次录制生效；录制中按下只记档位并念「本次录制保持不变，下次录制生效」——已开录的音轨不做热插拔，免得音画不同步。实测四档：仅画面成片无音轨；画面+系统声只有 system 峰值 0.70、无 mic；画面+麦克风只有 mic、无 system；三者全录两路都在；各档视轨与音轨时长差 0.09~0.10 秒。② 热键整体前移一位：Ctrl+F9 开始/停止、Ctrl+F10 暂停/继续、Ctrl+F11 切模式、Ctrl+F12 打开录屏文件夹；四键都设 scope=global，任何软件前面都能按（辅助键默认 window 作用域，焦点离开工作台就按不动，录别的软件会吃这个亏）。③ 冲突处理：Ctrl+F9 原为「音色确认」，让位后迁到 Ctrl+F8；播报模式切换（flow_watch 用 RegisterHotKey 占着 Ctrl+F8）让到 Ctrl+Shift+F8。实测 F2~F8 的 Ctrl 组合**全部已被占用**（F2 重听确认、F3 个人中心、F4 输入框、F5 恢复读屏、F6 音频闪避、F7 自检、F8 播报模式），故腾出 F8：先用 RegisterHotKey 探测 + 核对配置与代码绑定（热键走的是键盘钩子，不能只看 RegisterHotKey），再把播报模式挪到 Ctrl+Shift+F8（同一键位多按一个 Shift）。④ 覆盖安装时 config.json 走深合并、最内层键由用户旧值赢，新增 cfg_migrate.py 按「旧布局指纹」整体迁移（幂等、改前备份 config.json.bak-2.3.24），安装器与热键启动都调用；hotkey 启动再做 audit_hotkeys() 兜底，键到动作不对就当场念出来。⑤ 自检第 10 项判据加严：不再只看「键在不在」，改看「键到动作对不对」且必须 scope=global，并核对模式值；实测 10 项全部正常。⑥ 与系统自带录屏（Xbox Game Bar / 截图工具）逐项对比后维持自研方案：本机是 Windows 10 LTSC，无 Game Bar 应用包、无截图工具、无应用商店；系统工具也做不到「仅麦克风」档、无暂停、热键不可改、录制目标受「是否支持录制」限制、保存路径不可配，达不到本次的硬要求。详见桌面交付说明。上一版 2.3.24 说明见 updated_2.3.24。
updated_2.3.24=2026-10-21 12:10:00 【v2.3.24 · 新增录屏（总监需求）】支持同时录制屏幕画面与系统/麦克风声音，输出标准 MP4（H.264+AAC，Windows 自带 Media Foundation，零第三方依赖、安装包不增重）。热键：Ctrl+F10 开始/停止（先倒数三声，长音后真正开录）、Ctrl+F11 暂停/继续、Ctrl+F12 打开录屏文件夹（可在 config.json 的 ptt.aux_hotkeys 里改）。默认录主显示器原分辨率 10 帧每秒、视频 2500kbps（每分钟约 18 兆），保存到 ~\Videos\小锋录屏（config.json 的 recording.save_dir 可改；目录不可用会自动退到视频/桌面并当场念出来）。音画同步：视频按恒定帧率打点、音频按累计样本数、主循环按墙钟补静音，实测 10 秒素材视轨 10.10 秒/音轨 10.07 秒（差 30 毫秒）。异常全念出口：没麦克风/没系统声只念事实不装懂、AAC 缺失时声音旁挂同名 WAV、磁盘不足拒录、分辨率变化自动停、收尾被杀毒扫描拖慢时有看门狗补话。录制在独立进程 recorder.py 里，崩溃不影响热键与语音；录制期间自动暂停自动聚焦（auto_focus_off），结束自动恢复。自检增至 10 项（新增"录屏"），实测 10 项全部正常。实测 CPU 占用约 26% 的一个核。另：2.3.23 当时漏改 naming.py 的 VERSION，本次一并补上（现两边都是 2.3.24）。上一版 2.3.23 说明见 updated_2.3.23。
updated_2.3.23=2026-10-13 09:10:00 按总监实测反馈修两处。①【谎报军情】阻断提醒（block_alert）原先按"词面"判定：把工具结果摊平后正则搜「批量删除 / SAFE_DELETE」，而摊平文本里混着命令原文和读取、搜索回来的文件正文，于是"搜一次提到该词的日志、读一遍提到该词的文件"都会触发报警，还会断言"屏幕上会弹出确认框：按 1 允许、按 2 取消，小锋在等你决定"；实测平台侧只出现过 SAFE_DELETE_BULK_GUARD_ERROR（硬拦、不可批准），根本没有确认框，用户拿着键盘光标满屏找按钮。现改为**事件级判定**：只处理 tool_response 是"字典且带 exitCode / is_error"的载荷（这个形状只有会执行动作的工具才有，Read/Grep/Glob/Edit/Write 回带的正文天然被排除），只读 sandboxDenied / exitCode / tool_error_code / is_error 与工具自身的 error 字段，命令原文一律不参与判定；文案改成条件句，并明确给出"没弹出提示就是被直接拦下、要换做法"这句结论。回归测试 17 例全过，并重放日志里 716 条真实载荷，出声 0 条（旧版在这批载荷上有 17 次假警报）。②【语音优先级确认】链路本来就是 edge 在线 → 争渡读屏 → 系统语音慧慧，顺序无需改；真正的缺口有两个：一是"靠试到失败"才发现网络不通，失败前要干等一次 8 秒连接超时（日志实测每约 5 分钟卡一次），现加**后台主动探测**（只做一次 TCP 连通，毫秒级）把冷却提前续上，播报路径零等待；二是用户无法确认当前在用哪一档，现加 /engine 查询端点与 **Ctrl+F9 音色确认热键**（问一句"现在用的是××语音"），并在换档时补念一句说明（只在换档那一次念）。另：2.3.21 修本机回环请求被代理劫持（sitecustomize 主防线 + naming 兜底 + 两处不代理 opener）；2.3.20 起安装包不再随附语音模型；2.3.19 修 Ctrl+F4 太慢；2.3.18 接争渡读屏语音；2.3.17 新增本地离线神经语音；2.3.16 修 Ctrl+F4 假成功
