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

8.9 KiB

EM Planner Execution Progress

Current State

  • Current stage: 3 — OSQP contracts and native loading
  • Stage status: Completed
  • Current branch: trajplanner
  • 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
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.
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.
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:
    • 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
    • dotnet build ClumsyPilot/ClumsyPilot.csproj --no-restore
    • 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

  • 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.
  • 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

  • None. Stage 3 completed within scope.

Next Stage

  • Stage: 4 — OSQP solve lifecycle and status mapping
  • Readiness: Ready for Stage 4 entry checks.
  • Plan: docs/superpowers/plans/2026-08-03-em-planner-osqp-backend-implementation.md
  • Tasks:
    • Task 4 — OSQP Solve Lifecycle and Status Mapping
    • Task 5 — Backend Completion Gate
  • Entry checks:
    • Confirm branch trajplanner, commits through 39c1708, and an empty staging area.
    • Capture git status --short before editing and preserve every unrelated user change.
    • 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:
    • 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

Please continue the ParkingRobot repository EM Planner multi-window implementation.

Working directory: D:\Users\Desktop\项目\prakrobot\ParkingRobot

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.

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
4. docs/superpowers/plans/2026-08-03-em-planner-osqp-backend-implementation.md

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.