From d74c2f08ca76b867a5df76867728a48dd5332472 Mon Sep 17 00:00:00 2001 From: cneicy Date: Tue, 18 Aug 2026 18:06:34 +0800 Subject: [PATCH] =?UTF-8?q?feat(packages):=20=E5=86=85=E7=BD=AE=20SDK=20?= =?UTF-8?q?=E5=8C=85=E5=B9=B6=E5=AE=8C=E5=96=84=20ContextLoader=20?= =?UTF-8?q?=E9=9B=86=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将 ShrinkEventBus、ShrinkDataSaver 及其 EventBus 集成从 gitlink 转为仓库直接维护的完整 UPM 包,补齐运行时、编辑器工具、测试与文档 - 新增 Command 和 Network 的 App 集成组件,支持 ContextLoader 服务发布、可逆注销及 Network Loopback 生命周期管理 - 更新 Starter 与演示组合逻辑,缺失模块时可注册、已有兼容安装器时可覆盖,并补充宿主启动断言 - 升级内部包依赖与 Shared CodeGen 包定义,放宽 Integration.App 包的 Git 忽略规则 - 将独立服务器生成器改为基于已编译程序集的语义扫描,支持 partial、复杂泛型、命名冲突检测及模板 SHA-256 覆写保护 - 新增 Network 语义扫描、模板保护和 App 组件生命周期测试 - 新增真实 UPM 消费工程验证脚本,校验内部版本一致性、程序集加载及 EditMode 测试 - 重构当前架构文档并归档已完成的 Cordis 迁移与旧代码地图 --- .gitignore | 8 +- .../Demo2/Runtime/Demo2AppIntegration.cs | 13 +- .../PlayMode/Demo2.PlayMode.Tests.asmdef | 2 + .../Tests/PlayMode/Demo2PlayModeTests.cs | 11 + .../Runtime/ReplacedPersonAppIntegration.cs | 14 +- .../ReplacedPerson.PlayMode.Tests.asmdef | 2 +- .../PlayMode/ReplacedPersonSceneTests.cs | 11 + Assets/Modules/ShrinkApp.Core/package.json | 3 +- .../ShrinkAppBasicContextComposition.cs | 18 +- .../ShrinkApp.Starter.Basic/package.json | 2 +- .../CHANGELOG.md | 11 + .../CHANGELOG.md.meta | 7 + .../ShrinkCommand.Integration.App/README.md | 23 + .../README.md.meta | 7 + .../Runtime.meta | 8 + .../ShrinkCommand.Integration.App.asmdef | 18 + .../ShrinkCommand.Integration.App.asmdef.meta | 7 + .../Runtime/ShrinkCommandAppComponent.cs | 49 ++ .../Runtime/ShrinkCommandAppComponent.cs.meta | 11 + .../Runtime/ShrinkCommandAppInstaller.cs | 48 ++ .../Runtime/ShrinkCommandAppInstaller.cs.meta | 11 + .../package.json | 23 + .../package.json.meta | 7 + .../package.json | 4 +- .../package.json | 6 +- Assets/Modules/ShrinkCommand/package.json | 1 + .../ShrinkContext.AppAdapter/README.md | 6 +- .../Runtime/ShrinkAppInstallerComponent.cs | 4 +- .../Runtime/ShrinkAppLoaderBootstrapper.cs | 2 +- .../ShrinkContext.AppAdapter/package.json | 4 +- Assets/Modules/ShrinkContext.Core/README.md | 4 +- Assets/Modules/ShrinkDataSaver | 1 - .../package.json | 4 +- .../ShrinkDataSaver.Integration.EventBus | 1 - .../CHANGELOG.md | 15 + .../CHANGELOG.md.meta | 7 + .../DataSaverEventBusBridge.cs | 107 +++ .../DataSaverEventBusBridge.cs.meta | 3 + .../DataSaverEvents.cs | 63 ++ .../DataSaverEvents.cs.meta | 3 + .../README.md | 155 ++++ .../README.md.meta | 7 + ...hrinkDataSaver.Integration.EventBus.asmdef | 19 + ...DataSaver.Integration.EventBus.asmdef.meta | 3 + .../ShrinkDataSaverEventBusComponent.cs | 35 + .../ShrinkDataSaverEventBusComponent.cs.meta | 11 + .../package.json | 21 + .../package.json.meta | 7 + Assets/Modules/ShrinkDataSaver/CHANGELOG.md | 35 + .../Modules/ShrinkDataSaver/CHANGELOG.md.meta | 7 + Assets/Modules/ShrinkDataSaver/Editor.meta | 3 + .../Editor/ShrinkDataSaver.Editor.asmdef | 15 + .../Editor/ShrinkDataSaver.Editor.asmdef.meta | 3 + .../Editor/ShrinkDataSaverEditorWindow.cs | 378 +++++++++ .../ShrinkDataSaverEditorWindow.cs.meta | 3 + Assets/Modules/ShrinkDataSaver/README.md | 538 ++++++++++++ Assets/Modules/ShrinkDataSaver/README.md.meta | 3 + Assets/Modules/ShrinkDataSaver/Runtime.meta | 3 + .../ShrinkDataSaver/Runtime/AssemblyInfo.cs | 3 + .../Runtime/AssemblyInfo.cs.meta | 11 + .../ShrinkDataSaver/Runtime/DataSerializer.cs | 28 + .../Runtime/DataSerializer.cs.meta | 3 + .../Runtime/IStorageProvider.cs | 14 + .../Runtime/IStorageProvider.cs.meta | 3 + .../Runtime/LocalStorageProvider.cs | 197 +++++ .../Runtime/LocalStorageProvider.cs.meta | 3 + .../ShrinkDataSaver/Runtime/MigrationChain.cs | 60 ++ .../Runtime/MigrationChain.cs.meta | 3 + .../ShrinkDataSaver/Runtime/SaveEncryptor.cs | 86 ++ .../Runtime/SaveEncryptor.cs.meta | 3 + .../ShrinkDataSaver/Runtime/SaveTypes.cs | 135 +++ .../ShrinkDataSaver/Runtime/SaveTypes.cs.meta | 3 + .../Runtime/ShrinkDataSaver.Runtime.asmdef | 17 + .../ShrinkDataSaver.Runtime.asmdef.meta | 3 + .../Runtime/ShrinkDataSaverBootstrap.cs | 44 + .../Runtime/ShrinkDataSaverBootstrap.cs.meta | 3 + .../Runtime/ShrinkDataSaverRuntime.cs | 98 +++ .../Runtime/ShrinkDataSaverRuntime.cs.meta | 11 + .../Runtime/ShrinkDataSaverSettings.cs | 61 ++ .../Runtime/ShrinkDataSaverSettings.cs.meta | 3 + .../ShrinkDataSaver/Runtime/ShrinkSave.cs | 673 +++++++++++++++ .../Runtime/ShrinkSave.cs.meta | 3 + .../ShrinkDataSaver/Runtime/ShrinkSettings.cs | 180 ++++ .../Runtime/ShrinkSettings.cs.meta | 3 + Assets/Modules/ShrinkDataSaver/Tests.meta | 8 + .../Tests/DataSerializerTests.cs | 81 ++ .../Tests/DataSerializerTests.cs.meta | 11 + .../Tests/MigrationChainTests.cs | 125 +++ .../Tests/MigrationChainTests.cs.meta | 11 + .../Tests/MockStorageProvider.cs | 54 ++ .../Tests/MockStorageProvider.cs.meta | 11 + .../Tests/SaveEncryptorTests.cs | 89 ++ .../Tests/SaveEncryptorTests.cs.meta | 11 + .../ShrinkDataSaver/Tests/SaveTypesTests.cs | 134 +++ .../Tests/SaveTypesTests.cs.meta | 11 + .../Tests/ShrinkDataSaver.Tests.asmdef | 25 + .../Tests/ShrinkDataSaver.Tests.asmdef.meta | 7 + .../ShrinkDataSaver/Tests/ShrinkSaveTests.cs | 629 ++++++++++++++ .../Tests/ShrinkSaveTests.cs.meta | 11 + .../Tests/ShrinkSettingsTests.cs | 212 +++++ .../Tests/ShrinkSettingsTests.cs.meta | 11 + Assets/Modules/ShrinkDataSaver/package.json | 21 + .../Modules/ShrinkDataSaver/package.json.meta | 3 + Assets/Modules/ShrinkEventBus | 1 - Assets/Modules/ShrinkEventBus/.gitignore | 99 +++ Assets/Modules/ShrinkEventBus/Benchmark.txt | 83 ++ .../Modules/ShrinkEventBus/Benchmark.txt.meta | 7 + Assets/Modules/ShrinkEventBus/CHANGELOG.md | 58 ++ .../Modules/ShrinkEventBus/CHANGELOG.md.meta | 7 + Assets/Modules/ShrinkEventBus/CodeGen.meta | 8 + .../ShrinkEventBus/CodeGen/Editor.meta | 8 + .../CodeGen/Editor/EventBusILPostProcessor.cs | 375 +++++++++ .../Editor/EventBusILPostProcessor.cs.meta | 11 + .../Editor/PostProcessorAssemblyResolver.cs | 107 +++ .../PostProcessorAssemblyResolver.cs.meta | 3 + .../Editor/PostProcessorReflectionImporter.cs | 37 + .../PostProcessorReflectionImporter.cs.meta | 3 + .../Unity.ShrinkEventBus.CodeGen.asmdef | 23 + .../Unity.ShrinkEventBus.CodeGen.asmdef.meta | 7 + Assets/Modules/ShrinkEventBus/Editor.meta | 3 + .../Editor/EventBusViewerWindow.cs | 793 ++++++++++++++++++ .../Editor/EventBusViewerWindow.cs.meta | 3 + .../Editor/ShrinkEventBus.Editor.asmdef | 13 + .../Editor/ShrinkEventBus.Editor.asmdef.meta | 3 + Assets/Modules/ShrinkEventBus/LICENSE | 21 + Assets/Modules/ShrinkEventBus/LICENSE.meta | 7 + Assets/Modules/ShrinkEventBus/README.md | 629 ++++++++++++++ Assets/Modules/ShrinkEventBus/README.md.meta | 3 + Assets/Modules/ShrinkEventBus/Runtime.meta | 3 + .../ShrinkEventBus/Runtime/AssemblyInfo.cs | 3 + .../Runtime/AssemblyInfo.cs.meta | 11 + .../ShrinkEventBus/Runtime/Attributes.cs | 42 + .../ShrinkEventBus/Runtime/Attributes.cs.meta | 3 + .../Runtime/EventAutoRegHelper.cs | 36 + .../Runtime/EventAutoRegHelper.cs.meta | 3 + .../ShrinkEventBus/Runtime/EventBase.cs | 146 ++++ .../ShrinkEventBus/Runtime/EventBase.cs.meta | 3 + .../ShrinkEventBus/Runtime/EventBus.cs | 129 +++ .../ShrinkEventBus/Runtime/EventBus.cs.meta | 3 + .../Runtime/EventBusBenchmark.cs | 519 ++++++++++++ .../Runtime/EventBusBenchmark.cs.meta | 3 + .../Runtime/EventBusGeneratedRegistry.cs | 53 ++ .../Runtime/EventBusGeneratedRegistry.cs.meta | 11 + .../Runtime/EventBusRegHelper.cs | 193 +++++ .../Runtime/EventBusRegHelper.cs.meta | 2 + .../Runtime/EventCloneUtility.cs | 75 ++ .../Runtime/EventCloneUtility.cs.meta | 11 + .../Runtime/EventHandlerInfo.cs | 141 ++++ .../Runtime/EventHandlerInfo.cs.meta | 3 + .../ShrinkEventBus/Runtime/EventPool.cs | 47 ++ .../ShrinkEventBus/Runtime/EventPool.cs.meta | 3 + .../ShrinkEventBus/Runtime/EventPriority.cs | 27 + .../Runtime/EventPriority.cs.meta | 3 + .../ShrinkEventBus/Runtime/EventResult.cs | 9 + .../Runtime/EventResult.cs.meta | 3 + .../ShrinkEventBus/Runtime/Exceptions.cs | 20 + .../ShrinkEventBus/Runtime/Exceptions.cs.meta | 3 + .../ShrinkEventBus/Runtime/IShrinkEventBus.cs | 109 +++ .../Runtime/IShrinkEventBus.cs.meta | 11 + .../ShrinkEventBus/Runtime/ListenerList.cs | 262 ++++++ .../Runtime/ListenerList.cs.meta | 3 + .../Runtime/ShrinkEventBus.Runtime.asmdef | 12 + .../ShrinkEventBus.Runtime.asmdef.meta | 7 + .../Runtime/ShrinkEventBusBuilder.cs | 76 ++ .../Runtime/ShrinkEventBusBuilder.cs.meta | 11 + .../Runtime/ShrinkEventBusInstance.cs | 718 ++++++++++++++++ .../Runtime/ShrinkEventBusInstance.cs.meta | 11 + Assets/Modules/ShrinkEventBus/Tests.meta | 8 + .../Tests/EventBusDispatchTests.cs | 200 +++++ .../Tests/EventBusDispatchTests.cs.meta | 11 + .../Tests/EventBusPriorityTests.cs | 120 +++ .../Tests/EventBusPriorityTests.cs.meta | 11 + .../Tests/EventBusRegistrationTests.cs | 228 +++++ .../Tests/EventBusRegistrationTests.cs.meta | 11 + .../Tests/EventBusSubscriptionTests.cs | 94 +++ .../Tests/EventBusSubscriptionTests.cs.meta | 11 + .../Tests/ShrinkEventBus.Tests.asmdef | 23 + .../Tests/ShrinkEventBus.Tests.asmdef.meta | 7 + Assets/Modules/ShrinkEventBus/img1.png | Bin 0 -> 92955 bytes Assets/Modules/ShrinkEventBus/img1.png.meta | 169 ++++ Assets/Modules/ShrinkEventBus/img2.png | Bin 0 -> 75197 bytes Assets/Modules/ShrinkEventBus/img2.png.meta | 169 ++++ Assets/Modules/ShrinkEventBus/package.json | 19 + .../Modules/ShrinkEventBus/package.json.meta | 3 + .../Tests/ShrinkModContextHostTests.cs | 8 +- .../CHANGELOG.md | 11 + .../CHANGELOG.md.meta | 7 + .../ShrinkNetwork.Integration.App/README.md | 23 + .../README.md.meta | 7 + .../Runtime.meta | 8 + .../ShrinkNetwork.Integration.App.asmdef | 18 + .../ShrinkNetwork.Integration.App.asmdef.meta | 7 + .../Runtime/ShrinkNetworkAppComponent.cs | 89 ++ .../Runtime/ShrinkNetworkAppComponent.cs.meta | 11 + .../Runtime/ShrinkNetworkAppInstaller.cs | 49 ++ .../Runtime/ShrinkNetworkAppInstaller.cs.meta | 11 + .../ShrinkNetwork.Integration.App/Tests.meta | 8 + ...ShrinkNetwork.Integration.App.Tests.asmdef | 25 + ...kNetwork.Integration.App.Tests.asmdef.meta | 7 + .../Tests/ShrinkNetworkAppComponentTests.cs | 98 +++ .../ShrinkNetworkAppComponentTests.cs.meta | 11 + .../package.json | 23 + .../package.json.meta | 7 + .../package.json | 4 +- .../ShrinkNetwork/Editor/AssemblyInfo.cs | 3 + .../ShrinkNetwork/Editor/AssemblyInfo.cs.meta | 11 + .../ShrinkDedicatedServerScaffoldGenerator.cs | 405 ++++----- .../ShrinkNetworkSemanticScanner.cs | 409 +++++++++ .../ShrinkNetworkSemanticScanner.cs.meta | 11 + .../Editor/ShrinkNetwork.Editor.asmdef | 17 + .../Editor/ShrinkNetwork.Editor.asmdef.meta | 7 + Assets/Modules/ShrinkNetwork/README.md | 10 +- Assets/Modules/ShrinkNetwork/Tests.meta | 8 + .../Modules/ShrinkNetwork/Tests/Editor.meta | 8 + .../Editor/ShrinkNetwork.Editor.Tests.asmdef | 23 + .../ShrinkNetwork.Editor.Tests.asmdef.meta | 7 + .../ShrinkNetworkSemanticScannerTests.cs | 138 +++ .../ShrinkNetworkSemanticScannerTests.cs.meta | 11 + Assets/Modules/ShrinkNetwork/package.json | 1 + .../Editor/ShrinkShared.CodeGen.asmdef | 15 +- Assets/Modules/ShrinkShared.CodeGen/README.md | 5 + .../ShrinkShared.CodeGen/README.md.meta | 7 + .../Modules/ShrinkShared.CodeGen/package.json | 15 + .../ShrinkShared.CodeGen/package.json.meta | 7 + Assets/Modules/ShrinkTutorial/package.json | 3 +- Assets/Resources/ShrinkAppComposition.asset | 4 + DESIGN.md | 402 ++++----- .../Archive/CORDIS_MIGRATION.completed.md | 4 +- Docs/Archive/DESIGN-2026-08-16.md | 308 +++++++ Docs/Archive/README.md | 10 + .../codebase-map-2026-05-23/ARCHITECTURE.md | 101 +++ .../codebase-map-2026-05-23/CONCERNS.md | 66 ++ .../codebase-map-2026-05-23/CONVENTIONS.md | 76 ++ .../codebase-map-2026-05-23/INTEGRATIONS.md | 75 ++ .../Archive/codebase-map-2026-05-23/README.md | 5 + Docs/Archive/codebase-map-2026-05-23/STACK.md | 74 ++ .../codebase-map-2026-05-23/STRUCTURE.md | 119 +++ .../codebase-map-2026-05-23/TESTING.md | 65 ++ Tools/UpmConsumerValidation/README.md | 22 + .../Validate-UpmConsumer.ps1 | 273 ++++++ 240 files changed, 13647 insertions(+), 545 deletions(-) create mode 100644 Assets/Modules/ShrinkCommand.Integration.App/CHANGELOG.md create mode 100644 Assets/Modules/ShrinkCommand.Integration.App/CHANGELOG.md.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.App/README.md create mode 100644 Assets/Modules/ShrinkCommand.Integration.App/README.md.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.App/Runtime.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.App/Runtime/ShrinkCommand.Integration.App.asmdef create mode 100644 Assets/Modules/ShrinkCommand.Integration.App/Runtime/ShrinkCommand.Integration.App.asmdef.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.App/Runtime/ShrinkCommandAppComponent.cs create mode 100644 Assets/Modules/ShrinkCommand.Integration.App/Runtime/ShrinkCommandAppComponent.cs.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.App/Runtime/ShrinkCommandAppInstaller.cs create mode 100644 Assets/Modules/ShrinkCommand.Integration.App/Runtime/ShrinkCommandAppInstaller.cs.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.App/package.json create mode 100644 Assets/Modules/ShrinkCommand.Integration.App/package.json.meta delete mode 160000 Assets/Modules/ShrinkDataSaver delete mode 160000 Assets/Modules/ShrinkDataSaver.Integration.EventBus create mode 100644 Assets/Modules/ShrinkDataSaver.Integration.EventBus/CHANGELOG.md create mode 100644 Assets/Modules/ShrinkDataSaver.Integration.EventBus/CHANGELOG.md.meta create mode 100644 Assets/Modules/ShrinkDataSaver.Integration.EventBus/DataSaverEventBusBridge.cs create mode 100644 Assets/Modules/ShrinkDataSaver.Integration.EventBus/DataSaverEventBusBridge.cs.meta create mode 100644 Assets/Modules/ShrinkDataSaver.Integration.EventBus/DataSaverEvents.cs create mode 100644 Assets/Modules/ShrinkDataSaver.Integration.EventBus/DataSaverEvents.cs.meta create mode 100644 Assets/Modules/ShrinkDataSaver.Integration.EventBus/README.md create mode 100644 Assets/Modules/ShrinkDataSaver.Integration.EventBus/README.md.meta create mode 100644 Assets/Modules/ShrinkDataSaver.Integration.EventBus/ShrinkDataSaver.Integration.EventBus.asmdef create mode 100644 Assets/Modules/ShrinkDataSaver.Integration.EventBus/ShrinkDataSaver.Integration.EventBus.asmdef.meta create mode 100644 Assets/Modules/ShrinkDataSaver.Integration.EventBus/ShrinkDataSaverEventBusComponent.cs create mode 100644 Assets/Modules/ShrinkDataSaver.Integration.EventBus/ShrinkDataSaverEventBusComponent.cs.meta create mode 100644 Assets/Modules/ShrinkDataSaver.Integration.EventBus/package.json create mode 100644 Assets/Modules/ShrinkDataSaver.Integration.EventBus/package.json.meta create mode 100644 Assets/Modules/ShrinkDataSaver/CHANGELOG.md create mode 100644 Assets/Modules/ShrinkDataSaver/CHANGELOG.md.meta create mode 100644 Assets/Modules/ShrinkDataSaver/Editor.meta create mode 100644 Assets/Modules/ShrinkDataSaver/Editor/ShrinkDataSaver.Editor.asmdef create mode 100644 Assets/Modules/ShrinkDataSaver/Editor/ShrinkDataSaver.Editor.asmdef.meta create mode 100644 Assets/Modules/ShrinkDataSaver/Editor/ShrinkDataSaverEditorWindow.cs create mode 100644 Assets/Modules/ShrinkDataSaver/Editor/ShrinkDataSaverEditorWindow.cs.meta create mode 100644 Assets/Modules/ShrinkDataSaver/README.md create mode 100644 Assets/Modules/ShrinkDataSaver/README.md.meta create mode 100644 Assets/Modules/ShrinkDataSaver/Runtime.meta create mode 100644 Assets/Modules/ShrinkDataSaver/Runtime/AssemblyInfo.cs create mode 100644 Assets/Modules/ShrinkDataSaver/Runtime/AssemblyInfo.cs.meta create mode 100644 Assets/Modules/ShrinkDataSaver/Runtime/DataSerializer.cs create mode 100644 Assets/Modules/ShrinkDataSaver/Runtime/DataSerializer.cs.meta create mode 100644 Assets/Modules/ShrinkDataSaver/Runtime/IStorageProvider.cs create mode 100644 Assets/Modules/ShrinkDataSaver/Runtime/IStorageProvider.cs.meta create mode 100644 Assets/Modules/ShrinkDataSaver/Runtime/LocalStorageProvider.cs create mode 100644 Assets/Modules/ShrinkDataSaver/Runtime/LocalStorageProvider.cs.meta create mode 100644 Assets/Modules/ShrinkDataSaver/Runtime/MigrationChain.cs create mode 100644 Assets/Modules/ShrinkDataSaver/Runtime/MigrationChain.cs.meta create mode 100644 Assets/Modules/ShrinkDataSaver/Runtime/SaveEncryptor.cs create mode 100644 Assets/Modules/ShrinkDataSaver/Runtime/SaveEncryptor.cs.meta create mode 100644 Assets/Modules/ShrinkDataSaver/Runtime/SaveTypes.cs create mode 100644 Assets/Modules/ShrinkDataSaver/Runtime/SaveTypes.cs.meta create mode 100644 Assets/Modules/ShrinkDataSaver/Runtime/ShrinkDataSaver.Runtime.asmdef create mode 100644 Assets/Modules/ShrinkDataSaver/Runtime/ShrinkDataSaver.Runtime.asmdef.meta create mode 100644 Assets/Modules/ShrinkDataSaver/Runtime/ShrinkDataSaverBootstrap.cs create mode 100644 Assets/Modules/ShrinkDataSaver/Runtime/ShrinkDataSaverBootstrap.cs.meta create mode 100644 Assets/Modules/ShrinkDataSaver/Runtime/ShrinkDataSaverRuntime.cs create mode 100644 Assets/Modules/ShrinkDataSaver/Runtime/ShrinkDataSaverRuntime.cs.meta create mode 100644 Assets/Modules/ShrinkDataSaver/Runtime/ShrinkDataSaverSettings.cs create mode 100644 Assets/Modules/ShrinkDataSaver/Runtime/ShrinkDataSaverSettings.cs.meta create mode 100644 Assets/Modules/ShrinkDataSaver/Runtime/ShrinkSave.cs create mode 100644 Assets/Modules/ShrinkDataSaver/Runtime/ShrinkSave.cs.meta create mode 100644 Assets/Modules/ShrinkDataSaver/Runtime/ShrinkSettings.cs create mode 100644 Assets/Modules/ShrinkDataSaver/Runtime/ShrinkSettings.cs.meta create mode 100644 Assets/Modules/ShrinkDataSaver/Tests.meta create mode 100644 Assets/Modules/ShrinkDataSaver/Tests/DataSerializerTests.cs create mode 100644 Assets/Modules/ShrinkDataSaver/Tests/DataSerializerTests.cs.meta create mode 100644 Assets/Modules/ShrinkDataSaver/Tests/MigrationChainTests.cs create mode 100644 Assets/Modules/ShrinkDataSaver/Tests/MigrationChainTests.cs.meta create mode 100644 Assets/Modules/ShrinkDataSaver/Tests/MockStorageProvider.cs create mode 100644 Assets/Modules/ShrinkDataSaver/Tests/MockStorageProvider.cs.meta create mode 100644 Assets/Modules/ShrinkDataSaver/Tests/SaveEncryptorTests.cs create mode 100644 Assets/Modules/ShrinkDataSaver/Tests/SaveEncryptorTests.cs.meta create mode 100644 Assets/Modules/ShrinkDataSaver/Tests/SaveTypesTests.cs create mode 100644 Assets/Modules/ShrinkDataSaver/Tests/SaveTypesTests.cs.meta create mode 100644 Assets/Modules/ShrinkDataSaver/Tests/ShrinkDataSaver.Tests.asmdef create mode 100644 Assets/Modules/ShrinkDataSaver/Tests/ShrinkDataSaver.Tests.asmdef.meta create mode 100644 Assets/Modules/ShrinkDataSaver/Tests/ShrinkSaveTests.cs create mode 100644 Assets/Modules/ShrinkDataSaver/Tests/ShrinkSaveTests.cs.meta create mode 100644 Assets/Modules/ShrinkDataSaver/Tests/ShrinkSettingsTests.cs create mode 100644 Assets/Modules/ShrinkDataSaver/Tests/ShrinkSettingsTests.cs.meta create mode 100644 Assets/Modules/ShrinkDataSaver/package.json create mode 100644 Assets/Modules/ShrinkDataSaver/package.json.meta delete mode 160000 Assets/Modules/ShrinkEventBus create mode 100644 Assets/Modules/ShrinkEventBus/.gitignore create mode 100644 Assets/Modules/ShrinkEventBus/Benchmark.txt create mode 100644 Assets/Modules/ShrinkEventBus/Benchmark.txt.meta create mode 100644 Assets/Modules/ShrinkEventBus/CHANGELOG.md create mode 100644 Assets/Modules/ShrinkEventBus/CHANGELOG.md.meta create mode 100644 Assets/Modules/ShrinkEventBus/CodeGen.meta create mode 100644 Assets/Modules/ShrinkEventBus/CodeGen/Editor.meta create mode 100644 Assets/Modules/ShrinkEventBus/CodeGen/Editor/EventBusILPostProcessor.cs create mode 100644 Assets/Modules/ShrinkEventBus/CodeGen/Editor/EventBusILPostProcessor.cs.meta create mode 100644 Assets/Modules/ShrinkEventBus/CodeGen/Editor/PostProcessorAssemblyResolver.cs create mode 100644 Assets/Modules/ShrinkEventBus/CodeGen/Editor/PostProcessorAssemblyResolver.cs.meta create mode 100644 Assets/Modules/ShrinkEventBus/CodeGen/Editor/PostProcessorReflectionImporter.cs create mode 100644 Assets/Modules/ShrinkEventBus/CodeGen/Editor/PostProcessorReflectionImporter.cs.meta create mode 100644 Assets/Modules/ShrinkEventBus/CodeGen/Editor/Unity.ShrinkEventBus.CodeGen.asmdef create mode 100644 Assets/Modules/ShrinkEventBus/CodeGen/Editor/Unity.ShrinkEventBus.CodeGen.asmdef.meta create mode 100644 Assets/Modules/ShrinkEventBus/Editor.meta create mode 100644 Assets/Modules/ShrinkEventBus/Editor/EventBusViewerWindow.cs create mode 100644 Assets/Modules/ShrinkEventBus/Editor/EventBusViewerWindow.cs.meta create mode 100644 Assets/Modules/ShrinkEventBus/Editor/ShrinkEventBus.Editor.asmdef create mode 100644 Assets/Modules/ShrinkEventBus/Editor/ShrinkEventBus.Editor.asmdef.meta create mode 100644 Assets/Modules/ShrinkEventBus/LICENSE create mode 100644 Assets/Modules/ShrinkEventBus/LICENSE.meta create mode 100644 Assets/Modules/ShrinkEventBus/README.md create mode 100644 Assets/Modules/ShrinkEventBus/README.md.meta create mode 100644 Assets/Modules/ShrinkEventBus/Runtime.meta create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/AssemblyInfo.cs create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/AssemblyInfo.cs.meta create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/Attributes.cs create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/Attributes.cs.meta create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/EventAutoRegHelper.cs create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/EventAutoRegHelper.cs.meta create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/EventBase.cs create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/EventBase.cs.meta create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/EventBus.cs create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/EventBus.cs.meta create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/EventBusBenchmark.cs create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/EventBusBenchmark.cs.meta create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/EventBusGeneratedRegistry.cs create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/EventBusGeneratedRegistry.cs.meta create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/EventBusRegHelper.cs create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/EventBusRegHelper.cs.meta create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/EventCloneUtility.cs create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/EventCloneUtility.cs.meta create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/EventHandlerInfo.cs create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/EventHandlerInfo.cs.meta create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/EventPool.cs create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/EventPool.cs.meta create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/EventPriority.cs create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/EventPriority.cs.meta create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/EventResult.cs create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/EventResult.cs.meta create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/Exceptions.cs create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/Exceptions.cs.meta create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/IShrinkEventBus.cs create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/IShrinkEventBus.cs.meta create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/ListenerList.cs create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/ListenerList.cs.meta create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/ShrinkEventBus.Runtime.asmdef create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/ShrinkEventBus.Runtime.asmdef.meta create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/ShrinkEventBusBuilder.cs create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/ShrinkEventBusBuilder.cs.meta create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/ShrinkEventBusInstance.cs create mode 100644 Assets/Modules/ShrinkEventBus/Runtime/ShrinkEventBusInstance.cs.meta create mode 100644 Assets/Modules/ShrinkEventBus/Tests.meta create mode 100644 Assets/Modules/ShrinkEventBus/Tests/EventBusDispatchTests.cs create mode 100644 Assets/Modules/ShrinkEventBus/Tests/EventBusDispatchTests.cs.meta create mode 100644 Assets/Modules/ShrinkEventBus/Tests/EventBusPriorityTests.cs create mode 100644 Assets/Modules/ShrinkEventBus/Tests/EventBusPriorityTests.cs.meta create mode 100644 Assets/Modules/ShrinkEventBus/Tests/EventBusRegistrationTests.cs create mode 100644 Assets/Modules/ShrinkEventBus/Tests/EventBusRegistrationTests.cs.meta create mode 100644 Assets/Modules/ShrinkEventBus/Tests/EventBusSubscriptionTests.cs create mode 100644 Assets/Modules/ShrinkEventBus/Tests/EventBusSubscriptionTests.cs.meta create mode 100644 Assets/Modules/ShrinkEventBus/Tests/ShrinkEventBus.Tests.asmdef create mode 100644 Assets/Modules/ShrinkEventBus/Tests/ShrinkEventBus.Tests.asmdef.meta create mode 100644 Assets/Modules/ShrinkEventBus/img1.png create mode 100644 Assets/Modules/ShrinkEventBus/img1.png.meta create mode 100644 Assets/Modules/ShrinkEventBus/img2.png create mode 100644 Assets/Modules/ShrinkEventBus/img2.png.meta create mode 100644 Assets/Modules/ShrinkEventBus/package.json create mode 100644 Assets/Modules/ShrinkEventBus/package.json.meta create mode 100644 Assets/Modules/ShrinkNetwork.Integration.App/CHANGELOG.md create mode 100644 Assets/Modules/ShrinkNetwork.Integration.App/CHANGELOG.md.meta create mode 100644 Assets/Modules/ShrinkNetwork.Integration.App/README.md create mode 100644 Assets/Modules/ShrinkNetwork.Integration.App/README.md.meta create mode 100644 Assets/Modules/ShrinkNetwork.Integration.App/Runtime.meta create mode 100644 Assets/Modules/ShrinkNetwork.Integration.App/Runtime/ShrinkNetwork.Integration.App.asmdef create mode 100644 Assets/Modules/ShrinkNetwork.Integration.App/Runtime/ShrinkNetwork.Integration.App.asmdef.meta create mode 100644 Assets/Modules/ShrinkNetwork.Integration.App/Runtime/ShrinkNetworkAppComponent.cs create mode 100644 Assets/Modules/ShrinkNetwork.Integration.App/Runtime/ShrinkNetworkAppComponent.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork.Integration.App/Runtime/ShrinkNetworkAppInstaller.cs create mode 100644 Assets/Modules/ShrinkNetwork.Integration.App/Runtime/ShrinkNetworkAppInstaller.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork.Integration.App/Tests.meta create mode 100644 Assets/Modules/ShrinkNetwork.Integration.App/Tests/ShrinkNetwork.Integration.App.Tests.asmdef create mode 100644 Assets/Modules/ShrinkNetwork.Integration.App/Tests/ShrinkNetwork.Integration.App.Tests.asmdef.meta create mode 100644 Assets/Modules/ShrinkNetwork.Integration.App/Tests/ShrinkNetworkAppComponentTests.cs create mode 100644 Assets/Modules/ShrinkNetwork.Integration.App/Tests/ShrinkNetworkAppComponentTests.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork.Integration.App/package.json create mode 100644 Assets/Modules/ShrinkNetwork.Integration.App/package.json.meta create mode 100644 Assets/Modules/ShrinkNetwork/Editor/AssemblyInfo.cs create mode 100644 Assets/Modules/ShrinkNetwork/Editor/AssemblyInfo.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ShrinkNetworkSemanticScanner.cs create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ShrinkNetworkSemanticScanner.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Editor/ShrinkNetwork.Editor.asmdef create mode 100644 Assets/Modules/ShrinkNetwork/Editor/ShrinkNetwork.Editor.asmdef.meta create mode 100644 Assets/Modules/ShrinkNetwork/Tests.meta create mode 100644 Assets/Modules/ShrinkNetwork/Tests/Editor.meta create mode 100644 Assets/Modules/ShrinkNetwork/Tests/Editor/ShrinkNetwork.Editor.Tests.asmdef create mode 100644 Assets/Modules/ShrinkNetwork/Tests/Editor/ShrinkNetwork.Editor.Tests.asmdef.meta create mode 100644 Assets/Modules/ShrinkNetwork/Tests/Editor/ShrinkNetworkSemanticScannerTests.cs create mode 100644 Assets/Modules/ShrinkNetwork/Tests/Editor/ShrinkNetworkSemanticScannerTests.cs.meta create mode 100644 Assets/Modules/ShrinkShared.CodeGen/README.md create mode 100644 Assets/Modules/ShrinkShared.CodeGen/README.md.meta create mode 100644 Assets/Modules/ShrinkShared.CodeGen/package.json create mode 100644 Assets/Modules/ShrinkShared.CodeGen/package.json.meta rename CORDIS_MIGRATION.md => Docs/Archive/CORDIS_MIGRATION.completed.md (99%) create mode 100644 Docs/Archive/DESIGN-2026-08-16.md create mode 100644 Docs/Archive/README.md create mode 100644 Docs/Archive/codebase-map-2026-05-23/ARCHITECTURE.md create mode 100644 Docs/Archive/codebase-map-2026-05-23/CONCERNS.md create mode 100644 Docs/Archive/codebase-map-2026-05-23/CONVENTIONS.md create mode 100644 Docs/Archive/codebase-map-2026-05-23/INTEGRATIONS.md create mode 100644 Docs/Archive/codebase-map-2026-05-23/README.md create mode 100644 Docs/Archive/codebase-map-2026-05-23/STACK.md create mode 100644 Docs/Archive/codebase-map-2026-05-23/STRUCTURE.md create mode 100644 Docs/Archive/codebase-map-2026-05-23/TESTING.md create mode 100644 Tools/UpmConsumerValidation/README.md create mode 100644 Tools/UpmConsumerValidation/Validate-UpmConsumer.ps1 diff --git a/.gitignore b/.gitignore index 1660e0b..29b263a 100644 --- a/.gitignore +++ b/.gitignore @@ -74,10 +74,10 @@ mono_crash.* *.unitypackage.meta *.app -# Windows Git matches the macOS bundle pattern case-insensitively. Keep the -# namespace-suffixed Unity package in source control. -!Assets/Modules/ShrinkDataSaver.Integration.App/ -!Assets/Modules/ShrinkDataSaver.Integration.App/** +# Windows Git matches the macOS bundle pattern case-insensitively. Keep all +# namespace-suffixed Unity Integration.App packages in source control. +!Assets/Modules/*.Integration.App/ +!Assets/Modules/*.Integration.App/** # Crashlytics generated file crashlytics-build.properties diff --git a/Assets/Demos/Demo2/Runtime/Demo2AppIntegration.cs b/Assets/Demos/Demo2/Runtime/Demo2AppIntegration.cs index 3f81fb4..9ee96a0 100644 --- a/Assets/Demos/Demo2/Runtime/Demo2AppIntegration.cs +++ b/Assets/Demos/Demo2/Runtime/Demo2AppIntegration.cs @@ -56,8 +56,19 @@ namespace Demo2.Runtime ShrinkAppLoaderBootstrapper.DefaultComposition = host => { previous?.Invoke(host); - if (host.ModuleIds.Contains("demo2.rule-factory")) host.OverrideModuleComponent("demo2.rule-factory", static () => new Demo2AppComponent()); + RegisterOrReplace(host, "demo2.rule-factory", static () => new Demo2AppComponent()); }; } + + private static void RegisterOrReplace( + ShrinkAppLoaderHost host, + string moduleId, + System.Func componentFactory) + { + if (host.ModuleIds.Contains(moduleId, System.StringComparer.OrdinalIgnoreCase)) + host.OverrideModuleComponent(moduleId, componentFactory); + else + host.AddModuleComponent(moduleId, componentFactory); + } } } diff --git a/Assets/Demos/Demo2/Tests/PlayMode/Demo2.PlayMode.Tests.asmdef b/Assets/Demos/Demo2/Tests/PlayMode/Demo2.PlayMode.Tests.asmdef index d9ba45d..05e7eac 100644 --- a/Assets/Demos/Demo2/Tests/PlayMode/Demo2.PlayMode.Tests.asmdef +++ b/Assets/Demos/Demo2/Tests/PlayMode/Demo2.PlayMode.Tests.asmdef @@ -5,6 +5,8 @@ "Demo2.Domain", "Demo2.ECS", "Demo2.Runtime", + "ShrinkApp.Core.Runtime", + "ShrinkContext.AppAdapter.Runtime", "Unity.Entities", "Unity.Collections" ], diff --git a/Assets/Demos/Demo2/Tests/PlayMode/Demo2PlayModeTests.cs b/Assets/Demos/Demo2/Tests/PlayMode/Demo2PlayModeTests.cs index 54a5ec5..6ba974f 100644 --- a/Assets/Demos/Demo2/Tests/PlayMode/Demo2PlayModeTests.cs +++ b/Assets/Demos/Demo2/Tests/PlayMode/Demo2PlayModeTests.cs @@ -6,6 +6,7 @@ using Demo2.Domain; using Demo2.ECS; using Demo2.Runtime; using NUnit.Framework; +using ShrinkContext.AppAdapter; using Unity.Entities; using UnityEngine; using UnityEngine.SceneManagement; @@ -23,6 +24,16 @@ namespace Demo2.Tests yield return null; var controller = Object.FindObjectOfType(); Assert.That(controller, Is.Not.Null); + for (var frame = 0; frame < 30 && + (ShrinkAppLoaderBootstrapper.Instance == null || !ShrinkAppLoaderBootstrapper.Instance.Host.IsRunning); + frame++) + yield return null; + var appHost = ShrinkAppLoaderBootstrapper.Instance; + Assert.That(appHost, Is.Not.Null); + Assert.That(appHost!.Host.IsRunning, Is.True); + Assert.That(appHost.Host.ActiveModuleIds, Does.Contain("demo2.rule-factory")); + Assert.That(appHost.Host.Services.TryGet(out var appService), Is.True); + Assert.That(appService, Is.Not.Null); var document = controller!.GetComponentInChildren(); Assert.That(document, Is.Not.Null); var solo = document!.rootVisualElement.Q