diff --git a/docs/superpowers/progress/em-planner-progress.md b/docs/superpowers/progress/em-planner-progress.md index 5d656fa..ce29f04 100644 --- a/docs/superpowers/progress/em-planner-progress.md +++ b/docs/superpowers/progress/em-planner-progress.md @@ -2,10 +2,10 @@ ## Current State -- Current stage: 9 - rolling coordination and gear-switch execution +- Current stage: 10 - generic control adaptation, plugin packaging, and final rolling gate - Stage status: Completed - Current branch: `trajplanner` -- Last checkpoint commit: `de402e6` (last Stage 9 functional commit; this file is the Stage 9 checkpoint) +- Last checkpoint commit: `4058230` (last Stage 10 functional commit; this file is the final Stage 10 checkpoint) - Protocol design baseline: `554c84f` - Implementation-plan baseline: `8dd8ff0` @@ -22,6 +22,9 @@ | Stage | Plan | Tasks | Commits | Verification | |---:|---|---|---|---| +| 10 | `2026-08-03-em-planner-rolling-execution-implementation.md` | Task 4 - Generic Control Adapter | `aa51ae2` | RED: `executor` exited 1 with missing `TrajectoryControlAdapter` and `IVehicleStateProvider`. GREEN: `PASS executor` verifies exact forward/reverse signed-velocity and yaw-rate mapping, telemetry preservation, zero holds, one-shot direction requests, no lateral body command, and no in-place rotation. | +| 10 | `2026-08-03-em-planner-rolling-execution-implementation.md` | Task 5 - Plugin Output and License Packaging | `3c84e36` | RED: `plugin-package` exited 1 because `Publish-ClumsyPilotPlugin.ps1` was absent. GREEN: `PASS plugin-package` verifies build-output metadata, managed `ClumsyPilot.dll`, x64/hash-checked `osqp.dll`, the exact three-license tree, and repeat publication with no stale staging directory. | +| 10 | `2026-08-03-em-planner-rolling-execution-implementation.md` | Task 6 - Rolling End-to-End and Final Gate | `4058230` | RED: `em-all` exited 2 because its command route did not exist. GREEN: `PASS rolling-end-to-end` and `PASS rolling-execution-tail` cover forward/reverse publication, supersession, unsafe-tracking reset, gear dwell, goal stop, and failure continuation to a non-extrapolated zero-speed tail. | | 9 | `2026-08-03-em-planner-rolling-execution-implementation.md` | Task 1 - Cycle Identity, Scheduling Decision, and Stale-Result Suppression | `d75380c` | RED: the authorized inherited coordinator draft threw `ObjectDisposedException` when a completed current cycle was followed by another cycle. GREEN: `coordinator` printed `PASS coordinator`; the exact 100-run planned loop completed with exit 0 and 100 PASS lines. | | 9 | `2026-08-03-em-planner-rolling-execution-implementation.md` | Task 2 - Safe Previous-Trajectory Handoff | `55119de` | RED: `coordinator` exited 1 with missing `TrajectoryHandoffSelector` contracts. GREEN: `PASS coordinator` covers forward/reverse same-segment interpolation, age/tracking/terminal/segment/direction/beyond-trajectory/gear-boundary rejection, no cross-boundary interpolation, and coordinator consumption of its immutable published trajectory. | | 9 | `2026-08-03-em-planner-rolling-execution-implementation.md` | Task 3 - Gear-Switch State Machine and Trajectory Executor | `de402e6` | RED: `executor` exited 1 with missing gear-switch and execution-state types. GREEN: `PASS executor` covers forward-to-reverse and reverse-to-forward zero-speed dwell, one-shot request, confirmation, and Goal/RollingSafetyStop completion. | @@ -56,10 +59,10 @@ ## Current Verification -- Commands: `coordinator`; `executor`; `em-core-all`; `trajectory`; `lateral-all`; `optimization`; `osqp`; `all-foundation`; `git diff --check`, all from the repository root. -- Result: all Stage 9 exit commands exited 0 at `de402e6`. The coordinator binds caller-supplied time and complete cycle identity, publishes only current immutable successes, and isolates sink exceptions. Handoffs use immutable published points or the supplied measured state. The executor receives caller time, measured speed, direction inputs, and exact boundaries; it has no UI, hardware, current-working-directory, controller-command, or dynamic-obstacle dependency. -- RED/GREEN: Task 1 RED `coordinator` exit 1 (`ObjectDisposedException`), GREEN exit 0 plus the 100-run loop exit 0. Task 2 RED `coordinator` exit 1 (missing `TrajectoryHandoffSelector`), GREEN exit 0. Task 3 RED `executor` exit 1 (missing execution types), GREEN exit 0. -- Verified commits: `d75380c`, `55119de`, `de402e6`. +- Commands: entry regressions `coordinator`, `executor`, `em-core-all`, `trajectory`, `lateral-all`, `optimization`, `osqp`, and `all-foundation`; Task 4 `executor`; Task 5 `plugin-package`; final `em-all` and `git diff --check`, all from the repository root. +- Result: every entry regression exited 0. The final post-commit `em-all` exited 0 with foundation, OSQP, lateral, longitudinal, trajectory, facade, coordinator, executor, plugin packaging, rolling end-to-end, and rolling-tail PASS lines; `git diff --check` exited 0. +- RED/GREEN: Task 4 RED `executor` exit 1 (missing generic adapter/provider), GREEN exit 0. Task 5 RED `plugin-package` exit 1 (missing script), GREEN exit 0. Task 6 RED `em-all` exit 2 (unregistered command), GREEN exit 0; the Task 5 output metadata required test-only clean-bundle copy fixtures to omit host-output `osqp.dll` before their existing explicit pinned-DLL copy. +- Verified commits: `aa51ae2`, `3c84e36`, `4058230`. ## Historical Current Verification @@ -88,8 +91,8 @@ ## Preserved Workspace State - The initially untracked Task 1 coordinator draft was explicitly authorized for Stage 9 ownership and committed as `d75380c`. -- Every other captured Stage 9 user-baseline status entry remains untouched and unstaged; no unexpected loss or new non-stage status entry was found. -- The pre-existing `lateral-all` fixture remains root-directory dependent for its pinned OSQP DLL; no completed LS/ST/OSQP/facade behavior was changed. +- Every captured user-baseline status entry remains untouched and unstaged: the final `git status --short` set has the same 125 entries as Stage 10 entry, with no additions or losses. +- The `lateral-all` fixture still resolves its explicitly copied pinned OSQP DLL from the repository-root current directory. Build-output `osqp.dll` is omitted only from the temporary clean-bundle host copy before that existing explicit copy; no LS/ST/OSQP/facade production behavior changed. - Existing baseline noise remains the two obsolete-API warnings and CRLF advisories on user-owned dirty files; `git diff --check` exits 0. ## Historical Preserved Workspace State @@ -102,7 +105,7 @@ ## Decisions Needed -- None. Stage 9 completed within scope. +- None. Stage 10 completed within scope; it is the final planned EM Planner stage. ## Historical Decisions Needed @@ -174,12 +177,7 @@ ## Next Stage -- Stage: 10 - generic control adaptation, plugin packaging, and final rolling gate. -- Readiness: Ready after this Stage 9 checkpoint is committed. -- Plan: `docs/superpowers/plans/2026-08-03-em-planner-rolling-execution-implementation.md` -- Authorized tasks only: Task 4 - Generic Control Adapter; Task 5 - Plugin Output and License Packaging; Task 6 - Rolling End-to-End and Final Gate. -- Entry checks: confirm `d75380c`, `55119de`, `de402e6`, and this Stage 9 progress checkpoint are ancestors of `HEAD`; capture and preserve `git status --short` with an empty index; run `coordinator`, `executor`, `em-core-all`, `trajectory`, `lateral-all`, `optimization`, `osqp`, and `all-foundation` from the repository root. -- Exit gate: Tasks 4-6 each have independent RED/GREEN and commits; `em-all` and `git diff --check` exit 0; the stage-10 progress update is committed alone and no Stage 11 prompt is generated. +- None. Stage 10 is the final approved stage; no Stage 11 implementation work or prompt is generated. ## Historical Stage 9 Next Stage @@ -192,7 +190,7 @@ - Task 3 — Gear-Switch State Machine and Trajectory Executor - Explicit exclusions: generic control adaptation, plugin packaging, dynamic obstacles, UI/hardware integration beyond the approved execution boundary, and Stage 10 work. -## Next-Window Prompt +## Historical Stage 10 Window Prompt ```text 请继续 ParkingRobot 仓库的 EM Planner 多窗口实施。