Files
cmr-mini/f2b.md

315 lines
7.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# F2B 协作清单
> 文档版本v1.5
> 最后更新2026-04-03 20:02:00
说明:
- 本文件由前端维护,写给后端
- 只写“事实”和“请求”
- 不写长讨论稿
- 每条尽量包含:时间、提出方、当前事实、需要对方确认什么、状态
---
## 待确认
### F2B-011
- 时间2026-04-03
- 提出方:前端
- 当前事实:
- 使用 backend 一键测试环境联调 `evt_demo_variant_manual_001` 时,活动页 / 准备页返回:
- `primaryAction = continue`
- `reason = user has an ongoing session for this event`
- 但前端本地当前没有可恢复快照,且本轮联调主观确认“已经没有需要恢复的游戏”
- 当前看起来像是 backend 仍认定该用户在该活动下存在 ongoing session
- 需要对方确认什么:
- 请 backend 核对该用户在 `evt_demo_variant_manual_001` 下是否仍有 `launched / running` session 未清掉
- 如这是预期行为,请说明推荐的标准清理路径;如不是预期,请修正 ongoing 判定或测试环境回收逻辑
- 状态:待确认
---
## 已确认
### F2B-C001
- 时间2026-04-01
- 提出方:前端
- 当前事实:
- 正式联调时,前端以 backend `launch` 下发的 release/manifest 为准
- 不再回退到本地 `event/*.json`
- 需要对方确认什么:
-
- 状态:已确认
### F2B-C002
- 时间2026-04-01
- 提出方:前端
- 当前事实:
- 前后端协作文档改为双文件:
- `f2b.md` 由前端维护
- `b2f.md` 由后端维护
- 需要对方确认什么:
-
- 状态:已确认
### F2B-C003
- 时间2026-04-02
- 提出方:前端
- 当前事实:
- backend 已确认 session 三态正式语义:
- 正常完成 -> `finished`
- 超时或规则失败 -> `failed`
- 主动退出 / 放弃恢复 -> `cancelled`
- 前端已按这套语义继续联调
- 需要对方确认什么:
-
- 状态:已确认
### F2B-C004
- 时间2026-04-02
- 提出方:前端
- 当前事实:
- backend 已确认“放弃恢复”官方语义为 `finish(cancelled)`
-`sessionToken` 在该场景下允许继续调用
- 前端当前已正式启用该链路
- 需要对方确认什么:
-
- 状态:已确认
### F2B-C005
- 时间2026-04-02
- 提出方:前端
- 当前事实:
- backend 已确认 `start / finish` 按幂等处理
- 前端可继续按当前补报 / 重试逻辑联调
- 需要对方确认什么:
-
- 状态:已确认
### F2B-C006
- 时间2026-04-02
- 提出方:前端
- 当前事实:
- backend 已确认多赛道第一阶段最小契约,且相关字段已可从以下接口返回:
- `/events/{eventPublicID}/play`
- `/events/{eventPublicID}/launch`
- `/me/entry-home`
- `/sessions/{sessionPublicID}`
- `/sessions/{sessionPublicID}/result`
- `/me/results`
- `/me/sessions`
- 正式口径为:
- `play.assignmentMode`
- `play.courseVariants[]`
- `launch.variant.id/name/routeCode/assignmentMode`
- `session / ongoing / recent / result` 摘要中带 `variantId/variantName/routeCode`
- 需要对方确认什么:
-
- 状态:已确认
### F2B-C007
- 时间2026-04-02
- 提出方:前端
- 当前事实:
- backend 已确认 launch 关键字段为正式契约:
- `resolvedRelease.manifestUrl`
- `resolvedRelease.releaseId`
- `business.sessionId`
- `business.sessionToken`
- `business.sessionTokenExpiresAt`
- 如后续字段名或层级需调整backend 将先在 `b2f.md` 通知
- 需要对方确认什么:
-
- 状态:已确认
### F2B-C008
- 时间2026-04-02
- 提出方:前端
- 当前事实:
- backend 已确认 ongoing / recent / result 摘要口径:
- `launched``running` 作为 ongoing
- `finished``failed``cancelled` 不再作为 ongoing
- `/me/results` 只返回终态对局
- 前端后续按这套摘要口径做显示与回归
- 需要对方确认什么:
-
- 状态:已确认
### F2B-C009
- 时间2026-04-03
- 提出方:前端
- 当前事实:
- backend 已提供可联调的 `manual` 多赛道 demo 活动:
- `evt_demo_variant_manual_001`
- backend 已确认 `launch` 选定的 `variantId` 会稳定回流到:
- `/me/entry-home`
- `/sessions/{sessionPublicID}/result`
- `/me/results`
- 需要对方确认什么:
-
- 状态:已确认
### F2B-C010
- 时间2026-04-03
- 提出方:前端
- 当前事实:
- backend 已透出活动运营域第二阶段摘要字段:
- `currentPresentation`
- `currentContentBundle`
- `launch.presentation`
- `launch.contentBundle`
- 前端当前按总控口径,仅做类型 / adapter / 活动页与准备页轻摘要接线,不扩新页面链
- 需要对方确认什么:
-
- 状态:已确认
---
## 阻塞
### F2B-B001
- 时间2026-04-01
- 提出方:前端
- 当前事实:
- 当前前端主链已基本可联调
- 目前没有新的 backend 阻塞项
- 需要对方确认什么:
-
- 状态:已解决
---
## 已完成
### F2B-D001
- 时间2026-04-01
- 提出方:前端
- 当前事实:
- 小程序已接通:
- 登录
- 首页聚合
- 活动页 `play`
- `launch -> 地图页`
- `session start`
- `session finish`
- `session result`
- 需要对方确认什么:
-
- 状态:已完成
### F2B-D002
- 时间2026-04-01
- 提出方:前端
- 当前事实:
- 小程序已接入故障恢复:
- 检测未正常结束对局
- 弹“继续恢复 / 放弃”
- 继续恢复时恢复本地运行时快照
- 放弃时清本地恢复,并上报 `finish(cancelled)`
- 需要对方确认什么:
-
- 状态:已完成
### F2B-D003
- 时间2026-04-01
- 提出方:前端
- 当前事实:
- `evt_demo_001` 当前 release manifest 已恢复可用
- 前端已能正常进入地图
- 需要对方确认什么:
-
- 状态:已完成
### F2B-D004
- 时间2026-04-02
- 提出方:前端
- 当前事实:
- 前端已完成多赛道第一阶段接入:
- `backendApi / launchAdapter / GameLaunchEnvelope` 已接入 `variant` 字段
- 故障恢复会随 `launchEnvelope` 保留 `variant` 信息
- 活动页、准备页、首页、单局结果页、历史结果页开始展示赛道版本信息
- `manual` 模式下准备页已支持选择赛道并把 `variantId` 带入 launch
- 需要对方确认什么:
-
- 状态:已完成
### F2B-D005
- 时间2026-04-03
- 提出方:前端
- 当前事实:
- 前端已完成活动运营域摘要第一刀的轻接线:
- 活动页开始展示 `currentPresentation / currentContentBundle`
- 准备页开始展示活动运营摘要
- `launch.presentation / launch.contentBundle` 已进入 `GameLaunchEnvelope`
- 会话快照会随 `launchEnvelope` 一起保留这批摘要
- 需要对方确认什么:
-
- 状态:已完成
---
## 下一步
### F2B-N001
- 时间2026-04-02
- 提出方:前端
- 当前事实:
- session 生命周期关键语义已由 backend 确认
- 当前前端下一轮重点应转向主链回归与结果展示对齐
- 需要对方确认什么:
-
- 状态:前端执行中
### F2B-N002
- 时间2026-04-02
- 提出方:前端
- 当前事实:
- 心率 / 卡路里个体化能力已在前端预留
- 需要对方确认什么:
- 后续是否提供用户身体数据接口
- 状态:后续事项
### F2B-N003
- 时间2026-04-02
- 提出方:前端
- 当前事实:
- backend 已确认多赛道第一阶段最小契约
- 前端已完成第一阶段基础接入,下一步将转入多赛道专项联调与展示补强
- 需要对方确认什么:
-
- 状态:前端执行中
### F2B-N004
- 时间2026-04-03
- 提出方:前端
- 当前事实:
- 当前主链已进入“稳住 + 联调修复”阶段
- 活动运营域摘要第一刀已接通,但前端不会主动扩复杂运营样式
- 需要对方确认什么:
-
- 状态:前端执行中