1.24.2 (2026-08-03)
- override conventional-changelog-writer to fix empty changelog notes (5cb0c2e)
1.24.1 (2026-07-23)
- deps: update dependencies to latest (71709ff)
1.24.0 (2026-06-06)
- bridge: clean up mesh state on Claude Code exit (3088e00)
- core: add hasCoordinatorConnection and onError to transport (1133260)
- bridge: adapt pi bridge to graceful mesh degradation (5ba4e43)
- mesh-store: degrade gracefully when coordinator port is held by orphan (d9303ff)
1.23.1 (2026-06-03)
- bridge: use local tsx path instead of npx for claude-code bridge (1629c8e)
1.23.0 (2026-05-30)
- cli: add /agent-comms:agents slash command (16ea3cc)
- cli: add slash commands for agent-comms actions (7522d9e)
- bridge: key pending file by Claude Code PID, not just cwd (8ef9149)
- bridge: use synchronous hooks for Stop and PostToolUse drain (e5714fe)
- release: sync marketplace.json version on release (8d0e288)
1.22.0 (2026-05-30)
- bridge: add asyncRewake hooks for idle-Claude delivery (dacdeba)
1.21.2 (2026-05-30)
- bridge: buffer all delivery events for idle-Claude fallback (cb340fe)
1.21.1 (2026-05-30)
- deps: upgrade direct deps and add overrides to clear audit warnings (1712222)
1.21.0 (2026-05-30)
- bridge: reserve channel notifications for actionable events in Claude Code bridge (ffe123d)
1.20.0 (2026-05-30)
- bridge: populate meta.streamingBehavior on Claude Code channel notifications (8f23cc3)
- bridge: use streamingBehavior hint to select deliverAs in pi bridge (64be6af)
- core: add extractStreamingBehavior and delivery hint prefixes (58dbc5b)
- core: add StreamingBehavior type and extend message/action schemas (0c288a4)
- core: thread streamingBehavior through store and tool (2481743)
- document streamingBehavior delivery timing field and per-bridge behaviour (9551a2e)
1.19.5 (2026-05-27)
- bridge: use OS-assigned port for auto-started web servers (69d3624)
1.19.4 (2026-05-27)
- bridge: replace MeshStatePatch type assertion with type guard (d54cbb5)
1.19.3 (2026-05-27)
- core: remove spurious async from synchronous methods (5c594e4)
1.19.2 (2026-05-27)
- build: restore build step in pre-push hook using direct node calls (48ba490)
1.19.1 (2026-05-27)
- core: retry tls.createServer on intermittent OpenSSL ASN.1 race (6af1d19)
1.19.0 (2026-05-27)
- bridge: add E2E tests for PWA features (ca5f322)
- bridge: add sidebar toggle with collapse/expand (d8b2d47), closes #sidebar-toggle
- bridge: relax SW activation check for headless Chromium (87e5717)
- bridge: remove type assertions from PWA E2E test (28d7819)
- bridge: simplify SW activation test to registration check (6288265)
- bridge: verify SW activation without requiring controller claim (9131dd5)
- bridge: wait for SW controller after reload in PWA E2E test (da99706)
- build: use direct node invocations in pre-push hook (900b7c3)
- bridge: apply eslint --fix formatting to PWA E2E test (9a77db6)
- bridge: add E2E tests for deferred mesh connection and connect prompt (1da3db4)
- bridge: add E2E tests for web UI interactions (90a437f)
- build: simplify pre-push hook to avoid submodule deadlocks (6eddd38)
1.18.0 (2026-05-27)
- bridge: extract testable modules and add 31 new tests (b71aaa2)
- bridge: add room-list ID to ProjectTree for E2E test selectors (b930fe9), closes #room-list
- bridge: capture deep link before rerender clears URL params (c162f0c)
- bridge: correct /join test assertion from 'Switched to' to 'Joined' (ac1bb24)
- bridge: fix deep link E2E tests for room ID and message clearing (bfc55e4)
- bridge: isolate E2E test coordinator ports to prevent EADDRINUSE (c0f03ab)
- bridge: wait for room items before clicking in E2E tests (c949358)
- bridge: apply prettier and eslint formatting fixes (8e5a643)
1.17.1 (2026-05-27)
- render initial UI on first load without REST or mesh connection (496e0ee)
1.17.0 (2026-05-27)
- defer mesh connection on first visit to avoid browser prompt (e618be3)
1.16.1 (2026-05-27)
- skip REST API calls entirely on standalone PWA (e76698f)
1.16.0 (2026-05-27)
- sequential port discovery for standalone PWA mesh discovery (d23ba26)
- prettier formatting and void expression in main.tsx (c318dca)
- wrap void-returning callback in braces for no-confusing-void-expression (b8ef5df)
- prettier formatting (fc54d6f)
1.15.1 (2026-05-27)
- use relative paths for GitHub Pages subpath deployment (3ea54e4)
1.15.0 (2026-05-27)
- bridge: add mesh_set_visibility and mesh_get_visibility to buildAction (374ad2d)
- bridge: add PWA manifest, offline caching, and installability (3872e5f)
- bridge: add root entry point for pi auto-discovery (e16b39b)
- bridge: add service worker with push notification handling (b91537c)
- bridge: add URL query parameter deep linking for rooms and DMs (f4ce6e2)
- bridge: enable TLS transport across all bridges (927ee99)
- bridge: integrate PushManager into web server (51c7e64)
- bridge: pass discovery manager to CommsTool in all bridges (ab302d6)
- bridge: restore project tree sidebar, agent rename, and routeAction (74fd260)
- build: add mesh-worker.ts as separate esbuild entry point (c615bc8)
- core: add bidirectional approval wire messages and types (558c68b)
- core: add cryptographic identity generation (89ec5cb)
- core: add discovery module with mDNS and Tailscale backends (8063874)
- core: add federation wire messages and types (aca2526)
- core: add listener management and network interface discovery to MeshStore (8bb9570)
- core: add mesh_discover, mesh_advertise, mesh_unadvertise action types (fb9613b)
- core: add MeshVisibility type and stop() to discovery backends (696f11d)
- core: add multi-listener coordinator support with per-listener policies (cf897e8)
- core: add onPatch callback to MeshStore (4fc5676)
- core: add PushManager for browser push subscriptions (1dad588)
- core: add TlsTransport with certificate pinning (527429c)
- core: add VAPID key generation for Web Push (90ce608)
- core: add visibility state machine to DiscoveryManager (3bd6326)
- core: add WebSocketTransport for browser mesh participation (1dbe6c6)
- core: export VAPID and PushManager from public API (b68c4e7)
- core: handle discovery actions in CommsTool (8cf06c8)
- core: implement bidirectional connection approval (5fd3d14)
- core: implement FederationManager (04bb349)
- core: implement TcpTransport with connection lifecycle and event dispatch (a1d2196)
- core: implement Web Push encryption and VAPID signing (eacaa95)
- core: wire discovery backends into MeshStore and exports (e545dde)
- core: wire federation into MeshStore, CommsTool, and buildAction (9d5a0ac)
- core: wire listener actions through CommsTool and bridge helpers (5cb4a3b)
- core: wire visibility through MeshStore and CommsTool (0606977)
- web: add /ws/mesh bridge endpoint for browser mesh participation (c22e44b)
- web: add relay SharedWorker for cross-mesh message forwarding (f9d6c31)
- web: add RelayClient main-thread API (b163e66)
- web: add RelayPanel component with relay configuration UI (52b3eb7)
- web: add SharedWorker mesh node and main-thread MeshClient (c889c91)
- web: integrate MeshClient into frontend for real-time mesh state (b03bbd7)
- web: wire relay client into App, Sidebar, and main entry point (df4b83e)
- bridge: share mesh store between pi bridge and web server (6438629)
- build: replace lint-staged with direct eslint in git hooks (a495d81)
- ci: remove stale _site upload-artifact step (522e93b)
- ci: skip husky hooks during semantic-release (05eb4bb)
- core: add federation stubs to FileStore and fix test narrowing (b2abcab)
- core: handle EADDRINUSE race in coordinator election and graceful degradation (b0c3894)
- core: prevent event-loop starvation in delivery chain (c54c07d)
- core: prevent untracked markRead timers after shutdown (b45e215)
- core: remove invalid adapter reference from meshGetVisibility (58177a0)
- core: resolve merge conflict leftovers in tool.ts (90152dc)
- core: resolve merge conflicts from parallel agent integration (9acf30c)
- core: resolve type errors from parallel agent integration (c1e9af4)
- core: use listener.server.close() in transport shutdown (4c08bb0)
- remove noInlineConfig to allow eslint-disable for legitimate casts (e27af8d)
- resolve all ESLint errors with proper type narrowing and runtime validation (8d47f7d)
- resolve CI type errors and lint failures (7ffa4f3)
- resolve TypeScript errors from satisfies-based type narrowing (036b603)
- test: intercept transport events for listener policy test (b9a0d07)
- bridge: separate folder toggle from directory room selection (ae2a898)
- core: extract wire protocol and transport interface (852dc5f)
- core: inject transport into MeshStore via DI (1ab25b0)
- apply prettier formatting across codebase (7879d3b)
- add federation integration tests (19b2241)
- add visibility integration tests and test:visibility script (2ac7298)
- core: add delivery receipt integration tests (6a59a65)
- core: add listener policy integration test (386bbac)
- web: add relay-worker.ts as separate esbuild IIFE entry point (6f0f569)
- ci: update to Node 26 and latest action versions (665e14f)
- ignore local .worktrees/ directories (11e1a29)
1.14.0 (2026-05-25)
- bridge: add buildProjectTree function with unit tests (86d0250)
- bridge: add footer status line with project room, web URL, and unread count (9ce0811)
- bridge: add ProjectTree component and rebuild sidebar (2c38d16)
- bridge: categorise delivery events as actionable vs informational (bffbedb)
- cli: add /comms-url slash command (0877b98)
- core: add agent renaming via name_changed event and rename_agent action (1740a1a)
- core: add isActionableEvent for delivery event classification (12cc749)
- core: auto-create project rooms per working directory (a44a52a)
- bridge: add required display field to sendMessage call (5721170)
- bridge: correct sendMessage API usage and add name_changed to TUI (40fd3e4)
- bridge: fix handler return type and exclude frontend tests from tsc (f962966)
- bridge: fix TypeScript errors in tests and command handler (d7aef53)
- bridge: resolve ESLint errors in web UI components and tests (ddce4b9)
- bridge: rewrite garbled pi bridge index from reconstruction (4efcdff)
- bridge: use requireElement with tag for join form inputs (fc7019a)
- build: deduplicate package.json keys and add missing preact dependency (8a10193)
- build: exclude hanging multi-process integration tests from pnpm test (c43cca3)
- build: remove stale imperative files and fix project-tree.ts (642dcac)
- core: remove duplicate isActionableEvent export (8a50ae8)
- lint: add test files to allowDefaultProject and fix prettier formatting (35a831f)
- lint: downgrade require-await to warning and fix prettier formatting (9d751a8)
- lint: rename JSX test files to .tsx and delete stale duplicates (5d16af2)
- lint: resolve all ESLint errors flagged by CI (4bcf690)
- lint: restore async handler, add non-nullable-type-assertion-style to test overrides (0eeb670)
- mesh: deduplicate delivery events and clean up stale peers (f78ba74)
- mesh: deduplicate delivery events at the MeshStore level (d7d67c5)
- mesh: merge members and subscribedRooms on patch receive (3406c4e)
- mesh: only owning store broadcasts agent offline status (d84e227)
- mesh: prevent duplicate name_changed delivery to agent in room (469dce3)
- mesh: skip setAgentOffline if agent is already offline (0175a55)
- tool: route /join and /leave through local handlers for correct state (7a8eb36)
- bridge: replace imperative DOM with Preact components (e0699d6)
- bridge: serve frontend as static assets instead of generated TS (c700219)
- web: extract inline HTML frontend into TypeScript modules (c272bd0)
- bridge: add message conversion unit tests, component tests, and web server integration tests (9449ce5)
1.13.0 (2026-05-23)
- bridge: add web_url action to agent_comms tool (db3d73e)
- bridge: enable DM by clicking agent in sidebar (5d6cb33)
- bridge: extract inline HTML frontend into TypeScript modules (196dc6b)
- bridge: add Playwright e2e tests for web UI (a263eeb)
- bridge: expand unit and e2e test coverage (ee9c0d4)
- build: adopt typed test file suffix convention (b46dc4b)
- build: fix pre-push ESLint errors (ffc1408)
- build: relax ESLint rules for test files (d15fe76)
1.12.0 (2026-05-21)
- add commitlint and lint-staged (020fbdf)
1.11.0 (2026-05-21)
- bump README version badge on release (73bea55)
- add badges to README (4d640f9)
- fix prettier formatting in sync-release-metadata (33140fd)
1.10.2 (2026-05-21)
- filter release commits from CHANGELOG.md (6513495)
1.0.0 (2026-04-27)
- add npm publishing config — entry points, exports, provenance, packageManager (8d87c31)
- add no-pointless-reassignments custom rule (3f49ba6)
- add setup CLI with harness auto-detection (c8fae13)
- add Codex and OpenCode bridges, extract shared helpers, make harness pluggable (489376b)
- add Codex and OpenCode bridges, fix types and deps (25c2d2e)
- add pi extension bridge with delivery watcher (c8ef78a)
- add Claude Code MCP channel server bridge (b20fd11)
- add barrel export for bus protocol, store, and tool (11b83c3)
- add BusAction tool handler with human-readable results (e0025f9)
- add filesystem-based bus store — agents, rooms, DMs, delivery (fd05a5e)
- add minimal nanoid utility using crypto.getRandomValues (c39d1f5)
- add bus protocol types — identity, rooms, messages, delivery events (5d33018)
- remove MCP_TOOL_SCHEMA alias, add typebox dep, fix eslint config (cf1c335)
- resolve type errors — narrow undefined access, use Zod schema for MCP input (bb23867)
- resolve all ESLint errors (0 errors remaining) (1d863fc)
- copy cli.ts to temp dir for npx execution (174f297)
- add .js shim for npx compatibility (3abbbe1)
- rename package from agent-bus to agent-comms (f513c22)
- move CLI to src/cli.ts, rename bin to bin.js (09e78ec)
- convert bin and stop hook to TypeScript, run via tsx (dd57267)
- make AgentIdentity.harness a plain string (64d41e2)
- use literal path placeholders in JSON/TOML configs (01595dc)
- replace hardcoded ~/Developer/agent-bus/ paths with $AGENT_BUS_DIR (fd2397d)
- remove project structure and implicit file paths from README (37d1a98)
- add README with symlinked AGENTS.md and CLAUDE.md (50dcdf9)
- update pnpm-lock.yaml (b823e41)
- add release.config.mjs — semantic-release configuration (552ea2a)
- add semantic-release with conventionalcommits preset (adbca55)
- pin Node 22 via .tool-versions (db2df31)
- initialise project scaffolding with TypeScript config (8d004c0)
- add GitHub Actions workflow — lint, typecheck, test, release (9f84539)
- add *.tgz to gitignore (f44e9a5)
- clean up stale .mcp.json from local testing (61b9e08)
- switch from npm to pnpm (59849ec)
- (0eed337)
1.0.1 (2026-04-27)
- remove registry-url from setup-node to allow OIDC trusted publishing (8f13fc9)
1.0.2 (2026-04-27)
- bump actions to latest — checkout@v5, pnpm@v5, setup-node@v6 (c284a35)
1.0.3 (2026-04-27)
- configure dependabot for npm and github-actions weekly updates (72fb7ce)
1.0.4 (2026-04-27)
- add bun types to tsconfig to resolve lint errors (ef62e40)
- accept dependabot dep bumps and lockfile update (0dcc5b3)
- bump node to lts/24, add husky pre-push hook (8a036ea)
- set 7-day minimum release age in project .npmrc (600f2cb)
1.0.5 (2026-04-27)
- update README install instructions for npm registry (1231709)
1.0.6 (2026-04-27)
- remove bin.js shim, use compiled dist/cli.js directly (3ba1752)
1.0.7 (2026-04-27)
- add shebang to dist/cli.js via build step (22b99d9)
1.0.8 (2026-04-27)
- handle missing .mcp.json when configuring Claude Code bridge (4dc967c)
1.0.9 (2026-04-27)
- replace bridge child process spawns with in-process static imports (c4bfa9f)
1.0.10 (2026-04-27)
- move @modelcontextprotocol/sdk to production dependencies (0a018db)
1.0.11 (2026-04-27)
- remove all stale agent-comms/agent-bus pi extension paths (a81bd7a)
1.0.12 (2026-04-27)
- isolate agent identity per harness (fbded01)
1.0.13 (2026-04-27)
- isolate agent identity per harness and working directory (15585f8)
1.0.14 (2026-04-27)
- deliver incoming messages as steering messages (465416c)
1.1.0 (2026-04-27)
- add Codex PostToolUse hook for mid-turn message delivery (378805e)
1.2.0 (2026-04-28)
- add stale agent cleanup via PID probing (coordinator) (3561bd7)
- persist MeshStore identity to disk for cross-restart recovery (de2ad42)
- wire MeshStore into all bridges, remove filesystem polling (c337e03)
- add generic MCP bridge for any MCP-compatible harness (addc0b5)
- add Claude Code marketplace manifest (81b911c)
- add Claude Code plugin manifest and pi package manifest (10a254e)
- isolate test meshes on separate ports (eb6b407)
- make tests resilient to stale mesh state between runs (8d44fc6)
- merge state_sync instead of replacing — prevents losing local state (732b9a0)
- remove identity file persistence — incompatible with concurrent sessions (1164098)
- move CommsError import to top of mesh-store.ts (6ee7fb0)
- remove Codex hooks — delivery now handled by MeshStore (c7ba9dc)
- rename Bus to Comms, extract interface, add TCP mesh store (bbfbacf)
- update README and package description for TCP mesh architecture (5600f08)
- document generic MCP bridge for any MCP-compatible harness (2e1d5f5)
- add marketplace setup to Claude Code install instructions (ad62cdb)
- fix pi and Claude Code install commands (257d517)
- add Claude Code and pi install instructions to README (dfa61a3)
- add MeshStore end-to-end test (2256965)
- update lockfile after dependency resolution (a253ae9)
1.3.0 (2026-04-28)
- room member awareness — join roster and status change notifications (2399f89)
1.3.1 (2026-04-28)
- add motivation section, fix broken install path, improve punctuation (a57b465)
1.4.0 (2026-04-28)
- automatic delivery status and read receipts (b61e995)
1.4.1 (2026-04-28)
- add delivery status, read receipts, member awareness to README (d55928f)
1.4.2 (2026-04-28)
- replace ASCII diagrams with Mermaid in README (97ecf78)
1.4.3 (2026-04-28)
- rename "bus" to "mesh" in package.json and plugin manifest (9954bbf)
- rename "bus" to "comms" in FileStore comments and default path (21f0894)
- rename "bus" to "mesh" in CLI, remove legacy "agent-bus" detection (9ea8934)
- rename "bus" to "mesh" in plugin marketplace manifest (7e03c89)
- rename "bus" to "mesh" in bridge tool descriptions (5c0807e)
1.5.0 (2026-04-28)
- add user bridge — TUI, web UI, and non-interactive CLI (97ef406)
1.6.0 (2026-04-28)
- auto-start web UI from every bridge (5c1af03)
1.7.0 (2026-04-29)
- add decline_invite action with reason message (809a87f)
- richer formatDeliveryEvent for room invites (6f570f7)
- enrich room_invite event with room description, inviter name and cwd (2b5c3f0)
- show cwd and subscribed rooms in list_agents output (d260d10)
- expose cwd on AgentIdentity (1104da2)
- fix prettier and eslint violations from pre-push hook (d6eabd1)
1.8.0 (2026-05-08)
- use dynamic port, await controller init, return structured handle (48ae0b4)
- shut down web server before bridge store on session end (a664b4b)
- track and destroy all TCP sockets on shutdown (4199447)
1.8.1 (2026-05-21)
- replace custom banEslintDisable rule with noInlineConfig (30fc24b)
- add .pi/ to gitignore (1ca0e0d)
1.8.2 (2026-05-21)
- add error listener to coordinator server sockets (833aeef)
- coordinator survives ECONNRESET on accepted socket (2d8c34e)
- coordinator survives ECONNRESET on accepted socket (567a896)
1.9.0 (2026-05-21)
- publish agent-comms to the MCP Registry (89c2a4a)
- rename release config to TypeScript (a8c6eb7)
1.9.1 (2026-05-21)
- correct MCP Registry name casing to io.github.ExaDev (d788fe0)
1.10.0 (2026-05-21)
- add changelog generation to release pipeline (76038ac)
- add changelog generation to release pipeline (ea43920)
- update pnpm-lock.yaml after adding @semantic-release/changelog (c7bcb2c)
1.10.1 (2026-05-21)
- rewrite CHANGELOG.md to match semantic-release format (f030208)