docs(accounts): record p3-t3 remote verification
This commit is contained in:
@@ -500,6 +500,69 @@
|
||||
- 管理员已经能通过统一页面查看帐号资产、筛选 `shadow_group`、执行人工启停
|
||||
- `route / logical_group` 归属在唯一 shadow binding 下会自动补齐;在歧义 shadow binding 下会显式显示未归属
|
||||
- `P3-T3` 可以继续做“帐号资产与 route 的显式整理动作”或更完整的运营看板
|
||||
- 2026-05-29 已完成 Phase 3 / `P3-T3 帐号归属显式整理`
|
||||
- 提交:`649eb13f feat(accounts): add explicit route binding workflow`
|
||||
- 新增后端能力:
|
||||
- `GET /api/provider-accounts/{account_id}/binding-candidates`
|
||||
- `POST /api/provider-accounts/{account_id}/binding`
|
||||
- `GET /api/provider-accounts?binding_state=assigned|unassigned|conflict`
|
||||
- 当前绑定语义已收口:
|
||||
- `assigned`
|
||||
- `provider_accounts.route_id` 已明确绑定到一条 route
|
||||
- `unassigned`
|
||||
- 当前没有 route 归属,且同一 `shadow_host_id + shadow_group_id` 下候选 route 不超过 1 条
|
||||
- `conflict`
|
||||
- 当前没有 route 归属,且同一 `shadow_host_id + shadow_group_id` 下候选 route 超过 1 条
|
||||
- 新增页面动作:
|
||||
- `deploy/tksea-portal/admin/accounts.html`
|
||||
- 新增 `binding_state` 过滤
|
||||
- 新增“显式整理归属”区块
|
||||
- 可查看 route 候选
|
||||
- 可手动绑定到一条 route
|
||||
- 可清空 route 归属,回到未归属 / 冲突状态
|
||||
- 本地门禁已通过:
|
||||
- `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 = 649eb13f`
|
||||
- CRM 活跃监听 PID:`2709328`
|
||||
- `http://127.0.0.1:18173/healthz` 返回 `ok`
|
||||
- portal 已重新发布,`https://sub.tksea.top/portal/admin/accounts.html` 返回包含:
|
||||
- `Provider Accounts Admin`
|
||||
- `显式整理归属`
|
||||
- remote43 真实验证已通过:
|
||||
- 现网样本:
|
||||
- `account_id=1`
|
||||
- `shadow_group_id=9`
|
||||
- `shadow_host_id=proxy-real-host-1780026133`
|
||||
- 为验证冲突整理动作,临时创建:
|
||||
- `logical_group_id=p3t3-bind-1780054239`
|
||||
- `route_a=primary-1780054239`
|
||||
- `route_b=fallback-1780054239`
|
||||
- 两条 route 都复用同一 `shadow_host_id + shadow_group_id`
|
||||
- 回读结果:
|
||||
- `GET /api/provider-accounts?binding_state=conflict&shadow_group_id=9`
|
||||
- `conflict_count=1`
|
||||
- `GET /api/provider-accounts/1/binding-candidates`
|
||||
- `candidate_route_count=2`
|
||||
- `POST /api/provider-accounts/1/binding`
|
||||
- `route_id=primary-1780054239`
|
||||
- `binding_state=assigned`
|
||||
- `GET /api/provider-accounts?route_id=primary-1780054239`
|
||||
- `assigned_count=1`
|
||||
- `POST /api/provider-accounts/1/binding` with `{"clear":true}`
|
||||
- 返回 `binding_state=conflict`
|
||||
- 再次 `GET /api/provider-accounts?binding_state=conflict&shadow_group_id=9`
|
||||
- `after_clear_conflict_count=1`
|
||||
- 验证结束后已删除临时 `logical_group / routes`,避免 remote43 再次积累测试噪音
|
||||
- 当前结论:
|
||||
- 帐号资产已不再只是“看见未归属”,而是可以直接在插件侧完成 route 归属整理
|
||||
- `shadow binding` 歧义场景已经从“只能读”升级为“可读 + 可人工收口”
|
||||
- `P3` 已具备进入下一步“更完整的运营看板”或直接切到 `P4` 的条件
|
||||
- 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