Files
scarf/releases/v2.6.0/RELEASE_NOTES.md
T
Alan Wizemann 3d85b91392 docs(hermes-v12): release notes + CLAUDE.md polish (Phase I)
Adds releases/v2.6.0/RELEASE_NOTES.md covering every Phase A-H surface
(Curator, multimodal image input, 5 new providers, Skills v0.12,
Settings deltas, Cron workdir, Teams + Yuanbao, read-only Kanban, iOS
read-only Webhooks/Plugins/Profiles, version banner, internal
capability detector). Drops a paragraph at the top noting Hermes
v0.11 hosts continue to work — every new surface is gated on
HermesCapabilities so v2.6 against v0.11 looks identical to v2.5.2
against v0.11.

Polishes CLAUDE.md inaccuracies introduced in Phase A's first pass:

- ACP image wire shape: corrected to {"type":"image","data":...,"mimeType":...}
  (matches acp.schema.ImageContentBlock); previous Anthropic-style
  source: {type: base64, ...} sketch was wrong.
- Cron --context-from: clarified that Hermes hasn't exposed it as a
  CLI flag yet (read-only via HermesCronJob.contextFrom), only
  --workdir is writable.
- hermes memory setup: noted that the interactive verb stays in
  Terminal (no in-app shellout); Settings → Memory just exposes the
  provider picker.
- Skills surface: more precise about which CLI verbs back the Mac UI
  affordances and why the disable-toggle is deferred to v2.7.

215 ScarfCore tests green; both Mac and iOS schemes build clean. Wiki
update + the actual release.sh ship are deferred to the user's
typical release-prep flow (the wiki repo is a separate worktree
that needs scripts/wiki.sh pull/commit/push, and release.sh expects
a clean working tree pointed at main).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 13:01:43 +02:00

11 KiB

What's in 2.6.0

A major release tracking Hermes v2026.4.30 (v0.12.0) — the largest single Hermes update Scarf has had to follow since v0.10's Tool Gateway. Headline additions: the autonomous Curator, multimodal image input in chat, 5 new inference providers, Microsoft Teams + Yuanbao gateway platforms, a read-only Kanban view, and ScarfGo gains read-only Webhooks/Plugins/Profiles plus a Hermes-version banner.

Pre-v0.12 Hermes hosts are fully supported. Every new surface is gated on a runtime capability detector (hermes --version → semver), so users on older Hermes installs see the v2.5 surface unchanged. UI doesn't appear until the underlying CLI subcommand exists.

Curator (Mac + iOS)

Hermes v0.12's autonomous skill curator prunes / consolidates / archives agent-created skills on a 7-day schedule. Scarf adds a dedicated Curator sidebar item under Interact (Mac) and a Curator nav row under the System tab (iOS).

  • Status panel — enabled/paused/disabled badge, last-run timestamp, last summary, run count, scheduling cadence (interval / stale-after / archive-after).
  • Run Now button triggers hermes curator run; pause/resume from the kebab menu.
  • Three leaderboards — least-recently-active, most-active, least-active. Each row carries activity / use / view / patch counters and an inline pin toggle.
  • Pin / unpin — pinned skills are protected from auto-archive and rewrites. State pulled from ~/.hermes/skills/.curator_state and surfaced as a pin glyph everywhere skills appear (Curator screen, Skills sidebar/list, SkillDetailView).
  • Restore archived sheet calls hermes curator restore <name> to bring a previously-archived skill back.
  • Last report Markdown — when present, the previous run's REPORT.md renders inline in mono.

Capability-gated; sidebar item disappears on pre-v0.12 hosts.

Multimodal image input in chat (Mac + iOS)

Hermes v0.12 advertises prompt_capabilities.image = true on ACP and accepts image content blocks in session/prompt. Scarf wires the producer side on both targets:

  • Mac: paperclip toolbar button on the chat composer opens NSOpenPanel multi-pick. Drag-and-drop and paste also work — drop an image (or a Finder file URL) onto the composer and it attaches. Capability-gated; the entire attachment surface is hidden on pre-v0.12 hosts.
  • iOS: paperclip button opens PhotosPicker (multi-select up to 5 photos). Same byte-for-byte capability gate.
  • ImageEncoder downsamples to 1568px long-edge (Anthropic's recommended ceiling) at JPEG q=0.85, so a 12 MP screenshot lands under ~300 KB on the wire. Detached only — never blocks MainActor.
  • Image-only sends are valid — once at least one attachment is queued, the send button enables even with empty text. Vision models accept "describe this" with no caption.
  • Per-attachment chips above the input field with thumbnail + filename tooltip + X to remove. 5-image-per-message cap; total payload stays under ~2 MB so cellular sends don't time out.

Hermes routes the resulting prompt to a vision-capable model automatically — no extra Scarf-side work to pick the right aux model.

5 new inference providers (Mac + iOS)

Five overlay-only providers added to ModelCatalogService.overlayOnlyProviders. The model picker reaches all of them; provider IDs match HERMES_OVERLAYS in hermes_cli/providers.py exactly so a typo here doesn't strand users with an unreachable provider.

  • GMI Cloud (api_key) — https://api.gmi-serving.com/v1
  • Azure AI Foundry (api_key) — base URL resolved from AZURE_FOUNDRY_BASE_URL per tenant
  • LM Studio (api_key, first-class) — promoted from custom-endpoint alias to a real provider; defaults to http://127.0.0.1:1234/v1
  • MiniMax (OAuth) (oauth_external) — https://api.minimax.io/anthropic
  • Tencent TokenHub (api_key) — base URL resolved from TOKENHUB_BASE_URL

auxiliary.curator aux task (Mac)

Hermes removed auxiliary.flush_memories entirely in v0.12 (the underlying memory pipeline was rewritten) and added auxiliary.curator so the curator's review fork can run on a separate model from the main agent. Settings → Auxiliary now surfaces a Curator row when the active host is v0.12+ (gated on HermesCapabilities.hasCuratorAux); the obsolete Flush Memories panel is gone.

The Tool Gateway health view in HealthView lost the flushMemories-routes-through-Nous row and gained a curator row, matching the new aux task list.

Skills v0.12 surface (Mac + iOS)

Three new capabilities Scarf can now reach:

  • Direct-URL installhermes skills install <https-url> lets users pull a one-off skill without going through a registry. Mac SkillsView gains an "Install from URL…" toolbar button (capability-gated) opening a sheet with the URL field plus optional --category / --name overrides.
  • Reloadhermes skills audit rescans the skills directory and refreshes the agent's view without a session restart. Wired to a "Reload" toolbar button next to the install button on Mac.
  • Enabled / disabled stateskills.disabled in config.yaml is read at scan time. Disabled skills render strikethrough + an "OFF" pill on Mac and iOS rows; iOS detail view explains the state in plain text.
  • Curator pin badge — pinned-skill names from ~/.hermes/skills/.curator_state surface as a pin glyph on each row across Mac sidebar and iOS list, plus an explanatory chip on iOS detail view.

The disable-toggle write path is deferred to v2.7 — Hermes only exposes hermes skills config as an interactive verb today, and we'd rather read accurately than risk clobbering the user's list with a half-tested write.

Cron — --workdir flag (Mac)

Hermes v0.12 cron jobs accept --workdir <absolute-path> to inject AGENTS.md / CLAUDE.md / .cursorrules from that directory and pin cwd for terminal/file/code_exec tools. Scarf's CronJobEditor now has a Workdir field; both create and edit paths forward the flag. Existing v0.11 jobs keep the no-cwd behaviour by leaving the field blank.

The context_from chaining field is read-only from Scarf this round (Hermes hasn't exposed a --context-from CLI flag yet, only YAML).

Microsoft Teams + Yuanbao (Mac)

Two new gateway platforms. Microsoft Teams (the 19th platform) ships as a plugin; Yuanbao 元宝 (the 18th) is a native gateway adapter. Both surface in the Platforms tab with read-only setup panels — the OAuth dance for Yuanbao and the plugin install for Teams happen outside Scarf.

Read-only Kanban (Mac)

Hermes v0.12 ships a SQLite-backed multi-tenant task board with a full CLI (hermes kanban create / list / claim / dispatch / …). The multi-profile collaboration layer was reverted upstream while the design is reworked, so v2.6 ships a read-only Kanban view: paginated table of hermes kanban list --json filtered by status, with status badges, meta chips (id / assignee / workspace / skills), and per-row metadata. 5-second polling while the view is foregrounded; suspended on disappear.

Create / claim / dispatch UI is deferred until upstream stabilizes — building the editor now would risk rework on a quarter-out timeline.

Settings deltas (Mac)

A new Caching & Redaction section under Settings → Advanced with three v0.12 knobs (gated on capability):

  • Prompt cache TTL picker — 5m default / 1h opt-in. Reduces cache writes on long agent loops with stable system prompts.
  • Redact secrets in patches toggle — Hermes flipped this off by default in v0.12 because the substitution corrupted patches; security-sensitive users can flip it back on here.
  • Runtime metadata footer toggle — opt-in compact footer on each final reply (provider/model/cost/turn count).

TTS provider list gains piper (native local TTS engine new in v0.12). Terminal backend list gains vercel (Vercel Sandbox backend for execute_code/terminal). Both ride along unconditionally — Hermes silently falls back when an older host doesn't recognize the value.

iOS catch-up — Webhooks / Plugins / Profiles (read-only)

Three new System-tab nav rows in ScarfGo, all read-only:

  • Webhooks — list of hermes webhook list output with description / deliver / events / route per row. "Platform not enabled" detection so a freshly-installed Hermes shows setup guidance instead of error noise.
  • Plugins — filesystem-first scan over ~/.hermes/plugins/ with manifest reads (plugin.json or plugin.yaml). Enabled/disabled badge, version, source, path.
  • Profileshermes profile list with active-profile highlighting from ~/.hermes/active_profile. Tolerant of both Rich box-drawn and plain-text outputs.

None of the three are capability-gated — the underlying list verbs work on both v0.11 and v0.12. Create / edit / delete remain Mac-only since they touch enough state we keep them off the phone.

Hermes-version banner (iOS)

Yellow banner at the top of the Dashboard tab when the active server is pre-v0.12. Lists the v0.12 capabilities the user is missing out on (curator, multimodal image input, new providers); one-tap session-dismiss; reappears on next app open. Hidden entirely on v0.12+ hosts.

Internal — version-aware capability detection

The foundation of every gated surface above:

  • HermesCapabilities value type parses Hermes Agent v0.12.0 (2026.4.30) from hermes --version output. Exposes booleans for each release-gated UI surface (hasCurator, hasACPImagePrompts, hasKanban, hasOneShot, hasSkillURLInstall, hasFallbackCommand, hasUpdateCheck, hasPiperTTS, hasVercelTerminal, hasCuratorAux, hasTeamsPlatform, hasYuanbaoPlatform, hasCronWorkdir, hasPromptCacheTTL, hasRedactionToggle, hasFlushMemoriesAux).
  • HermesCapabilitiesStore (@Observable @MainActor) caches per-server capabilities. Injected on ContextBoundRoot (Mac) and ScarfGoTabRoot (iOS) via .environment(_:) and .hermesCapabilities(_:).
  • 12 parser tests + 6 curator-output parser tests lock the v0.12 / v0.11 / fallback flag matrices.

Bug fixes

  • Test target compileM5FeatureVMTests.ScriptedTransport had drifted off the ServerTransport protocol after cachedSnapshotPath landed in v2.5.2; added the missing stub. M0dViewModelsTests got the ConnectionStatusViewModel.Status.degraded argument-name update. CredentialPoolsGatingTests got the missing import ScarfCore. The full swift test suite now runs (and passes — 215 tests across 17 suites).
  • iOS package compileRemoteBackupService.zipDirectory and RemoteRestoreService.unzipArchive used Foundation.Process unconditionally, breaking the iOS build entirely (Process is unavailable on the iOS SDK). Wrapped in #if !os(iOS) with iOS stubs that throw — backup/restore is Mac-only by design.

Hermes version

Targets Hermes v2026.4.30 (v0.12.0). v2026.4.23 (v0.11.0) hosts continue to work — every v0.12 surface is gated on capability detection, so Scarf v2.6 against v0.11 looks identical to Scarf v2.5.2 against v0.11. Update Hermes (hermes update) to unlock the new surfaces.

Compatibility

  • macOS 14+ (unchanged)
  • iOS 17+ (unchanged)
  • Hermes v0.11+ for the v2.5 surface; v0.12+ for the new features above.
  • No data migrations.