- Migrate GitHub Actions to Blacksmith runners for faster CI
- Update ubuntu-latest to blacksmith-4vcpu-ubuntu-2404
- Update actions/setup-node@v4 to useblacksmith/setup-node@v5
- Update Swatinem/rust-cache@v2 to useblacksmith/rust-cache@v3
- Fix all linting warnings across all platforms
- TypeScript: Fix any type warnings with proper type annotations
- Rust: All clippy warnings resolved
- Swift: Fix SwiftLint violations and format code
- Update all dependencies to latest versions
- npm: Major updates including Express 5 compatibility fixes
- Rust: Update 7 crates to latest compatible versions
- Swift: Dependencies already up-to-date
- Add comprehensive test suite using Vitest
- API endpoint tests for session CRUD operations
- WebSocket connection and streaming tests
- Session management lifecycle tests
- Frontend component tests (terminal, session-list)
- Critical functionality tests covering core features
- Test infrastructure with proper mocking and utilities
- All tests passing, ready for production use
- Add "Clean up old sessions on startup" toggle in Advanced settings (defaults to ON)
- Trigger cleanup API automatically after server starts if enabled
- Fix settings window activation for menu bar apps by temporarily switching activation policy
- Enhanced window focusing with deminiaturize and floating level
- Auto-restore menu bar mode when settings window closes
- Change "Purge All" button to use borderedProminent style with red tint
- Fix build errors: MainActor isolation in SettingsOpener
- Fix Package.swift to exclude all non-source files (xcconfig, assets, etc.)
- Move debug mode toggle to last position in Advanced settings
- SwiftLint: 0.57.0 → 0.59.1
- SwiftFormat: 0.55.0 → 0.56.4
- Hummingbird: 2.8.0 → 2.14.1
- Sparkle: 2.7.8 → 2.7.0 (2.7.8 doesn't exist as a tag)
Note: Build currently fails due to Swift 6 concurrency strictness
and missing UserDefaults extension that need to be addressed.
Replace deprecated showSettingsWindow: selector with NSApp.openSettings() to properly show the Settings window when clicking "Settings..." in the menu bar. This aligns with the correct SwiftUI pattern used in VibeMeter.