# EM 观察网页可视化阶段 08 交接

状态：自动验收完成但实车待验

阶段目标：完成集成计划 Task 8 的全量自动化、确定性本地网页烟雾和实车观察验收边界记录；不扩展功能，不修改运行时代码，并持续保持 `OBSERVE_ONLY`。

基线提交：`b45ec357b641ad3e855d76b1f675db2aeb155647`（分支 `trajplanner`；`b0b79e5` 已确认是祖先）。

实现提交：无。本阶段未发现回归，未作源码或测试修改。

修改文件：

- `docs/superpowers/handoffs/em-observation-web/phase-08.md`

新增或确认的接口：无新运行时接口。确认两个验证宿主、`em-all`、插件包验证、主项目构建和确定性网页烟雾入口仍可用。

验证命令与结果：

1. 启动检查：phase-01.md 至 phase-07.md 全部存在且状态为“完成”；抽查并确认 `55d8e1e`、`ab8e401`、`fa1a266`、`1ad324c`、`8181f05`、`c5ea4f6`、`0a9c34d`、`51f744b`、`0a1cbe9`、`a7dde0f`、`cc6b0f1`、`fbd3ba6`、`6034568` 都可由 HEAD 到达。
2. `dotnet run --project ClumsyPilot/tests/TrajectoryPlanningVisualizationVerificationHost/TrajectoryPlanningVisualizationVerificationHost.csproj`：退出 `0`，输出 `PASS trajectory-planning-visualization`。
3. `dotnet run --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- trajectory-observation`：退出 `0`，输出 `PASS trajectory-observation`。
4. `dotnet run --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- em-all`：退出 `0`；所有组件均输出 `PASS`，包括 `plugin-package`、`trajectory-observation`、`rolling-end-to-end` 和 `rolling-execution-tail`。
5. `dotnet run --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- plugin-package`：退出 `0`，输出 `PASS plugin-package`。
6. `dotnet build ClumsyPilot/ClumsyPilot.csproj -p:ExcludeLegacyAutoAvoidance=true`：退出 `0`，输出 `0 个警告 / 0 个错误`。
7. `git diff --check 55d8e1e^..6034568`：退出 `0`，本功能自 phase-01 起至 phase-07 实现收口范围内无空白错误。
8. `dotnet run --project ClumsyPilot/tests/TrajectoryPlanningVisualizationVerificationHost/TrajectoryPlanningVisualizationVerificationHost.csproj -- --smoke-seconds 30`：确定性合成快照烟雾宿主退出 `0`；第二次会话输出 token URI `http://127.0.0.1:5465/?token=67b53e5a28508927b766e78923720a8a855a96803be41ff23c7b68d8be42e452`，自然退出后检查确认端口 `5465` 不再处于监听状态。

未运行的验证及原因：

- 当前工具没有可用的浏览器控制连接（浏览器枚举为空）。已在 30 秒会话窗口中向操作者提供 token URI，但没有取得人工页面观察反馈；因此中文标题/状态、英文或数学坐标、科研细线白底、四页签、八图表、Canvas 栅格、SVG 路径覆盖、活动段/horizon 高亮、生效配置和过期状态的肉眼核对未记录为通过。独立验证宿主已通过嵌入资源、中文内容、Canvas/SVG、页签和图表契约检查，但这不替代本次肉眼结果。
- 未执行任何实车观察。当前窗口没有可确认的“有人监督且环境安全”的实车条件，故未开启 MovementTest，未连接车辆写接口，也未尝试操作底盘。
- 因此以下实车项待续验：网页开启且 Painter 关闭时的 `OBSERVE_ONLY`；rolling、approach、exact-stop 语义；jerk 的 `N-1` 区间与无伪造终点后区间；`DeltaPosition`、`DeltaReferenceS`、`DeltaV`、`DeltaA`；真实换向停车保持加三个带符号速度样本后的 `N -> N+1`；关闭浏览器后规划继续；停止 MovementTest 后网页端口/Painter 回收和全过程无执行器输出。

已知警告或遗留问题：

- `trajectory-observation` 的编译输出仍出现两个既有且与本功能无关的 obsolete 警告：`MovementTests.TireFollowing.cs(70)` 的 `Lidar2dDetect2LegTray.LegWidth`，以及 `TireFollowing.cs(243)` 的 `MultiWheelChassis.GetSteerWheels()`。同一轮 `dotnet build` 最终输出为 `0 个警告 / 0 个错误`；未将前述既有警告归因于本功能。
- 启动检查统计工作区有 129 项既有未暂存改动，暂存区为空；本阶段未展开、修改、暂存或提交它们。

与原计划的偏差：无功能或源码偏差。浏览器控制能力不可用时，按 Task 8 要求明确请求操作者协助，不伪造肉眼页面结果；该项保留给续验窗口。

下一阶段注意事项：仅在有人监督且环境安全时使用执行手册的“Stage 8 Vehicle Continuation Prompt”继续实车观察。先核对本交接的自动化证据；若 phase-08 后有相关代码变动，先重新运行受影响自动验证。不得通过操作真实底盘帮助观察条件成立，MovementTest 始终保持 `OBSERVE_ONLY`。
