Files
cmr-mini/f2b.md

287 lines
7.1 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.3
> 最后更新2026-04-02 15:19:37
说明:
- 本文件由前端维护,写给后端
- 只写“事实”和“请求”
- 不写长讨论稿
- 每条尽量包含:时间、提出方、当前事实、需要对方确认什么、状态
---
## 待确认
### F2B-007
- 时间2026-04-02
- 提出方:前端
- 当前事实:
- 前端已完成多赛道第一阶段接入:
- 活动页、准备页可展示 `assignmentMode / courseVariants`
-`assignmentMode=manual` 时,准备页会让用户选择赛道
- 前端会把选中的 `variantId` 带入 `POST /events/{eventPublicID}/launch`
- 需要对方确认什么:
- 请 backend 提供一个可联调的 `manual` 多赛道活动或 demo 数据
- 该活动需确保 `play.courseVariants[]``launch.variant.*` 可稳定返回
- 状态:待确认
### F2B-008
- 时间2026-04-02
- 提出方:前端
- 当前事实:
- 前端已开始在首页 ongoing/recent、单局结果页、历史结果页展示 `variantName / routeCode`
- 当前需要确认从 `launch` 选定的 `variantId` 是否会稳定回流到:
- `/me/entry-home`
- `/sessions/{sessionPublicID}/result`
- `/me/results`
- 需要对方确认什么:
- 请 backend 确认以上摘要链是否已完成 variant 回写
- 如还未全部完成,请给出可联调时间点或先可用的接口范围
- 状态:待确认
---
## 已确认
### 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-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-N001
- 时间2026-04-02
- 提出方:前端
- 当前事实:
- session 生命周期关键语义已由 backend 确认
- 当前前端下一轮重点应转向主链回归与结果展示对齐
- 需要对方确认什么:
-
- 状态:前端执行中
### F2B-N002
- 时间2026-04-02
- 提出方:前端
- 当前事实:
- 心率 / 卡路里个体化能力已在前端预留
- 需要对方确认什么:
- 后续是否提供用户身体数据接口
- 状态:后续事项
### F2B-N003
- 时间2026-04-02
- 提出方:前端
- 当前事实:
- backend 已确认多赛道第一阶段最小契约
- 前端已完成第一阶段基础接入,下一步将转入多赛道专项联调与展示补强
- 需要对方确认什么:
-
- 状态:前端执行中
### F2B-N004
- 时间2026-04-02
- 提出方:前端
- 当前事实:
- 多赛道下一步最值钱的是专项联调,而不是继续扩页面
- 当前优先链路为:
- `manual` 赛道选择 -> `launch.variant`
- `launch.variant` -> `ongoing / result / results`
- 需要对方确认什么:
-
- 状态:等待 backend 提供联调数据