13
Release Notes Index
Alan Wizemann edited this page 2026-05-07 12:58:22 +02:00
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Release Notes Index

Every Scarf release in chronological order. The notes themselves live in releases/v<version>/RELEASE_NOTES.md in the main repo, attached to each GitHub Release as the release body.

Version Date GitHub release Notes file
v2.7.1 2026-05-07 v2.7.1 releases/v2.7.1/RELEASE_NOTES.md
v2.7.0 2026-05-05 v2.7.0 releases/v2.7.0/RELEASE_NOTES.md
v2.6.5 2026-05-03 v2.6.5 releases/v2.6.5/RELEASE_NOTES.md
v2.6.0 2026-05-01 v2.6.0 releases/v2.6.0/RELEASE_NOTES.md
v2.5.2 2026-04-29 v2.5.2 releases/v2.5.2/RELEASE_NOTES.md
v2.5.1 2026-04-27 v2.5.1 releases/v2.5.1/RELEASE_NOTES.md
v2.5.0 2026-04-25 v2.5.0 releases/v2.5.0/RELEASE_NOTES.md
v2.3.0 2026-04-24 v2.3.0 releases/v2.3.0/RELEASE_NOTES.md
v2.2.1 2026-04-23 v2.2.1 releases/v2.2.1/RELEASE_NOTES.md
v2.2.0 2026-04-23 v2.2.0 releases/v2.2.0/RELEASE_NOTES.md
v2.1.0 2026-04-21 v2.1.0 releases/v2.1.0/RELEASE_NOTES.md
v2.0.2 2026-04-20 v2.0.2 releases/v2.0.2/RELEASE_NOTES.md
v2.0.1 2026-04-20 v2.0.1 (draft) releases/v2.0.1/RELEASE_NOTES.md
v2.0.0 2026-04 v2.0.0 releases/v2.0.0/RELEASE_NOTES.md
v1.6.2 2026-04 v1.6.2 releases/v1.6.2/RELEASE_NOTES.md
v1.6.1 2026-04 v1.6.1 releases/v1.6.1/RELEASE_NOTES.md
v1.6.0 2026-03 v1.6.0 (no notes file)
v1.5.x 2026-03 releases (no notes files)

Highlights by major

2.7.1 — Patch bundling three bug reports filed against 2.7.0 plus follow-up cleanups in the same neighborhood. #77 Sessions screen empty — pipe-buffer deadlock in SSHScriptRunner (v2.7's batched sessionListSnapshot payload finally crossed macOS's 1664 KB pipe-buffer threshold for any user with ~150+ sessions); fixed by draining stdout/stderr concurrently via readabilityHandler. #78 Skills "What's New" pill schizophrenia — pill (local file deltas) and Updates tab (upstream version availability) both said "update"; pill scoped to Installed sub-tab and reworded "updated" → "changed". #79 hub search returns nothing visible in Browse — Hermes's "all sources" search routes through the centralized index and skips API sources; "All Sources" search now filters the cached Browse list client-side. Plus narrower pgrep for the gateway probe and port-anchored stop-dashboard (replacing broad pkill -f). New scripts/local-build.sh + BUILDING.md for unsigned Debug builds without an Apple Developer account. Doc fix: BUILDING.md and CONTRIBUTING.md runtime min restored to macOS 14.6 (Sonoma) / Xcode 16.0. Cherry-picked from #76 — thanks to @unixwzrd and @bricelb.

2.7 — The largest perf-focused release since 2.6 (36 commits, no schema bump, no Hermes capability bump). Skeleton-then-hydrate chat + Activity loaders make slow-remote contexts usable: a fetchSkeletonMessages / fetchRecentToolCallSkeleton pair selects only the columns needed to render placeholder rows (NULLs the heavy ones at SQL level), then paged background hydration fills tool calls in 5-id batches; tool-result CONTENT is opt-in via Settings → Display, with per-card lazy-fetch in the inspector pane. L1 single-id whale recovery when a 5-id batch trips the 30s timeout. SSH cancellation propagation through SSHScriptRunner.run + RemoteSQLiteBackend.query via withTaskCancellationHandler — kills abandoned ssh subprocesses within 100ms instead of pinning them to the 30s deadline (fixes "third chat hangs" / "dashboard spins" after rapid switching). In-flight coalescing for loadRecentSessions drops the 2-3× contention seen during file-watcher streams. Loading-state UX hardening: synchronous greying of the chat sidebar on click; phase-typed status ("Spawning hermes acp…" → "Authenticating…" → "Loading session…" → "Loading history…" → "Ready"). Partial-result + mismatch + pinned-model banners replace silent empty-states. New Project from Scratch wizard scaffolds a Scarf-standard skeleton + AGENTS.md marker block, registers it, and hands off to a chat session that auto-activates the bundled scarf-template-author skill. Cron + Keychain mirrors resolved Keychain values into ~/.hermes/.env under marker-bounded $SCARF_<UPPER_SLUG>_<UPPER_FIELD> env vars (cron prompts can finally use secret-typed config fields without the literal keychain:// URI surfacing). Five new dashboard widgets (markdown_file, log_tail, cron_status, image, status_grid) with project-wide auto-refresh; stat gains inline sparklines; typed status enum with lenient decode; structured widget error card. OAuth keepalive cron prevents weeks-of-inactivity expiry; remote OAuth re-auth unblocked; OAuth remove button; resolve_provider_client errors classified into a clear hint. ScarfMon — perf instrumentation harness: 4096-entry in-memory ring buffer + os.Logger backend + signpost-only mode; new measure points across chat / transport / sqlite / sessionLoad / diskIO with payload bytes recorded. In-app release notes via inline <description> HTML in the Sparkle appcast (rendered from releases/v<ver>/RELEASE_NOTES.md by tools/render-release-notes.py).

2.6 — Catch up to Hermes v2026.4.30 (v0.12.0), the largest single Hermes update Scarf has had to follow since v0.10's Tool Gateway. New surfaces — all capability-gated so v0.11 hosts see the v2.5.2 surface unchanged: autonomous Curator (Mac sidebar + iOS panel) — pin / unpin skills, run / pause / resume, three leaderboards, restore archived; multimodal image input in chat (drag/drop + paste on Mac, PhotosPicker on iOS, 1568px JPEG q=0.85 detached); 5 new inference providers in the model picker (GMI Cloud, Azure AI Foundry, LM Studio first-class, MiniMax OAuth, Tencent TokenHub); Microsoft Teams + Yuanbao gateway platforms; read-only Kanban with 5s polling; Skills v0.12 surface (URL install, reload, OFF pill for disabled skills, curator pin badge); cron --workdir field; Settings deltas (cache TTL picker, redaction toggle, runtime metadata footer, Piper TTS, Vercel terminal); ScarfGo gains read-only Webhooks / Plugins / Profiles plus a pre-v0.12 Hermes-version banner. auxiliary.curator aux task replaces flush_memories on v0.12 hosts (preserved on v0.11). Plus a post-merge bug-fix round driven by GitHub issue triage: chat composer typing lag (#67), font-size slider now actually scales rich chat (#68), placeholder ghosting on first keystroke (#65), draft text bleeding between sessions (#62), sent message rendering blank after navigation (#63), background completion notifications (#64), per-message TTS playback (#66), ACP control-message timeout 30s→60s for gateway-contended hosts (#61).

2.5.2 — Patch release with one substantial new feature (iOS chat resilience) plus a stack of fixes. ScarfGo gains 5-attempt exponential reconnect via session/resume/session/load, a NetworkReachabilityService that suspends reconnect attempts while offline, scene-phase aware reconnect on foreground, and per-session draft persistence — phone-sleep, network handoffs, and SSH socket drops no longer cost the agent's work. Cross-platform cached-snapshot fallback (ServerTransport.cachedSnapshotPath) lets Dashboard / Sessions / Activity stay readable while the connection is down. Bounded message-history paging via HermesDataService.fetchMessages(limit:before:) + loadEarlier() replaces the prior unbounded fetch — long sessions stay smooth. Mac fixes: Settings → Model and Credential Pools no longer freeze for 12 minutes on remote contexts (#59) — loadProvidersAsync() / loadModelsAsync(for:) dispatch off MainActor. Diagnostics tri-state — missing config.yaml is informational on a fresh Hermes v0.11 install (Hermes lazy-creates it), reads "12/12 passing (2 optional skipped)" instead of "12/14". Credential Pools surfaces OAuth-authed providers (Nous, Spotify, Copilot, Qwen, Gemini) in a parallel section. New ProjectHermesShadowDetector warns when a project-local .hermes/ shadows the server-level config. iOS fixes: #56 Citadel snapshot path now uses executeCommandStream + Citadel-friendly PATH= prefix so missing-sqlite3 errors surface meaningfully; #57 keyboard-dismiss chevron moved to the leading edge so it doesn't stack over the send button. New: chat-start model preflight (ChatModelPreflightSheet) catches missing model/provider before the ACP session opens; Nous Portal live model catalog (NousModelCatalogService); remote-aware admin sheets for profile import/export, backup restore, and template install destination — all mirroring the Add Project pattern from #54.

2.5.1 — Patch release bundling every reported issue against 2.5.0 plus TestFlight-driven iOS fixes. Mac chat O(n)-per-token rendering bog-down on long sessions (#46) — settled bubbles now short-circuit body re-eval via Equatable, trailing-group patch helper replaces full buildMessageGroups() per chunk. Hermes v0.11 profile awareness (#50) — new HermesProfileResolver reads ~/.hermes/active_profile, every derived path follows automatically, SessionInfoBar gains a profile chip. Granular reasons + actionable hint popover on the "Connected — can't read Hermes state" pill (#53). Pill probe and Run Diagnostics no longer disagree (#44) — both now go through a shared SSHScriptRunner that bypasses runProcess's argument quoting. New chat density preferences in Settings → Display (#47 + #48) — Tool calls Full / Compact / Hidden, Reasoning Disclosure / Inline / Hidden, chat font size 85130%. iOS keyboard now dismissable via swipe + accessory toolbar (#51); first-run Cancel button hidden when there's nothing to cancel back to (#55); opt-in iCloud Keychain sync for SSH keys (#52) — pair iPhone + iPad without onboarding twice. Add Project on remote contexts now hides the local Browse button and shows a Verify-against-remote affordance (#54). Release pipeline gains a post-package codesign / spctl gate (#49). No data migrations.

2.5ScarfGo iOS companion ships in public TestFlight + full Hermes v2026.4.23 (v0.11.0) support: /steer non-interruptive guidance, per-turn stopwatch, numbered approval shortcuts, git branch chip in chat header, messages.reasoning_content + sessions.api_call_count columns surfaced. Portable project-scoped slash commands — author at <project>/.scarf/slash-commands/<name>.md and ship via .scarftemplate (schemaVersion 3); Mac authoring tab + iOS read-only browser. New skills: in-app Spotify OAuth sheet + design-md npx prereq check. SKILL.md frontmatter chips (allowed_tools, related_skills, dependencies). "What's New" pill on the Skills tab tracks per-server skill deltas. Mac global Sessions gets project filter + badges (parity with ScarfGo). Cross-platform CronScheduleFormatter, GitBranchService, SkillSnapshotService, SkillPrereqService, ProjectSlashCommandService, SpotifyAuthFlow consolidate into ScarfCore. See Platform Differences for the Mac↔iOS feature matrix.

2.3Projects sidebar grows up: folders, rename, archive, search, ⌘1-9 keyboard jumps, per-project Sessions tab, and Scarf-managed AGENTS.md context block injected at chat-start so the agent always knows what project it's in. Catches up to Hermes v0.10.0's Tool Gateway — Nous Portal subscription routing, in-app sign-in, Health-tab visibility for tool routing.

2.2Project Templates: shareable .scarftemplate bundles with typed configuration schemas, Keychain-backed secrets, a public template catalog at awizemann.github.io/scarf/templates/, scarf://install?url=… deep links, CI-enforced PR validator, and a Site tab for webview-bearing dashboards. Cross-agent by default via the AGENTS.md standard — works in Claude Code, Cursor, Codex, Aider, and every other agent that reads it. v2.2.1 adds the awizemann/template-author scaffolding-skill template and fixes the Configuration sheet's segmented-picker overflow on schemas with long enum labels.

2.1 — Full UI translations for six locales on top of English (Simplified Chinese, German, French, Spanish, Japanese, Brazilian Portuguese); locale-aware currency / byte-size / compact-number formatting; chat slash-command menu with filtering and argument hints; auto-scroll polish and loading state for chat session reconnects.

2.0 — Multi-server, remote Hermes over SSH, chat UX overhaul (no more flash, no scroll jumping, real error explanations), and a correctness pass that fixed remote WAL spam, stale-snapshot session resume, auto-resume of dead cron sessions, and 230+ Swift 6 concurrency warnings.

1.6 — Configure section: native GUI for all 13 messaging platforms, Credential Pools with proper OAuth, Model Picker backed by models.dev's 111-provider catalog, 10-tab Settings exposing ~60 previously hidden config fields, plus Personalities, Quick Commands, Plugins, Webhooks, Profiles.

1.5 — Initial public release series; foundation for everything above.

After a release

When scripts/release.sh <version> completes a full (non-draft) release, this page should be updated:

  1. Add a row at the top of the table.
  2. Bump the Latest release line on Home.
  3. Run ./scripts/wiki.sh commit "docs: index v<version> release" then push.

This is one of the wiki update triggers that future Claude Code sessions will follow automatically.


Last updated: 2026-04-29 — Scarf v2.5.2 patch (iOS chat resilience + remote-aware admin sheets + Nous live catalog)