feat(packages): 内置 SDK 包并完善 ContextLoader 集成
- 将 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 迁移与旧代码地图
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# ShrinkContext.AppAdapter
|
||||
|
||||
ShrinkApp ↔ ShrinkContext 的桥接层:把现有 `IShrinkAppModuleInstaller` 生态接入 Cordis 时空可组合性范式(阶段 2 过渡产物,方案见仓库根 `CORDIS_MIGRATION.md`)。
|
||||
ShrinkApp ↔ ShrinkContext 的桥接层:提供当前默认的 ContextLoader 宿主、声明式组合 Profile、诊断工具,并保留 `IShrinkAppModuleInstaller` 兼容适配。当前架构与边界见仓库根 `DESIGN.md`。
|
||||
|
||||
## 组成
|
||||
|
||||
@@ -62,11 +62,11 @@ Profile 的 JSON 结构如下:
|
||||
| 依赖缺失 | 排序期抛错 | 安装器保持 Waiting,依赖出现自动激活 |
|
||||
| 重复 ModuleId | 宿主级异常 | 构造期抛错(一致);运行期替换退化为供给冲突失败 |
|
||||
| 运行中禁用模块 | 不支持(需重启) | `SetModuleDisabledAsync` 增量协调,重启用会重新执行安装器初始化 |
|
||||
| `ShrinkApp.IsRunning` | Host 驱动 | 以 `ShrinkAppLoaderHost.IsRunning` 为准(静态 IsRunning 为 false,过渡期已知差异) |
|
||||
| `ShrinkApp.IsRunning` | Host 驱动 | LoaderHost 通过 `SetExternalHostRunning` 同步静态门面状态 |
|
||||
|
||||
## 已知边界
|
||||
|
||||
- `ShrinkAppServices` 无注销能力:安装器停用不撤回已注册服务(重新启用会重跑 RegisterServices,同键覆盖)。
|
||||
- `ShrinkAppServices.TryUnregister(instance)` 支持按实例撤回服务;原生 Context 组件已使用该路径。旧 installer 包装器仍取决于安装器自身是否提供完整逆操作。
|
||||
- config/isolate 变化走条目重建;intercept metadata 可原位更新而不改变 fiber generation。
|
||||
- 运行中不支持重新应用整份 Profile;资产修改在下一次宿主启动生效,运行中模块开关仍使用 `SetModuleDisabledAsync`。
|
||||
- Editor 基准的毫秒数和 GC 管理堆差值只用于同机前后对比;自动测试只断言索引候选规模和事务恢复结果。
|
||||
|
||||
Reference in New Issue
Block a user