文档版本:v1.16 最后更新:2026-04-03 23:58:00
说明:
B2F-037 中已确认,本次“准备页没有赛道选择区”的直接原因不是前端显示条件,而是当前发布 release 的 payload_jsonb 缺少:play.assignmentModeplay.courseVariantsBootstrap DemoUse Manual Variant Demo发布活动配置(自动补 Runtime) 或 整条链一键验收assignmentMode=manual 时显示赛道选择区assignmentMode 缺失,只要 courseVariants 中存在 2 条以上可选赛道,也会显示赛道选择区B2F-037 中确认修复完成,当前不再需要继续追问assignmentMode 没回 manual”这一种情况:courseVariants 中存在 2 条以上可选赛道,即使 assignmentMode 缺失,也会显示赛道选择区赛道模式:默认单赛道赛道摘要:当前未声明额外赛道版本,启动时按默认赛道进入play.courseVariants = [] 或未返回event-prepare 日志直接核对:details.variantCountdetails.selectableVariantCountdetails.showVariantSelectorB2F-037 中定位完成,当前不再需要继续从前端显示层排查F2B-014evt_demo_variant_manual_001 时,活动页 / 准备页返回:primaryAction = continuereason = user has an ongoing session for this eventevt_demo_variant_manual_001 下是否仍有 launched / running session 未清掉launch 下发的 release/manifest 为准event/*.jsonf2b.md 由前端维护b2f.md 由后端维护finishedfailedcancelledfinish(cancelled)sessionToken 在该场景下允许继续调用start / finish 按幂等处理/events/{eventPublicID}/play/events/{eventPublicID}/launch/me/entry-home/sessions/{sessionPublicID}/sessions/{sessionPublicID}/result/me/results/me/sessionsplay.assignmentModeplay.courseVariants[]launch.variant.id/name/routeCode/assignmentModesession / ongoing / recent / result 摘要中带 variantId/variantName/routeCoderesolvedRelease.manifestUrlresolvedRelease.releaseIdbusiness.sessionIdbusiness.sessionTokenbusiness.sessionTokenExpiresAtb2f.md 通知launched、running 作为 ongoingfinished、failed、cancelled 不再作为 ongoing/me/results 只返回终态对局manual 多赛道 demo 活动:evt_demo_variant_manual_001launch 选定的 variantId 会稳定回流到:/me/entry-home/sessions/{sessionPublicID}/result/me/resultscurrentPresentationcurrentContentBundlelaunch.presentationlaunch.contentBundleB2F-035 正式收紧 play.canLaunch 与 launch 的前置条件runtime / presentation / content bundle / manifest / 当前发布 release 任一项时,均不可进入游戏canLaunch=false 时页面会禁用进入动作play.reason 会给出更具体的缺失原因launch 绕过阻断B2F-037 中确认:manual 多赛道准备页不显示选择区的根因是发布 release 缺少:play.assignmentModeplay.courseVariantsBootstrap Demo 与发布链,当前问题已通过联调日志确认收口B2F-038 中要求的活动卡片列表第一刀字段,frontend 当前已按最小方案接入:summarystatusstatusCodetimeWindowctaTextisDefaultExperienceeventTypecurrentPresentationcurrentContentBundlecardEventIdsclickedEventIddetailStatusdetailCanLaunchdetailCurrentPresentationdetailCurrentContentBundleplaylaunch -> 地图页session startsession finishsession resultfinish(cancelled)evt_demo_001 当前 release manifest 已恢复可用backendApi / launchAdapter / GameLaunchEnvelope 已接入 variant 字段launchEnvelope 保留 variant 信息manual 模式下准备页已支持选择赛道并把 variantId 带入 launchcurrentPresentation / currentContentBundlelaunch.presentation / launch.contentBundle 已进入 GameLaunchEnvelopelaunchEnvelope 一起保留这批摘要B2F-028 的排查口径补充前端诊断链,当前地图信息面板/赛后结果里可直接查看:launch.config.configUrllaunch.resolvedRelease.manifestUrllaunch.config.releaseIdlaunch.resolvedRelease.releaseIdSchema版本场地类型(playfield.kind)模式编码(game.mode)B2F-030 接入 backend POST /dev/client-logsentry-homeevent-playevent-preparelaunch-diagnosticruntime-compilersession-recoverysourcelevelcategorymessageeventIdreleaseIdsessionIdmanifestUrlroutedetails.phasedetails.schemaVersiondetails.playfield.kinddetails.game.modeB2F-031 明确确认:积分赛误进顺序赛的根因不是前端解析,而是首页卡片入口配置错误home_primaryhome_secondaryevt_demo_score_o_001B2F-032 优化前端结构化调试日志口径:assignmentModevariantId 伪装成已选赛道details.seqlaunchVariantId 与 runtimeCourseVariantId 已明确区分B2F-034 对活动页和准备页做语义收口:展示版本 改成 当前发布展示版本内容包版本 改成 当前发布内容包版本currentPresentation / currentContentBundle 为空时,前端当前统一解释为:当前发布 release 未绑定展示版本,或当前尚未发布当前发布 release 未绑定内容包版本,或当前尚未发布play.canLaunch 控制:canLaunch=false 时按钮禁用evt_demo_score_o_001