mirror of
https://github.com/vicliu624/trail-mate.git
synced 2026-08-06 18:59:43 +00:00
62 lines
4.7 KiB
Markdown
62 lines
4.7 KiB
Markdown
# Trail Mate Model Registry
|
||
|
||
<!-- praxis:uml-model-registry:start -->
|
||
|
||
状态:**confirmed**
|
||
|
||
模型:**9**
|
||
|
||
领域元素:**37**
|
||
跨模型 Trace:**8**
|
||
|
||
## 为什么不是三个模型
|
||
|
||
Praxis 原先展示的“组织与过程、软件结构、部署与制品”是三种阅读视角,不是 Trail Mate 的三个领域边界。领域模型应回答:谁拥有状态、哪些规则必须始终成立、哪些概念使用同一种业务语言、一次业务变更在哪个边界内保持一致。
|
||
|
||
按这个标准,Trail Mate 当前代码中可以识别九个模型边界。联系人、对端目录与本地信任原本被误塞进 Chat/Mesh 附属结构,这次按实际状态 owner 补入。团队模型只能标为 candidate:配对状态、凭据和 roster 操作明确存在,但成员聚合与团队生命周期没有形成。Model Explorer 只展示有源码 owner 的模型;尚未形成的模型留在 Review Queue。
|
||
|
||
## 已确认或已有证据的模型
|
||
|
||
| Model | 核心问题 | 关键 owner | 状态 |
|
||
| --- | --- | --- | --- |
|
||
| [通信、会话与投递模型](communication-conversation/model.md) | 消息如何进入会话并经历可验证的投递生命周期? | `ChatMessageLedger` | confirmed |
|
||
| [Mesh 本机身份与对端公钥](mesh-network-identity/model.md) | 本机密钥和 verified peer key 如何创建、保存与防覆盖? | `PeerIdentityService` | confirmed |
|
||
| [联系人、对端目录与本地信任](contact-peer-directory/model.md) | 协议观察如何进入目录,用户如何保存、忽略、命名或信任一个对端? | `MeshPeerRecord` / `ContactService` | confirmed · boundary split |
|
||
| [团队凭据、配对状态与协同消息](team-coordination/model.md) | TeamKeys 与 Leader/Member 配对如何工作;成员模型缺了什么? | `TeamPairingCoordinator` | candidate |
|
||
| [GNSS 定位、跳变过滤与时间更新](positioning-time/model.md) | NMEA revision 如何变成 LocationFix、位置事件和时间更新? | `LocationService` | confirmed |
|
||
| [轨迹记录与持久化模型](track-recording/model.md) | 记录会话如何在有界资源下可靠保存轨迹? | `TrackStateMachine` | confirmed |
|
||
| [设备目标、能力与权威模型](device-target-capability/model.md) | 某目标到底具备什么能力,当前由谁控制? | `TargetManifestView` / `AuthorityBinding` | confirmed |
|
||
| [HostLink 会话状态与帧路由](hostlink-integration/model.md) | `SessionRuntime` 如何管理握手、序号、节流和断线? | `SessionRuntime` / frame router | integration · confirmed |
|
||
| [手机应用协议互操作](phone-interoperability/model.md) | 共同应用契约如何连接两个不同 phone protocol core? | `IPhoneAppFacade` / protocol cores | integration · confirmed |
|
||
|
||
## 跨模型关系
|
||
|
||
```mermaid
|
||
flowchart LR
|
||
Identity["Mesh 密钥身份"] -->|verified peer key| Directory["联系人、对端目录与本地信任"]
|
||
Directory -->|显示名称与本机信任投影| Conversation["通信、会话与投递"]
|
||
Directory -->|NodeId roster;稳定成员链接仍缺失| Team
|
||
Conversation -->|承载团队协议| Team["团队协同与配对"]
|
||
Position["定位与时间权威"] -->|有效位置| Team
|
||
Position -->|有效采样| Track["轨迹记录与持久化"]
|
||
Capability["设备目标、能力与权威"] -->|决定可用性| Phone["手机协议互操作"]
|
||
Capability -->|决定可用性| HostLink["HostLink 主从集成"]
|
||
```
|
||
|
||
## 必须和 Model Explorer 分开的内容
|
||
|
||
有些重要概念当前**没有形成可维护的领域模型**。路线导航的偏航判断存在,但规则位于 UI runtime;配置缺少统一聚合和验证 owner;TeamService 有 roster 操作却没有 TeamMember 生命周期;协议身份到业务联系人也没有可撤销 IdentityLink。这些是设计缺陷,已放入 Review Queue,而不是在这里伪造空壳模型。
|
||
|
||
另外,Reticulum Call、Package Install、Firmware Update 与 Wi-Fi Lease 已出现稳定状态语言,但尚未完成 Model-or-Projection 分类。它们以“候选待裁决”进入 Review Queue;九个 Registry 模型因此只是当前已有源码 owner 的集合,不是“项目只需要九个模型”的结论。
|
||
|
||
另一个不同的问题是:模型明明已经存在,工具却没有找到。旧版固定三模型就是这种发现缺陷。它同样进入 Review Queue,但不能和“模型缺失”混为一谈。
|
||
|
||
## 权威关系
|
||
|
||
- `docs/models/model-registry.json`:Praxis 读取的手写结构化索引。
|
||
- 每个 `model.md`:领域含义、边界、不变量、元素与源码证据。
|
||
- Review Queue:发现缺陷与真正的设计缺陷。
|
||
- Design / Engineering / C4:上述领域模型的阅读投影,不覆盖模型本身。
|
||
|
||
<!-- praxis:uml-model-registry:end -->
|