23-23-token-pointstatus.md 2.6 KB

23: 前端执行票 —— 地图快照分页 token 与 pointStatus 八桶契约对齐

进度

开始处理:已完整读取正文、评论、标签与依赖。当前 ready-for-agent,未认领、无阻塞,无 needs-triage 前置闸门。先核对分页 token 与真实后端八桶支持现状,区分前端缺陷和后端契约缺口。

Type: task Status: claimed Assignee: codex Label: ready-for-agent Category: frontend-execution

来源

票 18 真实联调与浏览器取证(2026-10-10)。

现象

  1. 分页快照 token 丢失:浏览器实测出现 GET /map-snapshot?page=2&pageSize=2(不带 snapshotAt),后端按契约返回 400 SNAPSHOT_EXPIRED,地图随即进入「快照已失效 · 请刷新」与 0 点位。首屏 GET /map-snapshot?page=1&pageSize=2 是正常签发 snapshotAt 的。
  2. 状态筛选契约不一致:真实 map-snapshot 响应没有 pointStatusDistribution,mapFilter.pointStatus 也不回显;传 pointStatus=ALARM 与不传返回完全相同的 total=13(入参被忽略)。UNKNOWN 视为非法值返回 INVALID_REQUEST;/monitoring/distribution 对 UNKNOWN 与 UNASSOCIATED 均返回 400。非法值 BOGUS 在 map-snapshot 上返回 200 而不是 400(与前端白名单预期不一致)。
  3. 界面表现(真人走查第 1 项):状态栏八个计数全部显示 —,分布面板提示「全局状态分布未取到(后端尚未发布八桶全局计数)」。

范围

  1. 前端分页:第 2 页起必须携带首屏锁定的 snapshotAt;快照失效按既有恢复纪律处理,不把整张图清空成 0 点位。
  2. 与后端对齐八桶状态契约:六态 + UNKNOWN + UNASSOCIATED,多值逗号分隔、OR;map-snapshot 与 /monitoring/distribution 两端行为一致;非法值两侧一致拒绝。
  3. 状态栏与分布面板在未取到全局计数时如实降级,取到后共用同一份数据(同源,决策 02 已冻结)。

验收

浏览器实测:地图自动分批加载到完成且不出现快照失效;状态栏与分布面板显示真实八桶计数;多选状态筛选后地图点数随之变化;后端返回 INVALID_REQUEST 时前端不把脏值发出去。探针 map-eight-status-buckets、status-*、invalid-* 相关检查项全部通过。

关联

发现于票 18;承接决策票 02 与规格 07。

进度

Status: claimed Assignee: codex Type: task Blocked by: Labels: ready-for-agent, frontend-execution, wayfinder:task

Comments

Answer