Files
baibot-withmcp/CHANGELOG.md
2026-06-29 17:10:30 +03:00

31 KiB

(2026-06-29) Version 1.25.0

  • (Feature) ♻️ Context management now works with every provider, not only OpenAI. Token counting previously went through tiktoken-rs, which is accurate only for OpenAI models and silently mis-counted everything else (worst of all for non-English text). OpenAI agents keep using tiktoken-rs; every other provider, including the recommended Venice, now uses a provider-neutral approximation that needs no per-model tokenizer (ASCII counted at about four characters per token, other scripts such as Cyrillic and CJK at about two), landing within roughly 10-20% of the real count. See the context management docs.

  • (Improvement) Context management now trims a conversation on whole-turn boundaries for every provider, so an assistant reply is never kept without the user message it answered. This also adjusts how the OpenAI provider trims: a dangling assistant reply at the oldest edge of the kept history is now dropped along with its missing prompt, rather than left in place.

(2026-06-26) Version 1.24.0

  • (Feature) Add an opt-in 💭 thinking notice for text generation. When enabled, a slow response (for example, from a reasoning model that runs for minutes) posts a "thinking…" placeholder after a short delay, refreshes it periodically with varying flavor text, and then edits that same message into the final answer, so a long wait no longer looks like a stuck bot. The notice is disabled by default and configurable per-room or globally via text-generation set-thinking-notice-enabled true. Fast responses (under the delay threshold) never show a placeholder. See the text-generation configuration docs.

  • (Bugfix) The Venice unsupported-field auto-recovery (added in 1.23.1) now actually remembers rejections across messages. The cache lived on the provider's controller, which is rebuilt on every message for room-local and global agents, so each turn started with an empty cache, re-sent the unsupported field, and logged the same 400 Bad Request warning again. The cache is now process-global (keyed per Venice deployment), so a field a model rejects is dropped proactively on every later request instead of being re-discovered each turn.

(2026-06-24) Version 1.23.1

  • (Bugfix) The Venice provider now auto-recovers when a model rejects an optional knob it does not support. Venice's request body is strict (additionalProperties: false), so a model that lacks prompt_cache_retention, reasoning_effort, or prompt_cache_key rejected the whole request with a 400 Bad Request — breaking agent creation and every reply. baibot now drops the unsupported field and retries, remembering the rejection per model so later requests skip it without a wasted round-trip. Only these meaning-preserving fields are dropped; sampling knobs that change the output (temperature, top_p, the penalties) are never silently removed and still surface as an error.

  • (Improvement) When Venice rejects a request with a 400 Bad Request, baibot now surfaces Venice's actual error message (e.g. Extra inputs are not permitted, field: 'prompt_cache_retention') instead of a generic "configuration does not result in a working agent". This makes agent-creation failures self-explanatory. Other error statuses keep their bodies redacted, since those can carry account or rate-limit details.

(2026-06-23) Version 1.23.0

  • (Feature) The Venice provider now accepts file inputs (PDF, DOCX, and other documents, up to 25MB), the same way it already handled images. This makes Venice the second provider after OpenAI to accept files; the others (Anthropic and the OpenAI-compatible providers) skip them. See the text-generation feature docs.

  • (Feature) Add prompt caching to the Venice provider, on by default (prompt_cache_retention: 24h). baibot derives the cache key from the system prompt and the conversation start time (both fixed for the life of a conversation), so a long, stable system prompt stays cached across the day instead of being reprocessed and re-billed on every turn. See Text Generation / Prompt Override.

  • (Feature) Wire up the rest of Venice's sampling and reasoning controls: top-level top_p, frequency_penalty, presence_penalty, repetition_penalty, and reasoning_effort; verbosity in the venice_parameters bag; and a show_reasoning toggle that appends the model's reasoning to the reply as a collapsible, folded-by-default 💭 Reasoning block (off by default). See the Venice configuration reference.

  • (Feature) Render Venice web-search citations as readable [n] references with a Sources: list of links, instead of leaving Venice's raw ^n^ superscripts in the reply.

  • (Security) Escape citation titles and validate citation URLs before rendering them, and drop user-supplied filenames from error messages, so a hostile web page or a crafted filename cannot inject a spoofed link into the bot's reply.

  • (Bugfix) The OpenAI-compatible provider now trusts the system CA store (honoring SSL_CERT_FILE), so endpoints served behind a private/internal CA (FreeIPA, organization PKI) no longer fail the TLS handshake with invalid peer certificate: UnknownIssuer. Fixed upstream in etke_openai_api_rust 0.1.10. Thanks to @shaba for the report in #188.

(2026-06-21) Version 1.22.0

(2026-06-05) Version 1.21.1

(2026-06-05) Version 1.21.0

  • (Improvement) Default to OpenAI's gpt-image-2 model for image generation (in newly-created OpenAI agents and the sample provider configs).

  • (Internal Improvement) Update async-openai from 0.40 to 0.41, which resynchronizes with the upstream OpenAI API spec after it had drifted out of sync — a mismatch that was already causing some breakage (hopefully now resolved). Adapts to the newly-added gpt-image-2 image model and an ImageSize type change.

  • (Internal Improvement) Dependency updates.

(2026-06-02) Version 1.20.0

  • (Internal Improvement) Update matrix-sdk from 0.17 to 0.18 and mxlink to 1.15.0.

  • (Internal Improvement) Update tiktoken-rs to 0.12, backporting OpenAI tiktoken 0.13.0 for better alignment with upstream tokenization behavior.

  • (Internal Improvement) Bump the pinned Rust toolchain from 1.95.0 to 1.96.0 (in rust-toolchain.toml and the Docker build images).

  • (Internal Improvement) Dependency updates.

(2026-05-27) Version 1.19.3

  • (Internal Improvement) Update async-openai to 0.40.2, pulling in several upstream fixes (streaming HTTP error surfacing, default ResponseTextParam.format deserialization, etc.).

  • (Internal Improvement) Dependency updates.

(2026-05-21) Version 1.19.2

  • (Internal Improvement) Update async-openai to 0.40.0.

  • (Internal Improvement) Dependency updates.

(2026-05-09) Version 1.19.1

  • (Internal Improvement) Update async-openai to 0.38.0.

  • (Internal Improvement) Dependency updates.

(2026-05-09) Version 1.19.0

  • (Internal Improvement) Update matrix-sdk from 0.16 to 0.17 and mxlink to 1.14.0. matrix-sdk 0.17 dropped its native-tls feature and now uses rustls exclusively as its TLS backend.

  • (Internal Improvement) Bump the pinned Rust toolchain from 1.93.0 to 1.95.0 (in rust-toolchain.toml and the Docker build images).

  • (Internal Improvement) Dependency updates.

(2026-04-11) Version 1.18.0

  • (Bugfix) Fix the bot not sending a welcome message when joining a room on homeservers (like Continuwuity) that place the join membership event in the sync response's state block rather than the timeline block, via mxlink 1.13.1

  • (Improvement) Update tiktoken-rs to 0.11, adding tokenization support for newer GPT models (gpt-5.x, codex, etc.) and fixing context sizes for o1-mini/chatgpt-4o/gpt-4.5

  • (Internal Improvement) Dependency updates

(2026-03-25) Version 1.17.0

  • (Feature) Add text-generation sender-context-mode for attaching sender metadata to conversation messages. See the 💬 Text Generation documentation for details. Thanks to kschwank for the contribution in #104!

(2026-03-24) Version 1.16.1

  • (Bugfix) Fix compatibility with async-openai 0.34.0 by populating the new phase field required for OpenAI Responses API message inputs. baibot does not currently distinguish between assistant commentary and final_answer turns, so using None preserves the previous behavior while remaining compatible with the updated crate.

  • (Internal Improvement) Dependency updates.

(2026-03-20) Version 1.16.0

  • (Feature) Add support for file attachments (m.file Matrix messages) in conversations. Files like PDFs, text documents, spreadsheets, code files, etc. are now downloaded and forwarded to the LLM alongside the conversation context, similar to how images (m.image) are already handled. See the 💬 Text Generation documentation for details and known limitations.

  • (Improvement) Use the mime_guess crate for MIME type detection from file extensions, replacing a hand-maintained mapping. This covers hundreds of file extensions out of the box.

(2026-03-07) Version 1.15.0

  • (Feature) Add support for authentication via access tokens (for Matrix Authentication Service/OIDC-enabled homeservers) as an alternative to password authentication. See 🔐 Authentication for setup details. Thanks to Taylor Southwick for the contribution in #83!

  • (Internal Improvement) Pin the Rust toolchain to 1.93.0 in both CI and local development to avoid matrix-sdk build failures on newer stable toolchains.

  • (Internal Improvement) Documentation updates.

  • (Internal Improvement) Dependency updates.

(2026-02-18) Version 1.14.3

  • (Internal Improvement) Add Renovate configuration for automated dependency updates

  • (Internal Improvement) Dependency updates

(2026-02-18) Version 1.14.2

  • (Internal Improvement) Dependency updates

  • (Internal Improvement) Reorganize the development environment to support Continuwuity as a homeserver choice (in addition to Synapse). Continuwuity is now the default for its lighter footprint (no external database required). See development docs for details.

(2026-02-10) Version 1.14.1

  • (Security) Dependency updates to fix security vulnerabilities (time stack exhaustion DoS, bytes integer overflow), via mxlink 1.12.0

  • (Internal Improvement) Switch from deprecated serde_yaml to its maintained fork serde_yaml_ng

  • (Internal Improvement) Add prek pre-commit hooks via mise for automated code quality checks (formatting, clippy, tests)

  • (Internal Improvement) Fix clippy warnings and formatting issues

(2026-02-04) Version 1.14.0

  • (Feature) The openai provider now uses OpenAI's Responses API (instead of the older Chat Completions API), adding support for 🛠️ built-in tools (web_search and code_interpreter). These tools are disabled by default and can be enabled via the text_generation.tools configuration (see the sample configuration). To enable tools on an existing agent, you need to update the agent to re-create it with the text_generation.tools section added and enable the tools you need. Thanks to Layla Manley for the contribution in #62!

  • (Bugfix) Fix sticker generation for newer GPT image models (gpt-image-1, gpt-image-1-mini, gpt-image-1.5) which don't support the previously hardcoded 256x256 size (minimum is 1024x1024)

  • (Internal Improvement) Dependency updates

(2026-01-23) Version 1.13.0

  • (Improvement) Extend auto-switching to support cheaper models (gpt-image-1-mini) for gpt-image-1 and gpt-image-1.5 when generating stickers (e0b4a40)

  • (Internal Improvement) Upgrade Rust compiler (1.92.0 -> 1.93.0) (691aeeb)

  • (Internal Improvement) Dependency updates

(2025-12-21) Version 1.12.0

  • (Improvement) Upgrade async-openai (0.31.1 -> 0.32.2) and add support for OpenAI's gpt-image-1.5 model (08c689a, f7bf3d7)

  • (Internal Improvement) Dependency updates

(2025-12-15) Version 1.11.0

  • (Feature) Add support for custom avatars via file path and for keeping the already-set avatar (for those who wish to manage it by themselves via other means). See the sample config for details. (062fbbb)

  • (Internal Improvement) Dependency updates (99bde53)

  • (Internal Improvement) Documentation updates (b3fd8e5)

  • (Internal Improvement) Upgrade Rust compiler (1.91.1 -> 1.92.0) (22906aa)

(2025-12-06) Version 1.10.0

  • (Internal Improvement) Dependency updates. This version is based on mxlink@1.11.0 (which is based on the newly released matrix-sdk@0.16.0.

(2025-11-30) Version 1.9.0

  • (Internal Improvement) Upgrade async-openai from our own etkecc fork (0.28.1-patched) to the official upstream version 0.31.1. This upgrade required some code adaptations to the new module structure, etc. While tested, regressions are possible.

(2025-11-28) Version 1.8.3

  • (Improvement) Add support for the BAIBOT_PERSISTENCE_SESSION_ENCRYPTION_KEY environment variable for configuring persistence.session_encryption_key

  • (Improvement) Add support for the BAIBOT_USER_ENCRYPTION_RECOVERY_RESET_ALLOWED environment variable for configuring user.encryption.recovery_reset_allowed

  • (Internal Improvement) Dependency updates.

(2025-11-20) Version 1.8.2

  • (Internal Improvement) Dependency and compiler updates (Rust 1.89.0 -> 1.91.1).

(2025-09-12) Version 1.8.1

  • (Internal Improvement) Dependency updates.

(2025-09-08) Version 1.8.0

  • (Internal Improvement) Upgrade mxlink (1.9.0 -> 1.10.0) and matrix-sdk (0.13.0 -> 0.14.0)

  • (Internal Improvement) Upgrade Rust (1.88.0 -> 1.89.0)

  • (Internal Improvement) Upgrade Debian base for container images (12/bookworm -> 13/trixie)

(2025-07-11) Version 1.7.6

  • (Internal Improvement) Dependency updates. This version is based on mxlink@1.9.0 (which is based on the newly released matrix-sdk@0.13.0, which contains fixes for some security vulnerabilities)

(2025-06-10) Version 1.7.5

  • (Internal Improvement) Dependency and compiler updates (Rust 1.86 -> 1.86).

(2025-06-10) Version 1.7.4

  • (Internal Improvement) Dependency updates.

(2025-06-10) Version 1.7.3

  • (Internal Improvement) Dependency updates. This version is based on mxlink@1.8.0 (which is based on the newly released matrix-sdk@0.12.0, which contains fixes for important security vulnerabilities)

(2025-05-11) Version 1.7.2

  • (Bugfix) Allow image_generation.size configuration value for OpenAI to be null to allow the model to choose the size automatically and default to that

(2025-05-11) Version 1.7.1

  • (Bugfix) Fix lack of documentation for the new image-editing feature in the !bai usage command's output

(2025-05-10) Version 1.7.0

  • (Feature) Add vision support to the OpenAI and Anthropic providers. You can now mix text and images in your conversations - fixes issue #5

  • (Feature) Add image-editing support to the OpenAI provider

  • (Improvement) Add compatibility with OpenAI's gpt-image-1 model - fixes issue #40

  • (Change) Rework image-creation to avoid command conflicts with image-editing. The image-creation command syntax is now !bai image create <prompt> (previously: !bai image <prompt>).

  • (Internal Improvement) Dependency and compiler updates

Warning

Unlike other releases, this release is not published to crates.io, because it relies on multiple library forks (async-openai and anthropic-rs) sourced from Github.

(2025-04-12) Version 1.6.0

  • (Internal Improvement) Dependency updates. This version is based on mxlink@1.7.0 (which is based on the newly released matrix-sdk@0.11.0)

(2025-03-31) Version 1.5.1

  • (Internal Improvement) Dependency updates

(2025-02-27) Version 1.5.0

(2024-12-12) Version 1.4.1

  • (Bugfix) Fix detection for whether the bot is the last member in a room, to avoid incorrectly leaving multi-user rooms that have had at least one person leave (3c47d40781)

(2024-11-19) Version 1.4.0

  • (Improvement) Dependency updates. This version is based on mxlink@1.4.0 (which is based on the newly released matrix-sdk@0.8.0). Once you run this version at least once and your matrix-sdk datastore gets upgraded to the new schema, you will not be able to downgrade to older baibot versions (based on the older matrix-sdk), unless you start with an empty datastore.

  • (Bugfix) Add missing typing notices sending functionality while generating images (9d166e35ba)

  • (Feature) Support for Matrix authenticated media, thanks to upgrading mxlink / matrix-sdk - fixes issue #12

(2024-11-12) Version 1.3.2

Dependency updates.

(2024-10-03) Version 1.3.1

  • (Improvement) Improves fallback user mentions support for old clients (like Element iOS) which use the bot's display name (not its full Matrix User ID). (d9a045a5e4)

(2024-10-03) Version 1.3.0

TLDR: you can now use OpenAI's o1 models, benefit from prompt caching and mention the bot again from old clients lacking proper user mentions support (like Element iOS).

  • (Feature) Introduces a new baibot_conversation_start_time_utc prompt variable which is not a moving target (like the baibot_now_utc variable) and allows prompt caching to work. All default/sample configs have been adjusted to make use of this new variable, but users need to adjust your existing dynamically-created agents to start using it. (85e66406dc)

  • (Improvement) Allows for the max_response_tokens configuration value for the OpenAI provider to be set to null to allow o1 models (which do not support max_response_tokens) to be used. See the new o1 sample config here. (db9422740c)

  • (Improvement) Switches the sample configs for the OpenAI provider to point to the gpt-4o model, which since 2024-10-02 is the same as the gpt-4o-2024-08-06 model. We previously explicitly pointed the bot to the gpt-4o-2024-08-06 model, because it was much better (longer context window). Now that gpt-4o points to the same powerful model, we don't need to pin its version anymore. Existing users may wish to adjust their configuration to match. (90fbad5b64)

  • (Bugfix) Restores fallback user mentions support (via regular text, not via the user mentions spec) to allow certain old clients (like Element iOS) to be able to mention the bot again. Support for this was intentionally removed recently (in v1.2.0), but it turned out to be too early to do this. (b40226826f)

(2024-10-01) Version 1.2.0

(2024-09-22) Version 1.1.1

  • (Bugfix) Fix thread messages being lost due to lack of pagination support (d4ddd29660) - fixes issue #13

  • (Bugfix) Fix Anthropic conversations getting stuck when being impatient and sending multiple consecutive messages (8b12bdf2b3) - fixes issue #13

(2024-09-21) Version 1.1.0

(2024-09-19) Version 1.0.6

Improvements to:

  • messages sent by the bot - better onboarding flow, especially when no agents have been created yet
  • documentation pages

(2024-09-14) Version 1.0.5

Further improves the typing notification logic, so that it tolerates edge cases better.

(2024-09-14) Version 1.0.4

Improves the typing notification logic.

(2024-09-13) Version 1.0.3

Contains fixes for some startup failures caused by partial initialization (errors during startup).

(2024-09-12) Version 1.0.0

Initial release. 🎉