Files
cneicy d74c2f08ca 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 迁移与旧代码地图
2026-08-18 18:06:34 +08:00

67 lines
3.1 KiB
Markdown

# 风险与关注点
## 1. 中文编码已明显受损
- 多个文件在 PowerShell 读取时出现明显乱码,不适合继续作为事实来源直接复用。
- 典型位置:
- `Assets/Modules/ShrinkDataSaver/README.md`
- `Assets/Modules/ShrinkDataSaver.Integration.EventBus/README.md`
- `Assets/Modules/ShrinkDataSaver/Runtime/ShrinkSave.cs`
- `Assets/Modules/ShrinkDataSaver/Editor/ShrinkDataSaverEditorWindow.cs`
- 这会影响对外文档、Unity Inspector 文本、日志可读性和包元数据质量。
## 2. 仓库当前不在 Git 工作树内
-`D:\UnityBuilds\ShrinkSDK` 执行 `git status --short` 返回 “not a git repository”。
- 这意味着当前无法依赖 Git 记录变更、提交地图文档或审查历史。
- 如果这个目录只是导出副本,需要明确真实源码仓位置。
## 3. EventBus 缺少自动化测试证据
- 当前测试基本只覆盖 `Assets/Modules/ShrinkDataSaver/Tests`
- `ShrinkEventBus` 的以下关键能力没有看到测试文件:
- 优先级排序
- 取消事件传播
- 异步 handler 路径
- `EventPool<T>` 复用语义
- IL Post Processor 自动注册
## 4. `ShrinkSettings.Unwatch` API 设计存在可用性问题
- `Assets/Modules/ShrinkDataSaver/Runtime/ShrinkSettings.cs`
- `Watch<T>` 内部把 `Action<T>` 包成新的 `Action<object>` 存入 `_watchers`
- `Unwatch` 却要求外部传 `Action<object>`,调用者几乎无法用原始 `Action<T>` 精确移除。
- 这不是理论问题,而是实际 API 不对称。
## 5. 截图路径可能留下纹理对象生命周期问题
- `Assets/Modules/ShrinkDataSaver/Runtime/ShrinkSave.cs`
- `CaptureScreenshotAsync` 在截图和缩放时会创建 `Texture2D`,但没有看到显式销毁临时纹理。
- 在频繁截图存档场景下,值得确认是否会累积内存压力。
## 6. 集成桥接存在重复订阅风险窗口
- `Assets/Modules/ShrinkDataSaver.Integration.EventBus/DataSaverEventBusBridge.cs`
- 该桥接在 `RuntimeInitializeOnLoadMethod` 里直接给静态事件追加订阅,没有看到“已初始化”防重复保护。
- 如果遇到特定域重载配置或重复初始化路径,可能造成重复转发。
- 这一点需要在真实 Unity 运行模式下验证,而不是仅凭源码静态阅读下结论。
## 7. 集成层版本描述需要复核
- `Assets/Modules/ShrinkDataSaver.Integration.EventBus/package.json`
- 该包依赖中声明 `com.cneicy.shrink-eventbus` 版本 `1.0.0`,但本仓库内 `ShrinkEventBus` 包版本是 `1.1.4`
- 这不一定是错误,但至少说明版本关系需要人工确认。
## 8. 没有看到 CI 或发布流水线
- 当前未发现 `.github/workflows`、GitLab CI 或 Azure Pipelines 配置。
- 对一个要分发的 Unity SDK 来说,这意味着:
- 测试可能不自动跑
- 文档与包版本可能靠手工维护
- 编译织入问题更难被持续发现
## 结论
- 当前最现实的三个问题是:编码质量、EventBus 测试缺口、以及若干运行时边界没有自动化验证。
- 如果后续要继续基于这个仓库规划工作,建议先确认真实源码仓与编码基线,再决定是否进入功能开发或补测试阶段。