Files
go-sip/docs/evidence/f06-local-release-gates-v0.3.md
T

3.3 KiB
Raw Blame History

F06 P1 本地发布阻断:任务发现 v0.3

范围:单 Dispatcher/Agent/Cell/租户的项目内隔离 Mock;仅构建和检查临时制品,未安装、部署、连接真实 SaaS/OSS/SIP、拨号或切换生产。以前的 v0.2 本地制品记录 仅作历史,不代替本次核验。

本地制品与合同

  • make release-check-local:通过;从 Go 1.27.1 的独立项目构建一次性二进制及归档包,检查已存在 release/package 目录、压缩包或校验文件时均拒绝覆盖;校验二进制、归档、checksum/manifest。临时 release SHA-256:0e250c476d95f6de40ee41932fc4cdb9c2d62324e90125bbbd6558b9b68c877d。临时文件随测试删除,不冒充已发布制品。
  • scripts/build-release.sh 的 contract_attestation 和本地制品检查一致:其他项目内业务协议 local-contract-manifest.v0.1,任务发现 local-contract-manifest.v0.3,MQ 拓扑 project-saas-dispatcher.v0.1(v3 队列草案),以及当前 Proto manifest。v0.3 的版本化来源为 docs/thirds/v0.3.md,来源 SHA-256 9a22e9ab5da7d859b5fde4b77cb50ddc148e39567704609d633b91a529af564d;local-contract-manifest-v0.3.json SHA-256 f32b114b998883901baddd7c4e0225a2643bf5ab68ce54ace5dfa12c543eea93。旧 v0.2 Schema/清单保留追溯但不进入当前运行制品的发现 attestation。
  • scripts/check-contracts.sh 验证 v0.3 严格 Schema、8 个正例、2 个反例与 13 个来源/产物摘要;旧上游 contracts/upstream/v1/ 没有更改。./scripts/acceptance-local.sh(含格式、go test -race ./...、go vet ./...、构建及受限 RabbitMQ)通过,具体矩阵与覆盖率见 f09-local-acceptance-v0.3.md。
  • 制品已直接启动测试 dispatcher 的 mixed 和 real 两种模式:均返回隔离 Mock 限制错误,在创建 SQLite 文件前拒绝;旧 --tenant-key、--consume 开关不在制品中。隔离 RabbitMQ 测试账号无 configure 权限,Dispatcher 不建队或绑定,真实模式没有因 v0.3 合同放行。
  • 本地构建来源有未提交变更,制品仅标记 local-development、production_approval=false;Go/Proto/合同摘要可核对不等于发布、运行环境或真实配置已验收。

保持阻断的真实事项

  1. SaaS/management 尚未签收 v0.3 精确响应、每页完整有序及无游标过期保证;响应仅有页级 next_cursor、无逐项 event_id,Dispatcher 不能独立证明页内未漏项。撤销墓碑长期保留的容量、灾备后序号连续性和长期旧游标可读性没有外部验收,活动任务 256 上限不能代替累计墓碑预算。
  2. 旧 v0.2 checkpoint 无法直接解释为 v0.3 事件序号。当前代码会拒绝静默迁移;任何真实旧队列/在途执行的排空、状态回迁及资源所有权移交都须另有获批且可核验的方案,不删旧任务、执行事实、幂等与 outbox,也不并行运行两套消费者。
  3. 真实 SaaS/MQ/OSS、供应商与 Asterisk/ECS/systemd 部署、媒体/线路拨号、容量、生产准入/回滚/切换均未执行或未授权。本地 Mock 的成功与版本/hash 匹配不构成这些事项的通过记录;生产安全屏障仍须单独满足。