# 更新日志 (Changelog)

## v0.0.10 (Latest)

- **机制变化**: 将虚拟容器模块 `virtual:modular-container` 中的图编译计算从“饿汉式”调整为“懒加载”，以支持在“基座 + 业务”组合架构下单独导入 `modules` 进行自定义组合。
- **优化**: 注册模块短名称时，新增对容器已存在属性的防覆盖检查（`!hasOwnProperty`），并移除了历史遗留的冗余就绪状态追踪逻辑。


## v0.0.9

- **优化**: 优化了模块初始化状态的判定机制，提升了在高并发复用环境下的状态隔离安全性。
  - **优化背景**：在长生命周期或复用隔离区的运行环境中，如果框架外部跨请求继承或复用了部分容器对象引用，原有的基于容器属性的状态检查机制可能会将上一个请求的非单例闭包状态误判为有效缓存。
  - **实现细节**：框架现采用内部独立的生命周期状态追踪机制，彻底解耦了对外部注入容器属性的强依赖，确保每个并发请求流式调度内的实例化进度百分百隔离。

## v0.0.8

- **特性**: 运行时重构，支持 **无锁反应式依赖拓扑流**。
- **特性**: 支持 **静态依赖图预编译与动态隔离实例化 (Separation of Graph Compilation & Instantiation)** 架构优化：
  - 新增 `compileModuleGraph` (图编译) 与 `instantiateModuleContainer` (容器填充) API。支持在高并发后端环境（如 Cloudflare Workers）中，启动时仅执行一次静态图计算（含正则命名解析、DFS 环检测与拓扑排序并缓存），每个 HTTP 请求进入时仅针对隔离容器执行轻量级动态填充。
  - **性能表现**：在高并发请求模拟中，该优化路径相比于每次请求重新完整解析，**CPU 调度开销大幅提速约 75%**，并极大地降低了堆内存分配及 GC 抖动。
- **性能**:
  - **并发流式调度**：消除了传统分批同步栅栏（队头阻塞），独立分支的异步模块并行加载，初始化加载提速达 40%！
  - **同步直通优化（Sync Bypass Path）**：在配置提取和初始化执行中实现 100% 同步路径直通，对同步依赖子树做到 0 Promise 实例创建与 0 微任务 Yield，额外提速 13% 以上。
  - **正则优化与解析重用**：将路径匹配正则移至模块级别并全局复用，避免频繁实例化正则对象；在初始化启动阶段对 shortName/fullName 进行预解析，彻底剔除重复匹配与 TS 非空断言。
- **健壮性**:
  - **拓扑顺序加载**：基于依赖图的拓扑排序按顺序触发流式加载，彻底防范了同步依赖链被迫退化为微任务挂起的问题。
  - **静态循环依赖检测**：初始化前通过 DFS 算法静态分析依赖成环，能在运行前快速失败并抛出具体链路信息，完美防范死锁。

## v0.0.7

- **修复**: 修复了 `0.0.6` 版本中在使用 `MODULAR_PACK=true` 打包业务模块注册表时，无法正确携带 `.ts` / `.tsx` 扩展名，导致后续在开发或运行环境中发生 `Could not parse module name from key: /xxx` 的解析错误。
- **修复**: 修复了 `javascript-obfuscator` 在代码混淆阶段对 `import.meta.env` 及环境变量（如 `process.env.NODE_ENV`）常量字符串的破坏性转换，导致运行时控制台报错 `process is not defined` 的问题。
- **优化**: 改进了打包物理入口的生成方式，彻底解决了虚假模块 (`\0virtual:`) 导致 `vite-plugin-dts` 崩溃进而造成 `index.js` 缺失的问题。

## v0.0.6 (DEPRECATED)

- **⚠️ 警告: 该版本的注册表打包功能 (`MODULAR_PACK=true`) 存在严重缺陷，生成的 Key 丢失了文件后缀扩展名，会导致下游项目加载失败。请勿在生产环境中使用，已标记为弃用。**
- **特性**: 尝试引入代码混淆保护核心框架结构。
- **已知问题**: 生成的注册表缺少模块文件后缀。开启混淆时，在运行时会导致浏览器报错。

## v0.0.5

- **特性**: 提供了稳定可靠的虚拟模块注册表注入。
- **特性**: 基础的 IoC/DI 功能与 ModuleContainer 构建完善。
- **已知问题**: `MODULAR_PACK` 功能和混淆保护尚未完全支持。
