You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: scope OpenSpec sentinel per-change to prevent stale task queue across runs
The .openspec-populated sentinel was a boolean marker (touch file) that only
tracked whether OpenSpec tasks had been loaded, not which change they came from.
This caused three bugs:
1. Switching between OpenSpec changes reused stale tasks from the previous change
2. Running without --openspec still served leftover OpenSpec tasks to agents
3. Task ID collisions (openspec-N.M format) prevented new tasks from loading
when old IDs matched via deduplication
Fix:
- Sentinel now stores the full change path; populate_openspec_queue() compares
it on read and purges stale tasks when the change switches
- CLI clears sentinel before adapter runs (--openspec provided) and removes all
OpenSpec artifacts when --openspec is absent
- Task IDs now include the change name (openspec-{name}-N.M) to prevent
cross-change collisions
Closes #150
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
0 commit comments