Cordis 的配置系统将"组合"本身当作数据来处理,由 Loader 插件读取声明式配置并展开为内存中的插件树。
配置文件是一个 Entry 数组,每个 Entry 通常包含四个字段:id(行标识)、name(插件包名)、config(传给插件的配置)、disabled(是否停用)。配置中仅 config 与 disabled 两个字段支持有限的表达式,其余字段均为字面量,并配有静态校验在提交时强制约束。
真正生效的插件树并非单个文件,而是由多个 patch 层按顺序叠加而成:各 bundle 的 patch → profile 自身的 patch → 机器级全局 patch → 命令行传入的 patch。patch 通过 id 定位目标行,对整条 config 做整体替换(而非深度合并),同一行被多层写入时以后写者为准。这种设计让不同部署形态可以在不改动基础配置的前提下精确覆盖或停用某一行。
配置分为进程级与会话级两层:进程级的 cordis.yml 加 patch 层构成整进程共享的一棵树;会话级的 preset 则作用于单个会话,用于在同一进程内跑出不同形态的实例。配置即架构——新增能力只需在配置中增加一行插件,无需改动框架内核。