Files
ParkingRobot/docs/superpowers/progress/em-planner-progress.md
T

100 lines
8.9 KiB
Markdown
Raw Normal View History

# EM Planner Execution Progress
## Current State
2026-08-03 23:52:06 +08:00
- Current stage: 3 — OSQP contracts and native loading
2026-08-03 22:29:27 +08:00
- Stage status: Completed
- Current branch: `trajplanner`
2026-08-03 23:52:06 +08:00
- Last checkpoint commit: `39c1708` (last Stage 3 functional commit; this file is the Stage 3 checkpoint)
- Protocol design baseline: `554c84f`
- Implementation-plan baseline: `8dd8ff0`
## Completed Tasks
| Stage | Plan | Tasks | Commits | Verification |
|---:|---|---|---|---|
2026-08-03 22:29:27 +08:00
| 1 | `2026-08-03-em-planner-foundation-implementation.md` | Task 1 — Verification Host and Immutable Contracts | `e12eb31` | RED: `foundation` failed with missing `VehicleMotionState`/`EmTrajectoryPoint`; GREEN: `foundation` printed `PASS foundation` with exit 0. |
| 1 | `2026-08-03-em-planner-foundation-implementation.md` | Task 2 — Configuration, Diagnostics, and Request Validation | `b326431` | RED: `foundation` failed with missing configuration/validation types; GREEN: `foundation` printed `PASS foundation` twice with byte-identical stdout and exit 0. |
| 1 | `2026-08-03-em-planner-foundation-implementation.md` | Task 3 — Direction Segmentation and Exact Boundary Anchors | `e492e16` | RED: `segmentation` failed with missing `ReferencePathSegmenter`; GREEN: `foundation` and `segmentation` each printed their PASS line with exit 0. |
2026-08-03 22:55:47 +08:00
| 2 | `2026-08-03-em-planner-foundation-implementation.md` | Task 4 — Reverse-Safe Frenet Projection and Reconstruction | `06687e2` | RED: `frenet` failed with missing Frenet types including `FrenetProjector`; GREEN: `PASS frenet` with forward/reverse sign, yaw-wrap, bounded U-branch, singular-denominator, and reconstruction checks. |
| 2 | `2026-08-03-em-planner-foundation-implementation.md` | Task 5 — Topology-Preserving Static Corridor | `2d252ff` | RED: `corridor` failed with missing static-corridor types; GREEN: `PASS corridor`, followed by `all-foundation` with all four PASS lines. |
| 2 | `2026-08-03-em-planner-foundation-implementation.md` | Task 6 — Foundation Documentation and Gate | `aa62d6b` | RED: Foundation README was absent; GREEN: README contract scan passed. Placeholder/format scans passed, `all-foundation` passed twice with identical four-line stdout, and the normal-project baseline contained only legacy `auto_avoidance` errors. |
2026-08-03 23:52:06 +08:00
| 3 | `2026-08-03-em-planner-osqp-backend-implementation.md` | Task 1 — Solver-Neutral Sparse QP Contracts | `104081e` | RED: `optimization` failed with missing `SparseTripletBuilder`; GREEN: `PASS optimization` covered deterministic CSC canonicalization, duplicate summation, zero dropping, upper-triangular Hessians, QP validation, and defensive copies. |
| 3 | `2026-08-03-em-planner-osqp-backend-implementation.md` | Task 2 — Reproducible OSQP 1.0.0 Native Package | `2abb465` | RED: the planned package script was absent; GREEN: the fixed-tag build printed `OSQP v1.0.0 win-x64 package ready`. The package contains the pinned DLL, license files, version/build flags, and lowercase SHA-256 manifest; `dumpbin` verified x64 and the four required exports. |
| 3 | `2026-08-03-em-planner-osqp-backend-implementation.md` | Task 3 — Absolute-Path Native Loader and ABI Structures | `39c1708` | RED: `osqp-loader` failed with missing `OsqpNativeLoader`; GREEN: `PASS osqp-loader` verified missing/corrupt DLL diagnostics, real `1.0.0` loading from a copied plugin directory, and one stable handle across 16 parallel first-use calls. |
## Current Verification
- Commands:
2026-08-03 23:52:06 +08:00
- `powershell -ExecutionPolicy Bypass -File ClumsyPilot/ThirdParty/OSQP/build-win-x64.ps1`
- `dumpbin /headers ClumsyPilot/ThirdParty/OSQP/win-x64/osqp.dll`
- `dumpbin /exports ClumsyPilot/ThirdParty/OSQP/win-x64/osqp.dll`
- `dotnet run --no-build --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- optimization`
- `dotnet run --no-build --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- osqp-loader`
- `dotnet run --no-build --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- all-foundation`
2026-08-03 22:55:47 +08:00
- `dotnet build ClumsyPilot/ClumsyPilot.csproj --no-restore`
2026-08-03 23:52:06 +08:00
- `git diff --check`
- Result: The pinned OSQP package built from tag `v1.0.0` with builtin algebra, shared library, double precision, int32 indices, unpacked settings, and printing/codegen/derivatives disabled. Its DLL is x64; `osqp_version`, `osqp_setup`, `osqp_solve`, and `osqp_cleanup` are exported; and the recomputed SHA-256 exactly matches `SHA256SUMS`. `optimization` and `osqp-loader` pass. The latter uses copied plugin directories to prove missing/corrupt native libraries return structured diagnostics without `BadImageFormatException` escaping, the real library reports `1.0.0`, and 16 concurrent first loads share one handle. `all-foundation` prints `PASS foundation`, `PASS segmentation`, `PASS frenet`, and `PASS corridor`. `git diff --check` has no whitespace diagnostics, and the staging area was empty before this checkpoint update.
- Normal-project baseline: `dotnet build ClumsyPilot/ClumsyPilot.csproj --no-restore` exits 1 only for the legacy `auto_avoidance/MultiWheelAutoAvoidance.cs` missing `NetTopologySuite` (3) and `OpenCvSharp` (1) references, plus that legacy file's duplicate-using warning. There are no EM Planner errors.
- Verified commits: `104081e`, `2abb465`, and `39c1708`
## Preserved Workspace State
2026-08-03 22:55:47 +08:00
- The workspace continues to contain many unrelated Map, CoarsePath, PathSmoothing, project-file, report, and documentation changes. They belong to the user and remain untouched and unstaged.
- Use explicit file paths for every `git add`; never stage the whole workspace.
2026-08-03 22:55:47 +08:00
- The existing user hunk in `ClumsyPilot/ClumsyPilot.csproj` remains preserved. Do not clean, rewrite, or stage it.
- The normal `ClumsyPilot.csproj` build remains blocked by legacy `auto_avoidance/MultiWheelAutoAvoidance.cs` references to `NetTopologySuite` and `OpenCvSharp`; do not delete or bypass legacy functionality to change this baseline.
## Decisions Needed
2026-08-03 23:52:06 +08:00
- None. Stage 3 completed within scope.
## Next Stage
2026-08-03 23:52:06 +08:00
- Stage: 4 — OSQP solve lifecycle and status mapping
- Readiness: Ready for Stage 4 entry checks.
2026-08-03 22:55:47 +08:00
- Plan: `docs/superpowers/plans/2026-08-03-em-planner-osqp-backend-implementation.md`
- Tasks:
2026-08-03 23:52:06 +08:00
- Task 4 — OSQP Solve Lifecycle and Status Mapping
- Task 5 — Backend Completion Gate
- Entry checks:
2026-08-03 23:52:06 +08:00
- Confirm branch `trajplanner`, commits through `39c1708`, and an empty staging area.
2026-08-03 22:55:47 +08:00
- Capture `git status --short` before editing and preserve every unrelated user change.
2026-08-03 23:52:06 +08:00
- Read the two EM Planner design documents, this progress file, and the OSQP implementation plan.
- Run `optimization`, `osqp-loader`, and `all-foundation` before Task 4.
- Confirm `CMake`, Visual Studio x64 Build Tools, and `dumpbin` remain available for package checks.
- Exit gate:
2026-08-03 23:52:06 +08:00
- Tasks 4 and 5 each have an independent commit and their prescribed RED/GREEN evidence.
- Feasible and infeasible QPs map to planner-neutral statuses; native workspace allocation/release and repeated loading are stable.
- The clean-plugin-directory loader check, `optimization`, `osqp-loader`, and `all-foundation` pass.
- `git diff --check` is clean; the staging area is empty; a Stage 4 progress checkpoint is committed alone.
## Next-Window Prompt
```text
2026-08-03 23:52:06 +08:00
Please continue the ParkingRobot repository EM Planner multi-window implementation.
2026-08-03 23:52:06 +08:00
Working directory: D:\Users\Desktop\项目\prakrobot\ParkingRobot
2026-08-03 23:52:06 +08:00
This window is Stage 4: OSQP solve lifecycle and status mapping. Execute only Task 4 and Task 5 of:
docs/superpowers/plans/2026-08-03-em-planner-osqp-backend-implementation.md
Do not start LS, ST, rolling execution, dynamic obstacles, or any later stage.
2026-08-03 23:52:06 +08:00
Before working, fully read:
1. docs/superpowers/specs/2026-08-03-em-planner-ls-st-design.md
2. docs/superpowers/specs/2026-08-03-em-planner-windowed-execution-design.md
3. docs/superpowers/progress/em-planner-progress.md
2026-08-03 22:55:47 +08:00
4. docs/superpowers/plans/2026-08-03-em-planner-osqp-backend-implementation.md
2026-08-03 23:52:06 +08:00
Use executing-plans, test-driven-development, and verification-before-completion. Do not use subagents.
Before Task 4, confirm branch trajplanner, commits through 39c1708, an empty staging area, and preserve the saved git status --short baseline. Run:
dotnet run --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- optimization
dotnet run --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- osqp-loader
dotnet run --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- all-foundation
Use strict per-task TDD, explicit staging, and an independent commit for each task. Do not modify unrelated Map, CoarsePath, PathSmoothing, or legacy auto_avoidance content. The normal-project build's existing auto_avoidance dependency failure is a recorded baseline, not something to fix or bypass.
Before completion, run the plan verification and git diff --check. Update and separately commit this progress file only after Stage 4 is genuinely complete.
```