diff --git a/.claude/skills/changelog/watermark b/.claude/skills/changelog/watermark
index 10eee6c9e..22cb0fa47 100644
--- a/.claude/skills/changelog/watermark
+++ b/.claude/skills/changelog/watermark
@@ -1 +1 @@
-6d97de0d9948f26d544e7a2bc35a99f53c55cbf8
+cb0c39ee915896c5a3e8873180092a8bc95bbf36
diff --git a/docs/changelog/2026-04-24.mdx b/docs/changelog/2026-04-24.mdx
index e3017940e..0e8371481 100644
--- a/docs/changelog/2026-04-24.mdx
+++ b/docs/changelog/2026-04-24.mdx
@@ -1,5 +1,5 @@
---
-title: "Server-backed rewind and fork"
+title: "Server-backed rewind, setup polish, and diff stats"
date: "2026-04-24"
---
@@ -28,27 +28,50 @@ The source run records which run superseded it, so archived run history keeps a
`fabro fork`, `fabro rewind`, and their `--list` modes now use the server API. The server must be able to read the run's recorded working directory. Timeline listing no longer rebuilds a missing metadata branch; if the metadata branch is gone, the timeline is empty until metadata is restored.
+## Smoother setup and local auth
+
+Self-hosted setup is easier to complete from the browser and the CLI. The install wizard now works from the server root, exposes the local object store root, treats the AWS access key ID as readable text, and the server start banner prints the install token on its own copyable line.
+
+Dev-token credentials are now stored in the same auth store as OAuth credentials, so CLI targets resolve credentials consistently whether the server is reached through TCP or a Unix socket.
+
+```bash
+fabro auth login --dev-token
+```
+
## More
- New `POST /api/v1/runs/{id}/rewind` endpoint creates the replacement run and archives the source run
- New `POST /api/v1/runs/{id}/fork` endpoint forks a run from the server-side run record
- New `GET /api/v1/runs/{id}/timeline` endpoint returns checkpoint timeline entries from run metadata
+- `GET /api/v1/runs/{id}/files` responses now include aggregate additions and deletions in `meta.stats`
+- Install prefill and object-store responses now include local object store root details
- Run summaries now include `superseded_by` data for rewound source runs
- Removed the obsolete `fabro pr list` command
- `fabro fork`, `fabro rewind`, and timeline listing now call the server API
+- Fatal CLI errors now use styled diagnostics while preserving exit codes, telemetry, and auth help hints
+- Server start output now prints the install token on a separate copyable line
+- Added `fabro auth login --dev-token` for saving dev-token credentials in the auth store
+
+
+
+- Disabled git signing for sandbox checkpoint commits so local signing configuration does not block workflow bookkeeping
+- Run Files now shows aggregate `+/-` diff stats beside the file count
+- Run Files now uses a PR-style header with captured time, refresh, and Split/Stacked controls in one row
+- Credentials embedded in URLs are redacted in logs and error output
+- CLI and user-configuration reference docs are generated and checked for drift
- Updated the quick start with supported platform details
-- Fixed Mintlify MDX parsing in planning docs
-- Simplified server-side pull request creation plumbing around run and GitHub context loading
+- Fixed the install wizard not mounting at the root route
+- Fixed the local object store root missing from install wizard configuration
+- Changed the AWS access key ID field to a readable text input
- Changed the install wizard token field to a single-line input
-- Refreshed the embedded web assets for the rewind and install UI changes
diff --git a/docs/changelog/2026-04-25.mdx b/docs/changelog/2026-04-25.mdx
new file mode 100644
index 000000000..53493d09f
--- /dev/null
+++ b/docs/changelog/2026-04-25.mdx
@@ -0,0 +1,28 @@
+---
+title: "Files Changed sidebar and settings panels"
+date: "2026-04-25"
+---
+
+## Files Changed sidebar
+
+Large diffs are easier to navigate from the run detail page. The Files Changed tab now has a GitHub-style file tree sidebar that lists only changed files, shows each file's git status, supports search, and keeps selection tied to the existing `#file=` deep-link behavior.
+
+Clicking a file in the tree scrolls and focuses the matching diff, while mobile layouts keep the stacked diff view uncluttered. The tree lazy-loads on desktop and reserves its column while loading, so the diff layout no longer jumps as sidebar data arrives.
+
+## Settings panels
+
+The Settings page now presents server configuration as curated panels instead of a raw JSON dump. Server, access, integration, and artifact values are rendered with typed controls and readable summaries, so operators can scan what matters without parsing the full settings payload.
+
+## More
+
+
+- Added the captured commit short SHA to the Files Changed freshness label
+- Unboxed the Files Changed tree so it sits directly in the sidebar layout
+- Styled web OAuth callback state-validation errors with the same browser shell as the CLI auth flow
+
+
+
+- Fixed aggregate diff stats counting sensitive, binary, symlink, and submodule entries that are not visible in the diff
+- Fixed Files Changed tree selection so it only targets valid file paths after filtering or reloads
+- Fixed sidebar loading and filtering behavior to keep the desktop layout stable
+
diff --git a/docs/docs.json b/docs/docs.json
index f4d9ba011..67e18331a 100644
--- a/docs/docs.json
+++ b/docs/docs.json
@@ -252,6 +252,7 @@
"group": "April 2026",
"icon": "clock-rotate-left",
"pages": [
+ "changelog/2026-04-25",
"changelog/2026-04-24",
"changelog/2026-04-23",
"changelog/2026-04-22",