Files
ShrinkModFramework/CHANGELOG.md
T
cneicy 9755e18087
Publish UPM package / publish (push) Successful in 3s
chore: release 0.2.4
2026-08-28 04:31:04 +08:00

69 lines
3.4 KiB
Markdown

# Changelog
本文件记录 `ShrinkModFramework` 在当前工作区中的包内变更。
## [0.2.4] - 2026-08-28
### Changed
- 精确依赖 `ShrinkEventBus 2.0.1`
## [0.2.3] - 2026-08-28
### Added
- 新增 `ShrinkModLoader.LoadAuthorized(settings, authorizedDllPaths)`,只从调用方提交的精确 DLL 白名单加载外部模组。
- 恢复公共入口 `ShrinkModRuntimeBootstrap.InitializeDriver(...)`,供安全启动链显式初始化运行时驱动。
### Changed
- ContextHost 与旧加载路径不再递归扫描外部模组目录;revision 刷新只复用已授权路径。
- `autoLoadOnStartup``enableExternalDllMods``watchExternalModsDirectory` 默认关闭。
- `ShrinkModFrameworkSettings` 优先从标准 ShrinkSDK 资源目录加载,创建菜单同步写入该目录。
### Fixed
- 授权 DLL 替换失败时继续恢复此前已提交的 SHA-256 revision 与模组组合。
## [0.2.1] - 2026-08-26
- 将 EventBus 生成器源码和 fixture builder 收敛到各自 UPM 包的 `Tools~`,并为独立包导出提供随包分析器回退。
- 修正 Unity 2022 中 `PackageInfo` 的命名空间冲突,确保包可独立编译。
## [0.2.0] - 2026-08-24
### Added
- 新增 `ShrinkModContextHost` / `ShrinkModComponentSource`,把模组生命周期、Registry、Network handler 与 Harmony lease 纳入可逆组件事务。
- 新增真实外部 DLL fixture 测试,覆盖失败替换恢复、损坏文件、依赖缺失、watcher 去抖与删除卸载。
- 注册表新增 owner namespace、显式优先级覆盖、同优先级冲突拒绝和覆盖候选诊断;owner 卸载时会恢复下一个覆盖或基础项。
- `ShrinkModContext` 新增 `RegisterContent` / `OverrideContent`,模组不再手工传入 owner;查询改为 `IReadOnlyShrinkModRegistry<T>`
### Changed
- `ShrinkModLoader` 默认使用 ContextHost;外部 DLL 以 SHA-256 作为 revision,同内容幂等。
- watcher 监听新增、修改、删除与重命名,并把 burst 文件事件折叠为一次主线程组合提交。
- 移除允许任意完整键的 `ShrinkModRegistry.Register(owner, key, value)`;基础内容必须通过 owner namespace 注册。
### Fixed
- 新模组 apply 失败时同时恢复旧组件组合和外部 DLL revision 缓存,避免失败程序集继续被当作当前版本。
- 删除 DLL 时同步清理程序集解析路径缓存;EditMode 创建 watcher driver 时不再调用 `DontDestroyOnLoad`
## [0.1.0] - 2026-04-07
### Added
- 建立模组声明与生命周期基础:`[ShrinkMod]``[ShrinkModDependency]``IShrinkMod``ShrinkModBase``ShrinkModLoader`、注册表与运行时设置。
- 默认启动入口改为 `[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterAssembliesLoaded)]` 自动引导,不再强依赖场景内手挂 bootstrap。
- 支持扫描和增量装载外部 DLL 模组。
- 预留可选 Harmony 热补丁与模组网络同步抽象层。
- 新增 `ShrinkSDK/Mod/导出 Mod SDK 开发包`,可导出给外部模组开发者使用的 `GeneratedModSdk/`
- 新增 `ShrinkSDK/Mod/生成仓库内模组模板(推荐)`,可在当前 Unity 工程内快速生成模组模板。
- 新增 `ShrinkSDK/Mod/生成外部模组模板`,可生成独立 DLL 模组工程。
### Changed
- 运行时目录结构统一拆分为 `Bootstrap / Core / Metadata / Registry / Loading / Network / Integration`
- README 同步更新新的目录结构、模板入口、SDK 导出方式与推荐工作流。