4.9 KiB
4.9 KiB
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.mddocs/EXECUTION_BOARD.mddocs/PRODUCTION_CLOSURE_BOARD.mddocs/REAL_HOST_ACCEPTANCE_RUNBOOK.mddocs/REAL_HOST_ACCEPTANCE_LEARNINGS.md
当前结论
本轮代码整改已完成审查报告中的 4 个系统性阻塞项修复:
- 宿主身份已贯穿控制面与运行时链路
- managed_resources 已具备宿主维度
- capability probe 已改为无副作用探测
- 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.json:batch_status=partially_succeeded、access_status=broken06-access-preview.json:available=false09-reconcile.json:status=degraded、extra_count=0、missing_count=0- 判断:代码侧“跨宿主串扰 / 漂移误判”已明显收敛,但真实宿主访问闭环仍被
gateway 403阻断
V3 subscription
05-import.json:batch_status=partially_succeeded、access_status=broken06-access-preview.json:available=false09-reconcile.json:status=drifted、missing_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=true或latest_access_status=self_service_readysubscription真实宿主链路至少达到:available=true或latest_access_status=subscription_ready- 上述两条真实宿主 artifact 均通过后,才能重新给出最终放行结论
禁止错误结论
- ❌ 代码整改完成 ≠ 真实宿主最终放行
- ❌ 新的 host_id 契约已落地 ≠ 历史 artifact 自动变真
- ❌ rollback-provider 已改安全路径 ≠ 历史脏资源自动消失
- ❌ 文档里去掉
/metrics承诺 ≠ 已补齐观测能力 - ❌
self_service的extra_count=0≠ 已完成最终放行