feat(lists): add update_list tool (v0.7.3)

Implements taskupdatelist endpoint (verified via FW_DEBUG=1):
- Parameter 'metaId' (not 'id') identifies the list
- Partial update: only provided fields (name/color/emoji) are changed
- Reads rights.canUpdate before calling the endpoint (single session)
- System lists (canUpdate != 'true') are rejected with a clear error
- Scope derived from list metaId for secondary-circle support

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-16 20:12:28 +02:00
parent dc21416a61
commit d144a77662
6 changed files with 169 additions and 8 deletions
+33
View File
@@ -315,6 +315,39 @@ a00.r.r → vollständiges Listen-Objekt
**Verifiziert am:** 2026-04-16 via FW_DEBUG=1
### `taskupdatelist` Liste aktualisieren
POST https://api.familywall.com/api/taskupdatelist
**Body-Parameter:**
| Parameter | Pflicht | Wert |
|---|---|---|
| `metaId` | ja | Listen-metaId ⚠️ nicht `id`! |
| `name` | nein | Neuer Listen-Name |
| `color` | nein | Hex-Farbwert z.B. `"#E53935"` |
| `emoji` | nein | Unicode-Emoji z.B. `"🧪"` |
**Hinweis:** Nur übergebene Felder werden geändert (Partial Update).
Felder die nicht mitgeschickt werden bleiben auf dem Server unverändert.
System-Listen (`rights.canUpdate` fehlt oder `!= "true"`) können nicht geändert werden.
MCP-Server prüft `rights.canUpdate` vor dem Update via `taskgettasklists`.
**Response:**
```
a00.r.r → vollständiges Listen-Objekt (analog taskcreatelist)
.metaId → Listen-ID
.name → (aktualisierter) Listen-Name
.taskListType → SHOPPING_LIST oder TODOS
.emoji → (aktualisiertes) Unicode-Emoji
.color → (aktualisierter) Hex-Farbwert
.familyId → Kreis-metaId
.rights.canUpdate → "true" für bearbeitbare Listen
.rights.canDelete → "true" für löschbare Listen
.lastAction → "UPDATED"
```
**Verifiziert am:** 2026-04-16 via FW_DEBUG=1
### `taskdeletelist` Liste löschen
POST https://api.familywall.com/api/taskdeletelist