December 12th, 2025

[0.9.3-beta] - 2025-12-12

Fixed

  • 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

Changed

  • 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

Removed

  • UnmatchedEntriesModal.tsx component (functionality merged into Import Completed modal)

  • Global notification banner for import completion (replaced with modal)

Technical

  • 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


[0.9.2-beta] - 2025-12-11

Added

  • 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

Changed

  • Default window size updated to 1200x900 for better initial experience

  • Window title now correctly shows version 0.9.2 Beta

Fixed

  • Welcome modal now properly waits for simulator detection modal to close before appearing

Technical

  • 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)