docs: record recovered Dispatcher and parameter precedence deployment

This commit is contained in:
2026-10-09 17:27:56 +08:00
parent ddd4de20fa
commit c2a7b08eee
2 changed files with 29 additions and 2 deletions
+2
View File
@@ -79,6 +79,8 @@
## 当前范围与权威入口
- **2026-10-09 17:24 最新参数规则与现场**:使用者确认 params 重名键忽略、任务/session 字段优先;共享合同 `f490afa`、实现 `ddd4de2` 已推送并安装。真实 SaaS 任务 `4` 的原重复 voice 和 revision `1` 未改,现已接纳;四个真实任务均暂停,Dispatcher 持久发现 ready、SIP 本地加载代次 `17`/pending=0。Agent/Dispatcher/Asterisk 均 enabled+active,D PID 稳定、零重启;未清数据、重启 Asterisk、独立拨号或主动投递。部署工具仍引用启动前独立 probe 的 tasks 阶段失败而显示 `saas_pending/business_ready=false`,具体 probe 原因未定位,不伪造成功,也不以标签否定实际业务启动事实;完整独立探测、真实通话/AI/OSS及生产验收仍不宣称完成。证据见 [`docs/evidence/ai-params-task-precedence-20261009.md`](docs/evidence/ai-params-task-precedence-20261009.md)。
- **2026-10-09 最新固定环境事实**:使用者确认修复正式 Dispatcher 的 SIP 加载遗漏并重部署;源码 `b37d9f3` 已推送、安装,Agent/Asterisk 的 revision `16`、三条数字 ID endpoint/AOR/主叫/contact/UDP/PCMA 已从原生运行态逐条核对,Asterisk 未重启,零活动通话,未清数据、未独立拨号。Dispatcher 仍因真实 SaaS 任务 `4`(revision `1`)同时包含 `agent.tts.voice` 与 `agent.tts.params.voice` 而退出重启;该失败是当时采用的冲突拒绝规则造成;随后使用者确认改为任务/session 字段优先、忽略 params 中重名键,共享合同已更新为 `f490afa`,SaaS 无需删除原有重复 voice。新规则部署及最新业务状态见 [`docs/evidence/ai-params-task-precedence-20261009.md`](docs/evidence/ai-params-task-precedence-20261009.md);未完成现场核对前,不得把 SIP 加载成功或状态中的 `saas_pending` 标签当作全部配置/真实通话/生产签收。证据见 [`docs/evidence/dispatcher-sip-startup-load-20261009.md`](docs/evidence/dispatcher-sip-startup-load-20261009.md)。
- **当前正式部署目标授权(使用非正式配置,`muzr4gzv-jzx8pg`)**:先核验、合入 main 并推送,再完善一键部署脚本,在登记测试机 `server.sip` 使用根目录 `saas.env`、`rabbitmq.env`、`aliyun-oss.env` 和真实 SaaS 配置,以现有 `nonprod-real` 启动固定的 `go-sip-agent.service`、`go-sip-dispatcher.service`;原生 `go-sip-asterisk.service` 保留。配置固定在 `~/.config/go-sip/`,业务数据固定在 `~/.local/share/go-sip/`,制品在 `~/.local/opt/go-sip/releases/`,不再用每次试验的新业务目录或 Mock 代替正式部署验证。正式部署入口为 `deploys/production/production.py`;当前使用非正式配置,仍保留 `nonprod-real`、登记测试机及原有授权边界,命名不代表生产验收。下方日期记录是历史事实,其旧授权限制不覆盖本条新授权。
@@ -34,6 +34,31 @@
- 业务单元覆盖率 **70.8%**。
- 本地 mock 请求不代表供应商实际可用、真实通话、AI/录音/OSS 或生产验收。
## 部署验证
## 部署验证与保留的验收边界
安装后补固定源码、制品校验、真实 SaaS 任务是否继续拒绝、服务就绪与剩余问题;未验证前不声称恢复。
2026-10-09 17:16 安装,17:20–17:24(Asia/Shanghai)只读复核:
| 项目 | 现场事实 |
| --- | --- |
| 已推送、已安装源码 | `ddd4de20fac1d224ad5afb8d710bcc52e7fcd821` |
| 制品 SHA-256 | `3356f12e89927835d82e2a7c08f63d281ce5b48084bdb94949ea1c8095dcbf02` |
| 制品一致性 | 两角色固定 `current` 解析至该提交,运行制品与发布清单 hash 相同 |
| Agent | enabled、active/running;PID `2872989`,重启次数 `0` |
| Dispatcher | enabled、active/running;PID `2873001`,17:16:23 至 17:24:55 未变,重启次数 `0`、退出状态 `0` |
| Asterisk | enabled、active/running;PID `777461`、10 月 5 日启动时间未变,未重启 |
| SaaS 原任务 | 17:24:55 HTTP 200、归属正确;任务 4 revision `1`,原 voice 与 params.voice 均仍存在且同值,无需平台修改 |
| 任务与发现 | 四个真实任务的快照已接纳,均为 `paused`;持久 discovery_ready=true |
| 实际 SIP | 原启动代次 16 加载核对成功;随后处理真实 SaaS 队列中的既有 SIP 通知,完整读取并确认新本地加载代次 `17`,pending=0 |
| 数据保留 | 未 reset;SQLite inode `416829`、user_version `3` 不变;inbox 无占用 |
| 主配置保留 | `pjsip.conf` SHA-256 仍为 `29619dcad31c31adde63ae1fc74b95feb10943a601f120f34d54ec332f7b708c` |
| 活动通道 | 安装前后只读核对为 0,未独立拨号或主动投递任务 |
原参数冲突不再阻止启动,真实 SaaS 保留重复 voice 的任务已被接受,Dispatcher 已持续运行,没有用清数据、改 SaaS 任务或删除其他有效参数解决。
### 独立部署探测仍需区分
安装返回 `ok=true`,三服务 enabled/active、制品检查和监听通过;但状态工具仍显示 `dependency_state=saas_pending`、`business_ready=false`。其计算只引用启动前保存的 `dependency-status.json`:该独立 probe 的 tasks 阶段失败,只保存 `*fmt.wrapError`、http_status=0、transport_failure=unavailable,未提供具体原因。本次没有重写该文件、把失败改成成功或更改探测程序。
上述标签不能替代真实程序的持久发现就绪、四个任务快照已接纳、SIP 17 已核对和连续零重启事实;同时真实程序运行正常也不能代签这项独立探测。探测失败的具体原因尚未定位,完整外部依赖/部署验收仍保留未完成项,不把这轮参数修复扩大成所有检测都通过。
四个任务均处于暂停状态,本轮没有实际外呼、供应商 ASR/LLM/TTS、录音/OSS 或重启自启动验收;未提交或输出凭据、prompt、完整配置、通话内容或音频。