mirror of
https://github.com/awizemann/scarf.git
synced 2026-05-10 18:44:45 +00:00
docs(wiki): v2.7.1 — release index + local-build pointer
@@ -39,6 +39,14 @@ xcodebuild -project scarf/scarf.xcodeproj -scheme scarf \
|
||||
-arch arm64 -arch x86_64 ONLY_ACTIVE_ARCH=NO build
|
||||
```
|
||||
|
||||
#### Without an Apple Developer account
|
||||
|
||||
`scripts/local-build.sh` (added in v2.7.1) wraps an unsigned single-arch Debug build for contributors who don't have a signing certificate. It detects arm64 / x86_64, verifies xcode-select / xcrun / xcodebuild are present, probes the Metal toolchain (offers an interactive install on a TTY, errors cleanly on CI), resolves Swift packages, and builds with `CODE_SIGNING_ALLOWED=NO`. Optional one-touch `ditto` to `/Applications/scarf.app` on explicit y/N. See [`BUILDING.md`](https://github.com/awizemann/scarf/blob/main/BUILDING.md) in the repo for the full prerequisites list.
|
||||
|
||||
```bash
|
||||
./scripts/local-build.sh
|
||||
```
|
||||
|
||||
### iOS scheme (`scarf mobile`)
|
||||
|
||||
Debug build for the simulator (no physical device needed):
|
||||
|
||||
+2
-2
@@ -2,7 +2,7 @@
|
||||
|
||||
A native macOS companion app for the [Hermes AI agent](https://github.com/hermes-ai/hermes-agent). Full visibility into what Hermes is doing, when, and what it creates — across one local install or many remote ones.
|
||||
|
||||
**Latest release:** [v2.7.0](https://github.com/awizemann/scarf/releases/tag/v2.7.0) — the largest perf-focused release since 2.6 (36 commits, no schema bump). **Skeleton-then-hydrate chat + Activity loaders** make slow-remote contexts usable: chats and Activity render in seconds instead of timing out at 30s, with paged background hydration filling tool calls in. **SSH cancellation propagation** through `SSHScriptRunner` + `RemoteSQLiteBackend` kills abandoned ssh subprocesses within 100ms (no more "third chat hangs / dashboard spins" after rapid switching). **In-flight coalescing** for `loadRecentSessions` drops the 2-3× contention seen during file-watcher streams. **New Project from Scratch wizard** scaffolds a Scarf-standard skeleton 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 `$SCARF_<SLUG>_<FIELD>` env vars so cron prompts can finally use secret-typed config fields. **Five new dashboard widgets** (`markdown_file`, `log_tail`, `cron_status`, `image`, `status_grid`) with project-wide auto-refresh, sparklines on `stat`, typed status badges. **OAuth keepalive cron** prevents weeks-of-inactivity expiry; **remote re-auth** unblocked; **mismatch banner** for `model.default` / `model.provider` disagreements after Credential Pools OAuth swap; **pinned-model failure hint** for old chats whose original model no longer exists. **ScarfMon** harness (off by default, signpost-only mode is free) drove the bulk of the diagnosis — full event vocabulary in [Performance-Monitoring](Performance-Monitoring). See [v2.7.0 release notes](https://github.com/awizemann/scarf/blob/main/releases/v2.7.0/RELEASE_NOTES.md).
|
||||
**Latest release:** [v2.7.1](https://github.com/awizemann/scarf/releases/tag/v2.7.1) — patch release fixing three bugs filed against 2.7.0 ([#77](https://github.com/awizemann/scarf/issues/77) Sessions screen empty, [#78](https://github.com/awizemann/scarf/issues/78) Skills "What's New" pill schizophrenia, [#79](https://github.com/awizemann/scarf/issues/79) hub search misses skills visible in Browse) plus follow-up cleanups in the same neighborhood: tighter `pgrep` for the gateway probe, port-anchored stop-dashboard (no more `pkill -f`), and a new `scripts/local-build.sh` + `BUILDING.md` for unsigned Debug builds without an Apple Developer account. See [v2.7.1 release notes](https://github.com/awizemann/scarf/blob/main/releases/v2.7.1/RELEASE_NOTES.md). 2.7.0 highlights are still the headline story — **skeleton-then-hydrate chat + Activity loaders**, **SSH cancellation propagation** (no more "third chat hangs / dashboard spins"), **in-flight coalescing**, **New Project from Scratch wizard**, **Cron + Keychain** mirroring, **five new dashboard widgets**, **OAuth keepalive cron**, and the **ScarfMon** perf harness. Full vocabulary in [Performance-Monitoring](Performance-Monitoring).
|
||||
**Latest mobile:** [Join the public TestFlight](https://testflight.apple.com/join/qCrRpcTz). The link is live now but only accepts new beta testers once Apple's Beta Review approves the first build — see [ScarfGo](ScarfGo) for the full feature tour.
|
||||
**Targets Hermes:** v0.12.0 (v2026.4.30) — autonomous Curator, multimodal ACP image content blocks, 5 new providers, Microsoft Teams + Yuanbao gateways, Kanban CLI, Skills URL install / reload / disable, cron `--workdir`, `auxiliary.curator`, prompt-cache TTL, Piper TTS, Vercel terminal. v0.11.0 / v0.10.0 still work for everything that didn't change — Scarf detects the host's Hermes version and hides v0.12-only surfaces gracefully.
|
||||
**Available in:** English, Simplified Chinese (zh-Hans), German (de), French (fr), Spanish (es), Japanese (ja), Brazilian Portuguese (pt-BR). See [Localization](Localization). _ScarfGo is English-only in v1._
|
||||
@@ -41,4 +41,4 @@ Scarf 2.0 is a multi-window app — one window per Hermes server, local or remot
|
||||
Open-source (MIT), 160+ stars, actively maintained. See [Roadmap](Roadmap) for what's coming.
|
||||
|
||||
---
|
||||
_Last updated: 2026-05-05 — Scarf v2.7.0 (skeleton-then-hydrate chat + Activity loaders, SSH cancellation propagation, in-flight coalescing, New Project from Scratch wizard, Keychain-backed cron secrets, 5 new dashboard widgets, OAuth keepalive cron, ScarfMon perf harness)_
|
||||
_Last updated: 2026-05-07 — Scarf v2.7.1 (patch: Sessions empty fix #77, Skills pill schizophrenia #78, hub search misses #79, narrower gateway pgrep, port-anchored stop-dashboard, contributor `local-build.sh` + `BUILDING.md`)_
|
||||
|
||||
@@ -4,6 +4,7 @@ Every Scarf release in chronological order. The notes themselves live in `releas
|
||||
|
||||
| Version | Date | GitHub release | Notes file |
|
||||
|---|---|---|---|
|
||||
| **v2.7.1** | 2026-05-07 | [v2.7.1](https://github.com/awizemann/scarf/releases/tag/v2.7.1) | [`releases/v2.7.1/RELEASE_NOTES.md`](https://github.com/awizemann/scarf/blob/main/releases/v2.7.1/RELEASE_NOTES.md) |
|
||||
| **v2.7.0** | 2026-05-05 | [v2.7.0](https://github.com/awizemann/scarf/releases/tag/v2.7.0) | [`releases/v2.7.0/RELEASE_NOTES.md`](https://github.com/awizemann/scarf/blob/main/releases/v2.7.0/RELEASE_NOTES.md) |
|
||||
| **v2.6.5** | 2026-05-03 | [v2.6.5](https://github.com/awizemann/scarf/releases/tag/v2.6.5) | [`releases/v2.6.5/RELEASE_NOTES.md`](https://github.com/awizemann/scarf/blob/main/releases/v2.6.5/RELEASE_NOTES.md) |
|
||||
| **v2.6.0** | 2026-05-01 | [v2.6.0](https://github.com/awizemann/scarf/releases/tag/v2.6.0) | [`releases/v2.6.0/RELEASE_NOTES.md`](https://github.com/awizemann/scarf/blob/main/releases/v2.6.0/RELEASE_NOTES.md) |
|
||||
@@ -24,6 +25,8 @@ Every Scarf release in chronological order. The notes themselves live in `releas
|
||||
|
||||
## 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](https://github.com/awizemann/scarf/issues/77) Sessions screen empty** — pipe-buffer deadlock in `SSHScriptRunner` (v2.7's batched `sessionListSnapshot` payload finally crossed macOS's 16–64 KB pipe-buffer threshold for any user with ~150+ sessions); fixed by draining stdout/stderr concurrently via `readabilityHandler`. **[#78](https://github.com/awizemann/scarf/issues/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](https://github.com/awizemann/scarf/issues/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](https://github.com/awizemann/scarf/pull/76) — thanks to [@unixwzrd](https://github.com/unixwzrd) and [@bricelb](https://github.com/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](https://github.com/awizemann/scarf/issues/67)), font-size slider now actually scales rich chat ([#68](https://github.com/awizemann/scarf/issues/68)), placeholder ghosting on first keystroke ([#65](https://github.com/awizemann/scarf/issues/65)), draft text bleeding between sessions ([#62](https://github.com/awizemann/scarf/issues/62)), sent message rendering blank after navigation ([#63](https://github.com/awizemann/scarf/issues/63)), background completion notifications ([#64](https://github.com/awizemann/scarf/issues/64)), per-message TTS playback ([#66](https://github.com/awizemann/scarf/issues/66)), ACP control-message timeout 30s→60s for gateway-contended hosts ([#61](https://github.com/awizemann/scarf/issues/61)).
|
||||
|
||||
Reference in New Issue
Block a user