7.6 KiB
7.6 KiB
sub2api-cn-relay-manager 执行板
日期:2026-05-19 当前 Gate:CONDITIONAL_APPROVED(代码门禁通过;2026-05-18 fresh redeploy 验证确认 self_service / subscription 访问链路可打通;2026-05-19 current-code remote43 追踪后发现 DeepSeek/MiniMax 的 channel 创建请求漏传 model_mapping / restrict_models / billing_model_source,已补代码与测试,但真实宿主 access gate 仍需重新验收) 目标:实现独立控制面、零侵入宿主、可导入国产模型并具备可运维的导入/回滚/访问闭环。
本轮已完成
- 宿主身份模型统一
- host 注册时持久化
auth_type/auth_token - import / reconcile / rollback-provider / access 运行时链路切换为
host_id主键 - provider status / resources / access status / import-batches 支持
host_id查询维度
- host 注册时持久化
- managed_resources 宿主维度收口
- 新增迁移
0004_host_identity_and_managed_resources.sql managed_resources唯一键提升为(host_id, resource_type, host_resource_id)- 仓储与服务查询切换为 host-scoped 语义
- 新增迁移
- reconcile run 结果按批次收口
- 新增迁移
0006_reconcile_runs_batch_scope.sql reconcile_runs补充batch_id,batch detail 仅返回本批次 reconcile 记录
- 新增迁移
- capability probe 收敛为无副作用探测
- 不再对真实创建接口发送空
POST
- 不再对真实创建接口发送空
- rollback-provider 风险收敛
- 改为优先按已记录批次资源
RollbackStoredResources()回滚 - 缺少已记录资源时拒绝危险删除
- 改为优先按已记录批次资源
- 文档真相同步
- 新增
docs/2026-05-18-PRODUCTION_REMEDIATION_TASK_BOARD.md - 下调
DEPLOYMENT.md中未实现的/metrics/ 限流 / 监控承诺
- 新增
- 真实宿主重新验收已执行
self_service新 artifact:artifacts/real-host-acceptance/20260518_self_service_reaccept_v6subscription新 artifact:artifacts/real-host-acceptance/20260518_subscription_reaccept_v6- 两轮都完成了
preview-import / import / access-preview / status / reconcile / rollback全链路落盘
- reconcile host-scope 证据已补强
self_service:artifacts/real-host-acceptance/20260518_reconcile_hostscope_self_servicesubscription:artifacts/real-host-acceptance/20260518_reconcile_hostscope_subscription- 已补齐
status / resources / reconcile / batch detail / rollback的 host-scoped artifact,验证 batch detail 的 reconcile 视图按 batch 收口
- current-code remote43 导入链路已补齐 tunnel-aware 验证能力
scripts/import_remote43_provider.sh新增CRM_HOST_BASE,允许把“operator 访问 host 地址”和“CRM 进程访问 host 地址”分离- latest artifact:
/home/long/artifacts/real-host-acceptance/20260519_195827_remote43_deepseek_key_import - 结论:import / batch detail / managed resources 已真实落库;本轮定位到 channel 创建缺少 model_mapping / restrict_models / billing_model_source,已补齐实现与测试,待重新跑真实宿主验收
已验证门禁
gofmt -l .✅ 空输出go vet ./...✅go test ./...✅go test -race ./...✅go test -cover ./internal/...✅internal/access:77.3%internal/pack:72.7%internal/provision:74.6%internal/store/sqlite:61.3%
go test ./tests/integration/... -count=1✅
本轮真实宿主复验结果
self_service(最新 fresh redeploy 复验)- 证据目录:
artifacts/real-host-acceptance/20260518_redeploy_matrix - 初始状态:普通用户 key 未绑定 group、用户余额为 0 时,
/v1/models返回403 - 修正后:对普通用户执行“key 绑定标准 group + 用户余额=10”后,
04-self-after-balance.headers.txt显示HTTP/1.1 200 OK - 结论:
self_service主链路已在 fresh host 上真实打通;当前关键前置条件已收敛为 runbook 中明确记录的普通用户创建 / key-group 绑定 / 余额要求,而不是代码级阻塞。
- 证据目录:
subscription(最新 fresh redeploy 复验)- 证据目录:
artifacts/real-host-acceptance/20260518_redeploy_matrix - 修正后:创建 subscription 类型 group、完成普通用户订阅分配、并把普通用户 key 绑定到该 group 后,
06-subscription-after-assign.headers.txt显示HTTP/1.1 200 OK - 结论:
subscription主链路也已在 fresh host 上真实打通;其可用前提不是“宿主自动初始化一切”,而是显式完成 subscription group / user subscription / key binding 这一套运营动作。
- 证据目录:
2026-05-19 current-code remote43 验收补充结论
- 验收入口
- 证据目录:
/home/long/artifacts/real-host-acceptance/20260519_195827_remote43_deepseek_key_import - 本地 CRM 通过隧道访问 remote host,
CRM_HOST_BASE指向 CRM 侧可达的 host 地址
- 证据目录:
- 导入链路结论
import成功返回batch_id=19managed_resources已包含group/channel/plan/accountprovider_status=partially_succeeded,说明已进入真实业务路径,不再是 host 注册/pack path/隧道前置问题
- access gate 失败结论
latest_access_status=brokenaccess preview available=falsereconcile status=drifted,其中probe_failures=1
- 根因归类
09-models.headers.txt/10-models.body.json显示普通用户实际看到的是 GPT 系模型,而非预期的deepseek-v4-pro- 因此本轮 FAIL 应归类为“上游 key/模型能力不匹配或普通用户绑定命中了错误 group”,不是 current-code CRM bootstrap / import 主链路故障。
剩余项(含当前外部门禁)
- DeepSeek / MiniMax real-host access gate 仍需复验(外部门禁)
- 真实宿主曾出现普通用户
/v1/models暴露 GPT 系模型的漂移;本轮已补齐 channel 侧 model_mapping / restrict_models / billing_model_source 传参 - 53hk 中转 key 当前未验证可用,不能当作主结论
- 在 current-code remote43 路径上,这一项仍需重新跑真实验收
- 真实宿主曾出现普通用户
- 结构债务仍存在
- access / reconcile 尚未完全按 implementation plan 物理拆分
- 无内置 scheduler/jobs
- 运营前置动作需要 runbook 化执行
- 真实宿主初始化不会自动创建普通用户;验收或上线前必须显式创建普通用户并留存可复用凭据
self_service需要普通用户 key 绑定目标标准 group,且通常还需要可用余额subscription需要 subscription 类型 group + 普通用户订阅分配 + key/group 绑定
- 标准多阶段 Dockerfile 在受限网络环境下仍不稳
- 当前推荐
scripts/build_local_image.sh+Dockerfile.local
- 当前推荐
- 真实宿主验收工具已补自动化闭环
scripts/real_host_acceptance.sh支持AFTER_IMPORT_HOOK_COMMAND,可把宿主侧 access 前置动作收敛进同一条 artifact 链scripts/import_remote43_provider.sh已内置 remote43 subscription 的“补余额 + key/group 绑定 + subscription upsert + 定向 Redis 缓存失效 + host state 落盘”
当前最短上线路径
- 按
docs/REAL_HOST_ACCEPTANCE_RUNBOOK.md准备真实宿主普通用户与凭据 - 按目标模式完成必要的 key/group/billing(or subscription) 绑定
- 使用
scripts/build_local_image.sh与scripts/real_host_acceptance.sh复跑并归档现场 artifact - 若现场前置满足,本项目按 PRD 首版范围可直接上线
禁止错误结论
- ❌ 历史失败 artifact ≠ 当前 fresh redeploy 仍失败
- ❌ capability probe 无副作用 ≠ 所有宿主版本都已真实兼容
- ❌ rollback-provider 已改安全路径 ≠ 历史脏资源自动消失
- ❌
HTTP 200≠ 宿主初始化会自动准备普通用户/订阅/余额;这些仍是显式运营前置