Skip to content

v1.8.0-beta.1

Pre-release
Pre-release

Choose a tag to compare

@inureyes inureyes released this 17 May 03:51

Hermes autonomous agents platform end-to-end onboarding (wizard, gateway, channels, skills, plugins/MCP browser, permissions), MCP wired into agent runtime, MLX recommendation on Apple Silicon.

Backend.AI GO v1.8.0-beta.1

23 commits since v1.7.2. (38,694 lines added, 1,388 lines deleted)

New Features

  • Hermes module skeletonHermesConfig (camelCase JSON, YAML on disk), HermesProfile / HermesProfileRef, HermesMcpServer / HermesMcpScope, HermesPluginRef, HermesTerminalBackend, HermesPlatformBinding, HermesLlmConfig, and a profile manager that round-trips upstream ~/.config/hermes/*.yaml byte-identically. Per-platform credentials live behind credentialsRef on the wire (raw secrets never serialize) and the same MessagingPlatform enum is reused from crate::autonomous::types. Full dto_validation.rs + canonical-example round-trip test (, epic Phase 2 /).
  • Hermes environment detection and container installer — detects the user's container runtime (Docker / Podman / Apple Container) and reports actionable EnvironmentIssue variants (container_runtime_not_found, container_runtime_unsupported, image_missing, image_outdated, port_in_use, persistent_volume_unavailable, custom). Installer drives pull progress with InstallStage / InstallProgress events through the autonomous_* SSE bus .
  • Hermes gateway lifecycle + daemon WS/HTTP client + event bridge — start / stop / health-check the Hermes gateway container, stream daemon events into the autonomous_* SSE channel, and proxy HTTP calls (channels, skills, models, send-message) through a thin Rust client so the React layer talks to one provider-agnostic shape .
  • continuum-router wired as the Hermes LLM provider (PHASE2-4) — the Hermes daemon's LLM bridge now points at Backend.AI GO's local router instead of an external Anthropic endpoint by default, so locally served models can drive Hermes agents without an internet round-trip; the bridge respects model_aliases and Web Search injection from the Claude Code router config .
  • Hermes setup wizard UI with hermes claw migrate integration — end-to-end onboarding: container runtime check, image pull with InstallProgress UI, profile creation, channel selection, LLM bridge sync, optional one-click migration of existing Claw profiles via the new hermes claw migrate CLI subcommand. Picks up where the existing Autonomous Agents shell leaves off so Hermes can be onboarded in-app without touching the command line .
  • Hermes plugins / MCP browser — discover MCP servers (HermesMcpServer) and plugin references (HermesPluginRef) registered in the daemon, enable / disable per-scope (profile / user / system), and inspect tool surfaces before binding them to a profile .
  • Hermes permissions + container settings + approval workflow — profile-level permission grants (filesystem mounts, network egress, tool allowlists), container resource limits, and a per-action approval queue that pipes into the existing supervisor ApprovalDialog so Hermes agent actions share the same audit machinery as in-app agents .
  • Hermes Channels tab with per-platform credential entry — bind a Hermes profile to one or more MessagingPlatform channels (Telegram, Slack, Discord, WhatsApp, Home Assistant, Google Chat, etc.) and store credentials behind credentialsRef in the OS credential vault; only the reference ID ever lands in hermes.yaml .
  • Hermes Skills tab and reusable skill components — lists discovered skills (AgentSkill, SkillSource) per profile with a refactored, provider-agnostic skill card surface shared with the existing autonomous-agents UI .
  • Recommend MLX-format models in Featured Models on Apple Silicon — reorders the curated list so MLX builds float to the top when the platform detects an Apple Silicon Mac, matching the engine the user is most likely to run .

Improvements

  • Provider-agnostic channel/messaging UI with tab registry — hoists the channel and messaging surfaces out of the legacy Claw layout into a registry-driven tab system so any AutonomousAgentProvider (Claw, Hermes, future backends) can contribute tabs without forking the page. Existing Claw routes continue to render through the same registry .
  • Split tests out of pre-push gates and parallelize frontend / Rust lanes so make check finishes faster on contributor machines while CI still runs the full suite.
  • What's New slash command updated to better drive per-release locale catalog refreshes.
  • cargo fmt applied to the Claw provider module so the recent adapter rewrite matches surrounding style.

Bug Fixes

  • MCP tool names containing colons (e.g. server:tool) were rejected by the Anthropic API path because Claude's tool-name validation forbids :. The MCP bridge now sanitizes tool names to server__tool on the wire so agents using Claude models can call MCP tools registered with namespaced names without manual renaming .
  • MCP tools wired into the agent runtime — the MCP registry was loaded but its tools were not surfaced to the runtime tool dispatcher; agents could see MCP servers in settings but could not actually call their tools. Now MCP tools are merged into the agent's tool catalog on session start and execute through the same tool-execution pipeline as built-in tools .
  • Ensure dist/ exists before the embed-frontend RustEmbed derive runs — clean cargo build (no prior pnpm build) was failing because RustEmbed requires the target directory to exist at macro-expansion time .
  • Register Hermes routes in the route_scope manifest so route_scope_middleware enforces the same scope gate as the rest of the management API surface; without the manifest entries, the fallback pass-through would let any authenticated identity hit Hermes endpoints regardless of scope .
  • Raise the FD soft limit at the start of make test-rust so the full Rust test suite no longer hits "Too many open files" on macOS defaults .
  • Remove a duplicated cfg(test) attribute in hermes::mcp_tests that prevented cargo build --tests from compiling on main after merged.
  • Silence Windows-only unused-import and dead-code warnings in cli.rs so cargo clippy is clean on cross-platform builds.

CI/CD Improvements

  • Temporarily disable the Windows build job in the packaging workflow while a sidecar binary-bundling regression is investigated; non-Windows artifacts continue to build. Will be re-enabled before v1.8.0 stable.
  • Local pre-push gates split tests off the critical path and run frontend / Rust lanes in parallel.

Technical Details

  • Hermes module structure: types and config under src-tauri/src/hermes/, with dto_validation.rs pinning the wire shape (camelCase JSON, snake_case YAML) and a canonical-example test asserting byte-identical save-load-save round-trip with upstream ~/.config/hermes/*.yaml.
  • Reuse: MessagingPlatform enum is shared from crate::autonomous::types rather than redeclared in hermes; the AutonomousAgentProvider trait abstraction (epic Phase 1) is what makes the provider-agnostic tab registry possible.
  • Secret handling: per-platform credentials never serialize to disk — HermesPlatformBinding only carries credentialsRef on the wire, and the raw API key only lives in the OS credential vault; same pattern applied to HermesLlmConfig.apiKeyEnv.
  • Continuum-router integration: PHASE2-4 of makes the Hermes daemon point its LLM bridge at the local router; honors model_aliases and Web Search injection from RouterConfigYaml so Claude Code router config and Hermes config share one source of truth.
  • MCP tool-name sanitization: server:toolserver__tool mapping is one-way on the outbound side and reversed on the inbound side so the agent sees the original name in tool-use responses; round-trip tests pin the mapping.

Dependencies

  • No notable production dependency bumps in this beta.
  • Workspace bumped to backend-ai-go v1.8.0-beta.1 (cargo update -p backend-ai-go).

Breaking Changes

None. The provider-agnostic tab registry preserves the existing Claw routes through the same registry, and the legacy clawStore continues to operate as a backward-compatibility shim for existing callers.

Known Issues

  • Windows packaging job is temporarily disabled while a sidecar binary-bundling regression is investigated; Windows installers (NSIS) are not produced for this beta and will return before the v1.8.0 stable release.

Full Changelog