bdf9e3c59e
- Move integration tests to tests/; fix .gitignore to scope root-only
- Remove tracked debug artefacts (probe2_stderr/stdout.txt)
- __init__.py: version via importlib.metadata; export create_server in __all__
- server.py: unified JSON error format {"error":"..."} for all tools
- server.py: date validation (YYYY-MM-DD) for all meal-plan tools
- server.py: clear_list reports partial failures (failed_count, failed_ids)
- server.py: -> str annotations on get_circles, get_tasks, get_activities
- server.py: document TODO:94 as known limitation (no name in sortingIndexByTaskList)
- server.py: date validation also added to get_meal_plan
- Add LICENSE (MIT, Marcus van Elst)
- Add CHANGELOG.md (Keep a Changelog, v0.1.0–v1.0.0)
- README.md: restructured by use case; 🔒 marks write tools
- CLAUDE.md: update to v1.0.0 state; condense roadmap history
- SPEC.md: add version stamp
- pyproject.toml: version 1.0.0 (single source of truth)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4.4 KiB
4.4 KiB
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.
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__.pyreads it viaimportlib.metadata create_server()exported via__all__in__init__.pyclear_listreports partial failures:{"deleted_count": N, "failed_count": M, "failed_ids": [...]}- All tool functions have explicit
-> strreturn-type annotations - Unified error format: every tool returns
{"error": "message"}JSON
Removed
- ~50 debug/probe artefact files (
probe_*.py,debug_*.py,*.txtoutputs)
[0.11.x] – Meal Planner write access
[0.11.8]
- Documented
isRecipeflag behaviour inget_recipe_box
[0.11.7]
get_recipe_box— returns only real recipes (isRecipe=true)- Parser fix:
ingredients_parsedbuilt 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— deletedish/andmeal/entries
[0.11.3]
add_meal_to_meal_plan— structured output (fixeda00.r.rarray 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_plan—is_from_recipe_boxfield viarecipeList[].isRecipe
[0.10.2]
get_meal_plan— mergesmealList[](free-text notes + servings)
[0.10.1]
get_meal_plan— structured output aftermplistintervalresponse verified
[0.10.0]
get_meal_plan— read-only, raw JSON (Premium feature)
[0.9.x] – Task recurrency + reminders
[0.9.1]
- Fix
remindermapping (reminderUnit/reminderValue;value=0is valid)
[0.9.0]
get_tasksreturnsrecurrency,recurrency_interval,rrule,reminder
[0.8.x] – Recipe categories + misc fixes
[0.8.3]
OTHERlist type documented and supported;FW_DEBUG=1logs 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 categoriescreate_recipe/update_recipeacceptcategory_ids
[0.7.x] – Circle management
[0.7.5]
- Primary-circle guard in
update_circle(isFirstFamilycheck)
[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_listsscope fix;create_listwithcircle_id;delete_listscope
[0.7.0]
create_circle,add_member_to_circle
[0.6.x] – Recipe box
[0.6.1]
update_recipe+ fix newline handling increate_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_taskdocstring
[0.5.2]
- Quantity convention documented in
create_taskdocstring
[0.5.1]
emoji+coloringet_lists/create_list
[0.5.0]
create_list,delete_list
[0.4.x] – Category management + task fields
create_category,delete_categorycreate_task/update_tasksupportdue_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