feat(batch): add live reuse admin verification flow
This commit is contained in:
@@ -58,6 +58,11 @@ SUB2API_CRM_ADMIN_TOKEN=change-me-before-production SUB2API_CRM_LISTEN_ADDR=127.
|
||||
当前正式入口:
|
||||
|
||||
- `https://sub.tksea.top/portal/`
|
||||
- `https://sub.tksea.top/portal/admin-batch-import.html`
|
||||
- 最小管理页
|
||||
- 直接消费 `POST /api/batch-import/runs`
|
||||
- 直接消费 `GET /api/batch-import/runs/{run_id}`
|
||||
- 直接消费 `GET /api/batch-import/runs/{run_id}/items`
|
||||
|
||||
兼容入口:
|
||||
|
||||
|
||||
@@ -20,9 +20,16 @@
|
||||
- 旧地址 `https://sub.tksea.top/kimi-portal/` 当前保留为 `302` 跳转,避免历史分享链接失效
|
||||
- 站点资产与 Nginx 路由不再只存在 `/tmp` 临时文件,已收口进仓库:
|
||||
- `deploy/tksea-portal/index.html`
|
||||
- `deploy/tksea-portal/admin-batch-import.html`
|
||||
- `deploy/tksea-portal/nginx.sub.tksea.top.conf.example`
|
||||
- `scripts/deploy/deploy_tksea_portal.sh`
|
||||
- 新页面已补齐登录态、用户信息、可绑定分组、活跃订阅、历史 key 列表,以及“新创建 key 对应分组/模型”的即时展示
|
||||
- 同轮已补最小 batch-import 管理页:
|
||||
- 地址:`/portal/admin-batch-import.html`
|
||||
- 直接消费 `POST /api/batch-import/runs`
|
||||
- 直接消费 `GET /api/batch-import/runs/{run_id}`
|
||||
- 直接消费 `GET /api/batch-import/runs/{run_id}/items`
|
||||
- 用于验证 `matched_account_state / account_resolution / provision_reused`
|
||||
- 线上无副作用验收已确认:
|
||||
- `GET /portal/` 返回 `200`
|
||||
- `GET /kimi-portal/` 返回 `302 -> /portal/`
|
||||
@@ -65,7 +72,7 @@
|
||||
- 当前主仓不再需要依赖历史临时 pack `openai-cn-pack-kimi-a7m`
|
||||
- `kimi-a7m` provider manifest 现在也开始承载 `host_overlays` 元数据;本地已把 `sub2api v0.1.129` 的 Kimi A7M runtime overlay 说明与 `.patch` 资产纳入 `packs/openai-cn-pack/overlays/`
|
||||
- 新增 `go run ./cmd/cli apply-host-overlay` 最小执行器;当前 pack 内命中的 overlay 已可直接生成 patched 宿主构建目录,不再只是 preview/import 阶段的提示信息
|
||||
- 2026-05-25 已继续把路线 A 推进到运行态层面:
|
||||
- 2026-05-25 已继续把路线 A 推进到运行态层面:
|
||||
- 从 `/tmp/sub2api-clean` 的 clean worktree `HEAD` 导出 stock 源码,再用 `go run ./cmd/cli apply-host-overlay --provider-id kimi-a7m --host-version 0.1.129` 生成全新 patched 源码树
|
||||
- 基于该 patched 源码树重建 `localhost/sub2api:patched-overlay-20260525-clean`,并在独立 Podman 网络里启动新的 Postgres / Redis / App fresh-host
|
||||
- `artifacts/real-host-acceptance/20260525_local_v0129_kimi_a7m_patched_overlay_image_freshhost_clean/21-summary.json` 已确认:`import_batch_status=succeeded`、`provider_status=active`、`latest_access_status=subscription_ready`、`completion_ok=true`、`completion_status=200`
|
||||
@@ -159,6 +166,18 @@
|
||||
|
||||
- `scripts/acceptance/import_remote43_provider.sh` 会直探 provider `base_url` 对应的 upstream `/models` 与 `/chat/completions`
|
||||
- 新增 `21-summary.json`,用于把 completion 失败自动分流成 `host_compatibility_gap` 或 `upstream_key_quota_issue`
|
||||
- 2026-05-27 已把 V2 batch-import reuse runtime 真正接到 live action:
|
||||
- `internal/app/batch_runtime.go` 现已接入 `InspectReuse`
|
||||
- runtime reuse 查询优先命中既有 `import_run_items`,再回退到 legacy `import_batches / import_batch_items / managed_resources / providers`
|
||||
- 兼容 V2 短指纹与 legacy 完整 sha256 指纹
|
||||
- live run 现在可真实产出 `matched_account_state / account_resolution / provision_reused`
|
||||
- 2026-05-27 继续用 `/portal/admin-batch-import.html` 做真实页面操作验证,抓到了一个 live reuse 兼容缺口并已在本地修正:
|
||||
- real remote43 样本 `https://api.53hk.cn/v1 + sk-4175...d776 + host=remote43-kimi-patched-auto2-18169` 首轮返回 `TOKEN_EXPIRED`,根因是 CRM 中持久化的宿主 bearer 已过期;刷新 host auth 后,item 已能恢复到 `access_status=active`
|
||||
- 旧版 runtime 仍把同一条历史账号判成 `matched_account_state=none / account_resolution=created`,根因是 live runtime 的 normalized `provider_id`(如 `api-53hk-42797c06`)与 legacy pack provider id(如 `minimax-53hk`)不一致时,legacy reuse fallback 只按 `provider_id` 精确匹配
|
||||
- 当前已补 `base_url` fallback + `ProviderMatched` 策略信号:legacy lookup 会补查相同 `base_url` 的 provider,且“同 base_url + 同 key + family covered”现在可以真实收敛到 `reused/reactivated`
|
||||
- 定向回归已通过:`go test ./internal/app -run 'TestBatchImportHTTP/(create run action reuses matched legacy account|create run action reuses legacy account when pack provider id differs from normalized runtime id)$' -count=1`、`go test ./internal/batch -run TestDecideReuse -count=1`、`go test ./internal/store/sqlite -run 'TestProvidersRepoListBy(BaseURL|BaseURLEmpty)$' -count=1`
|
||||
- remote43 二次复验现已补证:更新后的 CRM 二进制已替换到 `18173` 控制面,真实 rerun `run_1779882868037300268` 已确认 item 从 `account_resolution=created` 收敛为 `account_resolution=reused`,并且 `provision_reused=true`、`access_status=active`
|
||||
- 当前剩余的细节是:该 rerun item 的 `matched_account_state` 仍为 `none`,说明“reuse 命中后是否补出 active/disabled/deprecated state badge”仍可继续优化;但这不影响本轮要验证的 `created -> reused` 结果成立
|
||||
|
||||
11. patched CRM external validation 已完成
|
||||
|
||||
|
||||
@@ -72,6 +72,8 @@
|
||||
|
||||
- `deploy/tksea-portal/index.html`
|
||||
- `sub.tksea.top/portal/` 静态页
|
||||
- `deploy/tksea-portal/admin-batch-import.html`
|
||||
- `sub.tksea.top/portal/admin-batch-import.html` 最小管理页
|
||||
- `deploy/tksea-portal/nginx.sub.tksea.top.conf.example`
|
||||
- 对应 Nginx 路由示例
|
||||
|
||||
|
||||
Reference in New Issue
Block a user