推进活动系统最小成品闭环与游客体验
This commit is contained in:
616
f2b.md
616
f2b.md
@@ -1,234 +1,170 @@
|
||||
# F2B 协作清单
|
||||
> 文档版本:v1.16
|
||||
> 最后更新:2026-04-03 23:58:00
|
||||
|
||||
> 文档版本:v2.5
|
||||
> 最后更新:2026-04-07 21:24:00
|
||||
> 历史归档: [f2b.archive.md](D:/dev/cmr-mini/f2b.archive.md)
|
||||
|
||||
说明:
|
||||
|
||||
- 本文件由前端维护,写给后端
|
||||
- 只写“事实”和“请求”
|
||||
- 不写长讨论稿
|
||||
- 每条尽量包含:时间、提出方、当前事实、需要对方确认什么、状态
|
||||
- 主文件只保留当前仍有意义的信息
|
||||
- 已完成的大段历史已转入归档
|
||||
|
||||
---
|
||||
|
||||
## 待确认
|
||||
|
||||
### F2B-014
|
||||
### F2B-019
|
||||
|
||||
- 时间:2026-04-03 23:18:00
|
||||
- 时间:2026-04-07 21:24:00
|
||||
- 提出方:前端
|
||||
- 当前事实:
|
||||
- backend 在 `B2F-037` 中已确认,本次“准备页没有赛道选择区”的直接原因不是前端显示条件,而是当前发布 release 的 `payload_jsonb` 缺少:
|
||||
- `play.assignmentMode`
|
||||
- `play.courseVariants`
|
||||
- backend 已说明修复方式为重新跑:
|
||||
- `Bootstrap Demo`
|
||||
- `Use Manual Variant Demo`
|
||||
- `发布活动配置(自动补 Runtime)` 或 `整条链一键验收`
|
||||
- 前端当前逻辑已经兼容:
|
||||
- 明确 `assignmentMode=manual` 时显示赛道选择区
|
||||
- 即使 `assignmentMode` 缺失,只要 `courseVariants` 中存在 2 条以上可选赛道,也会显示赛道选择区
|
||||
- 因此前端现在是否显示赛道选择区,取决于 backend 新发布的 release 是否真的回出了多赛道字段
|
||||
- 游客模式第一刀前端已接到:
|
||||
- 地图列表
|
||||
- 地图详情
|
||||
- 公共活动详情
|
||||
- 公共准备页
|
||||
- 公共 launch
|
||||
- 前端直接实测 backend 公共接口结果如下:
|
||||
- `GET /public/experience-maps` -> `200`
|
||||
- `GET /public/events/evt_demo_001/play` -> `200`
|
||||
- `POST /public/events/evt_demo_001/launch` -> `500 internal_error`
|
||||
- 这说明游客模式“看地图/看活动/看准备页”已经通,但“真正进入地图”当前被 backend 公共 launch 卡住。
|
||||
- 当前 guest mode 只有默认体验活动可进:
|
||||
- `evt_demo_score_o_001` -> `403 event_not_public`
|
||||
- `evt_demo_variant_manual_001` -> `403 event_not_public`
|
||||
- 需要对方确认什么:
|
||||
- 该问题已由 backend 在 `B2F-037` 中确认修复完成,当前不再需要继续追问
|
||||
- 后续多赛道联调以修复后的 demo/publish 链为准
|
||||
- 请 backend 优先检查 `POST /public/events/{eventPublicID}/launch` 的服务端错误原因。
|
||||
- 建议先用 `evt_demo_001` 作为游客模式第一刀的联调基线,修通后再扩别的 demo。
|
||||
- 状态:待确认
|
||||
|
||||
### F2B-018
|
||||
|
||||
- 时间:2026-04-07 16:25:00
|
||||
- 提出方:前端
|
||||
- 当前事实:
|
||||
- 地图体验第一刀前端已完成:
|
||||
- 首页 `地图体验` 入口
|
||||
- 地图列表页
|
||||
- 地图详情页
|
||||
- 默认体验活动卡片跳活动详情页
|
||||
- 当前这条链仍依赖登录态,因为 backend 现有接口:
|
||||
- `GET /experience-maps`
|
||||
- `GET /experience-maps/{mapAssetPublicID}`
|
||||
- `GET /events/{eventPublicID}`
|
||||
- `GET /events/{eventPublicID}/play`
|
||||
- `POST /events/{eventPublicID}/launch`
|
||||
都走登录态 access token
|
||||
- backend 当前已经补齐这组接口。
|
||||
- 需要对方确认什么:
|
||||
- 无
|
||||
- 状态:已确认
|
||||
|
||||
### F2B-013
|
||||
### F2B-017
|
||||
|
||||
- 时间:2026-04-03 22:28:00
|
||||
- 时间:2026-04-07 14:40:00
|
||||
- 提出方:前端
|
||||
- 当前事实:
|
||||
- 手动多赛道活动当前已能进入准备页,但准备页仍未出现赛道选择区
|
||||
- 这次前端已排除“仅仅是 `assignmentMode` 没回 manual”这一种情况:
|
||||
- 当前前端兼容逻辑已放宽为:只要 `courseVariants` 中存在 2 条以上可选赛道,即使 `assignmentMode` 缺失,也会显示赛道选择区
|
||||
- 但当前实际页面仍显示:
|
||||
- `赛道模式:默认单赛道`
|
||||
- `赛道摘要:当前未声明额外赛道版本,启动时按默认赛道进入`
|
||||
- 这说明前端当前实际拿到的更像是:
|
||||
- `play.courseVariants = []` 或未返回
|
||||
- 前端已追加准备页诊断日志字段,后端可从 `event-prepare` 日志直接核对:
|
||||
- `details.variantCount`
|
||||
- `details.selectableVariantCount`
|
||||
- `details.showVariantSelector`
|
||||
- 前端已新增产品方案文档:
|
||||
- [地图列表与默认体验活动方案](D:/dev/cmr-mini/doc/gameplay/地图列表与默认体验活动方案.md)
|
||||
- 当前建议方向是:
|
||||
- 增加 `地图列表` 作为默认体验活动入口层
|
||||
- 默认体验活动继续复用现有 `Event / Release / Launch / Session`
|
||||
- 默认体验活动可挂可不挂
|
||||
- 默认体验活动可以不出现在正式活动列表
|
||||
- 当前前端并不需要 backend 先做完整地图后台,只需要最小关系和最小摘要支持。
|
||||
- 需要对方确认什么:
|
||||
- 该问题根因已由 backend 在 `B2F-037` 中定位完成,当前不再需要继续从前端显示层排查
|
||||
- 后续请转看 `F2B-014`
|
||||
- 状态:已解决
|
||||
- 请 backend 先评估并支持以下最小配合项:
|
||||
1. 地图/地点与默认体验活动的挂接关系
|
||||
- 能回答:某张地图下挂了哪些默认体验活动
|
||||
2. 活动摘要补两个稳定字段:
|
||||
- `isDefaultExperience`
|
||||
- `showInEventList`
|
||||
3. 地图列表最小字段建议:
|
||||
- `placeId`
|
||||
- `placeName`
|
||||
- `mapId`
|
||||
- `mapName`
|
||||
- `coverUrl`
|
||||
- `summary`
|
||||
- `defaultExperienceCount`
|
||||
- `defaultExperienceEventIds[]`
|
||||
4. 地图详情最小字段建议:
|
||||
- 地点名称
|
||||
- 地图名称
|
||||
- 地图预览图
|
||||
- 默认体验活动列表(最少 `eventId / title / subtitle / eventType / status / ctaText`)
|
||||
- 如 backend 对对象关系或字段命名有不同建议,请直接回:
|
||||
- 字段名
|
||||
- 所属接口
|
||||
- 是否建议第一阶段落地
|
||||
- 状态:待确认
|
||||
|
||||
### F2B-011
|
||||
### F2B-016
|
||||
|
||||
- 时间:2026-04-03
|
||||
- 时间:2026-04-07 14:25:00
|
||||
- 提出方:前端
|
||||
- 当前事实:
|
||||
- 使用 backend 一键测试环境联调 `evt_demo_variant_manual_001` 时,活动页 / 准备页返回:
|
||||
- `primaryAction = continue`
|
||||
- `reason = user has an ongoing session for this event`
|
||||
- 但前端本地当前没有可恢复快照,且本轮联调主观确认“已经没有需要恢复的游戏”
|
||||
- 当前看起来像是 backend 仍认定该用户在该活动下存在 ongoing session
|
||||
- 前端已新增一份用于 backend 对齐的配置裁剪文档:
|
||||
- [最大配置模板后台落地裁剪表](D:/dev/cmr-mini/doc/config/最大配置模板后台落地裁剪表.md)
|
||||
- 该文档的目的不是让 backend 1:1 支持最大配置模板,而是把当前配置能力裁成三类:
|
||||
- 第一阶段必做
|
||||
- 第二阶段可做
|
||||
- 暂不进后台,继续留在程序默认值层
|
||||
- 该文档建议配合以下文档一起看:
|
||||
- [后端总体架构与当前执行清单](D:/dev/cmr-mini/doc/backend/后端总体架构与当前执行清单.md)
|
||||
- [后端第一阶段执行清单](D:/dev/cmr-mini/doc/backend/后端第一阶段执行清单.md)
|
||||
- 需要对方确认什么:
|
||||
- 请 backend 核对该用户在 `evt_demo_variant_manual_001` 下是否仍有 `launched / running` session 未清掉
|
||||
- 如这是预期行为,请说明推荐的标准清理路径;如不是预期,请修正 ongoing 判定或测试环境回收逻辑
|
||||
- 状态:待后续单独收口(当前不阻塞主线)
|
||||
- 请 backend 以这三份文档为基线,对齐:
|
||||
- 第一阶段后台对象范围
|
||||
- 第一阶段应进入后台的配置字段
|
||||
- 暂不进后台、继续保留在程序默认值层的字段
|
||||
- 如 backend 对某块裁剪有异议,请直接指出:
|
||||
- 字段名
|
||||
- 希望调整到哪一阶段
|
||||
- 原因
|
||||
- 状态:待确认
|
||||
|
||||
### F2B-015
|
||||
|
||||
- 时间:2026-04-07 13:46:00
|
||||
- 提出方:前端
|
||||
- 当前事实:
|
||||
- 准备页地图预览当前已改成:
|
||||
- 优先消费 `GET /events/{eventPublicID}/play` 返回的 `preview`
|
||||
- 按当前所选 `variantId` 生成预览点位
|
||||
- 底图优先仍使用 manifest 对应的正式瓦片源
|
||||
- 当前小程序侧现象是:准备页预览仍为空白
|
||||
- 前端已补结构化日志,当前会向 backend `client-logs` 上报:
|
||||
- `category=event-prepare`
|
||||
- `details.phase=prepare-preview`
|
||||
- `source`
|
||||
- `selectedVariantId`
|
||||
- `backendPreviewVariantCount`
|
||||
- `tileCount`
|
||||
- `controlCount`
|
||||
- `overlayAvailable`
|
||||
- `previewMode`
|
||||
- 失败时 `errorMessage`
|
||||
- 需要对方确认什么:
|
||||
- 请 backend 拉取这批 `prepare-preview` 日志,并核对:
|
||||
- 当前 `play.preview.variants` 是否真的返回了多条 variant 预览数据
|
||||
- 当前所选 `selectedVariantId` 是否能在 `preview.variants[]` 中命中
|
||||
- 当前 preview viewport / baseTiles 是否与正式发布对象一致
|
||||
- 如果 backend 已确认日志中 `backendPreviewVariantCount > 0` 但前端仍空白,请回传对应日志片段与当前 demo 的 `eventId / releaseId`
|
||||
- 状态:待确认
|
||||
|
||||
---
|
||||
|
||||
## 已确认
|
||||
|
||||
### 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-C011
|
||||
|
||||
- 时间:2026-04-03 22:20:00
|
||||
- 提出方:前端
|
||||
- 当前事实:
|
||||
- backend 已通过 `B2F-035` 正式收紧 `play.canLaunch` 与 `launch` 的前置条件
|
||||
- backend 已通过 `B2F-035` 收紧 `play.canLaunch` 与 `launch`
|
||||
- 当前规则为:缺 `runtime / presentation / content bundle / manifest / 当前发布 release` 任一项时,均不可进入游戏
|
||||
- 前端已按该契约复测,当前结果正常:
|
||||
- `canLaunch=false` 时页面会禁用进入动作
|
||||
- `play.reason` 会给出更具体的缺失原因
|
||||
- backend 也不会再允许直接 `launch` 绕过阻断
|
||||
- 前端已复测通过,当前按 `play.canLaunch` 作为正式阻断口径
|
||||
- 需要对方确认什么:
|
||||
- 无
|
||||
- 状态:已确认
|
||||
@@ -238,11 +174,11 @@
|
||||
- 时间:2026-04-03 23:52:00
|
||||
- 提出方:前端
|
||||
- 当前事实:
|
||||
- backend 已在 `B2F-037` 中确认:manual 多赛道准备页不显示选择区的根因是发布 release 缺少:
|
||||
- manual 多赛道准备页不显示选择区的根因已确认是发布 release 缺少:
|
||||
- `play.assignmentMode`
|
||||
- `play.courseVariants`
|
||||
- backend 已修复 `Bootstrap Demo` 与发布链,当前问题已通过联调日志确认收口
|
||||
- frontend 当前已保留多赛道兜底展示逻辑,但该问题主因不在前端显示层
|
||||
- backend 已修复 demo/build/publish 链
|
||||
- 前端保留了多赛道空态兜底,但主因不在前端
|
||||
- 需要对方确认什么:
|
||||
- 无
|
||||
- 状态:已确认
|
||||
@@ -252,17 +188,8 @@
|
||||
- 时间:2026-04-03 23:52:00
|
||||
- 提出方:前端
|
||||
- 当前事实:
|
||||
- backend 在 `B2F-038` 中要求的活动卡片列表第一刀字段,frontend 当前已按最小方案接入:
|
||||
- `summary`
|
||||
- `status`
|
||||
- `statusCode`
|
||||
- `timeWindow`
|
||||
- `ctaText`
|
||||
- `isDefaultExperience`
|
||||
- `eventType`
|
||||
- `currentPresentation`
|
||||
- `currentContentBundle`
|
||||
- frontend 当前列表页和详情页日志也已补齐:
|
||||
- 活动卡片列表第一刀所需字段当前已足够
|
||||
- 前端已补齐列表与详情页联调日志:
|
||||
- `cardEventIds`
|
||||
- `clickedEventId`
|
||||
- `detailStatus`
|
||||
@@ -270,254 +197,71 @@
|
||||
- `detailCurrentPresentation`
|
||||
- `detailCurrentContentBundle`
|
||||
- 需要对方确认什么:
|
||||
- 当前字段已足够支撑活动卡片列表最小实现
|
||||
- 当前没有发现必须新增的列表页名称摘要字段
|
||||
- 无
|
||||
- 状态:已确认
|
||||
|
||||
---
|
||||
|
||||
## 阻塞
|
||||
|
||||
### 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-D006
|
||||
|
||||
- 时间:2026-04-03
|
||||
- 提出方:前端
|
||||
- 当前事实:
|
||||
- 已按 backend `B2F-028` 的排查口径补充前端诊断链,当前地图信息面板/赛后结果里可直接查看:
|
||||
- `launch.config.configUrl`
|
||||
- `launch.resolvedRelease.manifestUrl`
|
||||
- `launch.config.releaseId`
|
||||
- `launch.resolvedRelease.releaseId`
|
||||
- 最终加载后的:
|
||||
- `Schema版本`
|
||||
- `场地类型(playfield.kind)`
|
||||
- `模式编码(game.mode)`
|
||||
- 当前只补了诊断与观测,没有改动正式 launch 主链
|
||||
- 需要对方确认什么:
|
||||
- 无
|
||||
- 状态:已完成
|
||||
|
||||
### F2B-D007
|
||||
|
||||
- 时间:2026-04-03 16:26:37
|
||||
- 提出方:前端
|
||||
- 当前事实:
|
||||
- 已按 `B2F-030` 接入 backend `POST /dev/client-logs`
|
||||
- 当前关键阶段会主动上报最小调试日志:
|
||||
- `entry-home`
|
||||
- `event-play`
|
||||
- `event-prepare`
|
||||
- `launch-diagnostic`
|
||||
- `runtime-compiler`
|
||||
- `session-recovery`
|
||||
- 当前主日志字段已按 backend 建议最小口径回传:
|
||||
- `source`
|
||||
- `level`
|
||||
- `category`
|
||||
- `message`
|
||||
- `eventId`
|
||||
- `releaseId`
|
||||
- `sessionId`
|
||||
- `manifestUrl`
|
||||
- `route`
|
||||
- `details.phase`
|
||||
- `details.schemaVersion`
|
||||
- `details.playfield.kind`
|
||||
- `details.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 消费逻辑
|
||||
- 需要对方确认什么:
|
||||
- 无
|
||||
- 状态:已完成
|
||||
|
||||
### 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` 时按钮禁用
|
||||
- 同时阻止继续进入准备页或地图
|
||||
- 活动页与准备页已统一使用:
|
||||
- `当前发布展示版本`
|
||||
- `当前发布内容包版本`
|
||||
- 当两项为空时,前端统一解释为:
|
||||
- 当前发布 release 未绑定
|
||||
- 或当前尚未发布
|
||||
- 需要对方确认什么:
|
||||
- 无
|
||||
- 状态:已完成
|
||||
|
||||
### F2B-D011
|
||||
|
||||
- 时间:2026-04-07 12:06:00
|
||||
- 提出方:前端
|
||||
- 当前事实:
|
||||
- 首页 `ongoingSession` 已收成正式交互
|
||||
- 当前首页仅在 backend 返回 `ongoingSession` 时显示“进行中的游戏”
|
||||
- 支持:
|
||||
- `恢复`
|
||||
- `放弃`
|
||||
- `放弃` 会调用 `finish(cancelled)`,然后清理本地恢复快照并刷新首页
|
||||
- 需要对方确认什么:
|
||||
- 无
|
||||
- 状态:已完成
|
||||
|
||||
---
|
||||
|
||||
## 尾项
|
||||
|
||||
### F2B-011
|
||||
|
||||
- 时间:2026-04-03
|
||||
- 提出方:前端
|
||||
- 当前事实:
|
||||
- demo 历史 `ongoing session` 的回收口径仍是独立尾项
|
||||
- 当前不阻塞主线:多赛道、活动列表、运营摘要、runtime 主链均可继续联调
|
||||
- 需要对方确认什么:
|
||||
- 后续请单独收口 demo 环境下 `launched / running` session 清理与 ongoing 判定规则
|
||||
- 状态:待后续单独处理
|
||||
|
||||
---
|
||||
|
||||
## 下一步
|
||||
|
||||
### 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 三段事实,不再只报“现象”
|
||||
- 需要对方确认什么:
|
||||
- 无
|
||||
- 状态:前端执行中
|
||||
|
||||
|
||||
- 当前前后端继续按 backend 一键测试环境联调
|
||||
- 当前前端侧会优先关注:
|
||||
- 活动列表第一刀回归
|
||||
- 活动详情页/准备页用户化小修
|
||||
- 准备页地图预览 V1 稳定性
|
||||
- 如后端语义或字段发生变化,再通过 `b2f.md` / `f2b.md` 做增量同步
|
||||
|
||||
Reference in New Issue
Block a user