文档:ADR-013 邮件收发、API 文档与前端对接说明(两形账号 / 四个动作 / 投递状态 / 腾讯侧前置)、总表 15 条、欠账十五笔、CLAUDE 快照

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TM4kUBvekALu9qqmp7D3wr
This commit is contained in:
xcs
2026-08-26 02:38:12 +08:00
co-authored by Claude Fable 5
parent e0fc16db33
commit e862a5279b
7 changed files with 511 additions and 3 deletions
+4 -2
View File
@@ -18,7 +18,7 @@
层级: L2(编码规范 §4)
依赖: @contracts;@shared/db;port:`EventGateway`(app 注入 event)、
`LedgerSystemWriter`(app 注入 ledger)、`MailTransport`(模拟通道)
`LedgerSystemWriter`(app 注入 ledger)、`MailTransport`(app 注入,转 mail 模块)
被依赖: release(出站发送)、app(治理台 · 系统管理 / ingest 路由)
不变量:
@@ -29,7 +29,9 @@
- **无主不写台账**:仅有主入站才归一为系统写;无主入站只入事件流并走消息兜底
- 无主键的映射结果丢弃(无从定位),由调用方按提取失败处置
- 出站即登记关联记录:线程 ID 与往来地址是归属解析①③级的对表来源
- 邮件通道是**外界**:MVP 用模拟通道(出站落库不真发,入站经 ingest 注入);
- 邮件通道是**外界**:真通道由 `mail` 模块提供(ADR-013)—— app 把 `channel.ingestMail` 注册为它的订阅方,
把 `MailTransport` 注入为「转 `mail.send`」(按发件地址找账号,对不上不回落默认);
`createSimulatedMailTransport` 只剩测试 / 演示用途,`/api/ingest` 仍是注入门(e2e 用);
系统内部机制一律真跑,不得 mock
影响半径: index/contract/port 未变 → 对外零影响