{"repo":"NousResearch/hermes-agent","public_id":"52811","display_label":"Desktop sidebar duplicate lanes in non-git projects","summary":"A cluster of bugs, fixes, and features centered on the desktop sidebar incorrectly creating duplicate or phantom lanes/sessions for non-git project folders, along with related fixes for chat creation failures and lane deduplication logic in that context.","subsystem":"apps/desktop","counts":{"members":14,"open_issues":0,"open_issues_distinct":0,"open_prs":2,"closed_issues":8,"merged_prs":2,"attempt_prs":4},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":123096,"merged_at":"2026-09-25T22:19:55+00:00"},"resolution":{"state":"partially_resolved","by":"pr-86756,pr-123096"},"freshness":{"state":"verified","last_verified_at":"2026-09-25T22:19:55+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_PARTIAL","link_density":0.19824175824175824},"fix_edges":[{"issue_number":53329,"pr_number":86756,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-08-15T07:33:12+00:00"},{"issue_number":55684,"pr_number":86756,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-15T07:33:12+00:00"},{"issue_number":55725,"pr_number":86756,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-15T07:33:12+00:00"},{"issue_number":61362,"pr_number":123096,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-25T22:19:55+00:00"},{"issue_number":70790,"pr_number":86756,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-08-15T07:33:12+00:00"},{"issue_number":75820,"pr_number":86756,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-08-15T07:33:12+00:00"},{"issue_number":76531,"pr_number":86756,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-15T07:33:12+00:00"},{"issue_number":83028,"pr_number":86756,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-15T07:33:12+00:00"}],"members":[{"kind":"issue","number":52811,"title":"[Bug]: Desktop sidebar shows duplicate entries under Project — same conversation listed under both \"main\" branch and folder name","url":null,"state":"closed"},{"kind":"issue","number":53329,"title":"[Bug]: Non-git project folders show duplicate lanes (folder name + \"main\") with same sessions","url":null,"state":"closed"},{"kind":"issue","number":57715,"title":"Desktop: duplicate branches when workspace dir is not a git repo","url":null,"state":"closed"},{"kind":"issue","number":59228,"title":"Desktop sidebar creates duplicate 'main' lane for non-git project folders","url":null,"state":"closed"},{"kind":"issue","number":61362,"title":"[Bug] Non-git project folder renders a phantom \"branch\" entry in sidebar; clicking it triggers \"fatal: not a git repository\"","url":null,"state":"closed"},{"kind":"issue","number":62165,"title":"Mac Desktop App: non-Git project renders one session twice in folder and synthetic main lanes","url":null,"state":"closed"},{"kind":"issue","number":68192,"title":"Desktop: new chat in non-git Project fails with 'hermes:git:branchSwitch' / fatal: not a git repository","url":null,"state":"closed"},{"kind":"issue","number":68299,"title":"[Bug]: Sending a message creates duplicate entry for the same session in the sidebar","url":null,"state":"closed"},{"kind":"pr","number":53345,"title":"fix(projects): use _branch_lane_id for non-git folders to prevent duplicate lanes (#53329)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#86756","number":86756}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":58048,"title":"fix(desktop): use main lane for non-git project folders","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#86756","number":86756},{"kind":"pr","value":"#53345","number":53345}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":68414,"title":"fix(desktop): allow new chats in non-git projects","url":null,"state":"open","close_reason":{"refs":[{"kind":"commit","value":"87d1ec65582c","number":0},{"kind":"pr","value":"#68414","number":68414},{"kind":"pr","value":"#75459","number":75459},{"kind":"pr","value":"#53098","number":53098},{"kind":"pr","value":"#53345","number":53345},{"kind":"pr","value":"#55834","number":55834},{"kind":"pr","value":"#58048","number":58048},{"kind":"pr","value":"#61950","number":61950},{"kind":"pr","value":"#63077","number":63077},{"kind":"pr","value":"#63547","number":63547},{"kind":"pr","value":"#64648","number":64648},{"kind":"pr","value":"#65030","number":65030},{"kind":"pr","value":"#71858","number":71858},{"kind":"pr","value":"#71889","number":71889},{"kind":"pr","value":"#71860","number":71860},{"kind":"pr","value":"#77219","number":77219},{"kind":"pr","value":"#374151","number":374151},{"kind":"pr","value":"#53329","number":53329},{"kind":"pr","value":"#57715","number":57715},{"kind":"pr","value":"#59228","number":59228},{"kind":"pr","value":"#61362","number":61362},{"kind":"pr","value":"#62165","number":62165},{"kind":"pr","value":"#68192","number":68192}],"category":"partial_fix","implication":"needs_llm"},"merged":false},{"kind":"pr","number":75459,"title":"fix(desktop): create sessions in non-git projects","url":null,"state":"open","close_reason":{"refs":[{"kind":"commit","value":"f364c19775","number":0},{"kind":"commit","value":"1504e2f24","number":0},{"kind":"pr","value":"#86756","number":86756}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":86756,"title":"fix(desktop): one lane per repo/folder — dedupe project lanes, recency order, stale-lane eviction","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["apps/desktop/electron/git-worktree-ops.test.ts","apps/desktop/electron/git-worktree-ops.ts","apps/desktop/src/app/chat/sidebar/projects/workspace-groups.test.ts","apps/desktop/src/app/chat/sidebar/projects/workspace-groups.ts","contributors/emails/[redacted:email]","contributors/emails/rsk-731@users.noreply.github.com","hermes_cli/projects_db.py","hermes_state.py","hermes_state_common.py","tests/hermes_cli/test_projects_db.py","tests/hermes_cli/test_session_recovery_lost_and_found.py","tests/state/test_session_git_metadata_generation.py","tests/tui_gateway/test_project_tree.py","tests/tui_gateway/test_session_git_metadata_generation.py","tools/project_tools.py","tui_gateway/project_tree.py","tui_gateway/server.py"]},{"kind":"pr","number":123096,"title":"fix(projects): gate branch switching on non-git folder lanes","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["apps/desktop/src/app/chat/sidebar/projects/workspace-group.tsx","apps/desktop/src/app/chat/sidebar/projects/workspace-groups.ts","apps/desktop/src/app/chat/sidebar/sessions-section-new-session-drag.test.tsx","apps/shared/src/gateway-contract.generated.ts","apps/shared/src/gateway-contract.openrpc.json","tests/tui_gateway/test_project_tree.py","tui_gateway/contracts/projects_pets.py","tui_gateway/project_tree.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}