Changelog
All notable changes to this project will be documented in this file.
Look up exact commands, tool names, config values, and behavior.
[0.4.3] - Unreleased
Added
- Added a Fumadocs-powered GitHub Pages site generated from the repo docs, including repo-aware base-path handling, search, Open Graph routes, and LLM-friendly text outputs.
Fixed
- Topic pages in the SPA workbench now resync after live deletions instead of holding stale focus or drifting behind the SSE event stream.
- The topic stream handling now ignores no-op presence updates, bounds catch-up work, and hardens ordering so browser sessions recover more cleanly under concurrent delete and refresh activity.
Documentation
- Refreshed the docs site landing page, navigation, install sections, and reference coverage,
including a dedicated search-and-embeddings reference page and corrected
/docschild links. - Refreshed the Web UI screenshots used in the README and docs so the published docs match the current workbench.
Infrastructure
- CI now skips duplicate docs-site builds on direct
mainpushes when the same change set was already validated in pull request workflows.
Upgrade
-
Upgrade to
0.4.3to pick up the live-delete workbench resync fix and the latest docs-site refresh. Protocol and package interfaces otherwise remain aligned with0.4.2. -
To preview this release explicitly with
uvx, run:uvx --from "agent-bus-mcp[web]==0.4.3" agent-bus serve
[0.4.2] - 2026-04-12
Fixed
- Published wheels and sdists now actually include the built Web UI bundle. This fixes packaged
installs like
uvx --from "agent-bus-mcp[web]==0.4.2" agent-bus serve, which could previously fail with the “Frontend bundle not found” page even though CI had built the frontend.
Documentation
- Reworked the README so it starts with the core value proposition for Agent Bus: local, durable coordination between coding agents on the same machine.
- Added a lightweight Diataxis-style docs layout under
docs/with separate tutorial, how-to, reference, and explanation entry points. This makes it easier to understand when Agent Bus is a good fit, how to install it, and where to look up exact runtime details.
Infrastructure
- The publish workflow now uses GitHub OIDC trusted publishing for both TestPyPI and PyPI instead of long-lived API-token secrets.
- CI and wheel builds now use
pnpm/action-setup@v5, which moves the repo off the deprecated Node.js 20 action runtime.
Upgrade
- This release adds a packaging fix for the Web UI bundle alongside the onboarding and release
automation work. Protocol and CLI behavior otherwise remain aligned with
0.4.1.
[0.4.1] - 2026-04-10
Fixed
- The background embedding worker now uses a read-only readiness probe while idle and only enters
the Rust-side write transaction when embedding work is actually pending, which removes the
repeated idle SQLite writer churn that could cascade into
fseventsdspikes on macOS. - Lease claiming and job claiming now stay coordinated inside the Rust core, while idle workers
release their self-held lease promptly so
agent-bus cli embeddings indexcan still take the exclusive path without getting blocked behind a sticky idle background worker. - Repeated embedding readiness probes no longer rewrite SQLite schema objects on every connect.
The DB now initializes schema once per
CoreDbinstance so the supposedly read-only peek path stays low-churn in practice as well as in design.
Upgrade
-
If you run long-lived background workers together with manual
agent-bus cli embeddings indexruns, upgrade to0.4.1to pick up the lease handoff and idle-churn fixes. -
To preview this release explicitly with
uvx, run:uvx --from agent-bus-mcp==0.4.1 agent-bus --help
[0.4.0] - 2026-04-08
Breaking Changes
- The browser UI served by
agent-bus serveis now a packaged React SPA workbench instead of the older Jinja/HTMX interface. - The legacy template partials and browser-only HTML fragment routes have been removed. The web
surface now centers on the SPA shell plus
/api/*JSON and SSE endpoints.
Added
- Added a tabbed SPA workbench for browsing topics, opening multiple threads at once, searching from the sidebar, and following live updates through SSE-backed invalidation.
- Added frontend unit and Playwright smoke coverage, and package builds now include the compiled frontend bundle automatically in wheels and sdists.
Changed
- The reusable
agent-bus-workflowsskill now spells out safer review-loop defaults, includingsync(wait_seconds=0)for backlog catch-up and an explicit summarize-and-confirm stop before an agent starts implementing findings the user did not yet approve. /api/stream/topicsnow uses a lightweighttopics_versioninvalidation check instead of rebuilding full topic summaries on every poll, which reduces SQLite contention and makes live topic-list updates cheaper under active browser sessions.
Fixed
agent-bus servenow exits on the firstCtrl+Ceven when browser tabs still hold active SSE topic streams open. This local-dev shutdown path now prioritizes returning control to the shell over gracefully draining long-lived browser stream connections./api/stream/topicsand/api/stream/topics/{topic_id}now treat transient SQLiteDBBusyErrorconditions as non-fatal while polling, keeping the SSE stream alive with normal heartbeat behavior instead of crashing with traceback-level noise.
Upgrade
-
Packaged installs already include the built frontend bundle. If you run from a source checkout, rebuild the frontend before starting the browser UI:
pnpm --dir frontend build uv run agent-bus serve -
To preview this release explicitly with
uvx, run:uvx --from agent-bus-mcp==0.4.0 agent-bus serve
[0.3.1] - 2026-04-06
Breaking Changes
- Topic participant names are now reserved for the lifetime of the topic.
topic_join()rejects duplicateagent_namevalues withAGENT_NAME_IN_USEinstead of allowing multiple clients to share the same name. - Reconnecting clients are now expected to persist and reuse the returned
reclaim_tokenif they want to keep the same identity after a restart or reconnect. - The dialog protocol
spec_versionis nowv6.3.
Changed
topic_join()now returnsreclaim_tokenin bothstructuredContentand plain-text output so text-only clients can persist reconnect state.delete_topic()now removes durable agent-name reservations together with the rest of the topic-owned state.sync.max_itemsmetadata now exposes the configured cap while preserving the longstanding default ofmin(20, AGENT_BUS_MAX_SYNC_ITEMS).agent-bus --versionandagent-bus cli --versionnow report the installed package version.ping()now returnspackage_version, and the optional Web UI footer now shows the runtime package version instead of a stale hardcoded string.
Added
- The repo now includes a reusable
agent-bus-workflowsworkflow skill asset for Agent Bus collaboration, handoffs, and reviewer/implementer loops.
Upgrade
-
If your agents often join topics with generic names like
codexorclaude, update them to:- choose semantic names up front when possible
- handle
AGENT_NAME_IN_USEby selecting a suggested fallback name or by retrying with the originalreclaim_token
-
If your client persists Agent Bus state, store the last successful
agent_nameandreclaim_tokentogether per topic so reconnects can reclaim the same identity cleanly. -
If you use
uvx, you can preview the new release explicitly with:uvx --from agent-bus-mcp==0.3.1 agent-bus --help
[0.2.1] - 2026-04-01
Fixed
- Fixed the optional Web UI on current FastAPI/Starlette builds.
agent-bus servein0.2.0could start successfully but fail with500 Internal Server ErroronGET /because the web routes still used the oldTemplateResponse("template.html", context)calling convention. - Added a regression test covering the topic list page and a topic detail page render so the Web
UI
servepath stays covered in future releases.
Upgrade
-
If you already installed
0.2.0and use the Web UI, upgrade to0.2.1. -
To force
uvxto refresh a cached0.2.0environment, run:uvx --refresh-package agent-bus-mcp --from "agent-bus-mcp[web]==0.2.1" agent-bus serve
[0.2.0] - 2026-04-01
Breaking Changes
- Semantic indexing now uses
fastembedin the Rust core instead of the older raw ONNX/tokenizer path. - Existing semantic embeddings from
0.1.xare treated as stale and must be rebuilt once after upgrading. - The old ONNX/tokenizer override environment variables are no longer part of the supported config surface:
AGENT_BUS_EMBEDDING_ONNX_FILE,AGENT_BUS_EMBEDDING_TOKENIZER_FILE,AGENT_BUS_EMBEDDING_ONNX_PATH, andAGENT_BUS_EMBEDDING_TOKENIZER_PATH. AGENT_BUS_EMBEDDING_MODEL=intfloat/e5-small-v2is no longer accepted. Useintfloat/multilingual-e5-smallinstead.
Changed
- Added a SQLite-backed leader lease for the background embedding worker so CLI indexing and background indexing coordinate against the same DB lock.
- Unified CLI and background embedding work behind the shared
index_message_rows()/_index_message()pipeline. agent-bus cli embeddings indexnow fails explicitly when indexing fails instead of reporting a successful run with only per-row errors.- Tool metadata for
topic_createandtopic_joinis more explicit for agent clients, including exported schema guidance for the create-then-join flow.
Migration
-
Upgrade the package to
0.2.0.PyPI / uvx:
uvx --from agent-bus-mcp==0.2.0 agent-bus --helpLocal checkout:
uv sync uv run maturin develop -
If you set embedding-related environment variables, update them before restarting the server:
- Keep using
AGENT_BUS_EMBEDDING_MODELto select the model. - Use
AGENT_BUS_EMBEDDING_CACHE_DIRorFASTEMBED_CACHE_DIRto control the local model cache. - Stop using the removed ONNX/tokenizer file and path override variables listed above.
- Keep using
-
If you previously used
AGENT_BUS_EMBEDDING_MODEL=intfloat/e5-small-v2, change it to:export AGENT_BUS_EMBEDDING_MODEL=intfloat/multilingual-e5-small -
Rebuild semantic embeddings for existing messages once after upgrading:
uvx --from agent-bus-mcp==0.2.0 agent-bus cli embeddings index # or from a local checkout: uv run agent-bus cli embeddings index -
Expect the first semantic run to download the selected
fastembedmodel into the local cache. -
If hybrid search still reports partial or missing semantic coverage, rerun the indexing command until it completes cleanly.
-
If you are upgrading from a much older database layout and hit a schema mismatch, wipe the DB and recreate it:
agent-bus cli db wipe --yes