[{"slug":"ZV-2026-0021","server_name":"anatome.dev","severity":"breaking","title":"anatome.dev: Tool get_weekly_checkins was removed.","summary":"[breaking] Tool get_weekly_checkins was removed. [breaking] Tool log_weekly_checkin was removed. [risky] Description of ai_meal_plan changed (88% word delta). [breaking] New required field confirm on ai_meal_plan; requests without it will fail. [risky] Optional field health was added to ai_meal_plan; may shift model behaviour. [risky] Description of ai_workout_plan changed (86% word delta). [breaking] New required field confirm on ai_workout_plan; requests without it will fail. [risky] Optional field health was added to ai_workout_plan; may shift model behaviour. [risky] Description of export_data changed (57% word delta). [risky] Optional field confirm was added to export_data; may shift model behaviour. [risky] Description of instantiate_routine changed (73% word delta). [breaking] Field target_external_user_id was removed from instantiate_routine input; consumers still sending it may be rejected or silently ignored. [risky] Description of my_training_context changed (50% word delta).","changes":[{"kind":"tool_removed","tool":"get_weekly_checkins","detail":"Tool `get_weekly_checkins` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"log_weekly_checkin","detail":"Tool `log_weekly_checkin` was removed.","severity":"breaking"},{"kind":"description_changed","tool":"ai_meal_plan","after":"Draft a meal plan. Not medical advice. confirm:true required. Pass health constraints so the draft can honour them.","before":"Generate a multi-day meal plan given goals + preferences.","detail":"Description of `ai_meal_plan` changed (88% word delta).","severity":"risky","descriptionDelta":0.875},{"kind":"input_required_added","path":"inputSchema.properties.confirm","tool":"ai_meal_plan","after":{"type":"boolean"},"detail":"New required field `confirm` on `ai_meal_plan`; requests without it will fail.","severity":"breaking"},{"kind":"input_property_added","path":"inputSchema.properties.health","tool":"ai_meal_plan","after":{"type":"object","properties":{"injuries":{"type":"array","items":{"type":"string"}},"allergies":{"type":"array","items":{"type":"string"}},"pregnancy":{"type":"boolean"},"conditions":{"type":"array","items":{"type":"string"}},"medications":{"type":"array","items":{"type":"string"}}}},"detail":"Optional field `health` was added to `ai_meal_plan`; may shift model behaviour.","severity":"risky"},{"kind":"description_changed","tool":"ai_workout_plan","after":"Draft a workout plan. Not medical advice. confirm:true required. Pass health constraints so the draft can honour them.","before":"Generate a workout plan given goals + history.","detail":"Description of `ai_workout_plan` changed (86% word delta).","severity":"risky","descriptionDelta":0.8636363636363636},{"kind":"input_required_added","path":"inputSchema.properties.confirm","tool":"ai_workout_plan","after":{"type":"boolean"},"detail":"New required field `confirm` on `ai_workout_plan`; requests without it will fail.","severity":"breaking"},{"kind":"input_property_added","path":"inputSchema.properties.health","tool":"ai_workout_plan","after":{"type":"object","properties":{"injuries":{"type":"array","items":{"type":"string"}},"allergies":{"type":"array","items":{"type":"string"}},"pregnancy":{"type":"boolean"},"conditions":{"type":"array","items":{"type":"string"}},"medications":{"type":"array","items":{"type":"string"}}}},"detail":"Optional field `health` was added to `ai_workout_plan`; may shift model behaviour.","severity":"risky"},{"kind":"description_changed","tool":"export_data","after":"Export the signed-in user's data as JSON. Pass `domains` (e.g. meals,workouts) or confirm:true for a full copy. Identity comes from the token, never a caller-supplied user id.","before":"Export the signed-in user's complete data as JSON (meals, water, workouts, sets, cardio, body metrics, goals, notes, supplements, profile). Serves the GDPR Art. 20 portability right. Identity comes from the OAuth token or bound key, never a caller-supplied user id.","detail":"Description of `export_data` changed (57% word delta).","severity":"risky","descriptionDelta":0.5714285714285714},{"kind":"input_property_added","path":"inputSchema.properties.confirm","tool":"export_data","after":{"type":"boolean","description":"Required true for a full dump when domains is omitted."},"detail":"Optional field `confirm` was added to `export_data`; may shift model behaviour.","severity":"risky"},{"kind":"description_changed","tool":"instantiate_routine","after":"Schedule the signed-in user's routine into planned workouts from start_date. Coach assignment of another user is REST-only.","before":"Schedule a user's routine into planned workouts starting at start_date (one planned workout per non-rest day, stepping by cadence_days). Bridges the routine library into the user's calendar. Requires X-App-User-Id.","detail":"Description of `instantiate_routine` changed (73% word delta).","severity":"risky","descriptionDelta":0.7297297297297297},{"kind":"input_property_removed","path":"inputSchema.properties.target_external_user_id","tool":"instantiate_routine","before":{"type":"string","description":"optional trainee external id (coach-assign; requires X-App-Acting-As)"},"detail":"Field `target_external_user_id` was removed from `instantiate_routine` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"description_changed","tool":"my_training_context","after":"Returns a slice of the signed-in user's training picture. Default domains are workouts and today's nutrition. Pass `domains` to add checkin, notes or profile, or `domains=all`. Identity comes from the token, not a caller-supplied user id.","before":"Returns the signed-in user's recent workouts, today's nutrition, latest weekly check-in, journal notes, profile and targets in one response. Use `domains` to request a subset. Identity comes from the OAuth token or bound key, not from a caller-supplied user id.","detail":"Description of `my_training_context` changed (50% word delta).","severity":"risky","descriptionDelta":0.5}],"published_at":"2026-08-13T23:01:50.204Z"},{"slug":"ZV-2026-0012","server_name":"anatome.dev","severity":"breaking","title":"anatome.dev: Tool get_nutrition_weekly was removed.","summary":"[breaking] Tool get_nutrition_weekly was removed. [breaking] Tool get_ppl_day was removed. [safe] Tool update_sets was added. [risky] Field deleted was added to delete_meal output. [risky] Field deleted was added to delete_workout output. [risky] Field format was added to generate_muscle_image output. [risky] Field muscles_rendered was added to generate_muscle_image output. [risky] Field svg was added to generate_muscle_image output. [risky] Field items was added to get_body_metrics output. [risky] Field items was added to get_cardio_activities output. [risky] Field items was added to get_meals output. [risky] Field muscles was added to get_muscle_recovery output. [risky] Field threshold_volume was added to get_muscle_recovery output. [risky] Field window_days was added to get_muscle_recovery output. [risky] Field days was added to get_nutrition_daily output. [risky] Field from was added to get_nutrition_daily output. [risky] Field limits was added to get_nutrition_daily output. [risky] Field targets was added to get_nutrition_daily output. [risky] Field to was added to get_nutrition_daily output. [risky] Description of get_progress changed (33% word delta). [risky] Field items was added to get_workouts output. [risky] Description of search_exercises changed (57% word delta). [risky] Optional field fields was added to search_exercises; may shift model behaviour. [risky] Field calories was added to update_meal output. [risky] Field carbs was added to update_meal output. [risky] Field date was added to update_meal output. [risky] Field fats was added to update_meal output. [risky] Field id was added to update_meal output. [risky] Field name was added to update_meal output. [risky] Field protein was added to update_meal output.","changes":[{"kind":"tool_removed","tool":"get_nutrition_weekly","detail":"Tool `get_nutrition_weekly` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_ppl_day","detail":"Tool `get_ppl_day` was removed.","severity":"breaking"},{"kind":"tool_added","tool":"update_sets","detail":"Tool `update_sets` was added.","severity":"safe"},{"kind":"output_property_added","path":"outputSchema.properties.deleted","tool":"delete_meal","after":{"type":"string"},"detail":"Field `deleted` was added to `delete_meal` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.deleted","tool":"delete_workout","after":{"type":"string"},"detail":"Field `deleted` was added to `delete_workout` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.format","tool":"generate_muscle_image","after":{"type":"string"},"detail":"Field `format` was added to `generate_muscle_image` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.muscles_rendered","tool":"generate_muscle_image","after":{"type":"array"},"detail":"Field `muscles_rendered` was added to `generate_muscle_image` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.svg","tool":"generate_muscle_image","after":{"type":"string"},"detail":"Field `svg` was added to `generate_muscle_image` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.items","tool":"get_body_metrics","after":{"type":"array"},"detail":"Field `items` was added to `get_body_metrics` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.items","tool":"get_cardio_activities","after":{"type":"array"},"detail":"Field `items` was added to `get_cardio_activities` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.items","tool":"get_meals","after":{"type":"array"},"detail":"Field `items` was added to `get_meals` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.muscles","tool":"get_muscle_recovery","after":{"type":"array"},"detail":"Field `muscles` was added to `get_muscle_recovery` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.threshold_volume","tool":"get_muscle_recovery","after":{"type":"number"},"detail":"Field `threshold_volume` was added to `get_muscle_recovery` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.window_days","tool":"get_muscle_recovery","after":{"type":"number"},"detail":"Field `window_days` was added to `get_muscle_recovery` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.days","tool":"get_nutrition_daily","after":{"type":"array"},"detail":"Field `days` was added to `get_nutrition_daily` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.from","tool":"get_nutrition_daily","after":{"type":"string"},"detail":"Field `from` was added to `get_nutrition_daily` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.limits","tool":"get_nutrition_daily","after":{},"detail":"Field `limits` was added to `get_nutrition_daily` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.targets","tool":"get_nutrition_daily","after":{},"detail":"Field `targets` was added to `get_nutrition_daily` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.to","tool":"get_nutrition_daily","after":{"type":"string"},"detail":"Field `to` was added to `get_nutrition_daily` output.","severity":"risky"},{"kind":"description_changed","tool":"get_progress","after":"Any progression metric for the current user — pick one in `metric`. training_load is acute:chronic (>1.5 ramping too fast, <0.8 detraining); muscle_recovery is per-muscle freshness; correlate takes metric_a vs metric_b. Only completed sets count.","before":"Any progression metric for the current user. Pick `metric`: prs · volume · one_rep_max · streaks · adherence · training_load (acute:chronic; >1.5 ramping too fast, <0.8 detraining) · weight_trend · body_delta · muscle_recovery (per-muscle freshness) · cardio_prs · goal_trajectory · nutrition_balance · correlate (metric_a vs metric_b) · compare_periods. Only completed sets count.","detail":"Description of `get_progress` changed (33% word delta).","severity":"risky","descriptionDelta":0.32608695652173914},{"kind":"output_property_added","path":"outputSchema.properties.items","tool":"get_workouts","after":{"type":"array"},"detail":"Field `items` was added to `get_workouts` output.","severity":"risky"},{"kind":"description_changed","tool":"search_exercises","after":"Search 873 exercises by name with muscle/equipment/level filters. Rows are lean (name, ext_id, equipment, level, muscles) — enough to pick one; get_exercise returns instructions and media. Paginates: pass next_cursor back as `cursor`.","before":"Search 873 exercises by name with muscle/equipment/level filters. Returns enriched results with anatome_imageSrc URLs. Paginates: pass the response's next_cursor back as `cursor` for the following page.","detail":"Description of `search_exercises` changed (57% word delta).","severity":"risky","descriptionDelta":0.575},{"kind":"input_property_added","path":"inputSchema.properties.fields","tool":"search_exercises","after":{"type":"string","description":"Extra fields, comma-separated, or `all`."},"detail":"Optional field `fields` was added to `search_exercises`; may shift model behaviour.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.calories","tool":"update_meal","after":{"type":"number"},"detail":"Field `calories` was added to `update_meal` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.carbs","tool":"update_meal","after":{"type":"number"},"detail":"Field `carbs` was added to `update_meal` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.date","tool":"update_meal","after":{"type":"string"},"detail":"Field `date` was added to `update_meal` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.fats","tool":"update_meal","after":{"type":"number"},"detail":"Field `fats` was added to `update_meal` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.id","tool":"update_meal","after":{"type":"string"},"detail":"Field `id` was added to `update_meal` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.name","tool":"update_meal","after":{"type":"string"},"detail":"Field `name` was added to `update_meal` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.protein","tool":"update_meal","after":{"type":"number"},"detail":"Field `protein` was added to `update_meal` output.","severity":"risky"}],"published_at":"2026-08-13T15:01:40.140Z"}]