Conversation
…ling - Fix model display inconsistency between grid and expanded views - Handle SessionModelChangeEvent from SDK to track actual model - Update session.Model from all usage events (not just resumed sessions) - Add GetSessionModel() for consistent model display across views - Add session model to dropdown options if not in available list - Add dock badge notifications for completed sessions (Mac Catalyst/iOS) - Badge clears automatically when app becomes active - Dynamic model list from SDK (ListModelsAsync) with fallback - Model selection persistence across app restarts via UiState - Sidebar session sync with Tab/Shift+Tab navigation - Card focus-within highlight for active session - Card message windowing with load-more button - Throttle Dashboard SafeRefreshAsync and sidebar RefreshSessions to prevent rapid re-renders from blocking click events
PureWeen
added a commit
that referenced
this pull request
Apr 17, 2026
…ion, case sensitivity Finding #13: PathsEqual now accepts nullable parameters and returns false for null/empty/whitespace inputs instead of throwing ArgumentNullException. This prevents crashes when existing.BareClonePath is null or empty (e.g., old/migrated state or failed clone). Finding #10: Split the else branch in AddRepositoryFromLocalAsync so a true hash collision (same localId, different path) generates a fresh GUID- based ID instead of silently creating a duplicate. DeterministicPathHash: Case-fold only on Windows/macOS (case-insensitive filesystems). Linux (case-sensitive) preserves original casing so two paths differing only in case produce distinct hashes. Added 4 tests for PathsEqual null/empty/whitespace handling. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.
Changes
Model display fixes
SessionModelChangeEventfrom SDK to track actual model used by backendsession.Modelfrom all usage events (not just resumed sessions)GetSessionModel()for consistent model display across grid and expanded viewsDock badge notifications
OnActivatedlifecycle eventDynamic model list
ListModelsAsync()with hardcoded fallbackUiState.SelectedModelSidebar ↔ Dashboard sync
UI improvements
:focus-withinhighlight (blue border + glow) for active sessionSafeRefreshAsync(250ms) and sidebarRefreshSessions(500ms) to prevent rapid DOM re-renders from blocking click events during streaming