Skip to content

Releases: 23blocks-OS/ai-maestro

v0.29.15 — Fix hibernate/standalone conflict

08 May 17:49
fc0f297

Choose a tag to compare

Bug Fix

Hibernated agents incorrectly shown as standalone — Agents with tmux session history (like Raine) were being classified as "standalone" when they had a recent heartbeat but no active tmux session. This caused the UI to show "Standalone Agent — no terminal view" instead of the hibernation screen with the Wake button.

What changed

  • Standalone classification now requires no session history in the agent registry
  • Heartbeats only mark agents as "online" for truly standalone agents
  • Legacy /api/sessions endpoint also fixed

Impact

All registered agents that were hibernated now correctly show the Wake button again.

v0.29.14 — Ecosystem Narrative

04 May 17:24
25fcd13

Choose a tag to compare

The Agent Ecosystem

Introduces the Agent Formula — a clear narrative explaining how the 6 components of the 23blocks agent ecosystem work together:

Complete Agent = Personality (WHO) + Capabilities (HOW) + Identity (TRUST) + Communication (TALK)

What's New

  • docs/ECOSYSTEM.md — Canonical reference for how AI Maestro, Agent Library (150+ personalities), Plugin Builder, AID, and AMP fit together
  • docs/ecosystem.html — New docs site page with visual dimension cards, assembly flow, and "Build Your First Agent Team" walkthrough
  • Ecosystem section in README — Four-dimension table after "Meet Lola"
  • Plugin Builder — Added personality cross-references, "Combine Personalities + Skills" section, and example manifest with all 15 agency-agents divisions
  • Navigation — ECOSYSTEM link added to all 17 docs site pages
  • Companion components — Extracted CompanionInput, FloatingVoiceSettings, MobileCallOverlay into standalone components
  • GitHub metadata — Updated repo descriptions and topics

The Formula

Dimension Component
WHO Personality Agent Library (150+)
HOW Capabilities Plugin Builder
TRUST Identity AID
TALK Communication AMP

AI Maestro is the stage. Pick personalities, give them skills, and run them from one dashboard.

Read the full ecosystem guide →

v0.29.0 — Unified API Error Format

16 Apr 16:18
7a347a4

Choose a tag to compare

Highlights

Every API error response across the codebase now follows the AMP protocol format — one consistent, structured shape for all 106 route handlers.

Before: inconsistent error shapes across ~280 services ({ error: 'Human text' }) vs structured AMP routes ({ error: 'code', message: '...', field?, details? }).

After: one shape everywhere.

{ "error": "missing_field", "message": "name is required", "field": "name" }

What changed

Added

  • services/service-errors.ts — single source of truth for ServiceResult<T>, ServiceError, and ServiceErrorCode (30 codes: AMP's 18 + 12 generic). Ships 20+ factory functions (missingField, notFound, operationFailed, alreadyExists, gone, invalidState, etc.) and validation helpers (requireString, requireArray, requireNameFormat).
  • app/api/_helpers.tstoResponse() turns any ServiceResult into a NextResponse with consistent error formatting.

Changed

  • 25 service files migrated to shared ServiceResult and factories (~305 error returns standardized).
  • 88 route files converted to thin wrappers: return toResponse(result).
  • 25 component files updated to read data.message || data.error for backward-compatible error display.
  • 5 test files updated (49 assertions now match structured ServiceError shape).
  • lib/types/amp.ts refactored: AMPErrorCode is now Extract<ServiceErrorCode, ...>, AMPError extends ServiceError. AMPNameTakenError interface corrected to match runtime shape (details.suggestions).
  • services/headless-router.tssendServiceResult() mirrors toResponse() for headless mode.

Fixed

  • preconditionFailed() factory now returns 412 (was 400).
  • lookupAgentByName and lookupAgentByDirectoryName catch blocks now propagate real errors via operationFailed() instead of silently returning { exists: false } / { found: false } with a 500 status.
  • toResponse() defensive fallback preserves caller's 4xx status instead of always overriding to 500.

Stats

  • 154 files changed (+1,365 / -1,977 = net −612 lines) despite adding the new foundation
  • 545/545 tests passing
  • Build + lint pass on Node 20 and 22

Credits

Huge thanks to @mvillmow for the original issue (#285) that identified the duplication across route handlers. The analysis revealed an even deeper opportunity — the underlying error contract itself was inconsistent — and this release addresses the root cause.

PR

  • #327 — feat: unify API errors to AMP format

Closes #285

v0.26.5 — Auto-install Status Line

26 Mar 05:22
cd6b7b0

Choose a tag to compare

Added

  • Auto-install Claude Code status lineinstall-plugin.sh now configures the AMP status line automatically, showing agent identity and unread message count in Claude Code's footer. Idempotent and reversible via amp-statusline.sh --uninstall.

v0.26.4 — AMP Mesh Routing Fix

25 Mar 06:03
6a223ec

Choose a tag to compare

Fixed

  • AMP mesh routing restoredamp-send.sh was incorrectly using filesystem delivery for remote agents after message migration created local directories. Now checks for config.json to distinguish real local agents from migration-created inbox directories.
  • AMP fetch URL fixamp-fetch.sh was missing /v1/ prefix on fetch and acknowledge endpoints, causing 404s against external providers.
  • AMP message ID timestampsgenerate_message_id() now uses seconds-precision timestamps per AMP spec.

v0.26.3 — AID v0.2.0: Independent from AMP

24 Mar 06:21
e7b971c

Choose a tag to compare

Agent Identity v0.2.0 — Fully Independent

AID no longer requires AMP to be installed. Agents can now authenticate with OAuth 2.0 servers using just AID alone.

What's new

  • aid-init — Standalone identity initialization (no amp-init needed)
  • aid-helper — Self-contained helper with OpenSSL auto-detection, Ed25519 signing
  • All aid-* scripts are now self-sufficient

Interoperability

If both AMP and AID are installed, they share ~/.agent-messaging/agents/ — one Ed25519 identity serves both protocols. Neither requires the other.

Numbers

  • Plugin: 7 skills, 50 scripts (was 48)

Full Changelog: v0.26.2...v0.26.3

v0.26.2 — Dynamic discovery for all verification lists

24 Mar 05:56
78d41b9

Choose a tag to compare

Changes

  • Replaced all remaining hardcoded skill and script lists with dynamic discovery from the plugin directory
  • verify-installation.sh now auto-discovers skills and AMP scripts (was missing agent-identity and 2 AMP scripts)
  • install-plugin.sh AMP verification now auto-discovers (was missing 4 of 14 scripts)
  • Fixed installer banner alignment

Full Changelog: v0.26.1...v0.26.2

v0.26.1 — Rename installer, auto-discover skills

24 Mar 05:39
0a370b8

Choose a tag to compare

Changes

  • Renamed install-messaging.shinstall-plugin.sh — the installer handles all skills, scripts, and CLI tools, not just messaging
  • Auto-discover skills — new skills added via the plugin manifest are automatically installed without modifying the installer script
  • Added plugin builder references to the installer banner so users know they can customize their plugin at ai-maestro.23blocks.com/plugin-builder.html

Full Changelog: v0.26.0...v0.26.1

v0.26.0 — Agent Identity (AID) Integration

24 Mar 05:06
7000b84

Choose a tag to compare

Agent Identity (AID) Integration

AI agents can now authenticate with OAuth 2.0 servers using their Ed25519 cryptographic identity — no passwords, no API keys, no secrets to rotate.

What's new

  • Agent Identity (AID) added to the ai-maestro plugin build via agentmessaging/agent-identity
  • New commands: aid-register, aid-status, aid-token
  • New skill: agent-identity
  • Plugin now ships 7 skills and 48 scripts

How it works

  1. Agent registers its public key with an auth server (one-time)
  2. Agent presents a signed identity + proof of possession
  3. Auth server verifies and issues a scoped RS256 JWT
  4. Agent uses JWT to call any API

Previous releases in this session

  • v0.25.16 — Sync AMP plugin scripts to v0.1.3
  • v0.25.15 — Key rotation with proof-of-possession + duplicate key rejection

Full Changelog: v0.25.16...v0.26.0

v0.25.16 — AMP Plugin Sync to v0.1.3

23 Mar 08:18
dc4c533

Choose a tag to compare

What's New

AMP Plugin synced to v0.1.3

Rebuilt ai-maestro-plugins via the manifest build system (build-plugin.sh --clean) to pull latest AMP scripts from agentmessaging/claude-plugin upstream.

Key upstream changes now included:

  • Key rotation with proof-of-possession (--force reinit)
  • Local fingerprint uniqueness guard before registration
  • --id <uuid> parameter for multi-agent identity resolution
  • Client-side UUIDv4 for offline-first agent identity
  • Case-insensitive index lookup + single-agent auto-select
  • Multiple security, routing, and attachment fixes

Full Changelog: v0.25.15...v0.25.16