Files
sub2api-cn-relay-manager/docs/EXECUTION_BOARD.md
phamnazage-jpg 71cbaf5fa6 test(project): achieve ≥70% package coverage across all internal packages
- store/sqlite: 75.4% (repos + db coverage)
- host/sub2api: 80.8% (httptest mock server, pure function tests)
- app: 74.2% (handler error paths, NewActionSet closures)
- pack: 72.4%
- provision: 75.2%
- access: 77.3%
- config: 94.7% (lookup mock tests)

All tests pass: build, vet, race, coverage gates.
2026-05-15 19:26:25 +08:00

8.1 KiB
Raw Blame History

sub2api-cn-relay-manager 执行板

日期2026-05-13 当前 GateREQUEST_CHANGES 目标:实现 implementation plan 全量能力,达成独立控制面、零侵入宿主、一键导入国产模型,并补齐回滚/对账/HTTP API/交付物。

当前真实状态

模块完成 gate新增执行要求后续每个大模块都必须执行

  • go test 通过不算完成;每次完成大模块后,必须补做:
    1. 两阶段 review先对规划/设计文档做实现对齐检查,再做代码质量 review
    2. execution board 当前状态同步
    3. 若发现实现/设计漂移,优先修正文档结论或回退模块状态,不维持虚假 COMPLETED
  • 本板从本次起按上述 gate 维护。

已完成:

  • 项目骨架与配置加载
  • SQLite 最小状态库hosts/packs/providers
  • SQLite 运行态状态库扩展import_batches / items / managed_resources / probe_results / access_closure_records / reconcile_runs
  • sub2api HostAdapter 基础创建/探测能力
  • HostAdapter 删除能力group/channel/accountplan 接口已补)
  • HostAdapter 资源枚举能力groups/channels/plans/accounts
  • import strict 模式自动回滚已接入
  • 手动 rollback CLIrollback-provider)已接入,支持按 provider 名称规则回收 group/channel/plan/accounts
  • pack 目录装载与 checksum/schema 校验
  • 正式 pack install 生命周期已接入:支持 zip/目录装载、宿主版本兼容校验、pack/provider 元数据持久化、CLI install-pack
  • CLI import-provider 导入闭环已接入 SQLite 运行态持久化host/pack/provider/import/probe/access
  • CLI preview-provider 预检查入口
  • 最小 HTTP 控制面已接入admin token 鉴权 + /api/packs/install + /api/providers/{providerID}/preview-import + /api/providers/{providerID}/import + /api/import-batches/{batchID} + /api/providers/{providerID}/status + /api/providers/{providerID}/resources + /api/providers/{providerID}/access/status + /api/providers/{providerID}/rollback + /api/providers/{providerID}/reconcile
  • preview 已接入宿主资源快照查询
  • 账号探测与 /v1/models 网关访问验证

未完成的关键事实:

  • 状态库已接入 import-provider 运行链并可持久化 host/pack/provider/import/probe/access最小 HTTP 控制面已补齐 batch detail / provider status / resources / access status / rollback / reconcileOpenAPI 草案已同步扩展
  • preview/import/rollback/reconcile 已有 CLI 与最小 HTTP 入口,但仍缺少 hosts 管理面与更完整的批次/对账操作文档输出
  • 宿主资源枚举已实现,但尚未对真实 sub2api 版本做兼容性实测
  • 最小 reconcile / drift detection 已接入,当前实现仍是 internal/provision/batch_detail_and_reconcile_service.go 内联版本,但已补齐对最新 batch 的 account smoke probe 重跑、access closure 复检与 reconcile summary 持久化;状态仍未完全对齐 implementation plan 目标中的 internal/reconcile/* 结构,且真实宿主兼容性实测未完成
  • OpenAPI 草案已覆盖 status/resources/access-status但仍未收口 hosts 契约与生产级文档细节
  • 无 scheduler/jobs
  • 已补齐 Dockerfile / compose / .env.example / deployment 文档,并新增 distribution smoke test但尚无真实容器启动 E2E 执行记录

P0必须先完成

P0-1 状态库扩展并接入运行链

  • 状态COMPLETEDschema/repo、import-provider 运行链消费、batch detail / provider status / resources / access status / reconcile 查询面均已接入)
  • 目标:补齐 implementation plan 所需核心表与 repo
  • 范围:import_batchesimport_batch_itemsmanaged_resourcesprobe_resultsaccess_closure_recordsreconcile_runs
  • 验证:go test ./tests/integration -run 'TestStore(Runtime|Init)' -count=1
  • 完成判据表存在、约束有效、事务回滚有效、repo 可写入读取,并被运行链消费

P0-2 import preview + naming

  • 目标:导入前可输出 create/reuse/conflict不盲写宿主
  • 范围:preview_service.gonaming.goimport_preview_test.go
  • 验证:go test ./tests/integration -run TestImportPreview -v

P0-3 真实 rollback 闭环

  • 状态PARTIALstrict 自动回滚 + 手动 rollback CLI + HTTP rollback API 已完成;真实宿主兼容性实测未完成)
  • 目标strict 失败自动清理,支持手动 rollback
  • 前置HostAdapter 增加 DeleteGroup/DeleteChannel/DeletePlan/DeleteAccount/ListManagedResources
  • 验证:go test ./internal/provision ./tests/integration ./cmd/cli -run 'TestRollback|TestExecuteRollbackProviderWritesSummary|TestSub2APIHostAdapterListManagedResources' -v

P0-4 正式 pack install 生命周期

  • 状态COMPLETEDzip/目录装载、宿主版本兼容性校验、pack/provider 元数据持久化、CLI install-pack 已接入)
  • 目标:支持 zip/目录装载、宿主版本兼容性校验、pack/provider 元数据持久化
  • 验证:go test ./internal/pack ./internal/provision ./cmd/cli ./tests/integration -v

P1形成真正控制面

P1-1 Access 独立模块化

  • 状态PARTIAL访问闭环校验/订阅分配/网关探测已从 import_service 抽离到 internal/access/closure.go,但 implementation plan 目标结构中的 planner.go / subscription_service.go / self_service_checker.go 仍未落地)
  • 目标:将访问闭环从 import_service 解耦为 internal/access/*
  • 设计对齐复核:当前已完成的是“最小闭环抽离”,未达到 implementation plan 中 Access 子模块拆分粒度;因此不再维持 COMPLETED
  • 验证:go test ./internal/access ./internal/provision -count=1

P1-2 Reconcile / Drift Detection

  • 状态PARTIAL最小 reconcile API + drift 计数写入已接入;本轮新增 account smoke probe 重跑、access closure 复检、active/degraded/drifted 状态语义与回写验证,但 implementation plan 目标中的 internal/reconcile/* 结构、failed 语义收口与真实宿主兼容性实测仍未完成)
  • 目标:拉宿主快照,对比状态库,重跑 probe标记 drifted
  • 验证:go test ./internal/provision ./internal/app ./tests/integration -run 'TestReconcileService|TestAPIReconcileProviderReturnsSummary|TestStore(Runtime|Init)' -count=1

P1-3 HTTP API + OpenAPI

  • 状态PARTIAL/api/packs/install/api/providers/{providerID}/preview-import/api/providers/{providerID}/import/api/import-batches/{batchID}/api/providers/{providerID}/status/api/providers/{providerID}/resources/api/providers/{providerID}/access/status/api/providers/{providerID}/rollback/api/providers/{providerID}/reconcile 已接入OpenAPI 草案已同步扩展,但 hosts 管理面仍缺失)
  • 目标:暴露 hosts / packs/install / providers preview-import / imports rollback / access / reconcile
  • 验证:go test ./internal/app ./cmd/server ./tests/integration -run 'TestAPI|TestBootstrap' -v

P2工程化交付

P2-1 Scheduler / Jobs

  • 目标:支持定时 reconcile 与手动触发
  • 验证:go test ./tests/integration -run TestCLIScheduler -v

P2-2 Distribution Artifacts

  • 状态PARTIAL已补齐 Dockerfile / .env.example / docker-compose.yml / docs/DEPLOYMENT.md,并新增 distribution smoke test但尚无真实容器启动与镜像构建 E2E 记录)
  • 目标Dockerfile / .env.example / docker-compose / deployment 文档 / e2e 脚本
  • 验证:go test ./tests/integration -run TestDistributionArtifactsExistAndReferenceRequiredEnv -v

P2-3 CLI 面板补齐

  • 目标:host add / pack install / provider import / reconcile run
  • 验证CLI 集成测试 + go test ./...

当前执行顺序

  1. P1-1 Access 模块继续拆分到 implementation plan 粒度
  2. P1-2 Reconcile 结构化与真实宿主兼容性实测
  3. P1-3 Hosts 管理面 / OpenAPI 收口
  4. P2-1 Scheduler / Jobs
  5. P2-2 Distribution 容器级 E2E 验证
  6. P2-3 CLI 全量收口

禁止错误结论

  • go test ./... 当前通过 ≠ implementation plan 全部实现
  • CLI 最小导入闭环 ≠ 独立控制面已完成
  • 资源创建成功 ≠ 用户访问闭环已长期可运维