6.4 KiB
6.4 KiB
P07:唯一现行入口残留与合法例外核查
本表记录 P07 当时状态,不是当前接口导航。当时的计划现存于
../archive/plan-saas-dispatcher-completed.md;两份当时受保护的旧文档已按原字节归档。唯一现行规范见../thirds/saas-dispatcher.md。
范围:分支 feat/saas-dispatcher-contract,实施基线 f5c2d6a92036a579e0b070beb1d9381b0976f81e;逐批清理和测试事实见 saas-dispatcher-implementation.md。本表只确认项目内隔离 Mock 的现行入口与历史隔离,不证明 SaaS、management、真实 MQ、OSS/AI 供应商、Asterisk、SIP、ECS 或生产已验收。两份使用者修改的 docs/thirds/v0.4.md、docs/thirds/第三方对接事件与请求消费顺序_v0.1.md 未暂存、覆盖或清理。
| 范围 | 残留核查及可复核结果 |
|---|---|
| Go 入口与命名 | rg --files cmd internal gen proto contracts/local scripts deploys 筛查 _v2/_v3、v0.x、agent_v*/dispatcher_v* 活动文件名:无匹配;生产 Go 源扫描 ReadLocal、LocalV*、V3Broker、旧 Agent/Dispatcher 构造及已废弃 MQ 字段:无匹配。根命令只有显式 agent/dispatcher,mixed/real 启动即拒绝;Agent、Dispatcher、AI、部署配置的自有 Current 构造和文件名已按职责改名,三组 AST/文件名回归测试固定此边界。死代码 internal/calllog 与旧 internal/testfixture 已删除,不提供旧版本回退。 |
| Schema/来源 | contracts/local/ 只有五份当前顶层 JSON(含 manifest.json)和 30 份正反例;34 份 JSON 构成当前合同包,四代旧本地 JSON 共 17 份原字节归档在 docs/archive/contracts-local-history/。contracts.Files 只嵌入当前本地顶层/示例及单独的上游历史来源,contracts.ReadCurrent 与 contract.ValidateCurrent 严格拒绝旧本地 Schema 和未知字段;布局测试、正反例、三份文档来源 SHA-256、bundle hash 由 make check 核对。旧方案不能通过目录位置、缓存或 MQ 回退重新进入业务。 |
| SQLite/恢复 | internal/store/ 没有旧 migration SQL;Store.Open 在写表前检查既有表和 user_version,旧/残缺布局保留原数据并拒绝,测试包含未知占用、会话/结果/上传 outbox 故障与重启。Agent 旧 .executions、.uploads、.upload-locks 及执行 state.json 的检查只读失败关闭;未自动清空、迁移、重拨或将未知 PUT 当失败重传。本次只删除无人调用的源码与样例,没有处置任何用户存量文件。 |
| Proto 与 Agent | proto/agent/agent.proto 的 AgentControlService 恰好八个获批 RPC:状态、激活、获批执行/控制、已加载 SIP、录音授权、结束、结果;scripts/check-proto.sh 校验 gen/ 与 proto/manifest.json 来源/生成 hash。agent.v1 是仍在使用的内部通信协议标识,没有旧业务 RPC 兼容服务。 |
| MQ、HTTP 与脚本 | 五类只读 HTTP 来自当前合同;控制/任务队列由 SaaS 预建、Dispatcher 无 configure 权限;结果进入同一 durable 队列,mandatory/return/confirm 与原身份恢复按当前 schema/拓扑测试。scripts/check-current-mq-mock.sh 明确要求 TestBrokerSharedResultQueueAndNoConfigure、TestRuntimeIsolatedControlBacklogExecuteAndSharedResult、TestDispatcherCommandStartsWithIsolatedMQHTTPAndAgent 三项均实际 PASS,匹配零项不得算通过。当前 release/build 检查绑定本地合同、MQ 拓扑、上游历史来源和 Proto manifest 的 SHA-256;production_approval=false,不拨号、不部署。 |
| 文档、部署及链接 | AGENTS.md、根 README.md、docs/README.md、../archive/plan-saas-dispatcher-completed.md 只把 docs/thirds/saas-dispatcher.md、当前机器合同和本证据作为当前入口。12 份当前/归档索引中的 Markdown 相对链接全部解析成功;旧部署 JSON 原字节归档并以来源路径/SHA-256 映射,物理部署说明明确当前制品 Mock-only。原计划 docs/plan-saas-dispatcher-v05-v0.1.md 仍在原路径且 SHA-256 为 666f39e56ea9f4b55661efcac82edd6f9729848e2d60e5f24cdf5aa3ac97ee87,由当前 contracts/local/manifest.json 固定为历史来源,不改写为新计划,也不保留旧运行入口。 |
已核实的名称例外(均不是旧业务分支)
| 保留项 | 原因与限制 |
|---|---|
MQ agent-call.*.v1、HTTP /internal/v1/dispatcher/...、Proto proto/agent/v1 / agent.v1 |
当前约定的线协议及路径,删改会破坏现行机器合同;没有第二条旧版执行通道。 |
task_revision、sip_revision、quota_revision、会话代际、release 的版本号 |
授权/加载/持久判重或制品身份事实,不是项目自造的替代通信版本。deploys/versions.lock.json 的 schema_version: 1 只标记发布锁文件自身的格式,不进入 SaaS↔Dispatcher/Agent 的业务消息;该锁的旧日期是基础设施制品版本,不能作为当前代码或生产批准的证明。 |
contracts.ReadCurrent、contract.ValidateCurrent 与 internal/contract/current.go、SessionRegistry.CurrentMeta |
分别是严格的当前合同选择/校验和最新未过期会话读取,没有 ReadOld/ValidateOld 或旧 Agent 业务入口。scripts/check-current-* 与 contracts/current*_test.go 中的 current 同义,指唯一当前校验目标。 |
contracts/upstream/v1、原版计划/提案、旧 AGENTS、旧本地合同与旧部署样例、历史证据中的旧文件路径 |
带来源和 hash 的历史事实或负例,保存在原锁定来源或 docs/archive/,不作为现行配置、兼容输入、真实供应商签收或自动数据迁移。历史证据仍保留当时的原路径,由归档 README 标明现位置;不为消灭字符串伪造旧来源。两份使用者修改的旧第三方文档继续受保护。 |
本地验证入口:make check(格式、合同/Proto、go vet ./...、go test -race ./...、构建及上述三项实际隔离 MQ 集成测试)、make release-check-local(本地包/当前来源 hash/Mock-only/不覆盖旧文件)。P08 尚需逐项 A01–A12/K01–K16、业务覆盖率 ≥65%、故障重启与约十分钟 Agent 会话续期和真实诊断门禁的可执行证据;非生产主机的 capture-first 检查与外部签收均未执行。