Archived
M2: 基座能力 —— memory / toolbox / channel / message
- memory 任务记忆四性质(只追加·信封盖戳·治理先行·归侧)、活动记忆四层与条目三件套、
任务日志两级投影(结构化零 LLM / 叙述性小结不入事实库)、度量八指标只读投影
- toolbox 注册两审(静态审 + 试运行审)、效应等级决定运行时待遇、契约演进只增不破坏、
白名单与纯工具私有作用域、ToolInvoker(两缝之二,live/record/replay)
- channel 通道实例配置、入站归一(解析 → 系统写 → 数据事件)、出站发送与关联记录登记
- message 通知 / 跨任务征答(就地作答 · 驳回重答只增不改)/ 死信 / 无主兜底
app:message 接上 event 的 MessageFallback;派发器按目标 ID 取 advisory lock 串行消费 +
消费幂等表;/api/ingest 模拟邮件通道(mock 只在外界)
已验证:无主 RFQ 邮件入站 → 归属解析 no-match → 事件落库 → 兜底落 OP 岗位的消息要素
门禁五道全绿;150 个单元测试 + 1 个 PG 集成测试
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KeDBx2PHLavbURXB8LJJ7m
This commit is contained in:
co-authored by
Claude Opus 5
parent
14d4fa046a
commit
f0444f1417
@@ -0,0 +1,35 @@
|
||||
# module: channel
|
||||
|
||||
职责: 通道实例:配置(归属键提取规则 / 载荷映射 / 默认认领岗位)、入站归一
|
||||
(解析 → 系统写 → 数据事件)、出站发送与出站关联记录登记
|
||||
不负责: 归属解析与三级消费判定(见 event,经 `EventGateway` 端口)、
|
||||
台账写入的实现(见 ledger,经 `LedgerSystemWriter` 端口)、消息兜底的呈现(见 message)
|
||||
|
||||
公开出口: index.ts
|
||||
- 类型:`ChannelService` `ChannelInstanceConfig` `ExtractRule` `LedgerMapping`
|
||||
`NormalizedWrite` `InboundOutcome` `OutboundMail`
|
||||
- 错误:`ChannelNotFoundError` `ChannelDisabledError`
|
||||
- 端口类型:`ChannelRepository` `EventGateway` `LedgerSystemWriter` `MailTransport`
|
||||
`AttachmentArchive` `Clock` `IdGenerator`
|
||||
- 用例工厂:`createChannelService(deps: ChannelServiceDeps): ChannelService`
|
||||
- 纯函数:`extractFields` `normalize`
|
||||
- adapter:`createChannelRepository` `createSimulatedMailTransport` `createFileAttachmentArchive`
|
||||
- Drizzle 表:`channelTable` `outboundMailTable`
|
||||
|
||||
层级: L2(编码规范 §4)
|
||||
依赖: @contracts;@shared/db;port:`EventGateway`(app 注入 event)、
|
||||
`LedgerSystemWriter`(app 注入 ledger)、`MailTransport`(模拟通道)
|
||||
被依赖: release(出站发送)、app(治理台 · 系统管理 / ingest 路由)
|
||||
|
||||
不变量:
|
||||
- **活动认数据,不认通道**:入站一律归一为域.对象.字段的写入,通道对活动的前提不可见
|
||||
- 入站归一走 **系统写**(登记世界已发生的事实,免门、即时抛数据事件),
|
||||
绝不走草稿写、也不绕过 `ledger` 出口(§12.5#9)
|
||||
- 归属解析**不在本模块**:通道只交事实,判定归 event —— 匹配次序与降级口径一处实现
|
||||
- **无主不写台账**:仅有主入站才归一为系统写;无主入站只入事件流并走消息兜底
|
||||
- 无主键的映射结果丢弃(无从定位),由调用方按提取失败处置
|
||||
- 出站即登记关联记录:线程 ID 与往来地址是归属解析①③级的对表来源
|
||||
- 邮件通道是**外界**:MVP 用模拟通道(出站落库不真发,入站经 ingest 注入);
|
||||
系统内部机制一律真跑,不得 mock
|
||||
|
||||
影响半径: index/contract/port 未变 → 对外零影响
|
||||
Reference in New Issue
Block a user