Skip to content

Conversation

@xlyk
Copy link
Contributor

@xlyk xlyk commented Feb 4, 2026

Summary

  • Throttled resize handlers - Sidebar, FileEditorSidebarPanel, and ContextPanel now use throttled resize handlers to prevent hundreds of state updates per second during drag
  • Lazy loading for heavy components - SyntaxHighlighter (~170KB) and CodeMirror language packages are now loaded on-demand
  • Optimized selectors with shallow comparison - Timeline selectors now use shallow comparison to prevent unnecessary re-renders when content hasn't changed
  • Settings caching - Added caching layer for settings to avoid redundant Tauri IPC calls
  • Refactored keyboard handling - Extracted keyboard handler to reduce App.tsx effect dependencies from 10+ to stable references
  • Granular PaneLeaf selectors - Split monolithic store subscriptions into fine-grained selectors for better memoization
  • SessionBrowser optimizations - Debounced search filtering and proper memoization for list items
  • Terminal WebGL resilience - Added context loss/restore handling for WebGL addon
  • ThemeManager batching - Terminal theme updates now batched to reduce re-renders
  • Vite bundle splitting - Configured manual chunks for better initial load performance
  • Tree-shaking improvement - Extracted isMockBrowserMode to separate module to prevent mock code inclusion in production

Test plan

  • Verify sidebar/panel resize feels smooth without lag
  • Check that Markdown code blocks render correctly (lazy SyntaxHighlighter)
  • Confirm settings changes persist and are cached properly
  • Test terminal theme changes apply correctly
  • Verify SessionBrowser search is responsive
  • Check that pane splits/closes don't cause unnecessary re-renders
  • Run pnpm test:coverage to verify new tests pass

xlyk added 4 commits February 3, 2026 12:33
… performance

Replace multiple independent `useStore` calls in `UnifiedTimeline` with a combined selector, reducing subscription count and improving efficiency. Add rigorous performance tests to verify stable references and memoization across selectors. Update async tests for cross-session isolation.
…te handling

Introduce `agentStreamingBuffer` for efficient text delta management and reduce redundant string concatenation in agent streaming. Refactor `processedToolRequests` to track requests per session. Add tests for streaming buffer, session-specific tool tracking, and unified input callback stability.
- Add throttled resize handlers to prevent excessive state updates during drag
- Implement lazy loading for heavy components (SyntaxHighlighter, CodeMirror languages)
- Optimize timeline selectors with shallow comparison to prevent unnecessary re-renders
- Add settings caching to avoid redundant Tauri calls
- Extract keyboard handler to reduce App.tsx effect dependencies
- Refactor PaneLeaf with granular selectors for better memoization
- Optimize SessionBrowser with debounced search and proper memoization
- Add WebGL context loss recovery handling for Terminal
- Batch ThemeManager terminal updates to reduce re-renders
- Configure Vite manual chunks for better bundle splitting
- Extract isMockBrowserMode to separate module for tree-shaking
- Add comprehensive test coverage for new utilities and optimizations
- Fix unused imports and variables in test files
- Add missing required properties (sessionId, startedAt, warnings, workingDirectory)
- Update Zustand v5 usage to use useShallow instead of shallow as second argument
- Fix non-null assertions to use conditional checks
- Remove unused messagesContainerRef from SessionBrowser
- Change div with role="button" to semantic button element
- Fix hook being called after early return in VirtualizedTimeline
@xlyk xlyk force-pushed the frontend-improvements branch from c48123d to 27927a0 Compare February 4, 2026 16:35
xlyk added 3 commits February 4, 2026 08:39
- Mark 33 of 82 issues as FIXED (40% complete)
- All 5 SEVERE issues resolved (100%)
- 25 of 26 HIGH priority issues resolved (96%)
- Document new files created (11 selectors/hooks)
- List major architectural improvements
- Identify remaining critical path and quick wins
Add sound_enabled setting for in-app notification sounds independent of native OS notifications. Sounds are generated programmatically using Web Audio API for reliable cross-platform playback.

Also refactors provider state management into useProviderSettings hook and consolidates AgentMessage derived state to reduce cascading recalculations during streaming.
…tence

Import provider configuration utilities, API key getters, session initialization, and notification helpers to support upcoming model selection functionality.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants