Files
sub2api-cn-relay-manager/docs/2026-05-18-PRODUCTION_REMEDIATION_TASK_BOARD.md
2026-05-21 09:16:45 +08:00

4.9 KiB
Raw Permalink Blame History

Sub2API CN Relay Manager 生产整改任务板

日期2026-05-18 当前 Gate历史快照本任务板描述的是 2026-05-18 当时的整改收口状态,不代表当前最新 gate 对应审查:docs/2026-05-18-PRODUCTION_READINESS_REVIEW.md

状态说明这份任务板保留为“2026-05-18 整改阶段”的执行快照。

当前最新真相与放行判断请以以下文档为准:

  • docs/SOURCE_OF_TRUTH.md
  • docs/EXECUTION_BOARD.md
  • docs/PRODUCTION_CLOSURE_BOARD.md
  • docs/REAL_HOST_ACCEPTANCE_RUNBOOK.md
  • docs/REAL_HOST_ACCEPTANCE_LEARNINGS.md

当前结论

本轮代码整改已完成审查报告中的 4 个系统性阻塞项修复:

  1. 宿主身份已贯穿控制面与运行时链路
  2. managed_resources 已具备宿主维度
  3. capability probe 已改为无副作用探测
  4. rollback-provider 已收敛为按已记录资源集回滚

当前剩余工作不再是代码级阻塞,而是“真实宿主访问闭环与现场治理未收口”。

已完成工作分解

ID 类别 任务 交付物 验证方式 状态
R1 设计/状态模型 宿主身份模型统一:运行时链路显式使用 host_id,宿主认证随 host 持久化 internal/app/http_api.go, internal/store/migrations/0004_host_identity_and_managed_resources.sql, internal/store/sqlite/hosts_repo.go go test ./... 已完成
R2 状态库 managed_resources 增加宿主维度并完成迁移回填 internal/store/migrations/0004_host_identity_and_managed_resources.sql, managed_resources_repo.go go test ./... 已完成
R3 应用层 import / reconcile / rollback / access/status 同步切到 host-scoped 查询,并收紧 batch detail 的 reconcile 视图为 batch-scoped internal/provision/*, internal/app/http_api.go go test ./... 已完成
R4 宿主适配 capability probe 改为只读/无副作用探测 internal/host/sub2api/capability_probe.go go test ./... 已完成
R5 安全回滚 rollback-provider 只按已记录批次资源回滚;缺记录则拒绝危险删除 internal/app/http_api.go, internal/provision/rollback_service.go go test ./... 已完成
R6 文档真相同步 下调部署文档乐观口径,同步整改板/执行板/OpenAPI docs/DEPLOYMENT.md, docs/EXECUTION_BOARD.md, docs/openapi.yaml 文档复读 + 搜索校验 已完成

最新真实宿主验收结果

ID 类别 任务 验证方式 状态
V1 质量门禁 gofmt -l . / go vet ./... / go test -race ./... / go test -cover ./internal/... / go test ./tests/integration/... -count=1 终端验证 已完成
V2 self_service 真实宿主验收 重新生成 preview-import / import / access-preview / status / reconcile / rollback artifact artifacts/real-host-acceptance/20260518_self_service_reaccept_v6 已执行(未通过)
V3 subscription 真实闭环 重新生成 preview-import / import / access-preview / status / reconcile / rollback artifact artifacts/real-host-acceptance/20260518_subscription_reaccept_v6 已执行(未通过)

失败摘要

V2 self_service

  • 05-import.jsonbatch_status=partially_succeededaccess_status=broken
  • 06-access-preview.jsonavailable=false
  • 09-reconcile.jsonstatus=degradedextra_count=0missing_count=0
  • 判断:代码侧“跨宿主串扰 / 漂移误判”已明显收敛,但真实宿主访问闭环仍被 gateway 403 阻断

V3 subscription

  • 05-import.jsonbatch_status=partially_succeededaccess_status=broken
  • 06-access-preview.jsonavailable=false
  • 09-reconcile.jsonstatus=driftedmissing_count=3
  • 判断:subscription 仍未形成可复核的真实闭环 artifact

完成标准

必须同时满足:

  • 导入批次不再用 host_base_url 充当宿主主键
  • 同一 provider 若存在多个宿主实例status/resources/import-batches/access-preview 能通过 host_id 准确定位
  • managed_resources 的唯一性和查询不再跨宿主串扰
  • capability probe 不再对真实创建接口发空 POST
  • rollback-provider 不再走“按名字重新枚举再删”的危险路径
  • 剩余质量门禁全部通过
  • self_service 真实宿主链路至少达到:available=truelatest_access_status=self_service_ready
  • subscription 真实宿主链路至少达到:available=truelatest_access_status=subscription_ready
  • 上述两条真实宿主 artifact 均通过后,才能重新给出最终放行结论

禁止错误结论

  • 代码整改完成 ≠ 真实宿主最终放行
  • 新的 host_id 契约已落地 ≠ 历史 artifact 自动变真
  • rollback-provider 已改安全路径 ≠ 历史脏资源自动消失
  • 文档里去掉 /metrics 承诺 ≠ 已补齐观测能力
  • self_serviceextra_count=0 ≠ 已完成最终放行