23 lines
760 B
Markdown
23 lines
760 B
Markdown
# ADR 0001:Rust 是公共契约的唯一事实来源
|
|
|
|
- 状态:已接受
|
|
- 日期:2026-07-28
|
|
|
|
## 决策
|
|
|
|
公共数据模型只在 `nana-domain` 中定义。JSON Schema 与 TypeScript DTO 由
|
|
`nana-contracts` 生成并提交到 `contracts/`。CI 同时检查源文件哈希和生成结果。
|
|
|
|
禁止手工维护第二套同名模型。前端只能导入 `contracts/ts`。
|
|
|
|
## 原因
|
|
|
|
资源校验、状态 reducer、存档和 Tauri 命令都运行在 Rust 侧。让 Rust 成为唯一事实来源
|
|
可以避免多个子智能体分别发明不兼容的字段和枚举。
|
|
|
|
## 后果
|
|
|
|
- 任何契约变更必须重新生成 Schema 与 TypeScript。
|
|
- 契约变更必须连同 canonical fixtures 一起评审。
|
|
- 生成物漂移会使 `pnpm verify` 失败。
|