# Changelog 本文件记录 `ShrinkDataSaver` 在当前工作区中的包内变更。 ## [2.5.0] - 2026-11-06 ### Added - `LocalStorageProvider` 新增 `LocalStorageCommitStrategy`;`RenameOnly` 通过宿主注入的覆盖移动委托提交,适用于不支持原子替换的沙箱文件系统。 - `ShrinkDataSaverPlatform.Initialize(IStorageProvider, ...)` 与两套 `ShrinkDataSaverRuntimeConfig.Storage` 支持宿主注入存储实现。 ### Changed - `RenameOnly` 保留 `.bak1` / `.bak2` 两级备份,并在读取或下一次写入前从备份恢复中断的提交;孤立临时文件不会被当成完整存档。 - `DeleteAsync` 会同时清理主文件、两级备份和临时文件。 ## [2.2.2] - 2026-08-28 ### Changed - `ShrinkDataSaverSettings` 优先从 `GameAssets/Runtime/Data/ShrinkSDK/ShrinkDataSaverSettings` 加载,并保留旧根路径回退。 - 新增 `ShrinkSDK/存档/创建设置`,统一在标准资源目录创建配置。 ## [2.2.0] - 2026-05-18 ### Added - 新增 `ShrinkDataSaverRuntime`,把真实初始化入口与 autosave 生命周期驱动下沉到运行时层。 ### Changed - `ShrinkDataSaverBootstrap` 现主要承担旧项目兼容入口职责;实际初始化改为委托给 `ShrinkDataSaverRuntime`。 - 该调整为 `ShrinkApp` 等统一宿主接管初始化顺序铺路,同时保留旧项目直接挂 bootstrap 的使用方式。 ## [2.1.0] - 2026-05-15 ### Added - `ShrinkSave.GetRecentSlotIndex()` 与 `ShrinkSave.GetRecommendedContinueSlotAsync()`,用于把“最近游玩槽位 / 继续游戏”能力下沉到包内。 - 包内测试补充了主文件损坏时的备份回退、最近槽位回退、以及本地存储双副本轮换验证。 ### Changed - `LocalStorageProvider` 升级为异步文件流读写,并在提交时使用主文件原子替换。 - 本地存储新增 `.bak1` / `.bak2` 双副本轮换备份。 - `ShrinkSave` 与 `ShrinkSettings` 在主文件损坏或缺失时,会自动从备份恢复并修复主文件。 - `ShrinkSave.DeleteSlotAsync(...)` 现在会同时清理主文件、备份文件和临时文件,并在删除最近游玩槽位后自动回退记录。 ## [2.0.1] - 2026-04-07 ### Changed - 数据查看器编辑器入口迁移到 `ShrinkSDK/存档/数据查看器`。 - README 同步更新新的菜单路径,统一到 `ShrinkSDK` 顶栏下。