feat(desktop): improve session list sidebar - #65720
Closed
phathur wants to merge 1 commit into
Closed
Conversation
- Add "No project" bucket for unowned sessions (empty cwd, home directory, ~/.hermes path) that were previously hidden - Increase project preview session limit from 3 to 20, so users can see more recent sessions without drilling into projects - Fix frontend mapping logic to support pathless synthetic groups like No project Closes issue where users couldn't see sessions without explicit project assignment, and only saw 3 most recent sessions per project in overview.
Collaborator
Related to #54608, which already implements the broader No project bucket rendering path. This PR also changes the project preview limit, so it is not marked duplicate; maintainers should choose or consolidate the overlapping bucket work. |
tonydwb
reviewed
Jul 16, 2026
tonydwb
left a comment
There was a problem hiding this comment.
Code Review Summary
Verdict: Approved
Feature improving session list sidebar (+52 -6). Clean UI improvement.
Reviewed by Hermes Agent
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
The desktop app sidebar hid all sessions that didn't belong to an explicit project — sessions with an empty cwd, a home-directory cwd (
~/), or a cwd under~/.hermes/were silently filtered out as "junk" and never appeared in the session list. Additionally, the project overview only showed the 3 most recent sessions per project, forcing users to click into each project to find older conversations.This PR makes two improvements:
Add a "No project" bucket for unowned sessions. Sessions that can't be auto-grouped into a project (empty cwd, home directory,
~/.hermes/path, or no valid git repo) are now collected into a synthetic "No project" group in the sidebar, so users can find and access all their conversations.Increase preview session limit from 3 to 20. The project overview in the sidebar now shows up to 20 recent sessions per project (up from 3), so most users can see all their recent conversations without drilling into each project.
Frontend fix for pathless groups. Updated
overlayLivePreviewsto usenode.path ?? node.idas the key instead of skipping nodes with no path, so the new "No project" synthetic group (which haspath: null) renders correctly in the live preview overlay.Related Issue
No existing issue — this was discovered during personal use of the desktop app.
Type of Change
Changes Made
tui_gateway/project_tree.py(+49 lines): New logic in the project tree builder that iterates overunownedsessions, checks each session's repo root / cwd against junk criteria (home dir, hermes home, empty cwd), and collects them into a__no_project__synthetic project node withpath: None. Scoped session IDs are extended so these sessions appear in the flat list too.apps/desktop/src/store/projects.ts(+1/-1): Changedpreview_limitparameter in theprojects.treegateway request from3to20.apps/desktop/src/app/chat/sidebar/projects/workspace-groups.ts(+2/-5): Replaced the earlyif (!node.path) continuewithconst key = node.path ?? node.id, so pathless synthetic groups (like "No project") are included in the overlay output instead of being skipped.How to Test
~), or cwd under~/.hermes/— verify they now appear under a "No project" group in the sidebar (previously they were completely hidden).npx tsc --noEmitinapps/desktop/— TypeScript compilation passes with no errors.python3 -m py_compile tui_gateway/project_tree.py— Python syntax check passes.Checklist
Code
fix(scope):,feat(scope):, etc.)pytest tests/ -qand all tests passDocumentation & Housekeeping
preview_limitchange is a hardcoded constant, not a user-facing config key.Screenshots / Logs
Not applicable — the changes are minimal: one additional synthetic group in the sidebar and more sessions listed per project in overview mode.