Skip to content

BotKit changelog ​

Version 0.6.0 ​

To be released.

@fedify/botkit ​

  • Added Session.move() to move a bot's followers to a linked actor, persist its movedTo redirect, and show its new home on the profile. Moved bots reject new follows and cannot publish, reply, or share new messages. Publishing, sharing, and follow acceptance are serialized with moves within the same instance. Session.republishMove() resends failed migration notifications. Custom repositories must now implement the required getSuccessor() and atomic, write-once setSuccessor() methods. [#50, #57]
  • Added an aliases option to CreateBotOptions and BotProfile so existing accounts can move their followers to a BotKit bot. Actor URIs listed in the option are published as alsoKnownAs, and are available through Bot.aliases and Session.bot.aliases. [#48, #55]
  • Added automatic re-following when an account a bot follows moves to a verified new account, with an onFolloweeMove event after submitting the new follow request and unfollowing the old account. [#49, #56]
  • Added names, inline summaries, and custom URLs when publishing or updating messages. Updated messages can remove these fields by setting them to null, and the new inline template composes paragraphless rich text for summaries. [#40, #42]
  • Added the federationOptions option to createBot() and createInstance() for private-address access in tests, circuit breaking, OpenTelemetry providers, and HTTP Signature negotiation. [#41, #43]
  • Changed FEP-044f quote authorization handling to use Fedify's @fedify/interaction-controls package. Quote authorization stamps are now checked against their owner's FEP-fe34 origin, so stamps whose IDs have no comparable origin, such as opaque URIs, are no longer accepted. [#52, #53]
  • Fixed a bug where a remote server could approve a quote with a quote authorization stamp other than the one named in its Accept activity, as long as the substituted stamp was on the same origin. [#52, #53]
  • Fixed delivery of follow requests, acceptances, rejections, and unfollows between bots hosted on the same instance, including follow requests to account migration targets on that instance. [#49, #56]
  • Upgraded Fedify to 2.4.0, which adds support for FEP-ef61 portable objects and hardens HTTP Signature verification and document loading.

@fedify/botkit-postgres ​

  • Added persistent account migration state through getSuccessor() and atomic, write-once setSuccessor(), keeping moved bots inactive across restarts. [#50, #57]

@fedify/botkit-redis ​

  • Added persistent account migration state through getSuccessor() and atomic, write-once setSuccessor(), keeping moved bots inactive across restarts. [#50, #57]

@fedify/botkit-sqlite ​

  • Added persistent account migration state through getSuccessor() and atomic, write-once setSuccessor(), keeping moved bots inactive across restarts. [#50, #57]

Version 0.5.6 ​

Released on October 1, 2026.

@fedify/botkit ​

  • Upgraded Fedify to 2.3.10, which fixes a security vulnerability where Context.routeActivity() verified a dereferenced copy of an activity but routed the caller's unauthenticated original, so an application with an inbox queue or with forwarding enabled could process an activity whose actor, object, and addressing were chosen by an attacker as long as its id matched that of a genuine activity. [GHSA-39gj-rchc-q5m3]

Version 0.5.5 ​

Released on September 30, 2026.

@fedify/botkit ​

  • Upgraded Fedify to 2.3.9, which fixes a security vulnerability that let a remote host exhaust server resources by serving an unbounded chain of JSON-LD alternate-document links, and that caused the caller's abort signal to be ignored once such a link was followed. [GHSA-97w4-f4rq-mgqm]

Version 0.5.4 ​

Released on September 23, 2026.

@fedify/botkit ​

  • Upgraded Fedify to 2.3.8, which fixes three security vulnerabilities: forged activities could be accepted as coming from any actor, remote ActivityPub and JSON-LD documents were parsed without a size limit, and outbound activity delivery could be redirected to private network addresses. [GHSA-q9f8-5hc7-898f, GHSA-mc44-6cfg-2v6w, GHSA-f59r-8gcj-68f2]

Version 0.5.3 ​

Released on September 4, 2026.

@fedify/botkit ​

  • Fixed multi-bot instances so their instance actor is discoverable through WebFinger. Servers that dereference a signature's key owner through WebFinger rather than by URI, such as GoToSocial, rejected every request the instance actor signed, so follows from those servers never completed. [#45, #46 by Les Orchard]
  • Reserved the instance actor's name against bot usernames as well as bot identifiers. Instance.createBot() now throws a TypeError for a username that matches the instance actor, which would otherwise have lost its own WebFinger mapping. Single-bot instances have no instance actor, so createBot() is unaffected. [#45, #46 by Les Orchard]

Version 0.5.2 ​

Released on August 22, 2026.

@fedify/botkit ​

  • Upgraded Fedify to 2.3.5, which addresses two security vulnerabilities:
    • Fixed an SSRF vulnerability in authenticated document loaders where public document URLs could redirect signed requests to loopback, link-local, or private addresses. [CVE-2026-77632]
    • Prevented remote actors from causing unbounded circuit-breaker state growth through failed deliveries, which could eventually exhaust storage or memory. [CVE-2026-69132]

Version 0.5.1 ​

Released on July 19, 2026.

@fedify/botkit ​

  • Upgraded Fedify to 2.3.3, which addresses CVE-2026-62857, an SSRF vulnerability in NodeInfo lookups that could allow a malicious remote server to access non-public network resources. [GHSA-hqph-j65v-8cq5]

Version 0.5.0 ​

Released on July 8, 2026.

@fedify/botkit ​

@fedify/botkit-sqlite ​

  • Added a quote_authorizations table for FEP-044f quote authorization stamps. [#27, #28, #31]

  • Added a quote_authorization_refs table for received FEP-044f quote authorization stamps that have been applied to local quote posts. [#27, #29, #32]

  • All tables now have a bot_id column and composite primary keys, so a single database stores the data of multiple bots. Opening a database created by version 0.4 or earlier rebuilds the affected tables in place, and SqliteRepository.migrate() assigns the carried-over rows to a bot actor identifier; createBot() calls it automatically on startup. [#16, #24]

@fedify/botkit-postgres ​

  • Added a quote_authorizations table for FEP-044f quote authorization stamps. [#27, #28, #31]

  • Added a quote_authorization_refs table for received FEP-044f quote authorization stamps that have been applied to local quote posts. [#27, #29, #32]

  • All tables now have a bot_id column and composite primary keys, so a single schema stores the data of multiple bots. Initializing a schema created by version 0.4 upgrades it in place, and PostgresRepository.migrate() assigns the carried-over rows to a bot actor identifier; createBot() calls it automatically on startup. [#16, #24]

  • Upgraded Postgres.js to 3.4.9.

@fedify/botkit-redis ​

  • Added the new @fedify/botkit-redis package, which provides RedisRepository, a Redis-backed implementation of BotKit's Repository interface for bots running on Deno or Node.js. It supports URL-managed and caller-managed Redis clients, configurable key prefixes, bot-scoped storage, quote authorization storage, reverse lookups, and poll votes. [#12, #35]

Version 0.4.9 ​

Released on October 1, 2026.

@fedify/botkit ​

  • Upgraded Fedify to 2.1.26, which fixes a security vulnerability where Context.routeActivity() verified a dereferenced copy of an activity but routed the caller's unauthenticated original, so an application with an inbox queue or with forwarding enabled could process an activity whose actor, object, and addressing were chosen by an attacker as long as its id matched that of a genuine activity. [GHSA-39gj-rchc-q5m3]

Version 0.4.8 ​

Released on September 30, 2026.

@fedify/botkit ​

  • Upgraded Fedify to 2.1.25, which fixes a security vulnerability that let a remote host exhaust server resources by serving an unbounded chain of JSON-LD alternate-document links, and that caused the caller's abort signal to be ignored once such a link was followed. [GHSA-97w4-f4rq-mgqm]

Version 0.4.7 ​

Released on September 23, 2026.

@fedify/botkit ​

  • Upgraded Fedify to 2.1.24, which fixes three security vulnerabilities: forged activities could be accepted as coming from any actor, remote ActivityPub and JSON-LD documents were parsed without a size limit, and outbound activity delivery could be redirected to private network addresses. [GHSA-q9f8-5hc7-898f, GHSA-mc44-6cfg-2v6w, GHSA-f59r-8gcj-68f2]

Version 0.4.6 ​

Released on August 22, 2026.

@fedify/botkit ​

  • Upgraded Fedify to 2.1.21, which fixes an SSRF vulnerability in authenticated document loaders where public document URLs could redirect signed requests to loopback, link-local, or private addresses. [CVE-2026-77632]

Version 0.4.5 ​

Released on July 19, 2026.

@fedify/botkit ​

  • Upgraded Fedify to 2.1.19, which fixes an SSRF vulnerability in NodeInfo lookups that could allow a malicious remote server to access non-public network resources. [CVE-2026-62857]

Version 0.4.4 ​

Released on July 6, 2026.

@fedify/botkit ​

  • Fixed MemoryRepository, KvRepository, and MemoryCachedRepository so removing one of multiple active follow requests for the same actor no longer deletes the follower too early or fires a premature unfollow event, and reassigning a follow request no longer leaves stale followers behind. [#25, #26]

@fedify/botkit-sqlite ​

  • Fixed SqliteRepository so removing one of multiple active follow requests for the same actor no longer fails with a foreign key error, and reassigning a follow request no longer leaves stale followers behind. [#25, #26]

@fedify/botkit-postgres ​

  • Fixed PostgresRepository so removing one of multiple active follow requests for the same actor no longer reports a follower removal until the last active follow request is removed. [#25, #26]

Version 0.4.3 ​

Released on June 4, 2026.

  • Upgraded Fedify to 2.1.15, which fixes an SSRF protection bypass vulnerability. [CVE-2026-50131]

Version 0.4.2 ​

Released on May 21, 2026.

@fedify/botkit ​

  • Upgraded Fedify to 2.1.14 to fix a security vulnerability in Linked Data Signature verification that could allow certain signed activities to be interpreted differently than intended. [CVE-2026-42462]

Version 0.4.1 ​

Released on May 12, 2026.

@fedify/botkit ​

  • Upgraded Fedify to 2.1.12, which addresses a private network protection bypass vulnerability. This vulnerability allowed certain IPv4-mapped IPv6 literals (e.g., http://[::ffff:127.0.0.1]/) to bypass SSRF (Server-Side Request Forgery) protection, potentially allowing attackers to access internal network resources.

Version 0.4.0 ​

Released on March 30, 2026.

@fedify/botkit ​

  • Upgraded Fedify to 2.1.2.

    • BotKit now targets Fedify 2.0's modular package layout, using @fedify/vocab, @fedify/vocab-runtime, and @fedify/denokv where appropriate.
    • Message.language and SessionPublishOptions.language now use Intl.Locale instead of LanguageTag.
    • Bot software versions now use plain strings instead of SemVer objects.
    • Removed the parseSemVer(), SemVer, LanguageTag, and parseLanguageTag() public exports.
  • BotKit now acknowledges unverified remote Delete activities signed by permanently gone actors with 202 Accepted instead of 401 Unauthorized.

    • This applies only when Fedify reports a keyFetchError and the remote actor's key fetch returned 410 Gone.
    • The unverified activity is not passed to BotKit event handlers, but the successful response stops repeated redelivery attempts from the remote server.
  • Added FEP-5711 inverse properties to the bot actor's outbox and followers collections.

  • Added a remote follow button to the web interface. [#10, #14 by Hyeonseo Kim]

    • Added a Follow button on the bot's profile page that allows users to follow the bot from their own fediverse instance without manual searching.
    • When clicked, the button opens a modal dialog where users can enter their fediverse handle (e.g., @username@instance.com).
    • The feature uses WebFinger to discover the user's instance and automatically redirects to the appropriate follow page using the OStatus subscribe protocol.
  • Added Session.republishProfile() to broadcast profile changes to followers. [#18]

    • The new method sends an ActivityPub Update activity for the bot actor to the bot's followers.
    • This makes profile updates such as display name, bio, avatar, and header image propagate without waiting for the next post.

@fedify/botkit-postgres ​

  • Added a new PostgreSQL repository package, @fedify/botkit-postgres, which provides PostgresRepository, PostgresRepositoryOptions, and initializePostgresRepositorySchema(). [#11, #19]

Version 0.3.4 ​

Released on June 4, 2026.

  • Upgraded Fedify to 1.9.12, which fixes an SSRF protection bypass vulnerability. [CVE-2026-50131]

Version 0.3.3 ​

Released on May 21, 2026.

  • Upgraded Fedify to 1.9.11 to fix a security vulnerability in Linked Data Signature verification that could allow certain signed activities to be interpreted differently than intended. [CVE-2026-42462]

Version 0.3.2 ​

Released on May 12, 2026.

  • Upgraded Fedify to 1.9.10, which addresses a private network protection bypass vulnerability. This vulnerability allowed certain IPv4-mapped IPv6 literals (e.g., http://[::ffff:127.0.0.1]/) to bypass SSRF (Server-Side Request Forgery) protection, potentially allowing attackers to access internal network resources.

Version 0.3.1 ​

Released on December 20, 2025.

  • Upgraded Fedify to 1.8.15, which includes a critical security fix CVE-2025-68475 that addresses a ReDoS (Regular Expression Denial of Service) vulnerability in HTML parsing. [CVE-2025-68475]

Version 0.3.0 ​

Released on August 28, 2025.

  • BotKit now supports Node.js alongside of Deno. The minimum required version of Node.js is 22.0.0.

@fedify/botkit ​

@fedify/botkit-sqlite ​

  • Added SqliteRepository class that implements a SQLite-based repository for BotKit.
  • Added SqliteRepositoryOptions interface.

Version 0.2.4 ​

Released on August 26, 2025.

  • Upgraded Fedifyh to 1.5.7 which fixes a bug where HTTP Signature verification failed for requests having created or expires fields in their Signature header, causing 500 Internal Server Error responses in inbox handlers.

Version 0.2.3 ​

Released on August 25, 2025.

  • Upgraded Fedify to 1.5.6, which fixes a bug where ActivityPub Discovery failed to recognize XHTML self-closing <link> tags. The HTML/XHTML parser now correctly handles whitespace before the self-closing slash (/>), improving compatibility with XHTML documents that follow the self-closing tag format.

Version 0.2.2 ​

Released on August 8, 2025.

  • Upgrade Fedify to 1.5.5, which includes a critical security fix CVE-2025-54888 that addresses an authentication bypass vulnerability allowing actor impersonation. [CVE-2025-54888]

Version 0.2.1 ​

Released on July 8, 2025.

Version 0.2.0 ​

Released on April 21, 2025.

Version 0.1.4 ​

Released on August 26, 2025.

  • Upgraded Fedifyh to 1.4.15 which fixes a bug where HTTP Signature verification failed for requests having created or expires fields in their Signature header, causing 500 Internal Server Error responses in inbox handlers.

Version 0.1.3 ​

Released on August 25, 2025.

  • Upgraded Fedify to 1.4.14, which fixes a bug where ActivityPub Discovery failed to recognize XHTML self-closing <link> tags. The HTML/XHTML parser now correctly handles whitespace before the self-closing slash (/>), improving compatibility with XHTML documents that follow the self-closing tag format.

Version 0.1.2 ​

Released on August 8, 2025.

  • Upgraded Fedify to 1.4.13, which includes a critical security fix CVE-2025-54888 that addresses an authentication bypass vulnerability allowing actor impersonation. [CVE-2025-54888]

Version 0.1.1 ​

Released on February 10, 2025.

  • Fixed a bug where direct and followers-only messages that reply to a bot had been forwarded to the bot's followers.

Version 0.1.0 ​

Initial release. Released on February 7, 2025.