diff --git a/docs/superpowers/handoffs/em-observation-web/phase-08.md b/docs/superpowers/handoffs/em-observation-web/phase-08.md new file mode 100644 index 0000000..ab81bfe --- /dev/null +++ b/docs/superpowers/handoffs/em-observation-web/phase-08.md @@ -0,0 +1,41 @@ +# 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`。