模块知识库/Vibe-Trading 量化交易智能体平台/Vibe-Trading Agent 核心运行时/实盘交易通道(Live Trading Channel)/实盘交易授权边界(Mandate)/编码规范
- 所有业务数据模型使用
@dataclass(frozen=True) 构造,禁止运行期修改,保证授权契约不可变。
- 读取路径一律 fail-closed:文件不存在、JSON 解析失败或结构校验异常均返回
None 或由调用方拒单,而非抛出异常或回退到默认值。
- 写入路径使用
_atomic_write_json 以临时文件 + os.replace 原子落盘,并将父目录设为 0700、文件设为 0600,防止并发读者读到半写状态。
- 通过
_CEILING_ALIASES 映射将人类字段名归一化为规范键后再做数值比较,避免别名拼写差异导致天花板检查被绕过。
- 提交前对已渲染 profile 重算并比对 ceilings_ref,任何放宽限制(含杠杆为 none 时请求非 none)均抛
CommitError,确保承诺不超过用户所见。
- 可选向后兼容字段(如
flatten_on_halt)通过 raw.get(..., default) 提供安全默认值,旧版 mandate.json 自动降级到保守行为。