diff --git a/CHANGELOG.md b/CHANGELOG.md index a873a2a..5bc98d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 This project follows Semantic Versioning (SemVer). Breaking changes (removed tools, changed parameters) increment the major version. +## [1.4.4] – 2026-04-20 + +### Updated +- **README.md restructuring** — consolidated `get_activities` and `like_post` into Wall & Activities section + - `get_activities` moved from Lists & Tasks to Wall & Activities (belongs with wall functionality) + - `like_post` reference removed from Lists & Tasks (consolidated in one section) + - Version bump in README header: v1.3.1 → v1.4.3 + +### Notes +- Documentation-only release; no code changes +- All tools remain functional and unchanged +- Improves UX by grouping related wall/activity tools in one section + ## [1.4.3] – 2026-04-18 ### Improved diff --git a/README.md b/README.md index 968c189..09530ae 100644 --- a/README.md +++ b/README.md @@ -2,13 +2,14 @@ MCP server for [Family Wall](https://www.familywall.com) — manage your family's circles, lists, tasks, recipes, and meal plan directly from Claude. -## Tools (v1.3.1) +## Tools (v1.4.3) ### Wall & Activities | Tool | Description | |---|---| | `get_wall_posts` | Get recent wall posts (text, author, likes, comments) | +| `get_activities` | List recent activities (task updates, list changes) | | `create_wall_post` 🔒 | Create a new status post on the wall | | `add_comment` 🔒 | Add a comment to a post | | `like_post` 🔒 | Like or unlike a wall post/activity | @@ -32,7 +33,6 @@ MCP server for [Family Wall](https://www.familywall.com) — manage your family' | `get_lists` | List all task lists (emoji, color, circle; optional `scope` filter) | | `get_tasks` | List tasks in a list (category, due date, assignees, recurrency, reminder) | | `get_categories` | List categories for a list (locale-filtered; custom categories always shown) | -| `get_activities` | List recent wall activities (author resolved to display name) | | `create_list` 🔒 | Create a task list (`SHOPPING_LIST`, `TODOS`, or `OTHER`; optional emoji, color, circle) | | `update_list` 🔒 | Rename a list or change its emoji/color (partial update; system lists protected) | | `delete_list` 🔒 | Permanently delete a list and all its tasks (system lists protected) | @@ -43,7 +43,6 @@ MCP server for [Family Wall](https://www.familywall.com) — manage your family' | `toggle_task` 🔒 | Mark a task complete or reopen it | | `delete_task` 🔒 | Permanently delete a task | | `clear_list` 🔒 | Bulk-delete all tasks in a list (optional `only_open=True` keeps completed tasks) | -| `like_post` 🔒 | Like a wall post/activity | ### Recipe Box diff --git a/pyproject.toml b/pyproject.toml index 377c77f..ae28fba 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "mcp-familywall" -version = "1.4.3" +version = "1.4.4" description = "MCP server for Family Wall — manage your family's circles, lists, tasks, recipes, and meal plan via Claude" readme = "README.md" requires-python = ">=3.12" diff --git a/scripts/find_category_param.py b/scripts/find_category_param.py index adaa255..b7e0b1f 100644 --- a/scripts/find_category_param.py +++ b/scripts/find_category_param.py @@ -14,7 +14,6 @@ Prerequisites: credentials stored in OS keyring or FW_EMAIL / FW_PASSWORD set. from __future__ import annotations -import json import os import sys @@ -39,24 +38,22 @@ FORCED_CATEGORY_META_ID: str | None = None CANDIDATES: list[dict[str, str | None]] = [ # key → value format description # Full metaId variants - {"key": "systemCategoryId", "fmt": "numeric"}, # just the number, e.g. "200" - {"key": "taskCategorySystemId", "fmt": "numeric"}, - {"key": "categories", "fmt": "meta_id"}, # full taskCategory/… metaId - {"key": "categoryIds", "fmt": "meta_id"}, - {"key": "taskCategoryName", "fmt": "name"}, # category name as string - {"key": "categoryName", "fmt": "name"}, - {"key": "taskCategoryId", "fmt": "meta_id"}, # already tried but try numeric too + {"key": "systemCategoryId", "fmt": "numeric"}, # just the number, e.g. "200" + {"key": "taskCategorySystemId", "fmt": "numeric"}, + {"key": "categories", "fmt": "meta_id"}, # full taskCategory/… metaId + {"key": "categoryIds", "fmt": "meta_id"}, + {"key": "taskCategoryName", "fmt": "name"}, # category name as string + {"key": "categoryName", "fmt": "name"}, + {"key": "taskCategoryId", "fmt": "meta_id"}, # already tried but try numeric too # Numeric variants of already-tried names - {"key": "taskCategoryId", "fmt": "numeric"}, - {"key": "categoryId", "fmt": "numeric"}, - {"key": "category", "fmt": "numeric"}, - {"key": "categoryMetaId", "fmt": "numeric"}, + {"key": "taskCategoryId", "fmt": "numeric"}, + {"key": "categoryId", "fmt": "numeric"}, + {"key": "category", "fmt": "numeric"}, + {"key": "categoryMetaId", "fmt": "numeric"}, ] -def _resolve_category( - client: FamilyWallClient, list_id: str -) -> tuple[str, str, str]: +def _resolve_category(client: FamilyWallClient, list_id: str) -> tuple[str, str, str]: """Return (meta_id, system_category_id_str, name) for the first German category.""" data = client.call( "accgetallfamily",