← all tickets
05 — Clear completed
What to build: The only true deletion in the app. Each List offers a manual "clear completed" action that permanently deletes its completed Tasks after an explicit confirmation. Open Tasks are never touched. A completed Task that still has open descendants cannot exist (cascade-down guarantees this), but the implementation must be safe if run against a tree mid-edit.
Blocked by: 02 — Flat Tasks in a List.
Status: done (commit 0d90b7a, 2026-08-04)
- ☐ "Clear completed" is available per List and requires an explicit confirmation step
- ☐ After clearing, all completed Tasks (including completed subtrees) in that List are gone
- ☐ Open Tasks and other Lists are untouched
- ☐ No other action in the app deletes Tasks
- ☐ Tests cover clearing with mixed open/completed trees
Comments
- Advisory (P3): stale-confirmation test asserts surviving Task ids but not the returned panel's clear-control/view state, so a stale confirmation fragment or a lingering "Clear completed" offer would go unnoticed (tests/test_clear_completed.py:235)