--- title: Checkpoint 2026-09-02 10:03:40 UTC [234316afba] type: checkpoint permalink: main/projects/4111f53b-afa5-48e1-aaf8-d70a7edc0638/checkpoint-2026-09-02-10-03-40-utc-234316afba stable_id: 07689f07-a36f-48bd-bd6f-6c8294f22eda scope: project project_id: 4111f53b-afa5-48e1-aaf8-d70a7edc0638 memory_type: checkpoint status: active revision: 1 restored_from_commit: 6a6a895eafcca6052e81a14fca103a42635dd1c2 created_at: '2026-09-23T14:52:38.121701+00:00' updated_at: '2026-09-23T14:52:38.121759+00:00' tags: - checkpoint - review - wpf - safety - pending-fixes --- 2026-09-02 代码审查(范围 3ee0022..10c013c),未修改代码。构建 0 警告 0 错误,真实 Data.bar 测试 50/50 通过。确认待修问题:1)目标版本保护被删除,DetectGame 只标 detected,ApplyAsync 对任意版本直接备份并覆盖 Data.bar,违反仅支持 100.19.17293.0 的安全约束;2)实体/卡牌/技能/战术/批量保存后没有更新 Original 基线,working.bar 已写入而 UI 仍标记修改,点“撤销未保存”会显示原值但不会撤销 working.bar,后续 UI 与导出内容不一致;3)ExportMod 先递归删除现有 Mod Data 目录后逐文件写入,非事务化,失败会留下部分启用 Mod;age3-mod-status.json 也直接覆盖而非原子替换;4)卡牌时代只校验非负但 UI 声明 0-4,发送次数允许任意负数而 UI 仅声明 -1 无限;5)SanitizeName 仅检查完整名称,con.txt 等 Windows 设备名带扩展名会通过,实际创建目录失败,现有测试还错误地断言 con.txt 合法;6)AppPaths 新增 %LOCALAPPDATA% 回退与默认自动清理超过 10 个手动/安全备份,和已确认的安装目录存储、不自动删除备份要求冲突;7)已存在但禁用的 Mod 被重新启用时返回 false,UI误报“已是启用状态”;8)人口规则页使用不可滚动 StackPanel,在最小窗口高度下底部列表可能裁切。生成的增量 Mod XML结构测试通过,但仍未经过真实游戏加载验证。下一步需用户授权后按优先级修复,建议先处理 1-3。