v1.8.0-beta.1
Pre-release
Pre-release
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 skeleton —
HermesConfig(camelCase JSON, YAML on disk),HermesProfile/HermesProfileRef,HermesMcpServer/HermesMcpScope,HermesPluginRef,HermesTerminalBackend,HermesPlatformBinding,HermesLlmConfig, and a profile manager that round-trips upstream~/.config/hermes/*.yamlbyte-identically. Per-platform credentials live behindcredentialsRefon the wire (raw secrets never serialize) and the sameMessagingPlatformenum is reused fromcrate::autonomous::types. Fulldto_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
EnvironmentIssuevariants (container_runtime_not_found,container_runtime_unsupported,image_missing,image_outdated,port_in_use,persistent_volume_unavailable,custom). Installer drives pull progress withInstallStage/InstallProgressevents through theautonomous_*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_aliasesand Web Search injection from the Claude Code router config . - Hermes setup wizard UI with
hermes claw migrateintegration — end-to-end onboarding: container runtime check, image pull withInstallProgressUI, profile creation, channel selection, LLM bridge sync, optional one-click migration of existing Claw profiles via the newhermes claw migrateCLI 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
ApprovalDialogso 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
MessagingPlatformchannels (Telegram, Slack, Discord, WhatsApp, Home Assistant, Google Chat, etc.) and store credentials behindcredentialsRefin the OS credential vault; only the reference ID ever lands inhermes.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 checkfinishes faster on contributor machines while CI still runs the full suite. What's Newslash command updated to better drive per-release locale catalog refreshes.cargo fmtapplied 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 toserver__toolon 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 theembed-frontendRustEmbed derive runs — cleancargo build(no priorpnpm build) was failing because RustEmbed requires the target directory to exist at macro-expansion time . - Register Hermes routes in the
route_scopemanifest soroute_scope_middlewareenforces 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-rustso the full Rust test suite no longer hits "Too many open files" on macOS defaults . - Remove a duplicated
cfg(test)attribute inhermes::mcp_teststhat preventedcargo build --testsfrom compiling onmainafter merged. - Silence Windows-only unused-import and dead-code warnings in
cli.rssocargo clippyis 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/, withdto_validation.rspinning 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:
MessagingPlatformenum is shared fromcrate::autonomous::typesrather than redeclared inhermes; theAutonomousAgentProvidertrait abstraction (epic Phase 1) is what makes the provider-agnostic tab registry possible. - Secret handling: per-platform credentials never serialize to disk —
HermesPlatformBindingonly carriescredentialsRefon the wire, and the raw API key only lives in the OS credential vault; same pattern applied toHermesLlmConfig.apiKeyEnv. - Continuum-router integration: PHASE2-4 of makes the Hermes daemon point its LLM bridge at the local router; honors
model_aliasesand Web Search injection fromRouterConfigYamlso Claude Code router config and Hermes config share one source of truth. - MCP tool-name sanitization:
server:tool→server__toolmapping 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.