推进活动列表第一刀与联调回归

This commit is contained in:
2026-04-03 19:33:16 +08:00
parent b09c21c814
commit 527b4c78a9
34 changed files with 3094 additions and 224 deletions

123
f2b.md
View File

@@ -1,6 +1,6 @@
# F2B 协作清单
> 文档版本v1.9
> 最后更新2026-04-03 16:45:26
> 文档版本v1.16
> 最后更新2026-04-03 23:58:00
说明:
@@ -14,6 +14,49 @@
## 待确认
### F2B-014
- 时间2026-04-03 23:18: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 是否真的回出了多赛道字段
- 需要对方确认什么:
- 该问题已由 backend 在 `B2F-037` 中确认修复完成,当前不再需要继续追问
- 后续多赛道联调以修复后的 demo/publish 链为准
- 状态:已确认
### F2B-013
- 时间2026-04-03 22:28:00
- 提出方:前端
- 当前事实:
- 手动多赛道活动当前已能进入准备页,但准备页仍未出现赛道选择区
- 这次前端已排除“仅仅是 `assignmentMode` 没回 manual”这一种情况
- 当前前端兼容逻辑已放宽为:只要 `courseVariants` 中存在 2 条以上可选赛道,即使 `assignmentMode` 缺失,也会显示赛道选择区
- 但当前实际页面仍显示:
- `赛道模式:默认单赛道`
- `赛道摘要:当前未声明额外赛道版本,启动时按默认赛道进入`
- 这说明前端当前实际拿到的更像是:
- `play.courseVariants = []` 或未返回
- 前端已追加准备页诊断日志字段,后端可从 `event-prepare` 日志直接核对:
- `details.variantCount`
- `details.selectableVariantCount`
- `details.showVariantSelector`
- 需要对方确认什么:
- 该问题根因已由 backend 在 `B2F-037` 中定位完成,当前不再需要继续从前端显示层排查
- 后续请转看 `F2B-014`
- 状态:已解决
### F2B-011
- 时间2026-04-03
@@ -27,7 +70,7 @@
- 需要对方确认什么:
- 请 backend 核对该用户在 `evt_demo_variant_manual_001` 下是否仍有 `launched / running` session 未清掉
- 如这是预期行为,请说明推荐的标准清理路径;如不是预期,请修正 ongoing 判定或测试环境回收逻辑
- 状态:待确认
- 状态:待后续单独收口(当前不阻塞主线)
---
@@ -175,6 +218,62 @@
-
- 状态:已确认
### 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` 绕过阻断
- 需要对方确认什么:
-
- 状态:已确认
### F2B-C012
- 时间2026-04-03 23:52:00
- 提出方:前端
- 当前事实:
- backend 已在 `B2F-037` 中确认manual 多赛道准备页不显示选择区的根因是发布 release 缺少:
- `play.assignmentMode`
- `play.courseVariants`
- backend 已修复 `Bootstrap Demo` 与发布链,当前问题已通过联调日志确认收口
- frontend 当前已保留多赛道兜底展示逻辑,但该问题主因不在前端显示层
- 需要对方确认什么:
-
- 状态:已确认
### F2B-C013
- 时间2026-04-03 23:52:00
- 提出方:前端
- 当前事实:
- backend 在 `B2F-038` 中要求的活动卡片列表第一刀字段frontend 当前已按最小方案接入:
- `summary`
- `status`
- `statusCode`
- `timeWindow`
- `ctaText`
- `isDefaultExperience`
- `eventType`
- `currentPresentation`
- `currentContentBundle`
- frontend 当前列表页和详情页日志也已补齐:
- `cardEventIds`
- `clickedEventId`
- `detailStatus`
- `detailCanLaunch`
- `detailCurrentPresentation`
- `detailCurrentContentBundle`
- 需要对方确认什么:
- 当前字段已足够支撑活动卡片列表最小实现
- 当前没有发现必须新增的列表页名称摘要字段
- 状态:已确认
---
## 阻塞
@@ -345,6 +444,24 @@
-
- 状态:已完成
### F2B-D010
- 时间2026-04-03 22:12:00
- 提出方:前端
- 当前事实:
- 已按 `B2F-034` 对活动页和准备页做语义收口:
- `展示版本` 改成 `当前发布展示版本`
- `内容包版本` 改成 `当前发布内容包版本`
-`currentPresentation / currentContentBundle` 为空时,前端当前统一解释为:
- `当前发布 release 未绑定展示版本,或当前尚未发布`
- `当前发布 release 未绑定内容包版本,或当前尚未发布`
- 活动页与准备页当前进入动作都已优先受 `play.canLaunch` 控制:
- `canLaunch=false` 时按钮禁用
- 同时阻止继续进入准备页或地图
- 需要对方确认什么:
-
- 状态:已完成
---
## 下一步