Releases: astrogilda/waitbus
Releases · astrogilda/waitbus
Release list
v0.2.0
Features
- mcp: agent-to-agent messaging over MCP (6e49efb)
- mcp: orient agents with server-level instructions (a45cfe6)
- mcp: refine the MCP surface for tool-biased clients (bdbc405)
Bug Fixes
- api: correct package docstring and expose version (caf99c8)
- install: keep the daemons runnable under executable-stack interpreters (f3d35d0)
- mcp: conform the tool and notification surface to strict MCP clients (3c29e19)
Documentation
- add AGENTS.md, llms.txt, and an agent doc-QA loop (b1d077d)
- add Context7/DeepWiki indexing and copy-edit prose (d45e365)
- code: repoint stale doc pointers and add usage examples (a69f646)
- examples: correct the waitbus repository URL in example READMEs (b865c7c)
- mcp: describe output schema fields and add input examples (0a170db)
- messaging: add public agent-messaging guide and examples (77e8e31)
- readme: point at the live MCP specification URL (bb5a897)
- skill: link the agent-messaging guide by relative path (68d3420)
- tighten agent-facing wording and headings (eddb283)
v0.1.5
Added
- Agent-to-agent messaging over MCP. A new
emit_agent_messagetool sends a
message to a named agent (or*for everyone), and the recipient reads it
with the cursor-paginatedread_agent_messagestool. Awaitbus://agent/{name}
resource acts as a doorbell that pings when a message arrives, so the agent
reads only when there is something to read. Messages share the event store but
stay out of the defaulttail_eventsandwaitbus://currentviews;tail_events
gains anevent_typesfilter so a client can opt into them. Agent identities are
cooperative and self-asserted — the bus is single-user and same-UID, so this is
not a security boundary.
v0.1.4
Fixed
- MCP tool
outputSchemas are now top-level object-type JSON Schemas instead of
bare$refwrappers. The Python SDK resolved the$reftransparently, but the
official TypeScript SDK validates the schema strictly, so MCP clients built on it
(the MCP Inspector, and likely Claude Desktop) rejectedtools/list. The schemas
now pass strict cross-implementation validation. - The MCP server no longer sends
notifications/resources/updatedfor the
non-subscribablewaitbus://event/{id}URI. That notification is reserved for
resources the client has explicitly subscribed to; the unsolicited push could
trip a strict client's protocol checks. - Server-to-client notifications are held until the client completes the initialize
handshake (notifications/initialized) rather than being flushed when the session
opens. - The
notifications/claude/channelextension is sent only to clients that
negotiated theclaude/channelexperimental capability, so a non-Claude client is
never sent the vendor notification.
Added
- The four read tools carry
readOnlyHintannotations (the three point reads also
carryidempotentHint), so MCP clients can recognize them as safe, side-effect-free
calls.
v0.1.3
Changed
- Secrets are stored in a single
0600-modesecrets.jsonunder the user
state directory and read with a stdlib JSON parse, replacing the
systemd-credsencrypted-credential backend. At-rest protection of the file
is delegated to host full-disk encryption (FileVault / LUKS); local access is
bounded by the file's owner-only permissions and, for the broadcast socket,
the kernel's same-UID peer-credential check.install-credentialsreads the
value from--fileor stdin and merges it with an atomic replace; the
--valueflag is gone because it leaked secrets into shell history. - The webhook listener is now opt-in. A default install ships secret-free; the
broadcast and wait paths need no secret. Staging the GitHub webhook secret
(install-credentials github-webhook-secret) is what enables the listener.
Removed
- The broadcast subscribe protocol no longer carries a bearer token. The
AF_UNIXbroadcast socket is already restricted to the connecting user by the
kernel's peer-credential check, so the token guarded nothing a same-UID peer
could not already reach. The subscribe frame'stokenfield and the
subscribe_rejectedreason="token"reject are removed. This is a breaking
wire-protocol change (acceptable pre-1.0).
v0.1.2
Fixed
- The systemd daemons failed to start under an interpreter with an executable
stack. uv and pyenv standalone Python builds ship the interpreter without a
non-executableGNU_STACKheader, so the kernel assumes an executable stack
and glibc allocates writable-and-executable thread stacks; the units'
MemoryDenyWriteExecutesetting blocks that, so thread creation failed with
"can't start new thread".install-systemdnow detects an executable-stack
interpreter and writes a drop-in that disables only that protection for the
affected units, with a notice on how to restore it. Interpreters with a
non-executable stack are unaffected and keep the protection.
v0.1.1
Added
- MCP Registry listing: the package-ownership metadata (
mcp-name) is now
carried in the project README sowaitbuscan be discovered and installed
through the Model Context Protocol registry. No code or API changes.
v0.1.0
waitbus v0.1.0 — first public release