Files
go-sip/docs/archive/plan-saas-dispatcher-completed.md
T

32 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SaaS↔Dispatcher:当前实施与验收入口
本项目的**唯一现行业务通信说明**为 [`thirds/saas-dispatcher.md`](thirds/saas-dispatcher.md),唯一项目内机器契约为 [`../contracts/local/`](../contracts/local/) 的 Schema、拓扑、正反例与 `manifest.json`。Agent 内部 RPC 见 [`../proto/agent/agent.proto`](../proto/agent/agent.proto)。本文只记录实施和验收进度,不另立一套字段或队列。
## 范围和来源
- 用户已确认 K01–K16,并明确批准实施 P01–P08;已取代原计划 §1.2“仅修订计划”的旧范围,不重复审批。固定 MQ `v1` 通信名、HTTP `/internal/v1/dispatcher/...` 路径和有业务含义的 revision 不属于自有实现代次,保持不变。
- [`plan-saas-dispatcher-v05-v0.1.md`](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`](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`](evidence/saas-dispatcher-p07-audit.md)。真实外部兼容与主机诊断不在此项签收内。 |
| P08 验收交付 | **项目内隔离验收已核查**:P01–P08、A01–A12、K01–K16 的证据、故障/重启与会话切换、72.0% 手写业务覆盖率及诊断门禁假工具负例见 [`evidence/saas-dispatcher-p08-acceptance.md`](evidence/saas-dispatcher-p08-acceptance.md)。真实现场诊断、SaaS/management/供应商及生产均未验。 |
每批变更、测试命令、正反例和未验证项详见 [`evidence/saas-dispatcher-implementation.md`](evidence/saas-dispatcher-implementation.md);最终项目内对照见 [`evidence/saas-dispatcher-p08-acceptance.md`](evidence/saas-dispatcher-p08-acceptance.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`](../deploys/test/nonprod-call-evidence.sh) 规定的资源/状态核查和拨号前受限抓包;本地 Mock、打包、证书与哈希均不能替代真实 Agent/Asterisk 加载、SaaS 应用收讫或供应商验收。未经单独安排不进行云操作或真实呼叫。