feat: explicitly defer SaaS readiness without weakening runtime validation

This commit is contained in:
2026-10-10 12:20:01 +08:00
parent 0bd4a13b5a
commit b41dc76ac4
9 changed files with 128 additions and 9 deletions
@@ -6,6 +6,14 @@
本轮固定环境部署采用干净、已推送 main、现有 `nonprod-real`、Debug 开启/Capture 关闭,先关闭 Dispatcher 新准入并核对零活动通话/未确认执行,再调用原部署入口,不 reset、不重启 Asterisk、不生成试拨或额外消息。最终部署来源、两个制品 SHA-256、原生通道、服务进程与稳定性、持久任务/执行占用、恢复目录及日志摘要保存于私密 `.local/task-control-deployment/`;没有把部署计划或本地测试写成现场成功。下文的未合入/未部署表述是功能分支交付时的历史边界,不是此后 main 的状态。
## SaaS 就绪延期的后续授权与限制
首轮现场部署的只读探测确认 MQ 正常,但 SaaS 的 tasks 请求返回 HTTP 200、顶层仅 code/msg 且 code=500,不是任务列表。未修改 SaaS 或放宽 Schema,部署在该门禁处停止,Asterisk 保持原进程。使用者随后明确批准忽略当前 SaaS 问题、继续部署。
因此部署入口增加默认关闭的 `--defer-saas-readiness`,只对已通过独立 MQ 检查且被当前合同拒绝的 SaaS HTTP 200 配置响应显式延期;仍保留字段路径/安全原因与延期标记,运行时 Schema、任务归属、持久准入和独立错误检查不变,业务状态仍为未 ready。最新实际 Dispatcher 错误必须对应 SaaS 配置验证,且服务实际自动重试,不以任意 failed 状态代签。
探测器原先只报告错误类型,补充从 `ValidationFailure.Reason` 提取安全路径/规则错误,不输出其原始正文或普通错误内容;安全诊断先失败后通过。新增默认拒绝、显式延期、错误类型/阶段/TLS限制、真实等待日志判定、MQ 登录/关闭不可跳过、数据不重置测试。部署规则及示例只在 `deploys/production/README.md` 维护。
## 范围与来源
- 使用者确认恢复任务控制成功回执的五个字段,覆盖 start/pause/resume/stop/edit。