20 KiB
20 KiB
B2T 协作清单
文档版本:v1.22 最后更新:2026-04-03 19:21:23
说明:
- 本文件由 backend 维护,写给总控线程
- 只写事实和请求
- 不写长讨论稿
- 每条固定包含:时间、谁提的、当前事实、需要对方确认什么、是否已解决
待确认
B2T-009
- 时间:2026-04-03 08:52:11
- 谁提的:backend
- 当前事实:
- 总控线程在 t2b.md v1.1 中,已确认 backend 可按增量演进推进第一阶段生产骨架
- backend 准备按已确认顺序开工:
PlaceMapAssetTileReleaseCourseSourceCourseSetCourseVariantMapRuntimeBinding
EventPresentation和ContentBundle先保留对象语义,第二阶段补完整落库
- 需要对方确认什么:
- 无新的确认项;本条仅保留为“准备开工”记录
- 是否已解决:是
已确认
B2T-031
- 时间:2026-04-03 19:21:23
- 谁提的:backend
- 当前事实:
- frontend 本轮已通过结构化调试日志确认以下链路正常:
- 活动列表页当前能稳定拿到 3 张 demo 卡片
- 多赛道入口点击后能进入正确活动:
evt_demo_variant_manual_001
- 多赛道详情当前已拿到:
assignmentMode = manualvariantCount = 2detailCanLaunch = true- 当前发布
presentation / content bundle摘要正常
- backend 当前可确认:
- manual 多赛道 demo 的当前发布 release 已切到正确版本
- 活动列表最小产品化第一刀与前端当前接线口径一致
- frontend 最新
f2b.md当前也已将:F2B-014标记为已确认
- 当前仍留一条未完全收口的旧项:
F2B-011- 即 demo 活动历史 ongoing session 回收口径,需要后续单独收掉
- frontend 本轮已通过结构化调试日志确认以下链路正常:
- 需要对方确认什么:
- 无
- 是否已解决:是
B2T-029
- 时间:2026-04-03 22:34:08
- 谁提的:backend
- 当前事实:
- backend 已按
活动卡片列表最小产品化配合阶段落完第一刀最小摘要字段 - 当前以下返回已统一补齐活动卡片最小摘要:
GET /cardsGET /homeGET /me/entry-home
- 当前摘要字段包括:
summarystatusstatusCodetimeWindowctaTextisDefaultExperienceeventTypecurrentPresentationcurrentContentBundle
- 当前实现继续保持:
- 不新增对象层级
- 不改活动详情页现有语义
currentPresentation / currentContentBundle仍表示当前已发布 release 摘要
- backend 同时已通过
0011_card_summary.sql给cards落了显式字段:is_default_experience
- backend 已按
- 需要对方确认什么:
- 无
- 是否已解决:是
B2T-028
- 时间:2026-04-03 16:16:38
- 谁提的:backend
- 当前事实:
- backend 已新增 dev 调试日志入口:
POST /dev/client-logsGET /dev/client-logsDELETE /dev/client-logs
- workbench 已新增
前端调试日志面板,用于直接查看 frontend 主动上报的关键事实 - 这套能力只服务联调排查,不替代正式生产日志体系
- 当前目标是把“截图 + 口头描述”进一步收口成结构化事实,便于 backend 直接定位前端消费链问题
- backend 已新增 dev 调试日志入口:
- 需要对方确认什么:
- 无
- 是否已解决:是
B2T-027
- 时间:2026-04-03 15:29:07
- 谁提的:backend
- 当前事实:
- backend 已在 workbench 新增:
当前 Launch 实际配置摘要
- 该摘要由 backend 代读当前 launch 对应 manifest,用于统一显示:
configUrlreleaseIdmanifestUrlschemaVersionplayfield.kindgame.mode
- 该能力只用于联调排查,避免浏览器直接读取 OSS 时受跨域影响
- 正式客户端链路不变,仍应直接消费:
launch.config.configUrllaunch.resolvedRelease.manifestUrl
- backend 已在 workbench 新增:
- 需要对方确认什么:
- 无
- 是否已解决:是
B2T-026
- 时间:2026-04-03 14:37:00
- 谁提的:backend
- 当前事实:
- backend 已把当前两种核心玩法和 manual 多赛道都挂成显式 demo 入口:
- 顺序赛:
evt_demo_001 - 积分赛:
evt_demo_score_o_001 - 多赛道:
evt_demo_variant_manual_001
- 顺序赛:
- 其中积分赛入口已固定到远端发布配置:
https://oss-mbh5.colormaprun.com/gotomars/event/score-o.json
- workbench 当前可直接切换三种玩法做标准联调
- backend 已把当前两种核心玩法和 manual 多赛道都挂成显式 demo 入口:
- 需要对方确认什么:
- 无
- 是否已解决:是
B2T-001
- 时间:2026-04-03 08:52:11
- 谁提的:backend
- 当前事实:
- 总控线程已确认 backend 采用增量演进方式推进
- 第一阶段不要求一次性推翻当前已稳定联调的:
EventEventReleaseSession主链
- 需要对方确认什么:
- 无
- 是否已解决:是
B2T-002
- 时间:2026-04-03 08:52:11
- 谁提的:backend
- 当前事实:
- 总控线程已确认第一阶段优先落库对象顺序:
PlaceMapAssetTileReleaseCourseSourceCourseSetCourseVariantMapRuntimeBinding
- backend 接受这条顺序,后续按此推进
- 总控线程已确认第一阶段优先落库对象顺序:
- 需要对方确认什么:
- 无
- 是否已解决:是
B2T-003
- 时间:2026-04-03 08:52:11
- 谁提的:backend
- 当前事实:
- 总控线程已确认
launch采用两阶段兼容 - 第一阶段保留当前稳定联调字段:
resolvedReleasebusinessvariant
- 第二阶段再补完整运行对象字段:
placeIdmapIdtileReleaseIdcourseVariantIdeventReleaseId
- 总控线程已确认
- 需要对方确认什么:
- 无
- 是否已解决:是
B2T-004
- 时间:2026-04-03 08:52:11
- 谁提的:backend
- 当前事实:
- backend 认可总控线程的核心边界:
- 客户端最终只消费发布产物
- 不再直接消费原始 KML
- 不再直接消费地图原始资产
- 这与 backend 当前已稳定的:
EventReleaselaunch -> resolvedReleasesession -> result主链一致
- backend 认可总控线程的核心边界:
- 需要对方确认什么:
- 无
- 是否已解决:是
B2T-005
- 时间:2026-04-03 08:52:11
- 谁提的:backend
- 当前事实:
- backend 认可总控线程提出的两域拆分:
- 地图运行域
- 活动运营域
CourseVariant作为最终运行事实,也与当前多赛道第一阶段契约一致
- backend 认可总控线程提出的两域拆分:
- 需要对方确认什么:
- 无
- 是否已解决:是
阻塞
- 当前无新增阻塞
已完成
B2T-030
- 时间:2026-04-03 19:08:55
- 谁提的:backend
- 当前事实:
- backend 当前已完成并稳定运行的主线可概括为三段:
- 联调标准化阶段
- 真实输入替换第一刀
- 活动卡片列表最小产品化第一刀
- 联调标准化阶段当前已具备:
- 一键测试链
- 详细日志
- 稳定 demo 数据
- workbench 回归结果汇总
- frontend 调试日志通道
- 真实输入替换第一刀当前已完成:
- 真实 KML
- 真实地图 URL
- demo content manifest / presentation schema 通过 backend dev 资源入口提供
- 中文活动文案样例
- 活动卡片列表最小产品化第一刀当前已完成:
GET /cardsGET /homeGET /me/entry-home统一补齐活动卡片摘要字段
- 当前卡片最小摘要字段包括:
summarystatusstatusCodetimeWindowctaTextisDefaultExperienceeventTypecurrentPresentationcurrentContentBundle
- 当前阶段 backend 仍保持:
- 不扩新对象层级
- 不推翻现有
Event / EventRelease / Session - 继续以标准联调链为唯一基线
- backend 当前已完成并稳定运行的主线可概括为三段:
- 需要对方确认什么:
- 无
- 是否已解决:是
B2T-029
- 时间:2026-04-03 17:25:35
- 谁提的:backend
- 当前事实:
- backend 已把“真实输入替换第一刀”继续推进到:
content manifestpresentation schema- 中文活动文案样例
- 当前 workbench 的玩法切换会自动填充 backend 内置 demo 资源:
GET /dev/demo-assets/presentations/{demoKey}GET /dev/demo-assets/content-manifests/{demoKey}
- 这两条路由只服务联调,不进入正式客户端运行链路
Bootstrap Demo当前准备的联调样例文案已统一为中文活动样例,不再继续暴露一批Demo ...名称
- backend 已把“真实输入替换第一刀”继续推进到:
- 需要对方确认什么:
- 无
- 是否已解决:是
B2T-024
- 时间:2026-04-03 14:21:24
- 谁提的:backend
- 当前事实:
- backend 已按 t2b.md v1.11 开始“真实输入替换第一刀”
- 当前已优先替换:
- 真实 KML / 赛道文件
- 真实地图资源 URL
Bootstrap Demo当前最小生产骨架已改用:https://oss-mbh5.colormaprun.com/gotomars/kml/lxcb-001/10/c01.kmlhttps://oss-mbh5.colormaprun.com/gotomars/map/lxcb-001/tiles/https://oss-mbh5.colormaprun.com/gotomars/map/lxcb-001/tiles/meta.json
- 当前仍保持同一条标准联调入口,不新增新流程
- 需要对方确认什么:
- 无
- 是否已解决:是
B2T-025
- 时间:2026-04-03 14:29:42
- 谁提的:backend
- 当前事实:
- backend 已继续推进“真实输入替换第一刀”的 manual 多赛道部分
- 当前
Bootstrap Demo已为 demo course set 准备两条真实 KML 输入:c01.kmlc02.kml
- 当前 manual 多赛道 demo 的说明已同步为:
variant_a -> c01.kmlvariant_b -> c02.kml
- 当前仍沿用同一条标准联调入口,不新增新流程
- 需要对方确认什么:
- 无
- 是否已解决:是
B2T-023
- 时间:2026-04-03 13:24:38
- 谁提的:backend
- 当前事实:
- backend 已把标准联调入口继续固化为一键回归流
- workbench 当前新增:
一键标准回归回归结果汇总
- 这条链当前会在:
Bootstrap Demo一键补齐 Runtime 并发布之后,继续自动验证:playlaunchresulthistory
- 回归汇总当前会直接显示:
- 分项通过/未通过
Session ID- 总判定
- 需要对方确认什么:
- 无
- 是否已解决:是
B2T-021
- 时间:2026-04-03 13:18:42
- 谁提的:backend
- 当前事实:
- backend 已根据 t2b.md v1.10 的最新口径,切入“联调标准化阶段”
- 当前 backend 主线不再是继续扩对象或扩 workbench 管理能力
- 当前统一收口为 3 个目标:
- 固化“一键测试”链路
- 固化详细日志口径
- 固化稳定测试数据
- 当前最推荐联调方式为:
Bootstrap Demo一键补齐 Runtime 并发布
- 这条链当前已可从空白环境直接跑通,并可输出:
- 分步日志
- 真实错误
- stack
- 最后一次 curl
- 预期判定
- 需要对方确认什么:
- 无
- 是否已解决:是
B2T-019
- 时间:2026-04-03 13:04:32
- 谁提的:backend
- 当前事实:
- backend 已把当前联调环境补成“一键测试环境”
/dev/bootstrap-demo不再只准备:tenantchanneleventreleasesourcebuildcard
- 现在还会一并准备并回填:
placemap assettile releasecourse sourcecourse setcourse variantruntime binding
- workbench 的:
Bootstrap Demo一键补齐 Runtime 并发布已可从空白状态直接跑完整测试链
- workbench 日志现在会输出:
- 分步执行日志
- 真实错误消息
- stack
- 最后一次 curl
- 最终预期判定
- 需要对方确认什么:
- 无
- 是否已解决:是
B2T-018
- 时间:2026-04-03 12:36:15
- 谁提的:backend
- 当前事实:
- backend 已完成“活动运营域第二阶段第四刀”最小实现
- 已新增:
POST /admin/events/{eventPublicID}/presentations/importPOST /admin/events/{eventPublicID}/defaults
events已新增默认 active 绑定列:current_presentation_idcurrent_content_bundle_idcurrent_runtime_binding_id
publish在未显式传入:runtimeBindingIdpresentationIdcontentBundleId时,会优先继承 event 默认 active 绑定
- workbench 已补最小验证入口:
Import PresentationSave Event DefaultsPublish Build空参继承验证
- 需要对方确认什么:
- 无
- 是否已解决:是
B2T-007
- 时间:2026-04-03 08:52:11
- 谁提的:backend
- 当前事实:
- backend 已具备当前稳定主链:
- 统一登录
- entry/home
- event play
- launch
- session start / finish
- result / history
- backend 已具备:
- 配置 source / build / release
- 最小后台资源对象
- 多赛道第一阶段最小契约
- backend 已具备当前稳定主链:
- 需要对方确认什么:
- 无
- 是否已解决:是
B2T-011
- 时间:2026-04-03 09:09:07
- 谁提的:backend
- 当前事实:
- backend 已开始第一阶段生产骨架实施
0008_production_skeleton.sql已落库到cmr20260401- 当前已新增并可用的后台生产接口覆盖:
PlaceMapAssetTileReleaseCourseSourceCourseSetCourseVariantMapRuntimeBinding
- 需要对方确认什么:
- 无
- 是否已解决:是
B2T-012
- 时间:2026-04-03 09:23:03
- 谁提的:backend
- 当前事实:
- backend 已按 t2b.md 第 5 步要求,把第一阶段生产骨架对象接入
/dev/workbench - 当前联调台已覆盖:
PlaceMapAssetTileReleaseCourseSourceCourseSetCourseVariantMapRuntimeBinding
- 当前 workbench 只做:
listcreatedetailbinding
- backend 已按 t2b.md 第 5 步要求,把第一阶段生产骨架对象接入
- 需要对方确认什么:
- 无
- 是否已解决:是
B2T-013
- 时间:2026-04-03 09:27:18
- 谁提的:backend
- 当前事实:
- backend 已整理第一阶段生产骨架最小操作顺序
- 当前推荐 workbench 联调路径为:
PlaceMapAssetTileReleaseCourseSourceCourseSetCourseVariantMapRuntimeBinding
- 该顺序已写入 开发说明.md
- 需要对方确认什么:
- 无
- 是否已解决:是
B2T-015
- 时间:2026-04-03 09:43:20
- 谁提的:backend
- 当前事实:
- backend 已完成“第三刀最小接线”第一版:
MapRuntimeBinding -> EventReleaselaunch.runtime兼容新增
- 当前新增能力:
GET /admin/releases/{releasePublicID}POST /admin/releases/{releasePublicID}/runtime-binding
- 当前
launch在保持旧字段不变的前提下,新增:launch.runtime.runtimeBindingIdlaunch.runtime.placeIdlaunch.runtime.mapIdlaunch.runtime.tileReleaseIdlaunch.runtime.courseSetIdlaunch.runtime.courseVariantId
/dev/workbench已补最小验证入口:Get ReleaseBind Runtime
- backend 已完成“第三刀最小接线”第一版:
- 需要对方确认什么:
- 无
- 是否已解决:是
下一步
B2T-022
- 时间:2026-04-03 13:18:42
- 谁提的:backend
- 当前事实:
- backend 当前已具备“一键测试环境”与最小生产骨架测试数据
- 后续联调阶段如要进一步贴近生产,只需要逐步替换以下 demo 输入:
- 地图资源 URL
- KML / 赛道文件
- ContentBundle manifest
- Presentation schema
- 当前不需要继续新增对象层级即可支撑联调
- 需要对方确认什么:
- 总控后续如需要更接近生产的真实测试输入,请直接指定优先级最高的一类资源
- 是否已解决:否
B2T-010
- 时间:2026-04-03 08:52:11
- 谁提的:backend
- 当前事实:
- backend 已完成第一阶段生产骨架落库、最小模型接线和 workbench 联调台接入
EventPresentation和ContentBundle仍先在文档与接口边界保留语义
- 需要对方确认什么:
- 无
- 是否已解决:是
B2T-014
- 时间:2026-04-03 09:27:18
- 谁提的:backend
- 当前事实:
- backend 下一步建议开始做“第一阶段对象与现有 Event/Release 的最小接线”
- 重点会围绕:
MapRuntimeBinding -> EventRelease- 运行对象如何逐步进入
launch - 保持当前两阶段兼容不破坏前端稳定链
- 需要对方确认什么:
- 无
- 是否已解决:是
B2T-016
- 时间:2026-04-03 09:43:20
- 谁提的:backend
- 当前事实:
- 当前 release 与 runtime binding 的挂接已可单独验证
- 第四刀目标是把
runtimeBindingId直接接进 publish 流,减少一次手工挂接
- 需要对方确认什么:
- 无
- 是否已解决:是
B2T-017
- 时间:2026-04-03 10:46:00
- 谁提的:backend
- 当前事实:
- backend 已完成第四刀第一版:
POST /admin/builds/{buildID}/publish支持可选runtimeBindingIdPOST /dev/config-builds/publish支持可选runtimeBindingId- 发布成功后返回
runtime
/dev/workbench发布区已支持直接填写Runtime Binding ID- 旧的“先 publish,再 bind runtime”路径继续保留
- backend 已完成第四刀第一版:
- 需要对方确认什么:
- 无
- 是否已解决:是
B2T-018
- 时间:2026-04-03 11:02:42
- 谁提的:backend
- 当前事实:
- backend 已完成活动运营域第二阶段第一版:
0009_event_ops_phase2.sql已落库到cmr20260401- 新增:
event_presentationscontent_bundles
event_releases已明确支持绑定:presentation_idcontent_bundle_idruntime_binding_id
- 当前新增后台接口:
GET/POST /admin/events/{eventPublicID}/presentationsGET /admin/presentations/{presentationPublicID}GET/POST /admin/events/{eventPublicID}/content-bundlesGET /admin/content-bundles/{contentBundlePublicID}
publish当前已支持可选直接挂接:runtimeBindingIdpresentationIdcontentBundleId
/dev/workbench已补最小验证入口:Create PresentationCreate Bundle- 发布区填写
Presentation ID / Content Bundle ID / Runtime Binding ID
- backend 已完成活动运营域第二阶段第一版:
- 需要对方确认什么:
- 无
- 是否已解决:是
B2T-019
- 时间:2026-04-03 11:22:50
- 谁提的:backend
- 当前事实:
- backend 已完成“活动运营域第二阶段第二刀”第一版:
GET /events/{eventPublicID}透出:currentPresentationcurrentContentBundle
GET /events/{eventPublicID}/play透出:currentPresentationcurrentContentBundle
POST /events/{eventPublicID}/launch新增兼容摘要:launch.presentationlaunch.contentBundle
publish当前在未显式传入:presentationIdcontentBundleId时,会优先按 event 当前默认的 active 配置自动补齐
- 旧字段和旧语义保持不变:
resolvedReleasebusinessvariantruntime
- backend 已完成“活动运营域第二阶段第二刀”第一版:
- 需要对方确认什么:
- 无
- 是否已解决:是
B2T-020
- 时间:2026-04-03 12:14:21
- 谁提的:backend
- 当前事实:
- backend 已完成“活动运营域第二阶段第三刀”第一版:
event detail / play / launch / release detail已统一补齐活动运营摘要presentation摘要当前最少带:presentationIdtemplateKeyversion
contentBundle摘要当前最少带:contentBundleIdbundleTypeversion
- backend 已新增最小导入入口:
POST /admin/events/{eventPublicID}/content-bundles/import
- 当前导入入口先只记录:
bundleTypesourceTypemanifestUrlversionassetManifest
/dev/workbench已补:Import Bundle- API 目录中的导入接口说明
- backend 已完成“活动运营域第二阶段第三刀”第一版:
- 需要对方确认什么:
- 无
- 是否已解决:是