Skip to content

Releases: swoofer/mcp-coordinator

v1.5.0

Choose a tag to compare

@github-actions github-actions released this 22 Jul 23:13
903adb1

1.5.0 (2026-07-22)

Features

  • mqtt: external broker + org-scoped bridge (multi-instance) with tenant-isolation hardening (#224) (3286a1f)

What's Changed

  • feat(redis): opt-in multi-instance shared state (locks, rate-limit, membership, epoch pub/sub) by @swoofer in #223
  • feat(mqtt): external broker + org-scoped bridge (multi-instance) with tenant-isolation hardening by @swoofer in #224
  • chore(main): release 1.5.0 by @github-actions[bot] in #225

Full Changelog: v1.4.0...v1.5.0

What's Changed

  • feat(redis): opt-in multi-instance shared state (locks, rate-limit, membership, epoch pub/sub) by @swoofer in #223
  • feat(mqtt): external broker + org-scoped bridge (multi-instance) with tenant-isolation hardening by @swoofer in #224
  • chore(main): release 1.5.0 by @github-actions[bot] in #225

Full Changelog: v1.4.0...v1.5.0

What's Changed

  • feat(redis): opt-in multi-instance shared state (locks, rate-limit, membership, epoch pub/sub) by @swoofer in #223
  • feat(mqtt): external broker + org-scoped bridge (multi-instance) with tenant-isolation hardening by @swoofer in #224
  • chore(main): release 1.5.0 by @github-actions[bot] in #225

Full Changelog: v1.4.0...v1.5.0

v1.4.0

Choose a tag to compare

@github-actions github-actions released this 21 Jul 20:33
226dd3f

1.4.0 (2026-07-21)

Features

  • cli: --json output for service-token issue and list (#97) (1e410dd)
  • cli: --print-only dry-run flag for init (#70) (a0fc025)
  • cli: --since, --grep, --level filters for server logs (#98) (e2ad9fd)
  • cli: --timeout and --force flags on server stop (#96) (62d47fa)
  • cli: server restart subcommand (#95) (aaa2a7d)

Documentation

What's Changed

  • feat(cli): --timeout and --force flags on server stop (#96) by @swoofer in #215
  • feat(cli): --json output for service-token issue and list (#97) by @swoofer in #216
  • feat(cli): --since, --grep, --level filters for server logs (#98) by @swoofer in #218
  • feat(cli): --print-only dry-run flag for init (#70) by @swoofer in #219
  • docs: FAQ, troubleshooting guide, and MQTT topic reference (#81 #82 #83) by @swoofer in #220
  • examples: MQTT subscribers, chat bridges, and deployment recipes (#87-#94) by @swoofer in #221
  • feat(cli): server restart subcommand (#95) by @swoofer in #222
  • chore(main): release 1.4.0 by @github-actions[bot] in #217

Full Changelog: v1.3.0...v1.4.0

What's Changed

  • feat(cli): --timeout and --force flags on server stop (#96) by @swoofer in #215
  • feat(cli): --json output for service-token issue and list (#97) by @swoofer in #216
  • feat(cli): --since, --grep, --level filters for server logs (#98) by @swoofer in #218
  • feat(cli): --print-only dry-run flag for init (#70) by @swoofer in #219
  • docs: FAQ, troubleshooting guide, and MQTT topic reference (#81 #82 #83) by @swoofer in #220
  • examples: MQTT subscribers, chat bridges, and deployment recipes (#87-#94) by @swoofer in #221
  • feat(cli): server restart subcommand (#95) by @swoofer in #222
  • chore(main): release 1.4.0 by @github-actions[bot] in #217

Full Changelog: v1.3.0...v1.4.0

What's Changed

  • feat(cli): --timeout and --force flags on server stop (#96) by @swoofer in #215
  • feat(cli): --json output for service-token issue and list (#97) by @swoofer in #216
  • feat(cli): --since, --grep, --level filters for server logs (#98) by @swoofer in #218
  • feat(cli): --print-only dry-run flag for init (#70) by @swoofer in #219
  • docs: FAQ, troubleshooting guide, and MQTT topic reference (#81 #82 #83) by @swoofer in #220
  • examples: MQTT subscribers, chat bridges, and deployment recipes (#87-#94) by @swoofer in #221
  • feat(cli): server restart subcommand (#95) by @swoofer in #222
  • chore(main): release 1.4.0 by @github-actions[bot] in #217

Full Changelog: v1.3.0...v1.4.0

v1.3.0

Choose a tag to compare

@github-actions github-actions released this 21 Jul 19:28
5e85f49

1.3.0 (2026-07-21)

Features

  • init: add Google provider support to the phase2 wizard (#213) (8884902)

What's Changed

  • feat(init): add Google provider support to the phase2 wizard by @swoofer in #213
  • chore(main): release 1.3.0 by @github-actions[bot] in #214

Full Changelog: v1.2.1...v1.3.0

What's Changed

  • feat(init): add Google provider support to the phase2 wizard by @swoofer in #213
  • chore(main): release 1.3.0 by @github-actions[bot] in #214

Full Changelog: v1.2.1...v1.3.0

What's Changed

  • feat(init): add Google provider support to the phase2 wizard by @swoofer in #213
  • chore(main): release 1.3.0 by @github-actions[bot] in #214

Full Changelog: v1.2.1...v1.3.0

v1.2.1

Choose a tag to compare

@github-actions github-actions released this 21 Jul 13:04
9e15f99

1.2.1 (2026-07-21)

Bug Fixes

  • binaries: mark tree-sitter grammars external in bun --compile (closes #210) (#212) (c7d1252)
  • docker: install Corepack explicitly — Node 26 dropped the bundled one (5c8b365)

What's Changed

  • fix(docker): install Corepack explicitly — Node 26 dropped the bundled one by @swoofer in #209
  • chore(deps): bump the dependencies group across 1 directory with 3 updates by @dependabot[bot] in #208
  • fix(binaries): mark tree-sitter grammars external in bun --compile (closes #210) by @swoofer in #212
  • chore(main): release 1.2.1 by @github-actions[bot] in #211

Full Changelog: v1.2.0...v1.2.1

What's Changed

  • fix(docker): install Corepack explicitly — Node 26 dropped the bundled one by @swoofer in #209
  • chore(deps): bump the dependencies group across 1 directory with 3 updates by @dependabot[bot] in #208
  • fix(binaries): mark tree-sitter grammars external in bun --compile (closes #210) by @swoofer in #212
  • chore(main): release 1.2.1 by @github-actions[bot] in #211

Full Changelog: v1.2.0...v1.2.1

What's Changed

  • fix(docker): install Corepack explicitly — Node 26 dropped the bundled one by @swoofer in #209
  • chore(deps): bump the dependencies group across 1 directory with 3 updates by @dependabot[bot] in #208
  • fix(binaries): mark tree-sitter grammars external in bun --compile (closes #210) by @swoofer in #212
  • chore(main): release 1.2.1 by @github-actions[bot] in #211

Full Changelog: v1.2.0...v1.2.1

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 20 Jul 22:45
e21e271

1.2.0 (2026-07-20)

Features

  • auth: make GitHub OAuth optional — Google-only Phase 2 boots (#205) (e5e08de)
  • doctor: probe Google creds + treat GitHub as optional; guard cookie major (e3bcce0)

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 01:20
107e9cd

1.1.0 (2026-07-13)

Features

  • cli: --log-json NDJSON logging flag (adopts contributor PR #151) (0c4b79d)
  • cli: add --log-json flag for NDJSON logging (adopts #151) (a2c04b6)
  • threads: per-run scoping — stop leaking an aborted run into the next (#32) (#198) (d83c49f)

Documentation

  • audit: #151 closed with thanks (feature via #196) (31163d0)
  • audit: close maintenabilite-01 (--log-json adopted from #151, #196) — all 13 Highs done; 116→117 (10bc081)

What's Changed

  • feat(cli): --log-json NDJSON logging flag (adopts contributor PR #151) by @swoofer in #196
  • feat(threads): per-run scoping — stop leaking an aborted run into the next by @swoofer in #198
  • chore(main): release 1.1.0 by @github-actions[bot] in #197

Full Changelog: v1.0.1...v1.1.0

What's Changed

  • feat(cli): --log-json NDJSON logging flag (adopts contributor PR #151) by @swoofer in #196
  • feat(threads): per-run scoping — stop leaking an aborted run into the next by @swoofer in #198
  • chore(main): release 1.1.0 by @github-actions[bot] in #197

Full Changelog: v1.0.1...v1.1.0

What's Changed

  • feat(cli): --log-json NDJSON logging flag (adopts contributor PR #151) by @swoofer in #196
  • feat(threads): per-run scoping — stop leaking an aborted run into the next by @swoofer in #198
  • chore(main): release 1.1.0 by @github-actions[bot] in #197

Full Changelog: v1.0.1...v1.1.0

v1.0.1

Choose a tag to compare

@github-actions github-actions released this 13 Jul 00:57
88db8fc

1.0.1 (2026-07-13)

Bug Fixes

  • dashboard: convert inline onclick to addEventListener + apply script-src 'self' CSP (architecture-14 follow-up) (9fdccd9)
  • dashboard: strict script-src 'self' CSP + inline onclick → addEventListener (arch-14 follow-up) (4a7102f)
  • sse: flush headers immediately (EventSource opens without waiting for heartbeat) (bfce26a)
  • sse: flush headers immediately so EventSource opens without waiting for heartbeat (416b640)

Documentation

  • audit: close ci-cd-03 (branch protection enabled); 111→112 (195215f)
  • audit: close qualite-code-01 (3 giant fns) + architecture-14 (dashboard script); 112→114 (61dcd12)
  • audit: close qualite-code-03 + maintenabilite-05 (Prettier #194); 114→116 (e8fcd86)
  • audit: dashboard CSP hardening done (#195) (defa91c)
  • audit: v1.0.0 shipped — close maintenabilite-03, confirm binary/provenance R5 (110→111) (1eb1787)
  • landing: mark v1.0 shipped on roadmap, add post-1.0 future card, bump version refs (3420c79)
  • landing: mark v1.0 shipped on roadmap; post-1.0 future card; version refs → 1.0.0 (e96fcec)

Code Refactoring

  • auth: extract numbered steps from refreshTokenGrant into helpers (qualite-code-01 2/3) (0b92e54)
  • auth: extract numbered steps from refreshTokenGrant into named helpers (qualite-code-01, 2/3) (fd15e83)
  • dashboard: extract inline script to external dashboard.js (architecture-14) (546af34)
  • dashboard: extract inline script to external dashboard.js (architecture-14) (7674256)
  • rest: dispatch table for handleRest — extract 24 endpoint handlers (qualite-code-01, 1/3) (3d36f63)
  • rest: dispatch table for handleRest — extract 28 endpoint handlers (qualite-code-01 1/3) (262906f)
  • server: extract createHttpHandler/wireMqtt/wireShutdown from startServer (qualite-code-01 3/3) (3d731a2)

What's Changed

  • docs(landing): mark v1.0 shipped on roadmap; post-1.0 future card; version refs → 1.0.0 by @swoofer in #187
  • fix(sse): flush headers immediately (EventSource opens without waiting for heartbeat) by @swoofer in #189
  • refactor(rest): dispatch table for handleRest — extract 28 endpoint handlers (qualite-code-01 1/3) by @swoofer in #190
  • refactor(server): extract createHttpHandler/wireMqtt/wireShutdown from startServer (qualite-code-01 3/3) by @swoofer in #191
  • refactor(dashboard): extract inline script to external dashboard.js (architecture-14) by @swoofer in #192
  • refactor(auth): extract numbered steps from refreshTokenGrant into helpers (qualite-code-01 2/3) by @swoofer in #193
  • chore: adopt Prettier + format codebase (qualite-code-03, maintenabilite-05) by @swoofer in #194
  • fix(dashboard): strict script-src 'self' CSP + inline onclick → addEventListener (arch-14 follow-up) by @swoofer in #195
  • chore(main): release 1.0.1 by @github-actions[bot] in #188

Full Changelog: v1.0.0...v1.0.1

What's Changed

  • docs(landing): mark v1.0 shipped on roadmap; post-1.0 future card; version refs → 1.0.0 by @swoofer in #187
  • fix(sse): flush headers immediately (EventSource opens without waiting for heartbeat) by @swoofer in #189
  • refactor(rest): dispatch table for handleRest — extract 28 endpoint handlers (qualite-code-01 1/3) by @swoofer in #190
  • refactor(server): extract createHttpHandler/wireMqtt/wireShutdown from startServer (qualite-code-01 3/3) by @swoofer in #191
  • refactor(dashboard): extract inline script to external dashboard.js (architecture-14) by @swoofer in #192
  • refactor(auth): extract numbered steps from refreshTokenGrant into helpers (qualite-code-01 2/3) by @swoofer in #193
  • chore: adopt Prettier + format codebase (qualite-code-03, maintenabilite-05) by @swoofer in #194
  • fix(dashboard): strict script-src 'self' CSP + inline onclick → addEventListener (arch-14 follow-up) by @swoofer in #195
  • chore(main): release 1.0.1 by @github-actions[bot] in #188

Full Changelog: v1.0.0...v1.0.1

What's Changed

  • docs(landing): mark v1.0 shipped on roadmap; post-1.0 future card; version refs → 1.0.0 by @swoofer in #187
  • fix(sse): flush headers immediately (EventSource opens without waiting for heartbeat) by @swoofer in #189
  • refactor(rest): dispatch table for handleRest — extract 28 endpoint handlers (qualite-code-01 1/3) by @swoofer in #190
  • refactor(server): extract createHttpHandler/wireMqtt/wireShutdown from startServer (qualite-code-01 3/3) by @swoofer in #191
  • refactor(dashboard): extract inline script to external dashboard.js (architecture-14) by @swoofer in #192
  • refactor(auth): extract numbered steps from refreshTokenGrant into helpers (qualite-code-01 2/3) by @swoofer in #193
  • chore: adopt Prettier + format codebase (qualite-code-03, maintenabilite-05) by @swoofer in #194
  • fix(dashboard): strict script-src 'self' CSP + inline onclick → addEventListener (arch-14 follow-up) by @swoofer in #195
  • chore(main): release 1.0.1 by @github-actions[bot] in #188

Full Changelog: v1.0.0...v1.0.1

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 12 Jul 22:14
02342d5

1.0.0 (2026-07-12)

⚠ BREAKING CHANGES

  • ops: JWTs now require a typ claim ("access"/"refresh"); sessions and refresh tokens issued before this release are rejected, forcing all active users to re-authenticate after upgrade.

Features

  • boot: fail-fast when OAuth is enabled on the Bun runtime (architecture-10) (aabb272)
  • boot: warn on cwd-relative data dir fallback; fix README data-dir docs (architecture-06) (f36d887)
  • rest: validate request bodies with zod, return structured 400 (qualite-code-02, architecture-15) (b39326b)

Bug Fixes

  • audit: guard AuditQueue flush against a closed DB to stop CI teardown crashes (2d5af73)
  • audit: guard AuditQueue flush against closed DB (stabilise la CI) (34eab57)
  • ci: make SDK tests self-contained so sdk-test job passes in clean CI (tests-02) (1d8cd17)
  • ci: trigger release-binaries via workflow_call from release, fix tag derivation (ci-cd-01, maintenabilite-02) (72e19c5)
  • ci: use npm ecosystem for Dependabot (pnpm is not a valid value) (5d3bc8a)
  • cli: forward Phase 2/OAuth/bind env vars to daemon (architecture-05) (11d101a)
  • consultation: parse SQLite created_at as UTC, not host-local (809cc2f)
  • dashboard: split Clear (UI-only) from Reset Server (destructive, gated) (94cd92d)
  • deps: move overrides to pnpm format, refresh lockfile, add Dependabot (dependances-01/02/03) (e0bace5)
  • http: generic 500 with request_id instead of raw err.message (qualite-code-08) (6b73e92)
  • http: mount /metrics/auth with optional bearer, wire COORDINATOR_METRICS_BEARER (documentation-02, securite-surface-02) (c87ee56)
  • http: mount discovery + healthz/health-ready endpoints (architecture-01, protocole-mcp-03) (6236a10)
  • landing: drop stale Channels-integration card + correct requestIdleCallback call (#150) (f5dc89b)
  • mcp: expose mcp-session-id via CORS; align serverInfo.name to registry name (protocole-mcp-11/13) (dec5123)
  • mcp: improve tool ergonomics — annotations, descriptions, actionable errors, timeout caps (protocole-mcp-05/08/10/14) (0f97fc3)
  • mcp: return isError from MQTT tools when bridge is not connected (stdio) (protocole-mcp-06) (23c5098)
  • mcp: route stdio-mode logs to stderr, keep stdout for JSON-RPC (protocole-mcp-01) (a470112)
  • mcp: tool ergonomics — annotations, descriptions, actionable errors, timeout caps (5 constats) (d3f3877)
  • mqtt: reset connected on close/offline so isConnected() reflects outages (3475b61)
  • mqtt: set explicit Duplex highWaterMark so WS read-backpressure is deterministic (fixes CI flake) (14a5223)
  • perf: add retention for 5 Phase 1 tables and run sweeper in Phase-1-only mode (performance-01) (1ce158e)
  • perf: bound Prometheus route-label cardinality (performance-03) (609126d)
  • perf: bound RateLimiter buckets and MqttBridge listener queues (performance-05, performance-06) (1e4daf2)
  • perf: expire idle MCP StreamableHTTP sessions (performance-07, protocole-mcp-07) (846d6f1)
  • robustness: guard JSON.parse on SQLite columns with safeJsonParse (qualite-code-07) (22ae9ef)
  • security: add baseline security headers to legacy dashboard and API responses (securite-surface-07) (dc4bb3a)
  • security: add typ claim to distinguish access vs refresh tokens (34a5ffa)
  • security: bind HTTP server to 127.0.0.1 by default via COORDINATOR_BIND (3671d7b)
  • security: rate-limit register, make insecure-cookies flag consistent, prevent ?token= log leak (securite-surface-05, securite-auth-05, securite-auth-03) (177205b)
  • security: re-derive role from DB on refresh rotation (securite-auth-04) (8e6ec78)
  • security: redact secrets in Phase 1 logger to match Phase 2 (securite-surface-04) (6482528)
  • security: validate Origin and restrict CORS on /mcp (MCP spec MUST) (f8f6227)
  • security: verify OIDC nonce in Google provider (securite-auth-02) (eca4d2f)
  • server: fail-closed on concurrent startServer(); correct multi-instance docstring (architecture-02) (2ba5fb7)

Performance Improvements

  • db: index sweep predicates and set WAL synchronous=NORMAL (performance-09, performance-10) (ba6bd4c)
  • mqtt: add WS bridge backpressure and maxPayload (performance-04) (5cb7296)
  • scorer: batch Layer 4 co-change queries; fix rusted audit-queue bench (performance-11, performance-08) (e874cf3)
  • sse: bound event history load at the SQL layer instead of loading all then slicing (performance-02) (fc1d08b)

Documentation

  • add ARCHITECTURE.md; document multi-org/logger-metrics status, perf-chaos & binary deferrals (architecture-13/08/09, qualite-code-06, tests-11, ci-cd-09) (62fdf82)
  • audit: add full audit, remediation spec, plan and 119-finding tracking matrix (1c4f736)
  • audit: close architecture-02/03 + tests-05 (107→110) (55cf389)
  • audit: close architecture-04/11/12 (66→69) (4cda748)
  • audit: close architecture-08/09/10/13 + qualite-code-06 + tests-11 + ci-cd-09 (96→103) (71b6fa9)
  • audit: close ci-cd-05/07/10/11 (CI supply-chain hardening) (cbbb54d)
  • audit: close dependances-04..10 (pnpm 10 + deps docs); counter 73→80 (981448f)
  • audit: close maintenabilite-04/06/07/10/11/12; flag 01/03/08/09 as maintainer-action (80→86) ([51e1520](51e1520a748c15217ce5...
Read more

v0.13.0

Choose a tag to compare

@github-actions github-actions released this 24 May 11:23
2f3c425

0.13.0 (2026-05-23)

Features

  • channels: Phase 2 reply tool — post_to_thread over MQTT (#130) (#145) (5f9a861)

Bug Fixes

  • ci: docker-publish tag gating works for workflow_call (chained release path) (#142) (4b8df67)
  • mcp: correct list_threads status enum to match ThreadStatus type (#144) (afb390d)

Documentation

  • add operating-modes guide (polling vs push) + README pointer (#146) (0f0c90c)
  • surface "polling vs push" choice in README + HTML landing (#147) (071a234)

v0.12.0

Choose a tag to compare

@github-actions github-actions released this 23 May 14:49
46f3550

0.12.0 (2026-05-23)

Highlights

  • 🚦 Claude Code Channels integration — Phase 1 (research preview). New mcp-coordinator channel stdio subcommand that subscribes to the daemon's MQTT broker and pushes coordination events (consultations, agent status, thread messages) directly into a Claude Code session as <channel> tags. One-way push only — Phase 2 (reply tool) and Phase 3 (permission relay) tracked separately on #130. Requires claude --dangerously-load-development-channels until the plugin lands on Anthropic's allowlist. See examples/channels-quickstart/ and docs/superpowers/specs/2026-05-23-channels-event-catalog.md.
  • 🔧 pnpm dev:stdio actually works now. The stdio MCP entry at src/index.ts was advertised as a public command but every tool call returned "MCP tool requires a session". Fix in #135 — every handler now resolves claims via extra.sessionId ?? "" and stdio mode wires synthetic legacy claims.
  • 🧪 MCP integration harness landed (#134/#140). Tests can now spawn a real mcp-coordinator server (HTTP or stdio) and exercise it through the MCP SDK client. Foundation for the Channels work above and any future transport integration.
  • 👥 Third external contributor. @kgrg landed a focused schema fix in #132 (z.enum for list_threads.status). Welcome.

Features

Bug Fixes

Documentation

  • bump example pins to mcp-coordinator:0.11.0 (#123) (a6e3b19)
  • channels: event catalog for #130 Phase 1 scoping (#138) (418235d)
  • channels: quickstart example + README section for #130 (#137) (a5f03df)
  • channels: reference plugin patterns study for #130 (#139) (c369ac3)
  • html: bump landing page to v0.11.0, update outdated roadmap cards (#127) (208ecc2)
  • html: correct harbor roadmap card — tengu_harbor shipped as Channels (#131) (4df99fa)
  • html: translate encrest roadmap card into FR, ES, DE, ZH, JA (#129) (8028a2c)
  • html: translate v0.11 roadmap card into FR, ES, DE, ZH, JA (#128) (86495ad)
  • readme: rework as pitch — extract usage walkthroughs, drop CHANGELOG dupes (#136) (4b29afd)
  • surface Docker install option in README and landing page (#126) (1d94c92)

Upgrade notes

  • Channels users: this is research preview. The claude/channel capability schema can shift in future Claude Code versions. Add the channel via the snippet at examples/channels-quickstart/.mcp.json.sample and start Claude Code with --dangerously-load-development-channels server:mcp-coordinator-channel.
  • Anyone running pnpm dev:stdio: now actually usable for tool calls. Synthetic claims with org='default' injected for every call.
  • Contributors: 4 new test files (channel harness self-test, channel-smoke, cli-channel, consultation-tools-schema). Suite grew from 2307 → 2322 tests.