加载并合并所有配置。 源码: config.rs:214-246 流程: 1. 遍历 discover() 的 5 个路径 2. 跳过不存在的文件 3. 读取 JSON → deep_merge 到 merged 4. 环境变量覆盖 (CC 源码中由其他模块处理,我们集中在这里) 5. Eager parse 成 RuntimeFeatureConfig 6. 返回 RuntimeConfig
(self)
| 256 | ] |
| 257 | |
| 258 | def load(self) -> RuntimeConfig: |
| 259 | """加载并合并所有配置。 |
| 260 | |
| 261 | 源码: config.rs:214-246 |
| 262 | 流程: |
| 263 | 1. 遍历 discover() 的 5 个路径 |
| 264 | 2. 跳过不存在的文件 |
| 265 | 3. 读取 JSON → deep_merge 到 merged |
| 266 | 4. 环境变量覆盖 (CC 源码中由其他模块处理,我们集中在这里) |
| 267 | 5. Eager parse 成 RuntimeFeatureConfig |
| 268 | 6. 返回 RuntimeConfig |
| 269 | """ |
| 270 | merged: dict = {} |
| 271 | loaded_entries: list[ConfigEntry] = [] |
| 272 | |
| 273 | for entry in self.discover(): |
| 274 | data = self._read_json(entry.path) |
| 275 | if data is None: |
| 276 | continue |
| 277 | merged = deep_merge(merged, data) |
| 278 | loaded_entries.append(entry) |
| 279 | |
| 280 | # 环境变量最高优先级 |
| 281 | self._apply_env_overrides(merged) |
| 282 | |
| 283 | # ★ Eager Feature Parsing — 加载完立刻解析 |
| 284 | feature_config = parse_feature_config(merged) |
| 285 | |
| 286 | return RuntimeConfig( |
| 287 | merged=merged, |
| 288 | loaded_entries=loaded_entries, |
| 289 | feature_config=feature_config, |
| 290 | ) |
| 291 | |
| 292 | @staticmethod |
| 293 | def _read_json(path: Path) -> Optional[dict]: |
no test coverage detected