# B2T 协作清单 > 文档版本:v1.47 > 最后更新:2026-04-07 18:15:01 说明: - 本文件由 backend 维护,写给总控 - 只保留当前主线、有效结论和压缩归档 - 已完成历史项不再逐条保留长记录 --- ## 待确认 ### B2T-044 - 时间:2026-04-07 17:23:15 - 谁提的:backend - 当前事实: - backend 建议把活动模型先收成最小可玩单元: - `单地图` - `单路线组` - `单玩法` - 当前不建议第一阶段直接支持: - 一个活动多地图 - 一个活动多路线组 - 一个活动多玩法 - 复杂需求优先通过“活动实例化”解决,而不是把单个活动扩成多对多容器。 - 多地图 / 多玩法的前台需求,建议通过“组合卡片 / 组合入口层”承接: - 组合入口可以指向多个活动实例 - 单个活动实例仍保持最小可玩单元 - 这样可以同时简化: - 前台活动卡片逻辑 - 发布语义 - 结果追溯 - 运维后台第一期流程 - 需要对方确认什么: - 运维后台与活动编排后续按“单地图 + 单路线组 + 单玩法”继续推进。 - 多地图 / 多路线组 / 多玩法先作为后续模板化实例生成能力与组合入口能力,不在第一阶段直接进入活动主模型。 - 是否已解决:否 ### B2T-045 - 时间:2026-04-07 17:52:18 - 谁提的:backend - 当前事实: - 运维后台已继续从“对象平铺页”往“主流程后台”收。 - 当前左侧导航改成: - `资源总览` - `地图 / 地点管理` - `路线资源管理` - `活动管理` - `活动编排` - `发布中心` - `资源录入` 作为辅助入口保留 - `资源总览` 已提升为运行时信息面板,优先展示关键统计与当前活动的 `release / runtime / presentation / content bundle`。 - 地图页已不再平铺关联活动详情,只保留: - 关联活动数量 - 默认体验活动数量 - 关联活动摘要 - 跳转到活动管理 - 需要对方确认什么: - 运维后台继续按“总览优先 + 单主视图 + 地图页只看地图本身、活动详情去活动管理”这条交互结构推进。 - 是否已解决:否 ### B2T-046 - 时间:2026-04-07 18:03:42 - 谁提的:backend - 当前事实: - `地图 / 地点管理` 已继续从“按钮 + 手填 ID”收成“列表 -> 详情”流程。 - 当前已支持: - 地点列表 - 地图列表 - 地点关键字筛选 - 地图关键字筛选 - 点地点自动读取地点详情与该地点下地图 - 点地图自动读取地图详情、当前瓦片版本、默认活动概况 - 地图页继续只保留关联活动数量与摘要,不在地图页平铺活动详情。 - 需要对方确认什么: - 地图 / 地点管理继续按“列表-详情主流程”推进,活动详情统一留在活动管理 / 活动编排。 - 是否已解决:否 ### B2T-045 - 时间:2026-04-07 17:30:06 - 谁提的:backend - 当前事实: - 运维后台当前已继续从“功能平铺页”收成“导航驱动的流程页”: - 左侧导航 - 中间单主视图 - 右侧常驻状态栏 - 当前不再把地图管理、资源录入、KML 管理、活动管理、发布中心同时平铺在一个长页面里。 - 主区当前也已改成宽屏自适应,不再使用固定窄宽度。 - 需要对方确认什么: - 运维后台后续继续按“符合人使用习惯的流程导航页”推进,不再回退到功能平铺式工作台。 - 是否已解决:是 ### B2T-043 - 时间:2026-04-07 16:45:40 - 谁提的:backend - 当前事实: - 运维后台当前在开发环境里默认免登录。 - 本轮已修复 dev-only 鉴权陷阱: - 浏览器残留旧的玩家 token、失效 token 或非 ops token 时 - `/ops/admin/*` 之前会返回 `401 invalid_token` - 现在开发环境会自动回退到 dev ops 上下文 - 生产环境不变,仍要求正式 ops token。 - 需要对方确认什么: - 无 - 是否已解决:是 ### B2T-042 - 时间:2026-04-07 16:29:08 - 谁提的:backend - 当前事实: - frontend 反馈游客模式第一刀里: - `GET /public/experience-maps` 正常 - `GET /public/events/{eventPublicID}/play` 正常 - `POST /public/events/{eventPublicID}/launch` 返回 `500 internal_error` - backend 已定位根因: - 游客 launch 会创建 `guest_device` 身份 - 旧库约束不允许 `login_identities.identity_type = 'guest'` - 已补 migration: - [0015_guest_identity.sql](D:/dev/cmr-mini/backend/migrations/0015_guest_identity.sql) - 本次修复不改游客接口契约,只修数据库约束。 - 需要对方确认什么: - 游客模式第一刀继续以: - `evt_demo_001` 作为基线回归。 - 是否已解决:是 ### B2T-041 - 时间:2026-04-07 16:08:37 - 谁提的:backend - 当前事实: - 运维后台当前已从“底层对象调试台”继续往“主流程管理台”收口: - 地图管理 - KML / 赛道管理 - 活动管理 - 发布中心 - 当前已补运维地图主流程接口: - `GET /admin/map-assets` - `PUT /admin/map-assets/{mapAssetPublicID}` - `GET /ops/admin/map-assets` - `PUT /ops/admin/map-assets/{mapAssetPublicID}` - `GET /ops/admin/course-sources` - `GET /ops/admin/course-sources/{sourcePublicID}` - `GET /ops/admin/course-sets/{courseSetPublicID}` - 运维后台当前目标已明确: - 运维先看地图列表 - KML / 赛道围绕地图管理 - 活动围绕地图查看关联活动、默认体验活动和发布状态 - 活动管理当前也已补成与地图同一套路: - 列表 - 新建 - 修改 - 读取详情 - 当前新增: - `POST /ops/admin/events` - `PUT /ops/admin/events/{eventPublicID}` - 当前 API 总数更新为: - `115` - 需要对方确认什么: - 运维后台第一期继续按“地图列表 -> 地图详情 -> KML / 赛道 -> 活动绑定 -> 发布中心”这条主流程推进。 - 不再把 `Place / MapAsset / TileRelease / CourseSource / CourseSet` 直接当首页认知入口。 - 是否已解决:否 ### B2T-040 - 时间:2026-04-07 20:12:00 - 谁提的:backend - 当前事实: - backend 已补游客模式第一刀最小公开接口: - `GET /public/experience-maps` - `GET /public/experience-maps/{mapAssetPublicID}` - `GET /public/events/{eventPublicID}` - `GET /public/events/{eventPublicID}/play` - `POST /public/events/{eventPublicID}/launch` - 当前规则: - 只允许默认体验活动 - 只允许基于已发布 release - guest launch 使用独立 `guest_device` 身份落到正常 session 模型 - 返回 `launch.business.isGuest = true` - 当前 API 总数更新为: - `106` - 需要对方确认什么: - 游客模式第一刀按这组公开接口继续前后端联调。 - 若后续需要 guest 结果页或 guest 本地成绩迁移,再作为下一刀,不混入当前最小链。 - 是否已解决:否 ### B2T-039 - 时间:2026-04-07 16:42:15 - 谁提的:backend - 当前事实: - 运维后台已开始落地“地图资源管理第一刀”: - `GET /ops/admin/places` - `POST /ops/admin/places` - `GET /ops/admin/places/{placePublicID}` - `POST /ops/admin/places/{placePublicID}/map-assets` - `GET /ops/admin/map-assets/{mapAssetPublicID}` - `POST /ops/admin/map-assets/{mapAssetPublicID}/tile-releases` - `/admin/ops-workbench` 当前已新增独立“地图资源管理”区,可直接: - 建地点 - 建地图 - 看当前瓦片版本 - 看默认活动摘要 - 需要对方确认什么: - 运维后台第一期按“地图资源管理 -> 资源录入 -> 赛道集管理 -> 活动绑定 -> 发布中心”这条顺序继续推进。 - 是否已解决:否 ### B2T-038 - 时间:2026-04-07 16:08:20 - 谁提的:backend - 当前事实: - backend 已按“地图列表下的默认活动”补最小公开接口: - `GET /experience-maps` - `GET /experience-maps/{mapAssetPublicID}` - 默认活动关系当前统一收口到: - `events.is_default_experience` - `events.show_in_event_list` - 当前已发布 `release` 绑定到的 `runtime.mapAsset` - `cards / home / me/entry-home` 当前也已补: - `showInEventList` - 需要对方确认什么: - 后续活动列表与地图入口第一刀以这组字段为准继续联调。 - 如需更复杂地图分组、排序、租户筛选,放到下一刀,不在这次最小实现里扩。 - 是否已解决:否 ### B2T-034 - 时间:2026-04-07 13:12:00 - 谁提的:backend - 当前事实: - backend 已按“准备页地图预览 V1”预留最小字段到: - `GET /events/{eventPublicID}` - `GET /events/{eventPublicID}/play` - 当前 preview 仍保持: - 只读增强项 - 不进入正式 launch 主链 - 不单独造新地图资源体系 - 需要对方确认什么: - backend 继续按“只读预览 V1”推进,不扩新对象层级。 - 是否已解决:否 --- ## 已确认 ### B2T-037 - 时间:2026-04-07 14:45:37 - 谁提的:backend - 当前事实: - 运维后台当前已开始与玩家链路分离: - 运维账号接口:`/ops/auth/*` - 运维管理接口:`/ops/admin/*` - `/admin/ops-workbench` 当前只服务运维录资源、活动绑定、发布中心。 - 开发环境当前默认免登录放行,方便录资源和调发布;生产环境再收口到手机号验证码运维账号。 - 运维总览统计当前已改为只读取服务端聚合摘要,不再用前端列表长度硬凑。 - 需要对方确认什么: - 无 - 是否已解决:是 ### B2T-036 - 时间:2026-04-07 13:51:50 - 谁提的:backend - 当前事实: - backend 已开始落地运维入口第一期,不再只靠手工脚本或改代码上传资源。 - 当前先开放两条最小录入链: - `POST /admin/ops/tile-releases/import` - `POST /admin/ops/course-sets/import-kml-batch` - 运维入口第二期也已起步,开始支持统一资源纳管: - `GET /admin/assets` - `POST /admin/assets/register-link` - `POST /admin/assets/upload` - `GET /admin/assets/{assetPublicID}` - 当前已新增独立运维工作台: - `GET /admin/ops-workbench` - 当前开始把: - `/dev/workbench` - `/admin/ops-workbench` 两套入口按“调试后台 / 运维后台”正式拆开 - `Import Tile Release / Import KML Batch` 已从 `/dev/workbench` 主操作区迁到: - `/admin/ops-workbench` - `/dev/workbench` 当前只保留运维入口说明与跳转 - `/admin/ops-workbench` 当前已收成第一版运维台结构: - 资源总览 - 资源录入 - 赛道集管理 - 活动绑定 - 发布中心 - 当前 API 总数同步更新为: - `101` - 需要对方确认什么: - 无 - 是否已解决:是 ### B2T-035 - 时间:2026-04-07 12:38:13 - 谁提的:backend - 当前事实: - 正式资源目录约束已收口: - 正式资源只认 `OSS / CDN` - 本地 `tmp/` 只作为临时收件箱,不作为正式发布源 - manual 多赛道 demo 当前已切到 4 条正式 OSS KML: - `gotomars/kml/lxcb-001/2026-04-07/route01.kml` - `gotomars/kml/lxcb-001/2026-04-07/route02.kml` - `gotomars/kml/lxcb-001/2026-04-07/route03.kml` - `gotomars/kml/lxcb-001/2026-04-07/route04.kml` - 需要对方确认什么: - 无 - 是否已解决:是 ### B2T-033 - 时间:2026-04-07 10:55:40 - 谁提的:backend - 当前事实: - `Bootstrap Demo(只准备数据)` 当前会准备三条标准 demo 的基础已发布态: - `runtime` - `presentation` - `content bundle` - 当前 release - frontend 从首页点三种玩法时,已可直接按“当前已发布 release”语义联调。 - 需要对方确认什么: - 无 - 是否已解决:是 ### B2T-029 - 时间:2026-04-03 22:34:08 - 谁提的:backend - 当前事实: - backend 已完成活动卡片列表最小产品化第一刀: - `GET /cards` - `GET /home` - `GET /me/entry-home` - 已补齐最小摘要字段: - `summary` - `status` - `statusCode` - `timeWindow` - `ctaText` - `isDefaultExperience` - `eventType` - `currentPresentation` - `currentContentBundle` - 需要对方确认什么: - 无 - 是否已解决:是 ### B2T-028 - 时间:2026-04-03 16:16:38 - 谁提的:backend - 当前事实: - backend 已提供联调结构化日志通道: - `POST /dev/client-logs` - `GET /dev/client-logs` - `DELETE /dev/client-logs` - workbench 已有前端调试日志面板。 - 需要对方确认什么: - 无 - 是否已解决:是 --- ## 阻塞 - 当前无 backend 主线阻塞。 - 当前不建议开启: - 新对象扩张 - 正式后台 UI - 与活动系统最小成品闭环无关的新玩家功能 --- ## 已完成 ### 归档摘要(保留必要结论) - 时间:2026-04-07 12:18:00 - 谁提的:backend - 当前事实: - 联调标准化阶段已完成: - 一键测试链 - 详细日志 - 稳定 demo 数据 - workbench 回归汇总 - 真实输入替换第一刀已完成: - 真实 KML - 真实地图 URL - dev content/presentation 入口 - 中文活动文案样例 - 三条标准 demo 当前都可稳定联调: - 顺序赛 - 积分赛 - manual 多赛道 - 历史 demo ongoing 残留已收口。 - 需要对方确认什么: - 无 - 是否已解决:是 --- ## 下一步 - backend 当前继续围绕: - 活动系统最小成品闭环 - 活动列表第一页联调小修 - 运维后台第一期里的地图 / 地点管理 - 运维后台当前新增已落地: - 地图 / 地点管理改成“地图列表优先” - 右上角入口:`添加地图 / 添加地点` - 地点编辑区接入省 / 市两级选择 - backend 新增:`GET /ops/admin/region-options` - 不开新战线,只做收口、稳定、验证。