feat: get_categories tool, author resolution in get_activities, update CLAUDE.md (v0.4.8)
- get_categories(list_id): new tool filtering taskcategorysync by
sortingIndexByTaskList, returns {id, name, emoji} ordered by sort index
- get_activities: author IDs now resolved to display names (firstName) via
famlistfamily members; raw author_id preserved as separate field; member
lookup is non-fatal (falls back to raw ID on error)
- CLAUDE.md: tools table updated to reflect all implemented tools (v0.4.8)
- SPEC.md: full accgetallfamily response structure documented including
categories[] on tasks and category parameter investigation findings
- Category assignment in create/update task: all tested parameter names
ignored by API; still to verify (Service Worker blocks web inspection)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -133,18 +133,38 @@ Hinweis: `a03call=tasklistsync` ist **kein gültiger Endpoint** — API antworte
|
||||
|
||||
**Response-Struktur (verifiziert):**
|
||||
```
|
||||
a00 → famlistfamily-Daten (Kreise) – Nebeneffekt, nicht verwendet
|
||||
a01.r.r.updatedCreated[] → taskcategorysync (Einkaufskategorien/Abteilungen)
|
||||
.sortingIndexByTaskList → dict, Keys = Listen-IDs (z.B. "taskList/23431854_29740942")
|
||||
→ Quelle der Listen-IDs (Namen/Zähler noch unbekannt)
|
||||
a02.r.r.updatedCreated[] → tasksync (Tasks)
|
||||
.metaId → eindeutige Task-ID
|
||||
.text → Aufgabentext
|
||||
.description → optionale Beschreibung
|
||||
.taskListId → Zugehörigkeit zur Liste (= Listen-ID aus sortingIndexByTaskList)
|
||||
.complete → "true" / "false" (String, nicht Boolean!)
|
||||
a00 → famlistfamily-Daten (Kreise inkl. members[]) – Nebeneffekt
|
||||
a01.r.r.updatedCreated[] → taskcategorysync (Kategorien/Abteilungen pro Liste)
|
||||
.metaId → Kategorie-ID (Format taskCategory/<familyId>_<sysId>)
|
||||
.name → Kategoriename (sprachabhängig, z.B. "Beverages")
|
||||
.emoji → Emoji-Symbol der Kategorie
|
||||
.systemCategoryId → numerische System-ID (sprach-unabhängig)
|
||||
.taskListType → Listentyp (z.B. "SHOPPING_LIST", "TODO")
|
||||
.sortingIndexByTaskList → dict: Listen-ID → Sortierposition
|
||||
Keys = Listen-IDs der zugeordneten Listen
|
||||
.locale → Sprache des Namens (z.B. "de", "en", "ru")
|
||||
.hiddenByTaskList → Liste von Listen-IDs, in denen die Kat. versteckt ist
|
||||
a02.r.r.updatedCreated[] → tasksync (Tasks)
|
||||
.metaId → eindeutige Task-ID
|
||||
.taskId → identisch zu metaId (zweiter Alias)
|
||||
.text → Aufgabentext
|
||||
.description → optionale Beschreibung
|
||||
.taskListId → Zugehörigkeit zur Liste
|
||||
.complete → "true" / "false" (String, nicht Boolean!)
|
||||
.categories[] → zugewiesene Kategorien des Tasks
|
||||
.system → "true" wenn System-Kategorie, "false" wenn custom
|
||||
.name → Kategoriename (z.B. "SYS-CAT-TODOS", "Beverages")
|
||||
.assignee / .assigneeIds → zugewiesene Mitglieder
|
||||
.reminder → Erinnerungsdatum (ISO 8601, optional)
|
||||
.recurrency → Wiederholungsregel (optional)
|
||||
.sortingIndex → Anzeigereihenfolge
|
||||
```
|
||||
|
||||
**Kategorie-Zuweisung bei taskcreate2 / taskupdate2:** Parameter-Name noch unbekannt.
|
||||
Getestete Varianten (`taskCategoryId`, `categoryId`, `category`, `categoryMetaId`) werden
|
||||
serverseitig ignoriert — die Task bekommt stets die Default-Systemkategorie der Liste.
|
||||
Service Worker in der Web-App verhindert Inspektion des echten Requests. Noch zu verifizieren.
|
||||
|
||||
## Systembezeichnungen für Listen-Namen
|
||||
|
||||
Bekannte Systembezeichnungen werden deutsch übersetzt:
|
||||
|
||||
Reference in New Issue
Block a user