diff --git a/README.md b/README.md
index 736091e..f9ad0c5 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,20 @@ and vanilla JS.
Layout: three-panel Claude-style. Left sidebar for sessions and tools,
center for chat, right for workspace file browsing.
-
+
+
+
+
+
+
+ Workspace file browser with inline preview
+ |
+
+
+ Session projects, tags, and tool call cards
+ |
+
+
diff --git a/ROADMAP.md b/ROADMAP.md
index 4d651ad..0733e82 100644
--- a/ROADMAP.md
+++ b/ROADMAP.md
@@ -3,8 +3,8 @@
> Goal: Full 1:1 parity with the Hermes CLI experience via a clean dark web UI.
> Everything you can do from the CLI terminal, you can do from this UI.
>
-> Last updated: v0.33 (April 5, 2026)
-> Tests: 424 total (424 passing, 0 failures)
+> Last updated: v0.34.3 (April 5, 2026)
+> Tests: 433 total (433 passing, 0 failures)
> Source: /
---
@@ -42,6 +42,10 @@
| Sprint 23 | Agentic transparency | Token/cost display, subagent cards, skill picker in cron, skill linked files, workspace tree persistence, timestamp fixes | 424 |
| v0.32 | Auto-compaction handling | Compression detection, /compact command, real context window indicator | 424 |
| v0.33 | /insights sync | Opt-in state.db sync so `hermes /insights` includes WebUI sessions | 424 |
+| v0.34 | Sprint 26 — Pluggable themes | Dark, Light, Slate, Solarized, Monokai, Nord; settings unsaved-changes guard; /theme command | 433 |
+| v0.34.1 | Theme variable polish | 30+ hardcoded dark-navy colors replaced with theme-aware CSS variables | 433 |
+| v0.34.2 | Theme text colors | 5 new per-theme typography variables (--strong, --em, --code-text, --code-inline-bg, --pre-text) | 433 |
+| v0.34.3 | Light theme final polish | 46 light-scoped selector overrides for sidebar, roles, chips, interactive elements | 433 |
---
@@ -209,7 +213,7 @@
- [x] Background task cancel (activity bar Cancel button)
- [ ] Code execution cell (deferred)
- [ ] Desktop application (Sprint 25, PLANNED)
-- [ ] Pluggable UI themes -- light, dark, Solarized, Monokai, Nord (Sprint 26, PLANNED)
+- [x] Pluggable UI themes -- Dark, Light, Slate, Solarized, Monokai, Nord (Sprint 26, v0.34)
- [ ] Extended slash command / skill integration (deferred)
- [ ] Virtual scroll for large lists (deferred)
diff --git a/SPRINTS.md b/SPRINTS.md
index bdd9dbf..92afe04 100644
--- a/SPRINTS.md
+++ b/SPRINTS.md
@@ -1,6 +1,6 @@
# Hermes Web UI -- Forward Sprint Plan
-> Current state: v0.34 | 433 tests | Daily driver ready
+> Current state: v0.34.3 | 433 tests | Daily driver ready
> This document plans the path from here to two targets:
>
> Target A: 1:1 feature parity with the Hermes CLI (everything you can do from the
@@ -893,7 +893,7 @@ genuinely differentiating for an open-source project
---
-## Sprint 26 -- Pluggable UI Themes (PLANNED)
+## Sprint 26 -- Pluggable UI Themes (COMPLETED)
**Theme:** Let users choose how the app looks -- light, dark, and custom color
schemes. One-click switching, persistent preference, zero flicker on load.
@@ -1156,6 +1156,6 @@ New test cases in `tests/test_sprint26.py`:
---
*Last updated: April 5, 2026*
-*Current version: v0.34 | 433 tests*
+*Current version: v0.34.3 | 433 tests*
*Next sprint: Sprint 24 (Web Polish + Bug Fix Pass)*
-*Horizon sprint: Sprint 26 (Pluggable UI Themes)*
+*Horizon sprint: Sprint 25 (macOS Desktop Application)*
diff --git a/TESTING.md b/TESTING.md
index 92d8d22..de72b69 100644
--- a/TESTING.md
+++ b/TESTING.md
@@ -1,14 +1,14 @@
# Hermes Web UI: Browser Testing Plan
> This document is for manual browser testing by you or by a Claude browser agent.
-> It covers user-facing features of the UI through Sprint 22 (v0.24).
+> It covers user-facing features of the UI through Sprint 26 (v0.34.3).
> Each section is written as a step-by-step test procedure with expected outcomes.
> A browser agent (e.g. Claude with Chrome access) can execute this plan directly.
>
-> Prerequisites: SSH tunnel is active on port 8787. Open http://localhost:8787 in browser.
-> Server health check: curl http://127.0.0.1:8787/health should return {"status":"ok"}.
+> Prerequisites: SSH tunnel is active on port 8786. Open http://localhost:8786 in browser.
+> Server health check: curl http://127.0.0.1:8786/health should return {"status":"ok"}.
>
-> Automated tests: 424 total (424 passing, 0 failures)
+> Automated tests: 433 total (433 passing, 0 failures)
> Run: `pytest tests/ -v --timeout=60`
---
@@ -1708,8 +1708,8 @@ Each has automated API-level tests in `tests/test_sprint{N}.py`.
---
-*Last updated: Sprint 22 / v0.24, April 3, 2026*
-*Total automated tests: 415 (392 passing, 23 pre-existing failures)*
-*Regression gate: tests/test_regressions.py (23 tests)*
+*Last updated: Sprint 26 / v0.34.3, April 5, 2026*
+*Total automated tests: 433 (433 passing, 0 failures)*
+*Regression gate: tests/test_regressions.py*
*Run: pytest tests/ -v --timeout=60*
*Source: /*