docs(accounts): record p3-t2 remote verification
This commit is contained in:
@@ -438,6 +438,68 @@
|
||||
- 插件侧已经具备“帐号库存列表 + 人工启停状态”的最小资产闭环
|
||||
- 首版语义仍然是“插件库存状态”,不是“宿主账号状态联动”
|
||||
- `P3-T2` 可以直接继续做帐号资产页和 route / shadow group 归属展示
|
||||
- 2026-05-29 已完成 Phase 3 / `P3-T2 帐号资产页与归属展示`
|
||||
- 提交:
|
||||
- `c982c595 feat(accounts): add provider account admin view`
|
||||
- `d8d9e6e1 fix(accounts): tolerate ambiguous shadow bindings`
|
||||
- 新增管理页:
|
||||
- `deploy/tksea-portal/admin/accounts.html`
|
||||
- 公网地址:`https://sub.tksea.top/portal/admin/accounts.html`
|
||||
- 当前页面能力:
|
||||
- 列出 `provider_accounts`
|
||||
- 按 `host_id / provider_id / logical_group_id / route_id / shadow_group_id / account_status / q` 过滤
|
||||
- 详情区展示:
|
||||
- `provider`
|
||||
- `host`
|
||||
- `logical_group`
|
||||
- `route`
|
||||
- `shadow_group`
|
||||
- `shadow_host`
|
||||
- `upstream_base_url_hint`
|
||||
- `last_probe_status`
|
||||
- 直接触发:
|
||||
- `POST /api/provider-accounts/{account_id}/enable`
|
||||
- `POST /api/provider-accounts/{account_id}/disable`
|
||||
- `POST /api/provider-accounts/{account_id}/retire`
|
||||
- 后端归属补齐规则已收口:
|
||||
- 若 `shadow_host_id + shadow_group_id` 只命中一条 `logical_group_route`,则自动回填 `route_id`
|
||||
- 若命中多条 route,则不再返回 `500`;改为保留 `shadow_group`,并把 `route / logical_group` 显式留空,等待后续运营整理
|
||||
- 本地门禁已通过:
|
||||
- `gofmt -l .`
|
||||
- `go vet ./...`
|
||||
- `go test -cover ./internal/...`
|
||||
- `go test ./tests/integration/... -count=1`
|
||||
- `bash ./scripts/test/test_tksea_portal_assets.sh`
|
||||
- `bash ./scripts/test/test_real_host_scripts.sh`
|
||||
- remote43 已原位升级到:
|
||||
- `repo HEAD = d8d9e6e1`
|
||||
- CRM 活跃监听 PID:`2015702`
|
||||
- `http://127.0.0.1:18173/healthz` 返回 `ok`
|
||||
- portal 已重新发布,`https://sub.tksea.top/portal/admin/accounts.html` 返回 `200`
|
||||
- remote43 真实验证已通过:
|
||||
- 页面回读:
|
||||
- `page_title=Provider Accounts Admin`
|
||||
- `page_nav=/portal/admin/accounts.html`
|
||||
- `GET /api/provider-accounts`
|
||||
- 返回样本:
|
||||
- `id=1`
|
||||
- `provider_id=gpt-asxs-shadow-lab`
|
||||
- `account_status=active`
|
||||
- `shadow_group_id=9`
|
||||
- `shadow_host=proxy-real-host-1780026133`
|
||||
- 同一条样本的启停动作:
|
||||
- `disable -> list` 保持 `disabled`
|
||||
- `enable -> list` 恢复 `active`
|
||||
- `retire -> list` 保持 `deprecated`
|
||||
- 验证完成后已恢复为 `active`
|
||||
- 当前 remote43 真相:
|
||||
- 这条现网样本的 `logical_group / route` 当前仍为空
|
||||
- 根因不是列表页丢字段,而是 remote43 上有多条 `logical_group_route` 复用同一 `shadow_host_id + shadow_group_id`
|
||||
- 当前系统已把这种情况从“500 致命错误”降级成“可读但未归属”的显式状态
|
||||
- 当前结论:
|
||||
- 管理员已经能通过统一页面查看帐号资产、筛选 `shadow_group`、执行人工启停
|
||||
- `route / logical_group` 归属在唯一 shadow binding 下会自动补齐;在歧义 shadow binding 下会显式显示未归属
|
||||
- `P3-T3` 可以继续做“帐号资产与 route 的显式整理动作”或更完整的运营看板
|
||||
- 2026-05-28 已完成 Phase 1 / `P1-T1 SQLite schema foundation`
|
||||
- 提交:`7f75d8a6 feat(routing): add logical group schema foundation`
|
||||
- 新 migration:`internal/store/migrations/0010_logical_groups_and_routes.sql`
|
||||
|
||||
Reference in New Issue
Block a user