Commit Graph

6 Commits

  • fix(ui): move chat controls to header, add new session, fix settings layout
    Chat page:
    - Move session selector, refresh, thinking toggle to the Header bar
      (same level as "Chat" title) instead of inside the chat content area
    - Add "New Session" button (+ icon) to create fresh chat sessions
    - Remove duplicate toolbar from chat body
    
    Settings page:
    - Remove max-w-2xl constraint so cards fill available width
    - Redesign provider cards: compact layout with key + actions in one row
    - Shorten API key display (sk-...df67 format instead of full masked key)
    - Move edit/delete/star buttons inside the key row background area
    - Remove duplicate "AI Providers" heading (already in card header)
  • feat(providers): implement real API key validation with OpenRouter support
    - Replace mock API key validation with actual API calls to verify keys
    - Add validateApiKeyWithProvider() with provider-specific implementations
    - Support Anthropic, OpenAI, Google, and OpenRouter validation
    - Add OpenRouter as a new provider option in setup wizard and settings
    - Fix setup page to call real validation instead of mock length check
    - Allow validation during setup before provider is saved
    - Return user-friendly error messages instead of raw API errors
  • feat(update): implement auto-update functionality with electron-updater
    - Add AppUpdater module with update lifecycle management
    - Create UpdateSettings UI component with progress display
    - Add Progress UI component based on Radix UI
    - Create update Zustand store for state management
    - Register update IPC handlers in main process
    - Auto-check for updates on production startup
    - Add commit documentation for commits 2-6
  • feat(providers): implement secure API key storage and provider management
    Add complete provider configuration system with the following features:
    
    - Secure API key storage using Electron's safeStorage encryption
    - Provider CRUD operations with IPC handlers
    - Lazy-loaded electron-store for ESM compatibility
    - Provider settings UI component with add/edit/delete functionality
    - API key masking for display (shows first/last 4 chars)
    - Basic API key format validation per provider type
    - Default provider selection
    - Provider enable/disable toggle
    
    New files:
    - electron/utils/secure-storage.ts: Encrypted key storage and provider config
    - src/stores/providers.ts: Zustand store for provider state
    - src/components/settings/ProvidersSettings.tsx: Provider management UI