Repository navigation
fix(openspec): return empty active changes when all changes are complete (#646) - #650
Conversation
…ete (#646) - Remove fallback to parsed changes when in_progress list is empty in _active_openspec_changes. - Ensure workspaces with only completed changes cleanly resolve to state none and exit 0. - Add regression tests verifying none resolution on all-complete payloads.
Independent Verification Report: PR #650
Analysis of OpenSpec Lifecycle Resolution FixIn return in_progress if in_progress else parsedWhen all changes in OpenSpec reached status The fix cleanly removes the return in_progressWhen all changes are complete, Code & File Surface Checks
Execution Receipts
|
Summary
Fixes the fallback bug in
_active_openspec_changes()identified during the thermo-nuclear review of Program #636 (refs #646, parent #645).Problem
In
scripts/openspec_change.py, whenin_progresswas empty, the return statement fell back to returning all parsed changes (return in_progress if in_progress else parsed). When all changes in the repository reachedstatus: "complete",resolve_openspec_change(None)returnedstate="ambiguous", causingvalidate_openspec_change(None)to crash with exit code 1.Solution
parsed;_active_openspec_changes()returnsin_progressdirectly.state="none", performing a clean no-op and exiting 0.tests/test_verify_portable.pycovering all-complete and mixed change payloads.Verification
.venv/bin/pytest tests/test_verify_portable.py: 33 passing tests..venv/bin/python scripts/verify-portable.py doctor --host all: 6-Harness Matrix Verdict PASS.python3 scripts/verify-harness.py: PASS.python3 scripts/scan-host-boundary.py --check: PASS.openspec validate --changes --strict: PASS.Closes #646