github fathah/hermes-desktop v0.2.2
Hermes Desktop v0.2.2

latest releases: v0.4.3, v0.4.2, v0.4.1...
one month ago

Changelog

All notable changes to Hermes Desktop are documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

0.2.2 - 2026-04-13

Added

  • Slash commands in Chat — new palette of /-prefixed commands including
    /new, /clear, /btw, /approve, /deny, /status, /reset,
    /compact, /undo, /retry, /web, /image, /browse, /code,
    /file, /shell, /help, /tools, /skills, /model, /memory,
    /persona, and /version. Local commands (/new, /clear) are handled
    in the renderer; the rest are forwarded to the agent backend.
  • Multi-turn chat historysendMessage now forwards the full
    conversation history to the gateway using the standard OpenAI
    messages[] format, so the model sees prior turns instead of only the
    latest user input.
  • Dedicated Gateway screen — messaging gateway configuration moved out
    of Settings into its own Gateway screen with per-platform cards for
    Telegram, Discord, and Slack, including show/hide toggles for API keys
    and per-platform enable switches.
  • Platform enable/disable togglesgetPlatformEnabled /
    setPlatformEnabled IPC handlers read and write the platforms: block
    in config.yaml. Toggling a platform automatically restarts the gateway
    so the new config takes effect.
  • AgentMarkdown component — new reusable markdown renderer with a
    lazy-loaded syntax highlighter (imported only when the first code block
    renders), copy-to-clipboard button, and a dedicated diff viewer with
    coloured +/-/@@ lines.
  • Better error surfacing on empty model responses — when a streaming
    response completes with no content, the client now probes the same
    request in non-streaming mode to retrieve the real error message from
    the provider instead of showing a generic "no response" message.
  • Groq voice/STT field — the GROQ_API_KEY setting is retained with a
    new hint ("Used for voice tools and STT") even though Groq is no longer
    a top-level chat provider.

Changed

  • Project restructured — all top-level screens moved from
    src/renderer/src/components/ into
    src/renderer/src/screens/<ScreenName>/. Affected screens: Agents,
    Chat, Gateway, Install, Layout, Memory, Models, Office,
    Schedules, Sessions, Settings, Setup, Skills, Soul,
    SplashScreen, Tools, Welcome. Shared components (ThemeProvider,
    ErrorBoundary, AgentMarkdown, etc.) remain under components/.
  • Gateway auto-restarts on config changes — editing an _API_KEY or
    _TOKEN environment value, switching model/provider/baseUrl, or
    toggling a platform now restarts the running gateway so the new
    configuration is picked up immediately.
  • URL_KEY_MAP and LOCAL_PROVIDERS hoisted in src/main/hermes.ts
    so both the API and CLI code paths share a single definition.
  • Default model list trimmed — reduced the bundled default-models set
    to the core providers (OpenRouter, Anthropic, OpenAI, Custom); removed
    hard-coded entries for Claude Opus 4, Claude Haiku 4.5, GPT-4o, GPT-4o
    Mini, o3 Mini, Gemini 2.5 Pro, and the previous Groq chat presets.
  • Code block styling — code blocks now use a unified --code-bg
    variable for header and body, with no surrounding border; token
    backgrounds are cleared so highlighting matches the block background.

Fixed

  • Agent connection issues — errors embedded in SSE payloads are now
    captured (lastError) and surfaced to the chat UI instead of being
    swallowed. API HTTP error bodies are parsed for error.message
    before falling back to the raw snippet.
  • Chat lag and bugs — performance and stability fixes across
    Chat.tsx, Layout.tsx, Settings.tsx, hermes.ts, and related
    stylesheet rules. AgentMarkdown memoisation and lazy highlighter
    imports significantly reduce re-render cost for long conversations.
  • Gateway status polling — the status check interval in the Gateway
    screen is throttled to 10 s (plus short post-toggle re-checks) to
    reduce IPC overhead.

Removed

  • Groq as a top-level chat provider — removed from the provider
    dropdown and from default-models.ts. The GROQ_API_KEY field is
    preserved for voice / STT tool usage.
  • X-Hermes-Session-Id resume header on the API path — session
    continuity is now driven entirely by the forwarded history array.

Internal

  • src/main/config.ts gains getPlatformEnabled / setPlatformEnabled
    helpers plus a SUPPORTED_PLATFORMS constant
    (telegram, discord, slack, whatsapp, signal). These patch the
    platforms: block in config.yaml in-place using scoped regexes so
    surrounding user config is preserved.
  • src/preload/index.ts + index.d.ts expose
    getPlatformEnabled, setPlatformEnabled, and the extended
    sendMessage(… , history?) signature on window.hermesAPI.
  • package.json bumped from 0.2.1 → 0.2.2.

Don't miss a new hermes-desktop release

NewReleases is sending notifications on new releases.