16 KiB
16 KiB
F2B 协作清单
文档版本:v1.16 最后更新:2026-04-03 23:58:00
说明:
- 本文件由前端维护,写给后端
- 只写“事实”和“请求”
- 不写长讨论稿
- 每条尽量包含:时间、提出方、当前事实、需要对方确认什么、状态
待确认
F2B-014
- 时间:2026-04-03 23:18:00
- 提出方:前端
- 当前事实:
- backend 在
B2F-037中已确认,本次“准备页没有赛道选择区”的直接原因不是前端显示条件,而是当前发布 release 的payload_jsonb缺少:play.assignmentModeplay.courseVariants
- backend 已说明修复方式为重新跑:
Bootstrap DemoUse Manual Variant Demo发布活动配置(自动补 Runtime)或整条链一键验收
- 前端当前逻辑已经兼容:
- 明确
assignmentMode=manual时显示赛道选择区 - 即使
assignmentMode缺失,只要courseVariants中存在 2 条以上可选赛道,也会显示赛道选择区
- 明确
- 因此前端现在是否显示赛道选择区,取决于 backend 新发布的 release 是否真的回出了多赛道字段
- backend 在
- 需要对方确认什么:
- 该问题已由 backend 在
B2F-037中确认修复完成,当前不再需要继续追问 - 后续多赛道联调以修复后的 demo/publish 链为准
- 该问题已由 backend 在
- 状态:已确认
F2B-013
- 时间:2026-04-03 22:28:00
- 提出方:前端
- 当前事实:
- 手动多赛道活动当前已能进入准备页,但准备页仍未出现赛道选择区
- 这次前端已排除“仅仅是
assignmentMode没回 manual”这一种情况:- 当前前端兼容逻辑已放宽为:只要
courseVariants中存在 2 条以上可选赛道,即使assignmentMode缺失,也会显示赛道选择区
- 当前前端兼容逻辑已放宽为:只要
- 但当前实际页面仍显示:
赛道模式:默认单赛道赛道摘要:当前未声明额外赛道版本,启动时按默认赛道进入
- 这说明前端当前实际拿到的更像是:
play.courseVariants = []或未返回
- 前端已追加准备页诊断日志字段,后端可从
event-prepare日志直接核对:details.variantCountdetails.selectableVariantCountdetails.showVariantSelector
- 需要对方确认什么:
- 该问题根因已由 backend 在
B2F-037中定位完成,当前不再需要继续从前端显示层排查 - 后续请转看
F2B-014
- 该问题根因已由 backend 在
- 状态:已解决
F2B-011
- 时间:2026-04-03
- 提出方:前端
- 当前事实:
- 使用 backend 一键测试环境联调
evt_demo_variant_manual_001时,活动页 / 准备页返回:primaryAction = continuereason = user has an ongoing session for this event
- 但前端本地当前没有可恢复快照,且本轮联调主观确认“已经没有需要恢复的游戏”
- 当前看起来像是 backend 仍认定该用户在该活动下存在 ongoing session
- 使用 backend 一键测试环境联调
- 需要对方确认什么:
- 请 backend 核对该用户在
evt_demo_variant_manual_001下是否仍有launched / runningsession 未清掉 - 如这是预期行为,请说明推荐的标准清理路径;如不是预期,请修正 ongoing 判定或测试环境回收逻辑
- 请 backend 核对该用户在
- 状态:待后续单独收口(当前不阻塞主线)
已确认
F2B-C001
- 时间:2026-04-01
- 提出方:前端
- 当前事实:
- 正式联调时,前端以 backend
launch下发的 release/manifest 为准 - 不再回退到本地
event/*.json
- 正式联调时,前端以 backend
- 需要对方确认什么:
- 无
- 状态:已确认
F2B-C002
- 时间:2026-04-01
- 提出方:前端
- 当前事实:
- 前后端协作文档改为双文件:
f2b.md由前端维护b2f.md由后端维护
- 前后端协作文档改为双文件:
- 需要对方确认什么:
- 无
- 状态:已确认
F2B-C003
- 时间:2026-04-02
- 提出方:前端
- 当前事实:
- backend 已确认 session 三态正式语义:
- 正常完成 ->
finished - 超时或规则失败 ->
failed - 主动退出 / 放弃恢复 ->
cancelled
- 正常完成 ->
- 前端已按这套语义继续联调
- backend 已确认 session 三态正式语义:
- 需要对方确认什么:
- 无
- 状态:已确认
F2B-C004
- 时间:2026-04-02
- 提出方:前端
- 当前事实:
- backend 已确认“放弃恢复”官方语义为
finish(cancelled) - 旧
sessionToken在该场景下允许继续调用 - 前端当前已正式启用该链路
- backend 已确认“放弃恢复”官方语义为
- 需要对方确认什么:
- 无
- 状态:已确认
F2B-C005
- 时间:2026-04-02
- 提出方:前端
- 当前事实:
- backend 已确认
start / finish按幂等处理 - 前端可继续按当前补报 / 重试逻辑联调
- backend 已确认
- 需要对方确认什么:
- 无
- 状态:已确认
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.assignmentModeplay.courseVariants[]launch.variant.id/name/routeCode/assignmentModesession / ongoing / recent / result摘要中带variantId/variantName/routeCode
- backend 已确认多赛道第一阶段最小契约,且相关字段已可从以下接口返回:
- 需要对方确认什么:
- 无
- 状态:已确认
F2B-C007
- 时间:2026-04-02
- 提出方:前端
- 当前事实:
- backend 已确认 launch 关键字段为正式契约:
resolvedRelease.manifestUrlresolvedRelease.releaseIdbusiness.sessionIdbusiness.sessionTokenbusiness.sessionTokenExpiresAt
- 如后续字段名或层级需调整,backend 将先在
b2f.md通知
- backend 已确认 launch 关键字段为正式契约:
- 需要对方确认什么:
- 无
- 状态:已确认
F2B-C008
- 时间:2026-04-02
- 提出方:前端
- 当前事实:
- backend 已确认 ongoing / recent / result 摘要口径:
launched、running作为 ongoingfinished、failed、cancelled不再作为 ongoing/me/results只返回终态对局
- 前端后续按这套摘要口径做显示与回归
- backend 已确认 ongoing / recent / result 摘要口径:
- 需要对方确认什么:
- 无
- 状态:已确认
F2B-C009
- 时间:2026-04-03
- 提出方:前端
- 当前事实:
- backend 已提供可联调的
manual多赛道 demo 活动:evt_demo_variant_manual_001
- backend 已确认
launch选定的variantId会稳定回流到:/me/entry-home/sessions/{sessionPublicID}/result/me/results
- backend 已提供可联调的
- 需要对方确认什么:
- 无
- 状态:已确认
F2B-C010
- 时间:2026-04-03
- 提出方:前端
- 当前事实:
- backend 已透出活动运营域第二阶段摘要字段:
currentPresentationcurrentContentBundlelaunch.presentationlaunch.contentBundle
- 前端当前按总控口径,仅做类型 / adapter / 活动页与准备页轻摘要接线,不扩新页面链
- backend 已透出活动运营域第二阶段摘要字段:
- 需要对方确认什么:
- 无
- 状态:已确认
F2B-C011
- 时间:2026-04-03 22:20:00
- 提出方:前端
- 当前事实:
- backend 已通过
B2F-035正式收紧play.canLaunch与launch的前置条件 - 当前规则为:缺
runtime / presentation / content bundle / manifest / 当前发布 release任一项时,均不可进入游戏 - 前端已按该契约复测,当前结果正常:
canLaunch=false时页面会禁用进入动作play.reason会给出更具体的缺失原因- backend 也不会再允许直接
launch绕过阻断
- backend 已通过
- 需要对方确认什么:
- 无
- 状态:已确认
F2B-C012
- 时间:2026-04-03 23:52:00
- 提出方:前端
- 当前事实:
- backend 已在
B2F-037中确认:manual 多赛道准备页不显示选择区的根因是发布 release 缺少:play.assignmentModeplay.courseVariants
- backend 已修复
Bootstrap Demo与发布链,当前问题已通过联调日志确认收口 - frontend 当前已保留多赛道兜底展示逻辑,但该问题主因不在前端显示层
- backend 已在
- 需要对方确认什么:
- 无
- 状态:已确认
F2B-C013
- 时间:2026-04-03 23:52:00
- 提出方:前端
- 当前事实:
- backend 在
B2F-038中要求的活动卡片列表第一刀字段,frontend 当前已按最小方案接入:summarystatusstatusCodetimeWindowctaTextisDefaultExperienceeventTypecurrentPresentationcurrentContentBundle
- frontend 当前列表页和详情页日志也已补齐:
cardEventIdsclickedEventIddetailStatusdetailCanLaunchdetailCurrentPresentationdetailCurrentContentBundle
- backend 在
- 需要对方确认什么:
- 当前字段已足够支撑活动卡片列表最小实现
- 当前没有发现必须新增的列表页名称摘要字段
- 状态:已确认
阻塞
F2B-B001
- 时间:2026-04-01
- 提出方:前端
- 当前事实:
- 当前前端主链已基本可联调
- 目前没有新的 backend 阻塞项
- 需要对方确认什么:
- 无
- 状态:已解决
已完成
F2B-D001
- 时间:2026-04-01
- 提出方:前端
- 当前事实:
- 小程序已接通:
- 登录
- 首页聚合
- 活动页
play launch -> 地图页session startsession finishsession 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-D006
- 时间:2026-04-03
- 提出方:前端
- 当前事实:
- 已按 backend
B2F-028的排查口径补充前端诊断链,当前地图信息面板/赛后结果里可直接查看:launch.config.configUrllaunch.resolvedRelease.manifestUrllaunch.config.releaseIdlaunch.resolvedRelease.releaseId- 最终加载后的:
Schema版本场地类型(playfield.kind)模式编码(game.mode)
- 当前只补了诊断与观测,没有改动正式 launch 主链
- 已按 backend
- 需要对方确认什么:
- 无
- 状态:已完成
F2B-D007
- 时间:2026-04-03 16:26:37
- 提出方:前端
- 当前事实:
- 已按
B2F-030接入 backendPOST /dev/client-logs - 当前关键阶段会主动上报最小调试日志:
entry-homeevent-playevent-preparelaunch-diagnosticruntime-compilersession-recovery
- 当前主日志字段已按 backend 建议最小口径回传:
sourcelevelcategorymessageeventIdreleaseIdsessionIdmanifestUrlroutedetails.phasedetails.schemaVersiondetails.playfield.kinddetails.game.mode
- 模拟器日志不再作为当前联调主诊断口,保留地图内调试面板作为本地辅助能力
- 已按
- 需要对方确认什么:
- 无
- 状态:已完成
F2B-D008
- 时间:2026-04-03 16:45:26
- 提出方:前端
- 当前事实:
- backend 已通过
B2F-031明确确认:积分赛误进顺序赛的根因不是前端解析,而是首页卡片入口配置错误 - 具体根因为:
- 首页卡片查询此前只取
home_primary - 积分赛 demo 卡此前被种到
home_secondary - 前端首页因此根本拿不到
evt_demo_score_o_001
- 首页卡片查询此前只取
- backend 已修复积分赛卡片入口配置
- 前端当前无需再为该问题修改玩法解析或 manifest 消费逻辑
- backend 已通过
- 需要对方确认什么:
- 无
- 状态:已完成
F2B-D009
- 时间:2026-04-03 16:45:26
- 提出方:前端
- 当前事实:
- 已按
B2F-032优化前端结构化调试日志口径:- 非多赛道玩法时,不再上报空字符串形式的
assignmentMode - 非手选赛道时,不再把空
variantId伪装成已选赛道 - 所有 client log 现在都会附带前端本地递增
details.seq launchVariantId与runtimeCourseVariantId已明确区分
- 非多赛道玩法时,不再上报空字符串形式的
- 已按
- 需要对方确认什么:
- 无
- 状态:已完成
F2B-D010
- 时间:2026-04-03 22:12:00
- 提出方:前端
- 当前事实:
- 已按
B2F-034对活动页和准备页做语义收口:展示版本改成当前发布展示版本内容包版本改成当前发布内容包版本
- 当
currentPresentation / currentContentBundle为空时,前端当前统一解释为:当前发布 release 未绑定展示版本,或当前尚未发布当前发布 release 未绑定内容包版本,或当前尚未发布
- 活动页与准备页当前进入动作都已优先受
play.canLaunch控制:canLaunch=false时按钮禁用- 同时阻止继续进入准备页或地图
- 已按
- 需要对方确认什么:
- 无
- 状态:已完成
下一步
F2B-N001
- 时间:2026-04-02
- 提出方:前端
- 当前事实:
- session 生命周期关键语义已由 backend 确认
- 当前前端下一轮重点应转向主链回归与结果展示对齐
- 需要对方确认什么:
- 无
- 状态:前端执行中
F2B-N002
- 时间:2026-04-02
- 提出方:前端
- 当前事实:
- 心率 / 卡路里个体化能力已在前端预留
- 需要对方确认什么:
- 后续是否提供用户身体数据接口
- 状态:后续事项
F2B-N003
- 时间:2026-04-02
- 提出方:前端
- 当前事实:
- backend 已确认多赛道第一阶段最小契约
- 前端已完成第一阶段基础接入,下一步将转入多赛道专项联调与展示补强
- 需要对方确认什么:
- 无
- 状态:前端执行中
F2B-N004
- 时间:2026-04-03
- 提出方:前端
- 当前事实:
- 当前主链已进入“稳住 + 联调修复”阶段
- 活动运营域摘要第一刀已接通,但前端不会主动扩复杂运营样式
- 需要对方确认什么:
- 无
- 状态:前端执行中
F2B-N005
- 时间:2026-04-03
- 提出方:前端
- 当前事实:
- 当前已具备积分赛 demo 发布链诊断信息,下一步将按 backend 一键测试环境回归
evt_demo_score_o_001 - 如仍表现为顺序赛,前端将回传 launch/config/runtime 三段事实,不再只报“现象”
- 当前已具备积分赛 demo 发布链诊断信息,下一步将按 backend 一键测试环境回归
- 需要对方确认什么:
- 无
- 状态:前端执行中