4.2 KiB
4.2 KiB
SaaS↔Dispatcher:当前实施与验收入口
本项目的唯一现行业务通信说明为 thirds/saas-dispatcher.md,唯一项目内机器契约为 ../contracts/local/ 的 Schema、拓扑、正反例与 manifest.json。Agent 内部 RPC 见 ../proto/agent/agent.proto。本文只记录实施和验收进度,不另立一套字段或队列。
范围和来源
- 用户已确认 K01–K16,并明确批准实施 P01–P08;已取代原计划 §1.2“仅修订计划”的旧范围,不重复审批。固定 MQ
v1通信名、HTTP/internal/v1/dispatcher/...路径和有业务含义的 revision 不属于自有实现代次,保持不变。 plan-saas-dispatcher-v05-v0.1.md是本轮合同的不可变历史来源,其原路径及 SHA-256 已写入当前合同manifest.json;为保护来源事实,不改名、不改字节、不作为另一个当前运行入口。其他旧方案、旧 MQ-only 合同与旧验收数字均为历史。- 当前仅验收单节点、单 Dispatcher、单 Agent、单 Cell、单租户的隔离 Mock。真实 SaaS/MQ/OSS/AI/Asterisk/SIP/ECS、容量及生产切换没有在本轮验证;样例、Hash 和本机测试均不是拨号或生产授权。
- 不迁移、清空或自动处置现存 SQLite、Agent 恢复文件、旧 spool 和 outbox;发现旧执行/上传状态时拒绝启动并保留原文件,按事实另行确认处置。
工作项
| 阶段 | 本地状态及核验入口 |
|---|---|
| P01 契约 | 已建立当前 HTTP/MQ Schema、拓扑、正反例和来源/hash;见 contracts/local/manifest.json 及 evidence/saas-dispatcher-implementation.md。 |
| P02 单入口与 Proto | 根命令只注册现行 Mock Agent/Dispatcher;八个 Agent RPC 方法、生成物与 proto/manifest.json 已验证。 |
| P03 五类只读 HTTP | SIP、任务、发现、租户额度及供应商配置只读;租户/任务归属和新鲜度均经隔离测试。 |
| P04 MQ/SQLite | SaaS 预建队列、独立 Dispatcher 身份、持久 inbox/outbox、控制屏障及共享结果队列有隔离 MQ 测试。Confirm 不等于 SaaS 已处理。 |
| P05 AI/媒体 | 不可变获批 AI 快照,ASR-only、ASR+LLM+TTS、关键词、16 kHz 媒体及失败边界仅经本地 Mock 验证。 |
| P06 录音/OSS/结果 | 隔离双向 TLS 录音、一次 HTTPS PUT、失败与未知结果恢复、48 小时边界和唯一最终 MQ 结果经本机测试。 |
| P07 唯一当前入口 | 项目内已核查:旧执行/配置/MQ/AI/Proto/Schema/脚本路径已分批清除或逐字节归档,当前文档/引用/hash 及合法历史例外逐项核对,实际数据保留;详见 evidence/saas-dispatcher-p07-audit.md。真实外部兼容与主机诊断不在此项签收内。 |
| P08 验收交付 | A01–A12、K01–K16、业务覆盖率 ≥65%、重启/故障矩阵及诊断门禁的最终对照尚未完成。不得将前述分批通过写为最终签收。 |
每批变更、测试命令、正反例和未验证项详见 evidence/saas-dispatcher-implementation.md。发布包 production_approval=false;make check、make release-check-local 仅检验本机隔离制品与行为,不运行真实服务。
交付门禁
- 必须执行格式、当前合同及 Proto 来源/hash 检查,
go vet ./...、go test -race ./...、构建及三项实际通过的隔离 RabbitMQ 集成测试;旧测试筛选式匹配零项不得算通过。 - 对照原计划 A01–A12 与 K01–K16 逐项记录本地证据和缺口,业务代码单元测试覆盖率须达到 65%;故障、重投、重启和约十分钟 Agent 会话过期边界不可遗漏。
- 实际非生产主机验证另须执行
../deploys/test/nonprod-call-evidence.sh规定的资源/状态核查和拨号前受限抓包;本地 Mock、打包、证书与哈希均不能替代真实 Agent/Asterisk 加载、SaaS 应用收讫或供应商验收。未经单独安排不进行云操作或真实呼叫。