feat(lists): implement create_list + delete_list (v0.5.0)

Adds two new MCP tools:
- create_list(name, list_type, shared_to_all, color, emoji)
  POST taskcreatelist; returns full list object incl. metaId
- delete_list(list_id) – with canDelete safety guard
  POST taskdeletelist; param 'id' (same pattern as metadelete)

Both endpoints verified via FW_DEBUG=1 on 2026-04-16.
SPEC.md and CLAUDE.md updated with verified parameter names
and response structures.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-16 12:26:16 +02:00
parent e76d80ece3
commit 311f37d72b
3 changed files with 204 additions and 3 deletions
+45
View File
@@ -280,6 +280,51 @@ POST https://api.familywall.com/api/taskcategorydelete
gelöscht werden, sind dann aber dauerhaft weg und nicht wiederherstellbar.
MCP-Server schützt dagegen durch Check auf `rights.canDelete`.
### `taskcreatelist` Liste erstellen
POST https://api.familywall.com/api/taskcreatelist
**Body-Parameter:**
| Parameter | Pflicht | Wert |
|---|---|---|
| `name` | ja | Listen-Name (max 200 Zeichen) |
| `taskListType` | ja | `"SHOPPING_LIST"` oder `"TODOS"` |
| `sharedToAll` | nein | `"true"` / `"false"` (default: `"true"`) |
| `color` | nein | Hex-Farbwert z.B. `"#4784EC"` |
| `emoji` | nein | Unicode-Emoji z.B. `"🛒"` |
**Response:**
```
a00.r.r → vollständiges Listen-Objekt
.metaId → neue Listen-ID (z.B. "taskList/23431854_29759623")
.name → Listen-Name
.taskListType → SHOPPING_LIST oder TODOS
.sharedToAll → "true" / "false"
.rights.canDelete → "true" (user-created lists)
```
**Verifiziert am:** 2026-04-16 via FW_DEBUG=1
### `taskdeletelist` Liste löschen
POST https://api.familywall.com/api/taskdeletelist
**Body-Parameter:**
| Parameter | Wert |
|---|---|
| `id` | Listen-metaId ⚠️ nicht `listId` oder `taskListId`! |
**Response:**
```
a00.r.r → "true" (String)
```
**Hinweis:** Löscht die Liste und alle enthaltenen Tasks unwiderruflich.
System-Listen (`rights.canDelete` fehlt oder `null`) sind nicht löschbar.
MCP-Server prüft dies vor dem Löschen via `taskgettasklists`.
**Verifiziert am:** 2026-04-16 via FW_DEBUG=1
### `taskgettasklists` Listen abrufen (alternativ)
POST https://api.familywall.com/api/taskgettasklists