Repository navigation
v0.3.0
Before upgrading. fxbot now runs as containers, and Settings' Update in 0.1 or 0.2 can't make that move. Run setup.sh again instead, the command under Install: it stops the old service, copies its database into the database container, and starts the containers on the same chats, key, and settings. The old files and database stay until you remove them, and sudo fxbot status says how, or how to go back. Migration 0005_memories adds memories and vectors, and needs pgvector, which the database container has: on the machine's own Postgres, it stops and says to run setup.sh. The local embedder downloads its 310 MB model on its first start, holds about 380 MB, and fills in vectors for existing messages in the background. A checkout moves its database too: see the README's Run from a checkout.
- Containers.
setup.shinstalls fxbot as containers, with podman, or docker when only docker is installed: fxbot's image from ghcr.io, for amd64 and arm64, pgvector's Postgres image, and the local embedder. It no longer installs Node or the distro's Postgres.sudo fxbotruns them:status,logs,update,up,down,restore,rotate-key, andembedder. - Updates through the machine. Settings' Update asks the machine, which starts the new release and waits until it answers. If it doesn't, the old release comes back by itself, on the backup taken before the new one's migrations, and Settings shows why. The database keeps running, and running chats finish first.
- Memories. Each bot keeps what it learns: it saves one fact at a time with
memory_save, finds them withmemory_search, and removes wrong ones withmemory_forget, which the chat shows as sentences. The newest are in its instructions on every turn, within 2% of the model's context window, and the owner sees, adds, edits, and deletes them in the bot panel's Memories tab. - Memory search by meaning. Memory search and
chat_historymatch by meaning as well as by words. The vectors come from a local embedder (EmbeddingGemma 2 on the CPU, or Qwen3-Embedding on an NVIDIA GPU), from a provider's embedding model, or from none, picked in Settings' Memory search, or withsudo fxbot embedder. Chat messages get vectors too, from their first 8,000 characters, which Settings can change or turn off. sudo fxbot rotate-keyseals every stored key and token again under a new key, and keeps the old key until you remove it.- A checkout's database and local embedder run from
deploy/compose.dev.yaml.npm run updateis gone: a checkout updates with git. - The server listens on
FXBOT_HOST, 127.0.0.1 by default. - fxbot reads its own lists of MCP servers and skills from its site, https://fxbot.sh, every hour, so new picks show up between releases. Before, it read them only with
FXBOT_LISTS_URLset, which now points it at another site. - The website's top bar and the README link to the Hackers in the Loop community on Discord.