Commit Graph

8 Commits

Author SHA1 Message Date
marcus a7b21c1ede feat(meal-planner): structured output for get_meal_plan (v0.10.1)
- Map mplistinterval response to clean JSON list (id, date, type, name,
  recipe_id, can_update, can_delete) — no more raw dump
- SPEC.md: document verified mplistinterval response structure
- Fix two pre-existing ruff SIM warnings (SIM102, SIM105)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 11:13:22 +02:00
marcus 74a8b83fde fix(recipes): two bugs in recipe categories (v0.8.1)
Bug 1: update_recipe(category_ids=[]) didn't remove categories
- Fixed: send empty string "" to API to remove all categories
- Non-empty lists continue to work as expected
- Verified via FW_DEBUG=1 testing

Bug 2: get_recipe_categories() only showed used categories
- Fixed: always return 5 free-tier standard categories
- Added _get_family_id() helper to extract family ID
- Now returns all available category IDs even on new accounts
- Standard categories: category/<familyId>_2 through _6

Version: 0.8.0 → 0.8.1
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-04-17 06:30:09 +02:00
marcus 4c60b5b5fa feat(recipes): add recipe categories support (v0.8.0)
- New tool: get_recipe_categories() lists available recipe category IDs
- Enhanced create_recipe and update_recipe with optional category_ids parameter
- Extended get_recipe and get_recipes to include category_ids in response
- Updated parse_recipe_full() to extract recipeCategoryIdList from API response
- Extended build_create_params() and build_update_params() to handle category_ids

Recipe categories are managed via recipe.recipeCategoryIdList in mprecipeput API.
Categories are represented as a list of category IDs (e.g. ["category/23431854_2"]).
No direct API endpoint exists for listing all categories; they are discovered from
existing recipes or must be known in advance.

Version: 0.7.5 → 0.8.0
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-04-17 06:24:48 +02:00
marcus 2bc03e2165 feat(circles): create_circle + add_member_to_circle (v0.7.0)
- acccreatefamily endpoint creates a new circle (returns numeric ID)
- accinvite endpoint invites new users by email (familyId, identifier, role, firstname)
- fw_client now detects a00.ex errors (was only checking a00.un before)
- New modules/circles.py with FamilyRoleTypeEnum constants
- SPEC.md updated with acccreatefamily, accinvite, accupdatefamily docs
- Note: circle deletion not supported by FW API (metadelete → "delete not supported")
- Note: accinvite only works for new (non-existing) FW accounts

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 17:59:20 +02:00
marcus bc28b09d49 fix(recipes): normalize newlines + add update_recipe (v0.6.1)
Bug fix: literal backslash-n sequences in ingredients/instructions are now
converted to real newline characters before sending to the API, so the server
correctly splits ingredient lines into ingredientsList[].

New tool: update_recipe — partial update via mprecipeput with recipe.metaId;
fetches current recipe in the same session to verify can_update and supply
name fallback. Verified: recipe.metaId triggers update (not create).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 15:01:40 +02:00
marcus ebbbf38ab9 feat(recipes): implement get_recipes, get_recipe, create_recipe, delete_recipe (v0.6.0)
Adds 4 new MCP tools for the Family Wall recipe box:
- get_recipes: list all family recipes via metasync id='recipe'
- get_recipe: fetch full recipe detail by id (filters from metasync response)
- create_recipe: create a new recipe via mprecipeput (params use 'recipe.' prefix)
- delete_recipe: delete a recipe via metadelete (same endpoint as tasks)

Verified endpoints and parameter names via FW_DEBUG=1 probe scripts.
All 4 tools pass the create → read → get_single → delete integration test.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 14:51:53 +02:00
marcus f680633b59 feat: add SYS-CAT-TODOS translation (v0.2.5) 2026-04-15 14:09:14 +02:00
marcus 119a0b577e feat: Gruppe 2 – MCP Tools get_circles, get_lists, get_tasks (v0.2.0) 2026-04-15 13:22:48 +02:00