196 lines
4.4 KiB
Markdown
196 lines
4.4 KiB
Markdown
# F2B 协作清单
|
||
|
||
说明:
|
||
|
||
- 本文件由前端维护,写给后端
|
||
- 只写“事实”和“请求”
|
||
- 不写长讨论稿
|
||
- 每条尽量包含:时间、提出方、当前事实、需要对方确认什么、状态
|
||
|
||
---
|
||
|
||
## 待确认
|
||
|
||
### F2B-001
|
||
|
||
- 时间:2026-04-01
|
||
- 提出方:前端
|
||
- 当前事实:
|
||
- 小程序当前按以下语义上报 session 结束状态:
|
||
- 正常打终点完成 -> `finished`
|
||
- 超时结束 -> `failed`
|
||
- 主动退出 / 放弃恢复 -> `cancelled`
|
||
- 需要对方确认什么:
|
||
- backend 是否确认以上三态为正式语义
|
||
- 状态:待确认
|
||
|
||
### F2B-002
|
||
|
||
- 时间:2026-04-01
|
||
- 提出方:前端
|
||
- 当前事实:
|
||
- 小程序已启用“放弃恢复 -> `finish(cancelled)`”
|
||
- 调用时使用的是恢复快照里的旧 `sessionId/sessionToken`
|
||
- 若上报失败,前端仍会放弃本地恢复,不阻塞用户
|
||
- 需要对方确认什么:
|
||
- backend 是否确认“放弃恢复”应记为 `cancelled`
|
||
- 旧 `sessionToken` 在该场景下是否允许调用 `finish(cancelled)`
|
||
- 状态:待确认
|
||
|
||
### F2B-003
|
||
|
||
- 时间:2026-04-01
|
||
- 提出方:前端
|
||
- 当前事实:
|
||
- 联调和故障恢复场景下,`start` / `finish` 存在重复调用可能
|
||
- 当前前端已经尽量去重,但无法完全避免网络重试和页面重进
|
||
- 需要对方确认什么:
|
||
- backend 是否按幂等方式处理 `start`
|
||
- backend 是否按幂等方式处理 `finish`
|
||
- 状态:待确认
|
||
|
||
### F2B-004
|
||
|
||
- 时间:2026-04-01
|
||
- 提出方:前端
|
||
- 当前事实:
|
||
- 前端当前依赖以下 launch 字段:
|
||
- `resolvedRelease.manifestUrl`
|
||
- `resolvedRelease.releaseId`
|
||
- `business.sessionId`
|
||
- `business.sessionToken`
|
||
- `business.sessionTokenExpiresAt`
|
||
- 需要对方确认什么:
|
||
- backend 后续如需调整这些字段名或层级,需先在 `b2f.md` 明确通知
|
||
- 状态:待确认
|
||
|
||
### F2B-005
|
||
|
||
- 时间:2026-04-01
|
||
- 提出方:前端
|
||
- 当前事实:
|
||
- ongoing session 目前会影响:
|
||
- `/me/entry-home`
|
||
- `/events/{eventPublicID}/play`
|
||
- `/sessions/{sessionPublicID}/result`
|
||
- 需要对方确认什么:
|
||
- `cancelled` 后不再作为 ongoing 返回
|
||
- `failed` 后不再作为 ongoing 返回
|
||
- `finished` 后结果摘要与首页摘要口径一致
|
||
- 状态:待确认
|
||
|
||
---
|
||
|
||
## 已确认
|
||
|
||
### F2B-C001
|
||
|
||
- 时间:2026-04-01
|
||
- 提出方:前端
|
||
- 当前事实:
|
||
- 正式联调时,前端以 backend `launch` 下发的 release/manifest 为准
|
||
- 不再回退到本地 `event/*.json`
|
||
- 需要对方确认什么:
|
||
- 无
|
||
- 状态:已确认
|
||
|
||
### F2B-C002
|
||
|
||
- 时间:2026-04-01
|
||
- 提出方:前端
|
||
- 当前事实:
|
||
- 前后端协作文档改为双文件:
|
||
- `f2b.md` 由前端维护
|
||
- `b2f.md` 由后端维护
|
||
- 需要对方确认什么:
|
||
- 无
|
||
- 状态:已确认
|
||
|
||
---
|
||
|
||
## 阻塞
|
||
|
||
### 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-N001
|
||
|
||
- 时间:2026-04-01
|
||
- 提出方:前端
|
||
- 当前事实:
|
||
- 当前最需要 backend 反馈的,是 session 生命周期相关语义
|
||
- 需要对方确认什么:
|
||
- 优先回复:
|
||
- F2B-001
|
||
- F2B-002
|
||
- F2B-003
|
||
- 状态:等待后端回复
|
||
|
||
### F2B-N002
|
||
|
||
- 时间:2026-04-01
|
||
- 提出方:前端
|
||
- 当前事实:
|
||
- 心率 / 卡路里个体化能力已在前端预留
|
||
- 需要对方确认什么:
|
||
- 后续是否提供用户身体数据接口
|
||
- 状态:后续事项
|