crud-issues-delete.md
markdown
sha256:21d532d9fcaea5c4780bd2bd39eac38756266a551a372642c56842a6caed8c5b
docs: track issues #141/#142/#143 (CRUD/delete parity) plan…
Sonnet 5
11 days ago
Issues: add delete capability (soft + hard)
Child of musehub#141 (parent: framework-wide CRUD/delete idiom).
Background
MusehubIssue (musehub/db/musehub_social_models.py) has no delete
concept at all — only state (open/closed). close/reopen are the
only lifecycle operations. There is no way to remove an issue, soft or
hard, via the CLI or API today. Confirmed hitting this directly during
#139's cleanup: ~40 test issues created for layout verification cannot be
removed, only closed.
Goal
- Add an
is_deletedcolumn toMusehubIssue, matching theMusehubIssueCommentpattern that already works. muse hub issue delete <number>— soft-deletes by default (setsis_deleted), matching #141's framework-wide idiom.muse hub issue delete <number> --hard— actually removes the row. Gate to repo owner/admin collaborator (same guard as other destructive issue operations).- Soft-deleted issues excluded from
issue listby default (add a--include-deletedflag for anyone who needs to see them), excluded from open/closed/unassigned counts on the issue list page. - Decide and document: does a hard-deleted issue's number get reused, or stay permanently retired? (Recommend: retired — reusing numbers after hard-delete reintroduces exactly the kind of ambiguity #140 is about.)
Out of scope
- Cascading behavior for comments/labels/anchors on a deleted issue — decide alongside the schema change, but keep simple: cascade delete on hard-delete, no special handling needed on soft-delete (comments stay, just orphaned from an invisible parent — same as GitHub's behavior).
File History
1 commit
sha256:21d532d9fcaea5c4780bd2bd39eac38756266a551a372642c56842a6caed8c5b
docs: track issues #141/#142/#143 (CRUD/delete parity) plan…
Sonnet 5
11 days ago