{"server":"com.proofite/proofite","count":20,"changes":[{"tool":"list_briefings","kind":"changed","observed_at":"2026-10-06T16:42:30.278Z","fields":["inputSchema"],"description_before":null,"description_after":null,"description_similarity":null,"before_hash":"fdcf5328833b7ff5883888af9d470c13","after_hash":"dbce702984e9b72400715e0d3f748f48"},{"tool":"resume_podcast","kind":"added","observed_at":"2026-10-06T11:09:27.717Z","fields":[],"description_before":null,"description_after":"The podcast pauses itself when nobody listens for a while (no episodes get made; the setting podcast_enabled stays true). This lifts the pause: from tomorrow the episode comes back every morning. get_information_diet and get_account say whether it is paused.","description_similarity":null,"before_hash":null,"after_hash":"4f01ffa893443839ba9a735f4b9236dc"},{"tool":"generate_podcast_episode","kind":"added","observed_at":"2026-10-06T11:09:27.717Z","fields":[],"description_before":null,"description_after":"Make (or remake) the podcast episode of a briefing right away — the latest by default. Takes a few minutes (script, then voices); poll with get_podcast_episode. Asking for an episode is a listening signal: it also lifts the automatic pause. Costs real AI money, so only when asked.","description_similarity":null,"before_hash":null,"after_hash":"3d83c7b5059b5c91d6e7ab60503d6421"},{"tool":"unshare_briefing","kind":"added","observed_at":"2026-10-06T11:09:27.717Z","fields":[],"description_before":null,"description_after":"Revoke the public link of a briefing: the page and its audio stop answering immediately.","description_similarity":null,"before_hash":null,"after_hash":"bbd4dceac2c0b642c86959eece846569"},{"tool":"share_briefing","kind":"added","observed_at":"2026-10-06T11:09:27.717Z","fields":[],"description_before":null,"description_after":"Create (or read) the public link of a briefing: a cleaned-up read-only copy — no personal \"why this matters to you\" notes, no name. The podcast episode comes along only if `podcast` is true: the hosts greet the reader by name, so that is the reader's call. Idempotent: calling again returns the same link; unshare_briefing revokes it.","description_similarity":null,"before_hash":null,"after_hash":"dfa9b9e9106c2bcdf348fb7867e5449e"},{"tool":"unsave_entry","kind":"added","observed_at":"2026-10-06T11:09:27.717Z","fields":[],"description_before":null,"description_after":"Take a story out of the reading list, by its saved id (from list_saved) or by briefing + entry id.","description_similarity":null,"before_hash":null,"after_hash":"5725de2f2de985f93f2564746be72ce7"},{"tool":"save_entry","kind":"added","observed_at":"2026-10-06T11:09:27.717Z","fields":[],"description_before":null,"description_after":"Keep one story of a briefing in the reading list (list_saved): a snapshot that survives even if the briefing is deleted. entry_id \"chicca\" saves the chicca — the archive story of quiet days — when the briefing has one. Saving again only refreshes the date.","description_similarity":null,"before_hash":null,"after_hash":"613d2505c74bd11e25f11df7f6441136"},{"tool":"cancel_deep_dive","kind":"added","observed_at":"2026-10-06T11:09:27.717Z","fields":[],"description_before":null,"description_after":"Remove a deep-dive request that is still waiting (ids from list_deep_dives). One already covered in a briefing cannot be cancelled.","description_similarity":null,"before_hash":null,"after_hash":"484d04edd9f5aeac09f9aff945c0a6ae"},{"tool":"add_proposed_source","kind":"added","observed_at":"2026-10-06T11:09:27.717Z","fields":[],"description_before":null,"description_after":"When report_missing_story found that none of the person's sources carried the story, it proposed one. This adds that proposed feed to the inbox it indicated — the same tap the reader has under the briefing. Idempotent: adding twice says it was already added.","description_similarity":null,"before_hash":null,"after_hash":"1a955b94a4d2ee690dfd57374155906b"},{"tool":"list_missing_reports","kind":"added","observed_at":"2026-10-06T11:09:27.717Z","fields":[],"description_before":null,"description_after":"The investigations opened with report_missing_story on a briefing: what was asked, the verdict, the explanation, the signals applied and — when none of the person's sources carried the story — the source proposed, with whether it was already added. Latest briefing by default.","description_similarity":null,"before_hash":null,"after_hash":"47e1a14d939b9aa2648d03a397d3c63e"},{"tool":"unfollow_story","kind":"added","observed_at":"2026-10-06T11:09:27.717Z","fields":[],"description_before":null,"description_after":"Release a pinned story by its id (from get_information_diet → followed_stories), so its developments stop getting a dedicated entry. Works even when the briefing it came from is gone — rate_briefing_entry \"unfollow\" needs the briefing, this does not.","description_similarity":null,"before_hash":null,"after_hash":"286711ce6de1c0e1164f8ea53980c36e"},{"tool":"rate_briefing_entry","kind":"changed","observed_at":"2026-10-06T11:09:27.717Z","fields":["description","inputSchema"],"description_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.","description_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.","description_similarity":0.386,"before_hash":"2d1f9982f87409897c5265da64fcef92","after_hash":"27c5f2c8bb55332fe11dc5359e43c7e7"},{"tool":"correct_briefing","kind":"changed","observed_at":"2026-10-06T11:09:27.717Z","fields":["description"],"description_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.","description_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.","description_similarity":0.699,"before_hash":"70ba040c7d25ff1c01a452b9508b63b7","after_hash":"2f008c3e9ffca7c59c3aebcbd64e8a15"},{"tool":"tune_topic","kind":"changed","observed_at":"2026-10-06T11:09:27.717Z","fields":["description","inputSchema"],"description_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.","description_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.","description_similarity":0.679,"before_hash":"0ebcf136778ed3d47718b855461ee9ca","after_hash":"cfd6f1a0213f7a6670c6d5c27498ed4c"},{"tool":"update_information_diet","kind":"changed","observed_at":"2026-10-06T11:09:27.717Z","fields":["description","inputSchema"],"description_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).","description_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).","description_similarity":0.671,"before_hash":"18af88278601c467ef4a07d430f54ee0","after_hash":"eacd1482e65baefb4377bf0b3b74d001"},{"tool":"list_saved","kind":"added","observed_at":"2026-10-06T11:09:27.717Z","fields":[],"description_before":null,"description_after":"The reading list: stories the person saved from their briefings (including the \"chicca\", the archive story of quiet days), newest first, each with the briefing it came from. Pass `query` to search them by any word — title, text, topics, briefing title. To add or remove: save_entry, unsave_entry.","description_similarity":null,"before_hash":null,"after_hash":"2dd92634b3595090fad7d3e261a9e2be"},{"tool":"list_read_later","kind":"changed","observed_at":"2026-10-06T11:09:27.717Z","fields":["description"],"description_before":"List what is queued in the read-later inbox: links and forwarded emails that are guaranteed to be covered in the next briefing.","description_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.","description_similarity":0.636,"before_hash":"1b6eb58e27df2513bce61cdc0e0203f5","after_hash":"3b2f7796e360d3a9f5eac889e94b8510"},{"tool":"get_episode_transcript","kind":"added","observed_at":"2026-10-06T11:09:27.717Z","fields":[],"description_before":null,"description_after":"The full text of a podcast episode, word for word: the script the voices read. In the two-host show it comes as \"Name: line\" turns; in the classic format as plain paragraphs. Use it when the person wants a passage quoted, a point the hosts made that the written briefing does not have, or to search what was said. Latest episode by default.","description_similarity":null,"before_hash":null,"after_hash":"11200d9be651a26973c8191565488c45"},{"tool":"get_podcast_episode","kind":"changed","observed_at":"2026-10-06T11:09:27.717Z","fields":["description"],"description_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.","description_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.","description_similarity":0.587,"before_hash":"628a5fa15574cbd1bd034723a748562f","after_hash":"dde0d53499e7f957617fd97959092e97"},{"tool":"get_information_diet","kind":"changed","observed_at":"2026-10-06T11:09:27.717Z","fields":["description"],"description_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.","description_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.","description_similarity":0.811,"before_hash":"e20b11c01642e8e00267b3674f0e32e5","after_hash":"41b978007e17cbfb95d8f2f978dba9f2"}],"next_before":null,"next_actions":[]}