## What's New in 2.0.1 Hotfix for [#19](https://github.com/awizemann/scarf/issues/19) and the related reports from the first day of v2.0: users' remote SSH connections would show a green "Connected" pill but every view (Dashboard, Sessions, Activity, Chat) read as empty / "not running" / "not configured". Three distinct environments reported it — Docker Hermes on a LAN, homelab VM over Tailscale, Ubuntu VPS — and every one was a silent file-access failure on the remote that Scarf wasn't surfacing. ### Errors no longer disappear Every remote read (`config.yaml`, `gateway_state.json`, `state.db`, `pgrep`) used to silently substitute an empty value on *any* failure — permission denied, missing file, `sqlite3` not installed, connection drop — they all looked identical to the UI. Now: - Each failure logs a specific warning via `os.Logger` (visible in Console.app under subsystem `com.scarf`). - The Dashboard shows an orange banner above the stats with the exact error (e.g. "Permission denied reading `~/.hermes/state.db`") and a **Run Diagnostics…** button. - `HermesDataService` exposes a `lastOpenError` so views can explain *why* state.db couldn't be opened, rather than just rendering zeros. - Routine "file doesn't exist" cases (optional `skill.yaml` metadata, `gateway_state.json` before Hermes starts, `memories/USER.md` on fresh installs) are detected and **not** logged as warnings — only real errors (permission denied, connection drops, `sqlite3` missing) hit the log. Prevents Console from filling with false-positive noise when directory walks encounter optional files. ### New Remote Diagnostics sheet Accessible from **Manage Servers → 🩺** per-server button, or by clicking the orange connection pill when Scarf can see the server but can't read Hermes state. Runs fourteen checks in a single SSH session and shows pass/fail for each, plus a targeted hint per failure: - SSH connectivity and auth - Remote user identity and `$HOME` resolution - `~/.hermes` directory existence and readability - `config.yaml` readable (existence *and* actual read access — the old probe only checked existence) - `state.db` readable - `sqlite3` installed on the remote (required for the atomic snapshot Scarf pulls) - `sqlite3` can actually open `state.db` - `hermes` binary on the non-login `$PATH` (what runtime uses) - `hermes` binary on the login `$PATH` (what the Test Connection probe uses) - `pgrep` available (for the "is Hermes running" check) One **Copy Full Report** button dumps every check as plain text for bug reports, and a raw-output disclosure panel shows the exact stdout/stderr the remote returned whenever any probe fails — so transport-level problems are self-diagnosing. The diagnostics script is piped to `/bin/sh -s` on stdin rather than passed as `sh -c