PASS A1-first-page — {"page":1,"loaded":2} PASS A2-second-page-keeps-snapshot — snapshot 2026-09-02T10:00:00+08:00 / loaded 4 PASS A2-both-kinds-on-map — ["monitoring-point","unassociated-equipment","monitoring-point","unassociated-equipment"] PASS A3-dedupe-by-kind-and-code — loaded 4 PASS A3-cross-kind-not-merged — objects 2 PASS A3-codeless-not-dropped — loaded 2 PASS A4-refresh-drops-old-snapshot — ["MP-009"] PASS A5-long-run-bounded — batches 200 objects 203 page 203 PASS B1-idle — 地图框架已就绪 · 等待分页数据 PASS B2-loading — 地图摘要加载中 · 第 2 页 · 已上图 undefined 个 PASS B3-complete — 地图摘要加载完成 · 已上图 7 个 PASS B3-empty — 地图摘要无数据 · 当前范围没有可上图对象 PASS B4-expired — {"phase":"expired","tone":"lv1","label":"地图摘要快照已失效 · 请刷新","detail":"后端数据已更新,重新加载会切换到新快照"} PASS B4-failed — {"phase":"failed","tone":"lv1","label":"地图摘要加载失败 · 已上图 undefined 个","detail":"刷新或稍后重试"} PASS B5-no-reason-code-in-ui — 五态都有中文文案 PASS C2-partial-is-not-complete — idle PASS C1-locked-snapshot — [{"page":1},{"page":2,"snapshotAt":"2026-09-02T10:00:00+08:00"}] PASS C2-progressive — idle(2) → complete(4) PASS C3-complete-is-terminal — requests 2 PASS C4-refresh-new-snapshot — {"snapshot":"2026-09-02T10:05:00+08:00","page":1,"lastRequest":{"page":1}} PASS C5-expired-not-merged — {"phase":"expired","loaded":2} PASS C6-failed-then-retry-same-page — {"failedPhase":"failed","page":1,"retriedPage":2} PASS C7-empty-phase — "empty" PASS C8-frame-before-data — idle PASS C9-pagination-params — {"page":1,"pageSize":250} PASS D1-query-carries-page-and-size — /map-snapshot?page=1&pageSize=2 PASS D2-query-carries-snapshot — /map-snapshot?page=2&pageSize=2&snapshotAt=2026-09-02T10%3A00%3A00%2B08%3A00 PASS D3-domain-batch — {"state":"success","objects":1} PASS D4-snapshot-expired-reason — {"ok":false,"mode":"real","status":400,"reason":"snapshot-expired","path":"/map-snapshot?page=2&snapshotAt=old"} PASS D4-invalid-request-stays-generic — {"ok":false,"mode":"real","status":400,"reason":"unavailable","path":"/map-snapshot?page=0"} PASS E1-throw-becomes-failed — "failed" PASS F1-mock-pages-are-real-slices — {"total":5,"thirdComplete":true} PASS F2-mock-spans-both-kinds — ["monitoring-point:MP-001","monitoring-point:MP-002","monitoring-point:MP-003","unassociated-equipment:EQ-FREE-001","unassociated-equipment:EQ-FREE-004"] PASS F3-mock-page2-without-snapshot-expires — {"state":"failed","reason":"snapshot-expired"} PASS G1-store-progressive — {"before":"idle","after":"idle/2"} PASS G2-partial-is-success-not-stale — {"state":"success","retained":false} PASS G2b-nothing-loaded-does-not-write-section — {"loaded":false,"state":"empty"} PASS G3-section-carries-snapshot — {"snapshot":"2026-09-02T10:00:00+08:00","loaded":5} PASS G4-page-size-hidden — 演示页大小 2 PASS G5-refresh-reloads-new-snapshot-to-completion — {"phase":"complete","loaded":5,"snapshot":"2026-09-02T10:00:00+08:00"} PASS G6-expired-keeps-loaded — {"phase":"expired","loaded":2,"label":"地图摘要快照已失效 · 请刷新"} PASS H1-pagination-params-not-in-ui — 界面文件里零分页/快照参数 PASS H2-adapter-owns-the-params — 分页与快照参数只在 mapStore 的适配翻译处拼 PASS H3-shell-says-what-not-how — 外壳只说「再取一批/刷新」,不直接翻页 T08 逻辑检查:44/44 项通过。 T08 逻辑检查全部通过。