- Right-click now selects the clicked file before opening menu 🖱️
- LogViewer shows agent name pill for toast project entries ✏️
- Autorun logs get an agent/session pill pulled from context 🏷️
- Context badges no longer show for toast and autorun logs 🚫
- Added `NOTHING_TO_REPORT` sentinel for “no meaningful work” responses 🧩
- Synopsis parsing now flags `nothingToReport` and skips history creation ⏭️
- New helper `isNothingToReport()` handles ANSI/box-drawing-wrapped tokens 🧼
- Autorun synopsis prompt now requires strict `NOTHING_TO_REPORT` output 📜
- File tree loading avoids redundant reloads after an empty initial load 🌲
- Delete confirmation button uses softer semi-transparent error styling 🎨
- SSH directory stats now include remote file and folder counts ⚡
- New incremental remote scanning finds changed files without full walks 🚀
- Baseline remote file listing added for faster subsequent refreshes 🧭
- File tree loading now streams live progress for slow SSH sessions 🛰️
- Fresh loading UI shows spinner, counters, and active scanned folder ⏳
- Sessions track file-tree loading state, progress, and last scan time 🧾
- New instance creation validates remote project path before enabling submit 🛡️
- Edit agent modal now verifies remote directory exists before saving 🔍
- Mind map nodes now label using filename (without .md) for clarity 🏷️
- Highlighted graph connections are now bolder for better visibility 🎯
Found expired OAuth token, attempting refresh...
Token refresh successful
## CHANGES
- Disabled SSH connection multiplexing to eliminate “UNKNOWN port -1” flakiness 🛡️
- AI stderr now renders with proper red-box styling in the right tab 🟥
- Batched AI logs preserve stdout/stderr separation for cleaner grouping fidelity 🧾
- File tree errors now trigger automatic retry with a 20-second backoff timer ⏳
- Added per-session retry scheduling with safe timer cleanup on unmount 🧹
- File Explorer shows a live retry countdown plus a “Retry Now” action ⏱️
- Agent sessions get “Retry Connection” instead of misleading directory selection 🔄
- Terminal sessions keep “Select New Directory” only when it actually applies 📁
- Session list visually wraps worktree stacks in flat/ungrouped views for clarity 🧩
- Added SSH-aware worktree directory scanning for remote Git setups! 🛰️
- Git repo checks now support SSH remote IDs across the app! 🔐
- Usage stats now track local vs SSH remote query execution! 📍
- Introduced stats DB v2 migration adding `is_remote` column + index! 🗃️
- Aggregated stats API now returns `byLocation` breakdown for dashboards! 🧭
- New donut chart visualizes Local vs SSH Remote session distribution! 🍩
- Execution Queue pills intelligently size to show full tab names! 🏷️
- Queue pills now include hover titles for full tab text! 🧾
- Worktree sessions now inherit SSH configuration from parent sessions! 🧬
- Release notes frontmatter now includes a shiny new `scroll` icon! 📜
- Explore markdown relationships with the new interactive Document Graph view 🕸️
- Jump into Document Graph from explorer, quick actions, and file preview ⌨️
- Navigate graphs keyboard-first with depth control, search, and node positioning 🧭
- Optionally surface external-link domains as nodes for instant reference 🔗
- Group Chat now mixes local and SSH-remote agents for cross-machine teamwork 🛰️
- SSH Remote Execution docs revamped with clearer setup, mapping, and status cues 🛠️
- Remote sessions now fully support File Explorer, Auto Run, worktrees, and terminal 🧰
- File explorer context menu adds “Document Graph” for markdown files only 📁
- Edit Agent modal lets you copy session ID from a slick custom header 🪪
- Freshened app branding with updated icons across platforms 🎨
- File/directory listings now include full paths for reliable recursion 🧭
- Remote directory entries use POSIX-style path joining for consistency 🧱
- `process:runCommand` now supports per-session SSH remote execution 🚀
- Preload + renderer API updated to pass `sessionSshRemoteConfig` cleanly 🔌
- ProcessManager can execute one-off commands via SSH, not just locally 🌐
- SSH execution adds robust defaults: BatchMode, timeouts, host-key handling 🛡️
- Remote commands run in login shell with env exports and safe escaping 🧪
- File Explorer header now displays/copies `projectRoot` instead of `cwd` 📁
- File tree refresh uses `projectRoot`, keeping Files tab stable across `cd` 📌
- Document Graph focus badge no longer clickable; focus changes via node double-click 🎯
Pass sshRemoteId to fs.readDir and fs.directorySize calls in:
- loadFileTree() for remote directory listing
- useFileTreeManagement hook for all file tree operations
This completes Phase 3 of SSH remote support, enabling the
File Explorer to work with remote sessions over SSH.
Added unit tests for SSH context propagation.
Phase 1, Task 1.3: Updated hooks and components to access session.sshRemoteId
and session.remoteCwd for future remote file operations support.
Changes:
- Added SshContext interface to fileExplorer.ts
- Updated loadFileTree() to accept optional SSH context parameter
- Added getSshContext() helper in useFileTreeManagement hook
- Updated refreshFileTree, refreshGitFileState, and initial load effect
to pass SSH context when session has sshRemoteId
- Added test for SSH context propagation
This prepares the codebase for Phase 2 (Remote File System Utilities)
where actual SSH-aware file operations will be implemented.
- Added `fs.directorySize` IPC API returning size, files, folders stats 📦
- File Explorer now shows bottom status bar with counts and size 📊
- File tree refresh fetches tree and directory stats in parallel ⚡
- Session state now stores `fileTreeStats` for richer explorer context 🧾
- AutoRun task progress highlights completed/total counts with accent styling 🎯
- History detail markdown now uses consistent terminal prose styling 📝
- History panel scroll handling throttled to 4ms for smoother scrolling 🧈
- Terminal output scroll throttling upgraded for ultra-smooth scrollbar feel 🏎️
- Scrollbar highlight logic now batched via RAF and passive listeners 🧵
- System prompt clarifies read-only/plan mode: include artifacts plus summary 🧠