Files
msime-windows/.github
Jia Sui 0b11322dfd fix(installer): 覆盖安装清空输入统计库——保留与迁移两份名单补上 stats.db
完整包升级走 CleanAppDataExceptUserFiles,它按 IsPreservedAppDataItem 白名单清空数据目录,
不在名单里的项一律删。名单只有 msime_user.db*、config.toml、config.base.toml、skins 和标记
文件,0.8.0 才落地的 stats.db(输入统计,ffcd1aee)从不在其中,于是每次覆盖安装都被
DeleteFile 删掉;Store::Open 固定 SQLITE_OPEN_CREATE,文件一没就立刻重建空库,用户看到的是
统计数字被清零而不是报错。换数据目录安装是同一条缝:MigrateUserDataDir 的 robocopy 清单同样
没有它,文件留在旧目录,随后随 TryDeleteTree(OldDir) 一起没了。

本次把 stats.db 及其三个 sidecar 同时补进覆盖安装保留名单和换数据目录迁移名单,并加一个
静态反解这两份清单的测试互相交叉校验。

- msime_setup.iss:新增 IsUserStatisticsDatabase(stats.db / -wal / -shm / -journal)并接入
  IsPreservedAppDataItem;MigrateUserDataDir 的 robocopy 清单追加同样四个文件名。sidecar 必须
  一起带:安装器先 StopImeProcesses 强杀 Server,WAL 里可能还有尚未 checkpoint 的写入,
  只搬主库会丢掉最后一批数据。卸载路径不动,卸载语义本就是删光用户数据。
- installer/tests/preserve-user-data.ps1(新增):从 iss 源码反解保留名单与迁移名单,断言必需
  名单逐项在两边、两份名单互为子集、Server 侧 stats_pipe.cpp 的库名也在两边,并设规模下限
  防解析器自身失效造成的假绿。注册进 ci.yml 的 packaging job。
2026-09-28 09:13:09 +08:00
..