Status: open Labels: wayfinder:map
本目录是 /to-spec + /to-tickets 的产物,不是 wayfinder effort:spec.md 是规格,issues/01–23 是实现票(01、02、06 已关闭),issues/24–28 是调研、待人工处理项与后续新增票(24 调研已关闭;25 待人工;26 watcher 崩溃已修复;27 接入 Cesium 常驻 Viewer,是票 03 的前置,已关闭;28 外壳填满容器已关闭)。
本 map.md 的唯一作用是把这个 effort 暴露给 issue tracker 面板——面板只枚举含 map.md 的 .scratch/<effort>/,没有 map.md 的目录连同它的票都不会被列出。
Labels: wayfinder:map 在这里只用于让面板按地图视图渲染本 effort 的子票状态、进度与依赖分层;不代表本 effort 由 /wayfinder 驱动——推进仍走 /implement。
按 spec.md、CONTEXT.md 与 docs/adr/0001–0008 实现 /cockpit 外壳:单路由、四个一级模式、每个模式左右两栏共 4 个二级面板、中央地图常驻。语义已由 .scratch/web-cockpit-decision-map/ 锁死,本 effort 不再发明 mode、panelId、相机或鉴权的含义。
issues/01–23,按各票 Blocked by 的依赖顺序推进,一票一个全新上下文。issues/24(resolved)是 AFK 调研,产物在 research/panel-field-coverage.md,不改业务代码。issues/25(ready-for-human)是后端补契约与业务定义缺口,需要人或后端负责人处理;不阻塞 01–23 的 mock 阶段。issues/26(resolved)是 dev server watcher 的 EBUSY 崩溃修复:忽略清单须同时覆盖 .scratch 面板原子写与 DSH 编辑审阅临时文件。issues/27(resolved)是引擎接入票:装 cesium + 静态资源/CESIUM_BASE_URL + 服务层创建唯一 Viewer;票 03 依赖它(相机契约必须落在真实引擎上)。已关闭,验证证据与遗留(本工作区 fes build 因两个未跟踪插件缺依赖而跑不完)见票面。yarn dev(= fes dev → .fes.js:layout.navigation: null,无页头);真实应用环境不使用 predev 启动(维护者 2026-09-16 明确)。yarn pre.dev / pre.dev.one 是 TvT 预演站布局(navigation: 'top' + isFixedHeader,顶部多 54px 固定页头),那里出现的布局异常(如 A12 红)属环境差异。A12 证据里的 pageHeaderH 用来分辨这一点(见票 28)。cesiumEngine.js 曾因此把 A15 判红一次:widgetChrome: 1;重启后同一份代码 20/20、widgetChrome: 0)。涉及引擎、懒加载模块的走查尤其要先重启。implement、tdd、code-review;TvT.js 侧基线是 skills/tvt-js-plugin-builder/。Status: 行。mode/subview 切换。mode/panelId 英文词典、三键相机契约、地面与管线视图合成、Cesium 集成方式、无登录页鉴权。mode/panelId 词典。.scratch 面板原子写击穿 — 已修复(含重开补验):.fes.js 的 dev server watch 忽略 **/.scratch/** 与 **/.dsh-*(Vite 默认 ignore 合并不覆盖);两个触发源——面板原子写与 DSH 编辑审阅临时文件——均实测不再击穿。services/mapService.js 持有实例生命周期(幂等挂载、尺寸上报、离开才销毁)+ 常驻宿主组件 MapCanvas.vue;逻辑单测 + 走查 A14 证明「切模式与收放面板都不重建」。styles/tokens.css 挂 .cockpit-shell(不挂 :root,免漏插件样式)、public/cockpit/ 自持资产、占位/图标/状态标签三件套(PanelPlaceholder / icons.js+CockpitIcon / statusTones.js+StatusTag,标签带文字不吃纯色);零依赖脚本 15/15 + 走查 19/19。副产:查清 A12「铺满」的 predev 环境差异(并立票 28),走查脚本加 pageHeaderH 与前置条件说明。cesium@1.145.0 固定版本(不进 federation shared、进 manualChunks 单独分包)+ src/common/cesiumStaticPlugin.js(dev/pre.dev 中间件与 build 拷贝四个静态目录,pre.dev.one 的 copyPublicDir:false 同样生效)+ services/cesiumAssets.js(CESIUM_BASE_URL 在 import 之前写入,取 publicPath: './' / qiankun 注入路径)+ services/cesiumEngine.js(唯一 Viewer:控件与默认相机输入全关、baseLayer:false 不伪造配准)+ mapService 持有引擎生命周期与宿主状态浮标;yarn dev 走查 20/20(含强制失败的兜底断言)、pre.dev.one 19/20(仅 A12 环境差异红)、yarn pre.build.one 日志证明四目录进产物。遗留:本工作区 fes build 被两个未跟踪插件缺依赖挡住(@takram/three-3d-tiles-support、leaflet),cesium 分包暂无产物证据。.cockpit-shell 由 height: 100vh 改为 absolute + inset: 0,贴着最近的定位容器(没有定位祖先时按规范落回初始包含块=视口);氛围层同步由 fixed 改 absolute,不再盖到宿主页头那一带。零依赖脚本 7/7(旧实现复现「越界 54px + 宿主滚动条」,交付实现容器等高、底边贴合、真·视口 resize 跟随),走查 A12 仍绿。附带确立:真实启动路径是 yarn dev,predev 预演站不是真实应用环境。issues/25)。issues/01–23。