feat(trash): MCP delete tools soft-delete via trash; add delete_task/project/milestone

This commit is contained in:
2026-05-28 21:10:13 -04:00
parent eb41e772cd
commit c3af24ef51
6 changed files with 63 additions and 17 deletions
+10 -6
View File
@@ -11,6 +11,7 @@ from __future__ import annotations
from fabledassistant.mcp._context import current_user_id
from fabledassistant.services import rulebooks as rulebooks_svc
from fabledassistant.services import trash as trash_svc
# ── Rulebook CRUD ───────────────────────────────────────────────────────
@@ -90,8 +91,9 @@ async def delete_rulebook(rulebook_id: int, confirmed: bool = False) -> dict:
),
"confirmed_required": True,
}
await rulebooks_svc.delete_rulebook(rulebook_id, uid)
return {"deleted": rulebook_id}
batch = await trash_svc.delete(uid, "rulebook", rulebook_id)
return {"deleted": rulebook_id, "deleted_batch_id": batch,
"message": f"Moved to trash. Restore with restore('{batch}')."}
# ── Topic CRUD ─────────────────────────────────────────────────────────
@@ -159,8 +161,9 @@ async def delete_topic(topic_id: int, confirmed: bool = False) -> dict:
),
"confirmed_required": True,
}
await rulebooks_svc.delete_topic(topic_id, uid)
return {"deleted": topic_id}
batch = await trash_svc.delete(uid, "topic", topic_id)
return {"deleted": topic_id, "deleted_batch_id": batch,
"message": f"Moved to trash. Restore with restore('{batch}')."}
# ── Rule CRUD ──────────────────────────────────────────────────────────
@@ -266,8 +269,9 @@ async def delete_rule(rule_id: int, confirmed: bool = False) -> dict:
),
"confirmed_required": True,
}
await rulebooks_svc.delete_rule(rule_id, uid)
return {"deleted": rule_id}
batch = await trash_svc.delete(uid, "rule", rule_id)
return {"deleted": rule_id, "deleted_batch_id": batch,
"message": f"Moved to trash. Restore with restore('{batch}')."}
# ── Subscriptions ──────────────────────────────────────────────────────