fix(cockpit): T03 平移方向反转为「抓着地图拖」,三类交互加阻尼
维护者目视复验后裁定两条修改,均已落地:
- **平移方向反转**:原先按 ADR 0008 字面做成「相机跟着拖」(拖右 → 相机右移、画面左移),
现改为**抓着地图拖**(拖右 → 画面右移、相机左移)。落地在 `PAN_FOLLOWS_DRAG = false`
一处开关,方向语义集中在 `pivotOffsetMeters()`。**ADR 0008 同步改写**,
否则下个会话照旧文读会把方向改回去。
- **阻尼**:三类交互都改成「目标态 / 实际态」双状态 —— 输入立刻写 `target`(不丢输入,
位移量与方向仍可精确断言),相机 `shown` 按 `1 − e^(−dt/τ)` 朝目标收敛
(`DAMPING_TAU_MS = 110`),差到 `SETTLE_EPSILON` 内吸附到目标。系数与帧率无关,
帧间隔取自排帧时刻的真实时间戳(不是写死的每帧毫秒);`shown/target/settled`
都进了 `getState()` 与 `data-camera`,所以「阻尼真的在生效」可被断言而非只凭手感。
- **手感现场可调**:DEV 把手加 `__cockpitMap.setCameraDamping(毫秒)`(`0` = 不做阻尼)。
`mapService.js` 里对应的那行改动**未随本次提交**:该文件当前还带着并发会话
「底图/配置」票的未提交改动(引用尚未提交的 `domain/basemap.js`、`services/cockpitConfig.js` 等),
提交它会产出引用缺失模块的树。等那一路落地后,这行把手改动随它一起提交。
验证:`verify/t03-camera-contract.mjs` **14/14**(新增阻尼渐入/不超调/停稳吸附、
阻尼与帧率无关 60fps 83.8% vs 120fps 83.8%、用户操作打断飞行、阻尼可拖调三组断言);
回归 `t01-panel-catalog`、`t06-assets` 15/15。真机走查脚本已按新方向与阻尼更新
(A2 改为断言沿相机左手方向、新增 A10 阻尼在真机生效、量几何前统一等 `settled`),
**真机尚未跑**,票面进度保持 90%。