gabriel / musehub public
crud-proposal-comments-delete.md markdown
32 lines 1.3 KB
Raw
sha256:21d532d9fcaea5c4780bd2bd39eac38756266a551a372642c56842a6caed8c5b docs: track issues #141/#142/#143 (CRUD/delete parity) plan… Sonnet 5 11 days ago

Proposal comments: wire the existing is_deleted field end-to-end

Child of musehub#141 (parent: framework-wide CRUD/delete idiom).

Background

MusehubProposalComment (musehub/db/musehub_social_models.py:344-390) already has an is_deleted column — but nothing uses it. muse hub proposal comment only has list and create subcommands; there is no delete endpoint, no CLI command. Compare to MusehubIssueComment, which has the identical field and a fully wired muse hub issue comment-delete command.

Confirmed hitting this directly during #139's cleanup: 7 test comments added to a real proposal for layout verification cannot be removed.

Goal

  • Add the delete endpoint (soft-delete, sets is_deleted) mirroring whatever issues.py's comment-delete route does today.
  • muse hub proposal comment delete <proposal-id> --comment-id <id> — soft-deletes by default, matching #141's framework-wide idiom.
  • --hard flag for actual row removal, same guard/authorization pattern as the issues child ticket (#142) and #141's parent idiom.
  • Soft-deleted comments excluded from comment list by default (same --include-deleted convention as #142, for consistency).

Out of scope

  • Any change to issue comments' existing delete path — it already works and is the reference implementation for this ticket, not something to touch.
File History 1 commit
sha256:21d532d9fcaea5c4780bd2bd39eac38756266a551a372642c56842a6caed8c5b docs: track issues #141/#142/#143 (CRUD/delete parity) plan… Sonnet 5 11 days ago