[{"slug":"ZV-2026-1875","server_name":"proofite.com","severity":"breaking","title":"proofite.com: Type of podcast_accento on update_information_diet changed string → string|null.","summary":"[safe] Tool add_proposed_source was added. [safe] Tool cancel_deep_dive was added. [safe] Tool generate_podcast_episode was added. [safe] Tool get_episode_transcript was added. [safe] Tool list_missing_reports was added. [safe] Tool list_saved was added. [safe] Tool resume_podcast was added. [safe] Tool save_entry was added. [safe] Tool share_briefing was added. [safe] Tool unfollow_story was added. [safe] Tool unsave_entry was added. [safe] Tool unshare_briefing was added. [risky] Description of correct_briefing changed (29% word delta). [safe] Description of get_information_diet changed (19% word delta). [risky] Description of get_podcast_episode changed (41% word delta). [risky] Description of list_read_later changed (36% word delta). [risky] Description of rate_briefing_entry changed (62% word delta). [risky] Optional field withdraw was added to rate_briefing_entry; may shift model behaviour. [risky] Description of tune_topic changed (32% word delta). [risky] Optional field topics was added to tune_topic; may shift model behaviour. [safe] Field topic on tune_topic is no longer required. [risky] Description of update_information_diet changed (34% word delta). [breaking] Type of podcast_accento on update_information_diet changed string → string|null. [risky] Enum value null added to podcast_accento on update_information_diet.","changes":[{"kind":"tool_added","tool":"add_proposed_source","detail":"Tool `add_proposed_source` was added.","severity":"safe"},{"kind":"tool_added","tool":"cancel_deep_dive","detail":"Tool `cancel_deep_dive` was added.","severity":"safe"},{"kind":"tool_added","tool":"generate_podcast_episode","detail":"Tool `generate_podcast_episode` was added.","severity":"safe"},{"kind":"tool_added","tool":"get_episode_transcript","detail":"Tool `get_episode_transcript` was added.","severity":"safe"},{"kind":"tool_added","tool":"list_missing_reports","detail":"Tool `list_missing_reports` was added.","severity":"safe"},{"kind":"tool_added","tool":"list_saved","detail":"Tool `list_saved` was added.","severity":"safe"},{"kind":"tool_added","tool":"resume_podcast","detail":"Tool `resume_podcast` was added.","severity":"safe"},{"kind":"tool_added","tool":"save_entry","detail":"Tool `save_entry` was added.","severity":"safe"},{"kind":"tool_added","tool":"share_briefing","detail":"Tool `share_briefing` was added.","severity":"safe"},{"kind":"tool_added","tool":"unfollow_story","detail":"Tool `unfollow_story` was added.","severity":"safe"},{"kind":"tool_added","tool":"unsave_entry","detail":"Tool `unsave_entry` was added.","severity":"safe"},{"kind":"tool_added","tool":"unshare_briefing","detail":"Tool `unshare_briefing` was added.","severity":"safe"},{"kind":"description_changed","tool":"correct_briefing","after":"Tell the briefing what was wrong with it, in plain language — \"too much crypto and not enough on the EU regulation\", \"keep it shorter\", \"explain the technical parts more simply\". An AI editor reads the note against the actual briefing and turns it into concrete adjustments: topic preferences, settings (technicality, depth, length, podcast minutes, tone), deep-dive requests. This is the main way a person retunes their news feed by talking. To pin ONE story so its developments get reported, pass its entry_id with the note, or use rate_briefing_entry with \"follow\": a note without entry_id can only follow a whole theme.","before":"Tell the briefing what was wrong with it, in plain language — \"too much crypto and not enough on the EU regulation\", \"keep it shorter\", \"explain the technical parts more simply\", \"follow this story\". An AI editor reads the note against the actual briefing and turns it into concrete adjustments: topic preferences, settings, deep-dive requests. This is the main way a person retunes their news feed by talking.","detail":"Description of `correct_briefing` changed (29% word delta).","severity":"risky","descriptionDelta":0.29268292682926833},{"kind":"description_changed","tool":"get_information_diet","after":"Read everything that shapes what reaches this person: delivery schedule, length, technicality, depth, stance, tone and entry mix, podcast format (two-host show or single voice), voice accent and whether the podcast is auto-paused, stated interests and no-go topics, the profile the system has learned about them, the per-topic preferences built from their feedback (affinity, muted, followed themes) and the specific stories they pinned with \"follow\" (every development of those gets reported). This is the full picture of their news filter — read it before changing anything.","before":"Read everything that shapes what reaches this person: delivery schedule, length, technicality, depth, stance and tone, stated interests and no-go topics, the profile the system has learned about them, the per-topic preferences built from their feedback (affinity, muted, followed themes) and the specific stories they pinned with \"follow\" (every development of those gets reported). This is the full picture of their news filter — read it before changing anything.","detail":"Description of `get_information_diet` changed (19% word delta).","severity":"safe","descriptionDelta":0.18918918918918914},{"kind":"description_changed","tool":"get_podcast_episode","after":"Get the audio episode generated from a briefing: a private podcast in the user's language — by default a show with two hosts who talk the news through, or a single voice in the classic format — with a playable URL, the private RSS feed URL and the show notes listing every source. Returns the latest episode by default. For the words themselves use get_episode_transcript.","before":"Get the audio episode generated from a briefing: a private podcast narrated in the user's language, with a playable URL and the show notes listing every source. Returns the latest episode by default.","detail":"Description of `get_podcast_episode` changed (41% word delta).","severity":"risky","descriptionDelta":0.4130434782608695},{"kind":"description_changed","tool":"list_read_later","after":"List what is queued in the read-later inbox: links and forwarded emails that are guaranteed to be covered in the next briefing, and — apart — the stories the person deferred to a later day (\"snoozed\"), which wait until their date.","before":"List what is queued in the read-later inbox: links and forwarded emails that are guaranteed to be covered in the next briefing.","detail":"Description of `list_read_later` changed (36% word delta).","severity":"risky","descriptionDelta":0.36363636363636365},{"kind":"description_changed","tool":"rate_briefing_entry","after":"Give a precise up/down signal on one story of a briefing: more like this, less like this, more technical, simpler, deeper, shorter, or mute. A story carries typed labels (see `labels` in get_briefing): e:<who or what> (e:tesla), c:<field, its world> (c:auto), f:<angle> (f:soldi = money) and free tags. `topics` chooses the LEVEL: one label = broad (\"less of Tesla, everywhere\"); several labels = narrow, they are COMBINED with AND (\"less of Tesla + soldi\" = Tesla only when the story is about money; Tesla alone and money stories of others are untouched). Omit `topics` for the whole story (all its labels together, the narrowest level). Sending the same signal again with different topics REPLACES the previous one. \"follow\" is different: it pins THIS story — every development of it (and only of it) gets a full entry; \"unfollow\" releases it. `withdraw: true` takes a signal back.","before":"Give a precise up/down signal on one story of a briefing: more like this, less like this, more technical, simpler, deeper, shorter, or mute its topics. These apply to the topics of that story, so the next briefing weighs them differently. A story usually has several topics: pass `topics` to hit only some of them (e.g. \"less\" of \"demographics\" but not of \"japan\"). Sending the same signal again with different topics REPLACES the previous one: the topics you drop are restored, nothing is double-counted. \"follow\" is different: it pins THIS story — from then on every development of this specific story (and only of it) gets a full entry flagged as an update; \"unfollow\" releases it. Pinned stories are listed by get_information_diet.","detail":"Description of `rate_briefing_entry` changed (62% word delta).","severity":"risky","descriptionDelta":0.6190476190476191},{"kind":"input_property_added","path":"inputSchema.properties.withdraw","tool":"rate_briefing_entry","after":{"type":"boolean","description":"true = take back the signal of this kind previously given on this story (the topics it had touched are restored). With \"follow\" use \"unfollow\" instead."},"detail":"Optional field `withdraw` was added to `rate_briefing_entry`; may shift model behaviour.","severity":"risky"},{"kind":"description_changed","tool":"tune_topic","after":"Tune how a single topic — or a COMBINATION of labels — is treated in future briefings: more or less of it, more or less technical, deeper or shorter, more or less often, muted entirely, or followed so every development of that WHOLE THEME gets reported (to follow one specific story, use rate_briefing_entry with \"follow\" on that entry). `topic` is one key: a free tag (\"intelligenza artificiale\") or a typed label (e:tesla, c:auto, f:soldi); `topics` instead is a list of labels combined with AND (\"e:tesla\"+\"f:soldi\" = Tesla only when about money — Tesla alone stays as it is). This is the precise instrument — for a vague comment like \"too much crypto lately\" use correct_briefing instead.","before":"Tune how a single topic is treated in future briefings: more or less of it, more or less technical, deeper or shorter, more or less often, muted entirely, or followed so every development of that WHOLE THEME gets reported (to follow one specific story, use rate_briefing_entry with \"follow\" on that entry). This is the precise instrument — for a vague comment like \"too much crypto lately\" use correct_briefing instead.","detail":"Description of `tune_topic` changed (32% word delta).","severity":"risky","descriptionDelta":0.32499999999999996},{"kind":"input_property_added","path":"inputSchema.properties.topics","tool":"tune_topic","after":{"type":"array","items":{"type":"string"},"maxItems":4,"description":"Alternative to topic: labels to COMBINE with AND (e.g. [\"e:tesla\",\"f:soldi\"])"},"detail":"Optional field `topics` was added to `tune_topic`; may shift model behaviour.","severity":"risky"},{"kind":"input_required_removed","path":"inputSchema.required.topic","tool":"tune_topic","detail":"Field `topic` on `tune_topic` is no longer required.","severity":"safe"},{"kind":"description_changed","tool":"update_information_diet","after":"Change how and when the briefing reaches this person: delivery time and days, length, technicality, depth, stance, tone, entry mix (few deep stories vs many short ones), stated interests and topics to avoid, language, timezone; the podcast (on/off, minutes, two-host show or single voice, voice accent), email delivery, the weekly recap, the chicca on quiet days, the smalltalking stories, web enrichment. Pass only the keys you want to change. Read get_information_diet first — these are global settings, not per-topic ones (for a single topic use tune_topic).","before":"Change how and when the briefing reaches this person: delivery time and days, length, technicality, depth, stance, tone, stated interests and topics to avoid, language, timezone, podcast and email delivery. Pass only the keys you want to change. Read get_information_diet first — these are global settings, not per-topic ones (for a single topic use tune_topic).","detail":"Description of `update_information_diet` changed (34% word delta).","severity":"risky","descriptionDelta":0.3380281690140845},{"kind":"input_type_changed","path":"inputSchema.properties.podcast_accento","tool":"update_information_diet","after":"string|null","before":"string","detail":"Type of `podcast_accento` on `update_information_diet` changed string → string|null.","severity":"breaking"},{"kind":"enum_value_added","path":"inputSchema.properties.podcast_accento","tool":"update_information_diet","after":"null","detail":"Enum value `null` added to `podcast_accento` on `update_information_diet`.","severity":"risky"}],"published_at":"2026-10-06T09:08:14.746Z"}]