c2a2c5c4bf
CI / build (push) Successful in 23s
CI / lint (push) Successful in 3m40s
CI / typecheck (push) Successful in 4m14s
CI / benchmark-regression (push) Has been skipped
CI / quality (push) Successful in 4m9s
CI / security (push) Successful in 4m24s
CI / unit_tests (push) Successful in 6m55s
CI / integration_tests (push) Successful in 7m7s
CI / docker (push) Successful in 1m14s
CI / e2e_tests (push) Successful in 9m24s
CI / coverage (push) Successful in 11m20s
CI / status-check (push) Successful in 1s
CI / benchmark-publish (push) Successful in 24m27s
## Summary - **`plan correct` now accepts a plan_id** as its positional argument (in addition to decision_id). When a plan_id is given, the root decision is automatically selected as the correction target. - The positional parameter is renamed from `decision_id` to `identifier` with updated help text reflecting dual use. - Backward compatibility is fully preserved: decision_id inputs continue to work exactly as before. ## How it works 1. Try `container.plan_lifecycle_service().get_plan(identifier)` to check if the identifier is a plan_id 2. If it resolves to a real `Plan` object, use it as `resolved_plan_id` and auto-select the root decision (`parent_decision_id is None`) 3. If lookup fails (`ResourceNotFoundError`) or the result is not a `Plan` instance, fall back to treating the identifier as a decision_id (original behavior) ## Verification - `nox -s lint` — All checks passed - `nox -s typecheck` — 0 errors, 1 pre-existing warning - `nox -s unit_tests` (correction features) — 150 scenarios passed, 683 steps passed, 0 failures ISSUES CLOSED: #969 Reviewed-on: #1055 Co-authored-by: Brent E. Edwards <brent.edwards@cleverthis.com> Co-committed-by: Brent E. Edwards <brent.edwards@cleverthis.com>