merge: integrate all business changes with safe debug logging
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# 数据结构拒绝反馈:本地开发验收
|
||||
|
||||
## 范围
|
||||
|
||||
使用者已确认:结构错误的数据若可核实原身份,保存原文并反馈拒绝及具体原因;身份无法核实的垃圾数据记错误后丢弃,不虚构身份。保持原 event_type,只使用 rejected 状态,不补缺失的源时间。本轮不部署、不调用真实 AI/OSS、不发布真实 SaaS 消息、不导入号码、不拨号。
|
||||
|
||||
正式字段、Schema 与正常示例唯一入口为 [共享合同](../../contracts/schema/saas-dispatcher.md#数据结构拒绝及双方反馈),固定提交 `8e6c332bb9d5b3d331cef3e5cbc35a1b8b4b7c86`,已提交并核对共享远端 main。
|
||||
|
||||
## 已验证行为
|
||||
|
||||
- 缺少 issued_at 的控制与执行消息不再单边丢弃。原身份核验通过后,先保存原字节与实际验证错误,再在现有 outbox 保存符合合同的 rejected 回执;不执行、不发 applied/dispatched、不伪造通话结果。
|
||||
- 私密原文保存在数据库同级 rejected-data/,目录 0700、文件 0600,文件与目录同步后才允许确认入站。普通日志不包含原文、配置值或凭据。原文或 outbox 保存失败时消息保留并重新交付,错误明确返回。
|
||||
- 无法解析 JSON、缺少原身份、Dispatcher/租户归属无法核实、把回执错误送回输入方向:记错误和摘要,不生成反馈身份。
|
||||
- 任务控制读取到结构不合格的 HTTP 配置,反馈关联原控制事件,并保存原控制与配置响应。SIP 通知等待旧通话结束时,原通知及内部加载代次在 sip-notification-sources/ 保持私密、可恢复;其 HTTP SIP 配置结构不合格时反馈原通知,继续关闭新呼叫。
|
||||
- 发布确认失败仍保留相同回执供重试;启动时先发送已有 outbox,不让坏配置阻断已经持久保存的反馈。MQ 确认不代表 SaaS 已处理。
|
||||
- rejected 身份不能因生产者补字段或改变正文而重新执行,只重发原拒绝回执。已经持久接纳的执行不能被后来坏消息改写成结构拒绝;未知执行及占用保留。已加载 SIP 的上下文清理不会删除更新且未加载通知的上下文。
|
||||
|
||||
## 本地检查
|
||||
|
||||
- `make check`:通过,包含格式、当前合同、Proto、go vet、完整 race 测试、构建与实际运行的隔离 RabbitMQ/HTTP(S)/双向 TLS 验收。
|
||||
- RabbitMQ 隔离验收实际投递缺少 issued_at 的控制消息,核实没有执行,原拒绝回执进入 SaaS 所有的共享结果队列,mandatory/publisher confirm 通过;垃圾消息不产生额外反馈。此队列是隔离夹具,不是真实 SaaS。
|
||||
- 新增原字节/权限、保存失败、发送确认失败、重启关联恢复、拒绝身份重放、已接纳执行保护、SIP 新旧通知清理及 HTTP 配置结构拒绝测试。
|
||||
- `make release-check-local`:通过;本地制品仍为 production_approval=false,未部署。
|
||||
- `scripts/coverage.sh`:本轮独立源码业务覆盖率 71.1%,高于 65%;包含并行日志工作的原工作区为 71.7%。
|
||||
- 从仅含本轮改动的 Git index 生成固定源码,在临时 detached 工作区、固定共享提交再次运行 `make check`、`make release-check-local` 与覆盖率检查,全部通过。没有新建分支;并行调试日志改动保留,未纳入本轮功能提交。
|
||||
|
||||
## SaaS 对接通知与未验证事项
|
||||
|
||||
共享合同已定义拒绝反馈。SaaS 必须按原事件关联消费 rejected、展示具体原因并结束对应处理中状态;按原身份去重,不重复执行。字段与示例请以共享合同为准,不从本证据维护第二份定义。
|
||||
|
||||
真实 SaaS 是否已经采用新合同、是否消费拒绝并解除“开启中”,尚未验证。任务 4/5 的历史界面现象不能由本机 MQ 测试代签。没有部署授权或重新发送历史事件;浏览器、真实线路接通、AI/录音/OSS 全链路及生产签收均不属于本轮结果。
|
||||
Reference in New Issue
Block a user