December 12th, 2025
File watchers now properly initialize for newly imported libraries (e.g., via Addon Linker import)
Previously, libraries added after initial load were not watched for file changes
Now tracks watched library IDs instead of a simple boolean flag
Import Completion Modal (Story 8.8) - Unified import results display
Replaced global notification banner and separate unmatched modal with cohesive "Import Completed" modal
Three-step modal flow: Preview β Libraries Created β Import Completed
Expandable unmatched entries section with "Preview Libraries" styling
System error display with user-friendly messages and re-import guidance
Consistent styling with amber accent color throughout import wizard
UnmatchedEntriesModal.tsx component (functionality merged into Import Completed modal)
Global notification banner for import completion (replaced with modal)
New component: ImportCompletedModal.tsx with error state handling
Refactored ImportCompleteHandler.tsx to show modal instead of notification
Added addonsDiscovered to import-complete event payload
25 new tests for Import Completed modal functionality
MSFS Addon Linker Import (Epic 8) - Seamless migration from MSFS Addon Linker
Auto-detection of MSFS Addon Linker installation
Import wizard with preview of libraries, presets, and geolocation data
Library folder import with duplicate detection and skip option
Geolocation data import (latitude, longitude, country, region) for Map View support
Preset-to-Set conversion preserving addon groupings
Junction state reconciliation to preserve enabled addon states
Post-scan processing with automatic geolocation and preset application
Toast notifications with "View Details" for unmatched entries
Import history tracking for re-import support
Welcome Modal on First Launch - Automatically shows on first run to introduce users to the app
Deferred display until after simulator detection modal closes
"Don't show on startup" checkbox persists preference to config
Accessible via PERFLIGHT logo click in header anytime
Default window size updated to 1200x900 for better initial experience
Window title now correctly shows version 0.9.2 Beta
Welcome modal now properly waits for simulator detection modal to close before appearing
Database schema extended with geolocation columns (latitude, longitude, country, subregion, geo_region, geo_source)
New import_history table for tracking import runs
File parsers for INI (with UTF-8 BOM handling), MapData.bin, and .preset formats
Path normalization and component matching algorithms for reliable addon matching
Transaction handling with rollback on critical errors, continue on warnings
New Tauri commands: detect_addon_linker_installation, get_addon_linker_preview, import_addon_linker_data, apply_pending_geolocation, apply_pending_presets, reconcile_junction_states, set_first_run_completed
New frontend components: AddonLinkerImportModal, UnmatchedEntriesModal, ImportCompleteHandler
New hook: useAddonLinkerDetection with caching behavior
New service: importService.ts wrapping import Tauri commands
Separate dev/production data directories via tauri.conf.dev.json (identifier: com.sim.perflight.dev)
New npm script: npm run tauri:dev for development with isolated data
100+ new tests (backend parsers, matching algorithms, frontend components)