Improve Gemini project resolution, add hide-unknown filter, fix agent colors#44
Improve Gemini project resolution, add hide-unknown filter, fix agent colors#44
Conversation
…roject filter Gemini CLI's projects.json loses old project mappings over time, leaving orphan SHA-256 hash directories that resolve to "unknown". This reads ~/.gemini/trustedFolders.json as a supplementary source of project paths, recovering hash-to-project mappings that projects.json has lost. Also adds an exclude_project API filter (project != ?) and a "Hide unknown" toggle in the sidebar filter dropdown, so users with many unresolvable Gemini sessions can hide them from the session list. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Clear project filter when it equals "unknown" and hide-unknown is enabled, preventing the contradictory project=unknown&exclude_project=unknown query. Add 8 store tests covering: API serialization, conflicting filter clearing, URL param round-trip, hasActiveFilters, and clearSessionFilters interaction. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
initFromParams can receive project=unknown&exclude_project=unknown from URL params, producing an always-empty query. Apply the same normalization as setHideUnknownProjectFilter: clear project when it conflicts with hide-unknown. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fixes #42. Claude and Gemini both used --accent-blue, making them indistinguishable in the sidebar and filter UI. Adds --accent-cyan (light: #0891b2, dark: #22d3ee) and assigns it to Gemini. Also adds missing agent-gemini and agent-opencode badge classes in App.svelte. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
roborev: Combined Review (
|
The CSS classes were defined but the template lacked the corresponding class: bindings, causing Svelte unused CSS selector warnings. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
roborev: Combined Review (
|
Replace the dot indicator with a colored pill badge showing the agent name (e.g. CLAUDE, GEMINI) in the sidebar session list. The pill keeps the pulse-glow animation for recently active sessions. Switch Gemini from cyan to teal (light: #0d9488, dark: #2dd4bf) for better visual distinction from Claude's blue. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
roborev: Combined Review (
|
Replace the heavy solid-color pill badge with a lighter treatment: a small colored dot paired with the agent name in the agent's accent color. This integrates better with the sidebar's understated aesthetic while still making agents instantly distinguishable at a glance. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Teal was too close to Codex's green. Rose (light: #e11d48, dark: #fb7185) is maximally distinct from all other agent colors: blue (Claude), green (Codex), amber (Copilot), purple (OpenCode). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add max-width on .agent-indicator and text truncation on .agent-label so unexpectedly long agent names don't compress session content. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
roborev: Combined Review (
|
Move the project/exclude_project conflict guard into apiParams so no code path (toggle, URL params, or direct filter mutation) can produce the contradictory project=unknown&exclude_project=unknown query. When project is explicitly set to "unknown", exclude_project is suppressed regardless of hideUnknownProject state. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
roborev: Combined Review (
|
Summary
trustedFolders.jsonalongsideprojects.jsonwhen building the Gemini hash-to-project map.trustedFolders.jsonpersists longer thanprojects.json, recovering project names for orphaned SHA-256 hash directories that Gemini CLI has cleaned up.exclude_projectAPI filter (project != ?SQL predicate) and a "Hide unknown" toggle in the sidebar filter dropdown, letting users hide sessions with unresolvable project names. Conflictingproject=unknown+exclude_project=unknownis prevented centrally inapiParams-- explicit project selection always wins.--accent-blue. Gemini now uses--accent-rose(light:#e11d48, dark:#fb7185) for maximum distinction from all other agent colors.agent-geminiandagent-opencodebadge classes in the breadcrumb.Test plan
TestBuildGeminiProjectMapTrustedFolders,TestBuildGeminiProjectMapBothFiles,TestBuildGeminiProjectMapProjectsWinverify trustedFolders.json reading and precedenceTestSessionFilterExcludeProjectcovers exclude_project SQL filter (4 cases)hasActiveFilters, andclearSessionFilters--accent-rose🤖 Generated with Claude Code