### Changed
- **File autocomplete dropdown is now wider** (384px vs 288px) to better display file paths.
- **File items now prioritize the filename** over the directory path — the directory is shown in muted secondary text, making it easy to scan results at a glance.
- **File items show a theme-aware tooltip on hover** displaying the full file path in monospace, positioned to the right side so it doesn't obstruct the rest of the list.
- **Press `→` (right arrow) on a selected file** to open the path tooltip via keyboard; press `←` (left arrow) to dismiss it.
- **Dark theme text colors softened for improved readability.** Primary text reduced from near-pure-white (oklch 0.95) to a softer off-white (oklch 0.90), secondary and accent text lowered proportionally, and muted text rebalanced — all tokens now meet WCAG AAA contrast (7:1+ for normal text) across all 5 dark schemes (neutral, ocean, forest, sunset, amethyst).
- **Code blocks are now theme-aware in light mode.** Syntax highlighting previously used hardcoded dark themes (`oneDark`) regardless of the app's light/dark mode, making code barely readable in light theme. All code rendering surfaces now adapt to the active theme — using `oneLight`/`nightOwlLight` in light mode and `oneDark`/`nightOwl` in dark mode.

### Fixed
- Fixed Windows desktop header misalignment. The Single Workspace, Overview, and More icons were vertically offset from the native Minimize/Maximize/Close controls because a 30px spacer (designed for macOS traffic light buttons) was also rendering on Windows, pushing the header bar down. The spacer now shows on all Electron platforms consistently, the extra `pr-36` right padding on the header has been removed, and the header bar is properly aligned with the native window controls.
- Fixed Windows native window controls (Minimize/Maximize/Close) not adapting to the app theme. The title bar overlay now syncs with the active theme — pure white background with dark symbols in light mode, and pure black background with light symbols in dark mode — so the controls blend seamlessly into the title bar area.
- New sessions and forked sessions now properly register as participants on the server. Previously, creating a new session did not trigger a session resume, so the client was never registered as a participant and control state was never initialized. This caused all server-broadcast messages (including chat responses) to be silently dropped — the user would see nothing in the chat until manually clicking the session again to resume it.
- Refreshing the page on a session URL (e.g. `/server/$serverId/workspace/session/$sessionId`) now properly loads the session contents, messages, usage, and control state. Previously, the WebSocket connected before the session list was fetched from the REST API, so the "resume on connect" logic had no session ID to resume — leaving the chat empty and without control until the user manually clicked the session in the sidebar.
- Fixed Electron auto-updater resolving to the wrong GitHub release. The updater was looking for `latest-mac.yml` in the `server/v1.0.0` release instead of `client/v1.0.0`, resulting in a 404 error. This happened because `electron-updater` uses GitHub's `/releases/latest` endpoint which returned the server release instead of the client release (both are non-prerelease in the same repo with the same version). The updater now explicitly resolves the correct `client/v*` tagged release via the GitHub API and uses a Generic provider to fetch update artifacts from the right URL.
- Fixed code blocks rendering with dark backgrounds and dark text in light theme across MarkdownRenderer (chat messages), CodeBlock (tool visualizations), FilePreviewCodeView (file previews), DiffViewer (git diffs), and TerminalOutput (borders). Background colors, syntax highlighting themes, line number borders, and diff tint colors now all adapt to the active light/dark mode.
