- Fix N+1 query problem in preset package fetching
* Search with limit 5 to find best matches
* Case-insensitive package name matching
* Fallback to most popular when no exact match
- Improve category filtering accuracy
* Update category mapping to match database schema
* Remove duplicate packages in category fetching
* Better distribution across categories
- Add version control for localStorage profile
* Support future schema migrations
* Auto-migrate old profiles to new version
* Persist version in localStorage
- Enhance error handling
* Specific error messages for 400/500/404 responses
* Network error detection
* User-friendly error messages in UI
- Fix OS detection fallback
* Default to ubuntu when detection returns unknown
* Prevent empty OS selection in onboarding
- Add better API validation
* Explicit limit range validation (1-50)
* Clear error messages for invalid inputs
- Updated string quotes from single to double in useRecommendationProfile.ts, client.ts, recommendationService.ts, and recommendations.ts for consistency.
- Enhanced error handling and logging in API client and recommendation service.
- Improved code structure and formatting for better readability and maintainability.
- Ensured consistent use of semicolons and spacing throughout the codebase.
- Implemented automatic pruning of stale packages across all platform sync endpoints (Arch, AUR, Debian, Ubuntu, Fedora, Homebrew, Winget)
- Added `last_seen_at` tracking to mark packages as seen during sync runs and identify inactive packages
- Introduced `PRUNE_GRACE_DAYS` and `PRUNE_HARD_DELETE_DAYS` environment variables for configurable soft-delete and hard-delete thresholds
- Extended database schema and models to include 'aur' as a valid repository type alongside 'official' and 'third-party'
- Added repository filter UI in package browser for Arch platform to distinguish between official and AUR packages
- Enhanced init-db script with migration system to track and apply schema changes automatically
- Removed type and repository filters from non-Debian/Ubuntu platforms (Arch, Fedora, macOS, Windows)
- Conditionally render type filter UI only for Debian/Ubuntu platforms
- Set type and repository to null in package fetchers for platforms that don't support these classifications
- Added magic number detection (0x1f 0x8b) to identify gzipped content
- Removed unnecessary gunzip options that were causing decompression issues
- Added fallback to treat non-gzipped responses as plain text
- Fixed package identifier usage: now uses `name` field (winget ID) instead of `id` field throughout Windows script
- Enhanced error handling with exit code checking and consistent [OK]/[ERROR] prefixes for better visibility
- Standardized PowerShell string quotes to single quotes for consistency
- Enhanced ScriptPreview with detailed Windows-specific installation steps including execution policy handling and winget availability checks
- Added localization support for all script preview UI elements and Windows usage instructions
- Improved script generator with automatic unblocking, admin privilege warnings, and winget validation
- Implemented API endpoint to fetch and store Homebrew formulae and casks from formulae.brew.sh
- Added real-time progress tracking for both fetch and storage operations with batch processing
- Created background sync process with status monitoring and duplicate detection
- Implemented API route with progress tracking for fetching and storing Fedora packages
- Created FedoraPackageFetcher service to scrape packages.fedoraproject.org with rate limiting
- Added batch processing and duplicate detection for efficient database storage
- Added undici dependency and implemented three package fetcher variants (simple text parsing, v2 with better error handling, and official repository sync)
- Integrated real API calls in PlatformSelector and PackageBrowser components with fallback to mock data
- Extended sync API route to support multiple data sources (debian-simple, ubuntu-simple, debian-official-v2, etc.) with platform initialization
- Added pg and @types/pg dependencies for PostgreSQL integration
- Created database testing and backend initialization scripts
- Changed dev server port to 3002 to avoid conflicts