[{"slug":"ZV-2026-1447","server_name":"bluesky.caseyjhand.com","severity":"breaking","title":"bluesky.caseyjhand.com: Tool bsky_search_posts was removed.","summary":"[breaking] Tool bsky_search_posts was removed. [safe] Tool bsky_get_feed was added. [safe] Description of bsky_get_follows changed (15% word delta). [safe] Description of bsky_get_post_thread changed (5% word delta). [risky] Description of bsky_get_trending changed (26% word delta). [safe] Description of bsky_search_actors changed (20% word delta).","changes":[{"kind":"tool_removed","tool":"bsky_search_posts","detail":"Tool `bsky_search_posts` was removed.","severity":"breaking"},{"kind":"tool_added","tool":"bsky_get_feed","detail":"Tool `bsky_get_feed` was added.","severity":"safe"},{"kind":"description_changed","tool":"bsky_get_follows","after":"Fetch the social graph edges for a Bluesky account — who follows them, or who they follow. Returns paginated actor profiles (handle, DID, displayName, bio, pronouns when set) plus a summary of the subject account. Follower, following, and post counts and the website are not on this view, for the listed accounts or the subject — bsky_get_profile returns them for one account. Accounts with large social graphs return only the first page; use cursor pagination to walk through the full list.","before":"Fetch the social graph edges for a Bluesky account — who follows them, or who they follow. Returns paginated actor profiles (handle, DID, displayName, bio, pronouns when set, follower count) plus a summary of the subject account — website is not on this view, only on bsky_get_profile. Accounts with large social graphs return only the first page; use cursor pagination to walk through the full list.","detail":"Description of `bsky_get_follows` changed (15% word delta).","severity":"safe","descriptionDelta":0.14516129032258063},{"kind":"description_changed","tool":"bsky_get_post_thread","after":"Fetch the conversation for a post by AT-URI — the parent chain upward and the reply tree downward. Enter the thread at any point and traverse the discussion. AT-URIs have the format \"at://<handle-or-did>/<collection>/<rkey>\" and are returned in the \"uri\" field of every post the other post-returning tools emit, such as bsky_get_feed and bsky_get_author_feed. Returns the root post, parent chain, and nested replies with per-post author and engagement data. The response is often a fraction of the conversation: Bluesky holds replies back past a per-post limit and offers no way to page the rest, so a thread with thousands of replies commonly returns a few hundred. Any node returning fewer replies than its own replyCount carries \"truncated: true\" with \"unreturnedReplies\" and a \"truncationReason\" — \"depth\" means the reply tree ended there and fetching that node's AT-URI as its own thread continues below it, \"unavailable\" means no request closes the gap. Read \"unreturnedReplies\" as an upper bound on what is missing rather than a count of readable replies: Bluesky's counter also includes replies that have left the index, so a small difference often means nothing is left to fetch. The parent chain is disclosed the same way: when it stops at parent_height instead of at the start of the conversation, the topmost node carries \"parentChainTruncated: true\" and fetching its AT-URI as its own thread continues upward. The enrichment fields total the difference for the whole thread; check them before describing a conversation as complete or naming its first post. In the rendered text nothing is indented: a reply's author heading carries how far it sits below the top-level reply it descends from (\"### ↳2\"), and every post also names its own parent on a \"Reply to\" line.","before":"Fetch the conversation for a post by AT-URI — the parent chain upward and the reply tree downward. Enter the thread at any point and traverse the discussion. AT-URIs have the format \"at://<handle-or-did>/<collection>/<rkey>\" and are returned by bsky_search_posts and bsky_get_author_feed in the \"uri\" field of each post. Returns the root post, parent chain, and nested replies with per-post author and engagement data. The response is often a fraction of the conversation: Bluesky holds replies back past a per-post limit and offers no way to page the rest, so a thread with thousands of replies commonly returns a few hundred. Any node returning fewer replies than its own replyCount carries \"truncated: true\" with \"unreturnedReplies\" and a \"truncationReason\" — \"depth\" means the reply tree ended there and fetching that node's AT-URI as its own thread continues below it, \"unavailable\" means no request closes the gap. Read \"unreturnedReplies\" as an upper bound on what is missing rather than a count of readable replies: Bluesky's counter also includes replies that have left the index, so a small difference often means nothing is left to fetch. The parent chain is disclosed the same way: when it stops at parent_height instead of at the start of the conversation, the topmost node carries \"parentChainTruncated: true\" and fetching its AT-URI as its own thread continues upward. The enrichment fields total the difference for the whole thread; check them before describing a conversation as complete or naming its first post. In the rendered text nothing is indented: a reply's author heading carries how far it sits below the top-level reply it descends from (\"### ↳2\"), and every post also names its own parent on a \"Reply to\" line.","detail":"Description of `bsky_get_post_thread` changed (5% word delta).","severity":"safe","descriptionDelta":0.046052631578947345},{"kind":"description_changed","tool":"bsky_get_trending","after":"Fetch the current real-time trending topics on Bluesky. Returns topics with display name, Bluesky's one-sentence summary of the story, post count, category (politics, sports, pop-culture, etc.), status, start time, and the representative accounts driving each topic — so \"who is talking about this\" needs no follow-up call. Entry point for \"what is Bluesky talking about right now\". Each trend is a feed: pass its feedUri to bsky_get_feed to read the trend's posts. Note: uses the app.bsky.unspecced.getTrends endpoint, which is not part of Bluesky's stable lexicon and may change without notice.","before":"Fetch the current real-time trending topics on Bluesky. Returns topics with display name, post count, category (politics, sports, pop-culture, etc.), status (hot/rising), start time, and the representative accounts driving each topic — so \"who is talking about this\" needs no follow-up search. Entry point for \"what is Bluesky talking about right now\". Pair with bsky_search_posts to drill into any trending topic. Note: uses the app.bsky.unspecced.getTrends endpoint, which is not part of Bluesky's stable lexicon and may change without notice.","detail":"Description of `bsky_get_trending` changed (26% word delta).","severity":"risky","descriptionDelta":0.2558139534883721},{"kind":"description_changed","tool":"bsky_search_actors","after":"Find Bluesky accounts by name or handle fragment. Returns ranked profiles with handle, DID, displayName, bio, and pronouns when the account set them. Follower, following, and post counts and the website are not on this view — bsky_get_profile returns them for one account. Use before bsky_get_profile or bsky_get_author_feed when you have a name but not a confirmed handle. Supports cursor-based pagination for browsing beyond the first page of results.","before":"Find Bluesky accounts by name or handle fragment. Returns ranked profiles with handle, DID, displayName, bio, pronouns when the account set them, and follower count — but not website, which only bsky_get_profile returns. Use before bsky_get_profile or bsky_get_author_feed when you have a name but not a confirmed handle. Supports cursor-based pagination for browsing beyond the first page of results.","detail":"Description of `bsky_search_actors` changed (20% word delta).","severity":"safe","descriptionDelta":0.1964285714285714}],"published_at":"2026-09-25T09:50:12.536Z"}]