SDK-002:实现并验收 SDK 登录、服务器准入与角色初始化闭环
Producer-facing 结果
新账号和老账号在 SDK-001 已审核 contract 下,能够完成授权、服务器准入、角色创建或登录、快照初始化和长连接建立,并在允许条件下进入完整可交互大厅;失败条件有安全、可恢复且可本地化的反馈。
输入与依赖
- Depends on:
SDK-001 - Source doc:
features/account-server-login.md - Primary route:
backend/project2-backend-codex - Conditional route:
frontend/project2-frontend-codex SDK-001的 config、proto、error、language 和 analytics contract 必须作为 reviewed input;缺失时 blocked,不得从现有实现猜测。
预期 workflow DAG
PIP-001:Hub 冻结 execution issue,确认本任务仍是单一“可进入大厅”结果并复核 contract。BE-001:Backend principal 实现服务端权威会话、准入、角色初始化、快照、长连接与失败处理。FRO-001:Frontend principal 接入 SDK / token 授权、loading/login 状态、单服直入或已确认的多服流程、初始化与失败恢复。IT-001:核对 config/proto/error/language 消费、前后端状态语义和 skipped-step rationale。QA-001:运行 focused tests、backend clean-worktree QA、Unity compile/tests 与登录状态 smoke,形成 Producer review evidence。
In Scope
ACCOUNT-SERVER-LOGIN-R-001至ACCOUNT-SERVER-LOGIN-R-005。- SDK / token 会话、版本与服务器准入、角色创建或登录、角色快照、长连接、超时、断线与重试。
- 单服候选规则或 SDK-001 明确确认的多服流程。
Out of Scope / Must Not
- 改名、头像、支付账号绑定、客服账号迁移和生产运营配置变更。
- 在 backend repo 修改 planning proto/config/language 源;在 frontend repo定义服务端准入事实。
- 修改 production/game-server state、白名单、维护、审核服、开服时间、credential 或 permission。
- 没有 Producer-approved rationale 时,不得把 UI/prefab/状态截图范围缩成纯 C# service 接线。
验收
- 新账号和老账号的成功路径均能进入完整可交互大厅。
- token 失效、版本不匹配、维护、白名单拒绝、未开服、超时、断线和快照不完整均由服务端权威判断,并在客户端显示可恢复反馈。
- 重复登录、重复创建角色和重连不会产生重复角色、重复会话或不一致快照。
- 单服模式无无意义选服 UI;多服模式仅在 SDK-001 已确认后实现并验证。
- MR evidence 包含 Backend tests/clean-worktree QA、Unity compile/tests、关键状态 smoke 或截图、contract traceability 与 residual risk。
验证
go test ./...
python3 /Users/wjai/AutoDev/repos/auto-dev-pipeline/scripts/clean_worktree_verify.py --repo /Users/wjai/AutoDev/repos/project2-go --ref <MR_SOURCE_BRANCH_OR_SHA> --must-track go.sum --must-track config.simple.toml --must-not-ignore go.sum -- go test ./...
python3 tools/project2_ui_boundary_lint.py --changed-only --pretty
Unity EditMode or PlayMode tests and login state smoke through Unity MCP or the repo-approved fallback
Backend 可先运行 focused package tests,但进入 review 前必须按 repo policy提供 clean-worktree evidence。Frontend 涉及登录页面、prefab 或可视状态时必须使用 Unity MCP 检查 Editor/Console、编译、状态截图或 recording;MCP 不可用时返回 blocker 或明确降级理由。