> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fs.soquincy.qzz.io/llms.txt
> Use this file to discover all available pages before exploring further.

# July 12, 2026: ChromaDB knowledge base and 7 AI providers

> Freesona now supports seven AI providers, a Discord-managed ChromaDB knowledge base, multimodal input on NVIDIA NIM, anniversary tracking, and fixes.

A big week for providers and memory. Freesona now supports seven AI providers, a fully managed local knowledge base, and multimodal inputs beyond Gemini.

## New features

* **Multi-provider support expanded to seven providers.** You can now run Freesona on Gemini, OpenAI, Ollama, NVIDIA NIM, Azure AI Foundry, Groq, or OpenRouter, and switch between them at runtime with `/model`. Bring your own key for whichever provider you prefer. See [AI Providers](/features/ai-providers).
* **GitHub Models provider.** Authenticate with a `GITHUB_TOKEN` to route generations through the GitHub Models catalog using the same OpenAI-compatible flow as other providers. See [Environment Variables](/reference/environment-variables).
* **Knowledge base commands.** Manage a local ChromaDB knowledge base directly from Discord with `/kbadd`, `/kblist`, `/kbsearch`, and `/kbdelete`. Ingestion now accepts `.txt`, `.json`, and `.pdf` files, and the retrieval flow is provider-neutral so it works on every provider. See [Knowledge Base](/features/knowledge-base).
* **Multimodal on non-Gemini providers.** Image attachments are now forwarded as base64 payloads to compatible non-Gemini providers (starting with NVIDIA NIM), so vision prompts are no longer Gemini-only. See [AI Providers](/features/ai-providers).
* **Anniversary tracking.** Freesona can track and announce member anniversaries per guild, backed by a new `anniversaries.db` store.
* **Warning system.** A first-class warning workflow with a configurable auto-action threshold. See [Moderation](/guides/moderation).

## Updates

* **Server-side memory continuity.** Conversation continuity now uses the Interactions API with `previous_interaction_id` on supported providers, replacing the old rolling-window approach. Long-term facts are scoped to a stable `guild_id + user_id` key so memories follow the right user across channels. See [Memory](/features/memory).
* **Per-user, per-channel debouncing.** Response debouncing is now scoped per user and per channel instead of globally, so parallel conversations feel more responsive.
* **Per-user autonomy cooldown.** Autonomous replies now enforce a cooldown per user, preventing the bot from over-engaging with any single member. See [Autonomy](/features/autonomy).
* **Typing indicators.** Freesona now shows a typing indicator while generating a response, so users know a reply is on the way.
* **Runtime RSS channel controls.** New `/rss setchannel` and `/rss clearchannel` commands let you change the announcement target without restarting. See [RSS Feeds](/guides/rss-feeds).
* **Configurable port and debounce.** The web port and debounce interval are no longer hardcoded — set them via environment variables. See [Environment Variables](/reference/environment-variables).
* **Sample config file.** The shipped config is now `config.sample.json` so your local settings won't get overwritten on update. See [Configuration](/configuration).
* **Reply threading.** The bot once again replies directly to the triggering message where appropriate, keeping conversations easier to follow.

## Bug fixes

* Fixed multi-user identity confusion where the model could conflate messages from different users in the same channel.
* Fixed vision hallucinations and enabled reliable base64 image payloads on NVIDIA NIM.
* Fixed a rate limiter error on the Gemini provider.
* Fixed a memory extraction exception when the model returned non-dict JSON for user facts.
* Fixed autonomy crashes when the bot attempted to post in a blocked channel.
* Fixed the math cog so it degrades gracefully when optional plotting dependencies are missing.
* Corrected `~randommember` permission requirements and clarified `/clearmemory` behavior in the [Command Reference](/reference/commands).
