# 🔧 PlugSnatcher - Development Roadmap ## Project Setup ✅ - [x] Create project roadmap - [x] Initialize Tauri + React project - [x] Setup basic project structure - [x] Create Remote repository (optional) ## Core Infrastructure (Completed) ✅ - [x] Setup SQLite or JSON storage for plugin data - [x] Create core data models - [x] Build server/plugin directory scanner (basic implementation) - [x] Implement asynchronous server scanning (non-blocking) - [x] Implement JAR file parser for plugin.yml extraction ## Plugin Discovery (Completed) ✅ - [x] Improve server type detection (Paper/Spigot distinction, etc.) - [x] Implement plugins folder detection logic - [x] Design plugin metadata extraction system - [x] Extract basic fields (name, version, author, etc.) - [x] Extract website field from plugin.yml - [x] Build plugin hash identification system - [x] Create plugin matching algorithm ## Web Crawler Development (Mostly Completed) - [x] Create base web crawler architecture - [x] Implement HangarMC crawler - [x] Implement SpigotMC data source using SpiGet API - [x] Basic implementation - [x] Fix version information retrieval issues - [ ] Reduce version warning logs and improve caching - [x] Handle rate limiting and 403 errors - [x] Implement Modrinth crawler - [x] Basic implementation - [x] Version compatibility checking - [x] Fix version number display issues - [ ] Handle rate limit issues - [x] Implement GitHub releases crawler - [x] Basic implementation - [x] Enable GitHub search functionality - [ ] Add GitHub API authentication for higher rate limits ## Update Management (Mostly Completed) - [x] Build update detection system (Basic logic) - [x] Improve update detection reliability - [x] Correctly fetch detailed version information from repositories - [x] Implement robust version comparison logic (handling non-SemVer, suffixes, etc.) - [x] Implement proper request headers (User-Agent, etc.) to mimic browser behavior - [x] Add delays between API requests to mitigate rate limiting - [x] Implement automatic retry logic for rate limits (429) and network errors - [x] Implement API response caching (reduce requests, improve performance) - [x] Implement intelligent name variation searches for plugins - [x] Fix SpigotMC version retrieval issues - [x] Fix update check progress getting stuck - [x] Complete Modrinth integration - [x] Fix incorrect plugin matching issues - [x] Improve matching algorithm to reduce false positives - [x] Complete GitHub integration - [ ] Add GitHub API authentication for higher rate limits (environment variable support exists) - [x] Fix command parameter naming issues for update checks - [x] Fix plugin update checking functionality after UI refactor - [x] Fix serverPath not being passed correctly to PluginContext - [ ] Optimize duplicate plugin search results (e.g., ViaVersion plugin) - [x] Implement changelog extraction - [x] Create plugin backup functionality - [x] Develop plugin replacement logic - [x] Implement plugin source persistence (store identified repo/ID to avoid searching) - [ ] Allow manual setting/clearing of persistent source - [x] Add plugin update UI integration - [x] Add update buttons to plugin listing and details view - [x] Show update progress with loading indicators - [x] Handle file access errors gracefully - [x] Ensure correct version numbering in filenames - [x] Display up-to-date version information for all plugins - [x] Handle premium plugins with user guidance for manual downloads - [ ] Present multiple potential matches for ambiguous plugins - [x] Make version numbers clickable links to repository sources - [ ] Allow user selection of correct plugin match when multiple are found - [x] Server platform compatibility matching - [x] Detect server platform and version accurately (Paper, Spigot, Forge, NeoForge, Fabric, etc.) - [x] Filter plugin updates to match the server platform - [x] Prevent incompatible version updates - [x] Add compatibility indicators in the code for available updates - [x] Add platform indicators in the UI for available updates ## UI Development (In Progress) - [x] Design and implement main dashboard - [x] Refine plugin list view styling and layout - [x] Add progress indicator for server scanning - [x] Build server folder selection interface - [x] Implement plugin detail view - [x] Add update notification system - [x] Add per-plugin update check button & loading indicator - [x] Add visual feedback for bulk update check (progress, loading state) - [x] Implement error handling in UI with user-friendly messages - [x] Add premium plugin detection & manual download guidance - [ ] Create settings panel - [x] Implement dark mode - [ ] Implement plugin matching disambiguation UI - [x] Add clickable version links to repository pages - [ ] Add error recovery UI for failed updates - [ ] Add detailed progress logging in UI for debugging - [x] Implement application update checking functionality - [x] Display application update notifications ## Security Features (Upcoming) - [ ] Implement sandboxing for network requests - [ ] Add SHA256 checksum verification - [ ] Create download warning system for unverified sources ## Testing & Refinement (Upcoming) - [ ] Comprehensive testing with various server setups - [ ] Performance optimization (especially concurrent requests) - [ ] Error handling improvements (parsing, network, etc.) - [ ] User acceptance testing - [ ] Add automated tests for critical functionality - [ ] Add error telemetry (optional) ## Documentation (Upcoming) - [ ] Create user documentation - [ ] Write developer documentation - [ ] Create installation guide - [ ] Add troubleshooting guide - [ ] Document known limitations and workarounds ## Deployment (Upcoming) - [ ] Prepare release process - [ ] Package application for Windows - [ ] Package application for macOS - [ ] Package application for Linux - [ ] Create project website (optional) ## Future Enhancements (v0.2.0+) - [ ] Plugin conflict checker - [ ] Minecraft version compatibility checker - [ ] Server config backup & restore manager - [ ] Scheduled plugin update checks - [ ] Rollback system - [ ] Plugin recommendation system - [ ] Discord webhook integration - [ ] Plugin search and browse functionality - [ ] Plugin install from repository