Files
mcp-familywall/CHANGELOG.md
T
marcus 3e021bf01a chore(v1.0.1): opus review findings — docstring confirmation patterns, pyproject.urls, gitignore fix, logging
**Critical:**
- Add IMPORTANT confirmation lines to toggle_task and like_post docstrings
- Add [project.urls] section with Gitea repository link to pyproject.toml

**Medium:**
- Fix .gitignore: test_*.py recursive pattern (remove leading slash)
- Add exception logging to clear_list() for failed deletions
- Update get_categories() docstring: clarify custom vs system category locale behavior
- Add Versioning Policy section to CHANGELOG.md

**Minor:**
- Fix CLI help text (remove "(read-only)" qualifier)
- Add language note to CLAUDE.md (German file, English code)
- Create tests/README.md with integration test documentation
- Update version to 1.0.1 in pyproject.toml

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-04-17 17:28:22 +02:00

5.2 KiB
Raw Blame History

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Versioning Policy

This project follows Semantic Versioning (SemVer). Breaking changes (removed tools, changed parameters) increment the major version.

[1.0.1] 2026-04-17

Added

  • IMPORTANT confirmation notes in docstrings for write operations (toggle_task, like_post)
  • [project.urls] section in pyproject.toml with Gitea repository link
  • Language note in CLAUDE.md explaining German/English split
  • tests/README.md documentation for running integration tests

Changed

  • .gitignore patterns now recursive (test_*.py without leading slash)
  • CLI help text updated (removed "(read-only)" qualifier)
  • clear_list() now logs exception reasons for failed deletions
  • get_categories() docstring clarifies custom vs. system category locale behavior

Fixed

  • Exception handling in clear_list() with detailed logging

1.0.0 2026-04-17

Added

  • tests/ directory with integration tests (moved from root)
  • LICENSE (MIT, Marcus van Elst)
  • Date validation (ISO YYYY-MM-DD) for all meal-plan tools
  • _err() helper — all tools now return {"error": "..."} JSON on failure

Changed

  • Version is now a single source of truth in pyproject.toml; __init__.py reads it via importlib.metadata
  • create_server() exported via __all__ in __init__.py
  • clear_list reports partial failures: {"deleted_count": N, "failed_count": M, "failed_ids": [...]}
  • All tool functions have explicit -> str return-type annotations
  • Unified error format: every tool returns {"error": "message"} JSON

Removed

  • ~50 debug/probe artefact files (probe_*.py, debug_*.py, *.txt outputs)

[0.11.x] Meal Planner write access

[0.11.8]

  • Documented isRecipe flag behaviour in get_recipe_box

[0.11.7]

  • get_recipe_box — returns only real recipes (isRecipe=true)
  • Parser fix: ingredients_parsed built from free-text, not the API list

[0.11.6]

  • clear_list — bulk-delete all tasks in a list within one session

[0.11.5]

  • add_meal_note — add note + serving count to a meal plan slot

[0.11.4]

  • delete_meal_plan_entry — delete dish/ and meal/ entries

[0.11.3]

  • add_meal_to_meal_plan — structured output (fixed a00.r.r array shape)

[0.11.2]

  • add_meal_to_meal_plan — add free-text meal entry

[0.11.1]

  • add_recipe_to_meal_plan — structured output after response verified

[0.11.0]

  • add_recipe_to_meal_plan — add recipe from recipe box to meal plan

[0.10.x] Meal Planner read access

[0.10.3]

  • get_meal_planis_from_recipe_box field via recipeList[].isRecipe

[0.10.2]

  • get_meal_plan — merges mealList[] (free-text notes + servings)

[0.10.1]

  • get_meal_plan — structured output after mplistinterval response verified

[0.10.0]

  • get_meal_plan — read-only, raw JSON (Premium feature)

[0.9.x] Task recurrency + reminders

[0.9.1]

  • Fix reminder mapping (reminderUnit/reminderValue; value=0 is valid)

[0.9.0]

  • get_tasks returns recurrency, recurrency_interval, rrule, reminder

[0.8.x] Recipe categories + misc fixes

[0.8.3]

  • OTHER list type documented and supported; FW_DEBUG=1 logs unknown task fields

[0.8.2]

  • get_lists() without scope returns all circles

[0.8.1]

  • Fix recipe category handling

[0.8.0]

  • get_recipe_categories — list available recipe categories
  • create_recipe / update_recipe accept category_ids

[0.7.x] Circle management

[0.7.5]

  • Primary-circle guard in update_circle (isFirstFamily check)

[0.7.4]

  • update_circle — rename a circle

[0.7.3]

  • update_list — rename, change emoji/colour

[0.7.2]

  • delete_circle

[0.7.1]

  • get_lists scope fix; create_list with circle_id; delete_list scope

[0.7.0]

  • create_circle, add_member_to_circle

[0.6.x] Recipe box

[0.6.1]

  • update_recipe + fix newline handling in create_recipe

[0.6.0]

  • get_recipes, get_recipe, create_recipe, delete_recipe

[0.5.x] List management

[0.5.3]

  • Category auto-assign hint in create_task docstring

[0.5.2]

  • Quantity convention documented in create_task docstring

[0.5.1]

  • emoji + color in get_lists / create_list

[0.5.0]

  • create_list, delete_list

[0.4.x] Category management + task fields

  • create_category, delete_category
  • create_task / update_task support due_date, assignee, list_id

[0.3.x] Task write access

  • create_task, update_task, toggle_task, delete_task

[0.2.x] Activity feed

  • get_activities, like_post

[0.1.0] Initial release

  • get_circles, get_members, get_lists, get_tasks, get_categories
  • Session strategy: login → API calls → logout per tool invocation
  • OS keyring credential storage
  • MCP server via FastMCP