All notable changes to this project will be documented in this file.
- parser: Enrich taxi network parsing with full apt.dat 1200 spec by @lyestarzalt(59dd67a)
- taxi-graph: Add graph library with A* pathfinding by @lyestarzalt(ede4932)
- taxi-route: Add network mode with A* pathfinding to store by @lyestarzalt(7438563)
- taxi-route: Add FTG export and IPC for route file writing by @lyestarzalt(c750cbd)
- taxi-route: Network-aware rendering and UI with FTG export by @lyestarzalt(d3b64af)
- taxi-route: Redesign UX — gate→runway dropdown with auto-route by @lyestarzalt(90411bc)
- taxi-route: Drag-to-reroute via-point insertion by @lyestarzalt(c5c49d7)
- taxi-route: Drag-to-reroute with ghost preview and anchor management by @lyestarzalt(4a4b21d)
- taxi-route: Include apt.dat source file path in FTG export by @lyestarzalt(ddb2f6f)
- taxi-route: Enrich FTG export with taxiway names, distance, gate heading by @lyestarzalt(69552d2)
- settings: Add Graphics tab with approach light animation toggle by @lyestarzalt(5055ae1)
- settings: Add surface detail, taxiway glow, day/night, contour toggles by @lyestarzalt(ac4f748)
- taxi-route: Auto-write FTG route on launch, rename to route.json by @lyestarzalt(66c7f1e)
- taxi-route: Add timestamp and aircraft_icao to FTG route file by @lyestarzalt(5ca5073)
- taxi-route: Generic export tooltip, freehand route_free, drop distance_m by @lyestarzalt(2f1d7cf)
- support: Add donation prompt after 2nd launch and link in settings by @lyestarzalt(18500f1)
- sentry: Add context and breadcrumb subscribers by @lyestarzalt(eea3bf4)
- sentry: Wire context subscribers into renderer init by @lyestarzalt(15a6484)
- i18n: Add support tab translation keys by @lyestarzalt(216f345)
- settings: Create Support section with feedback form by @lyestarzalt(13d486f)
- settings: Add Support tab to settings sidebar by @lyestarzalt(a18fb12)
- loading: Show OS-specific hints for file permission and lock errors by @lyestarzalt(832649b)
- taxi-route: Fix stale graph closure and enable click mode on activate by @lyestarzalt(67a4e48)
- taxi-graph: Include runway edges with penalty, filter to connected nodes by @lyestarzalt(8d0e150)
- taxi-route: Improve route line rendering by @lyestarzalt(334a206)
- taxi-route: Integrate panel into gate card and fix preview colors by @lyestarzalt(694581b)
- taxi-route: Integrate controls into gate card, unwrap route summary, add i18n by @lyestarzalt(49eff58)
- taxi-route: Fix Select uncontrolled-to-controlled warning by @lyestarzalt(00bd947)
- map: Fix airport switching black screen caused by animation blocking isStyleLoaded by @lyestarzalt(46055ad)
- map: Remove taxiway light animation entirely (fixes #59) by @lyestarzalt(101d1b8)
- launch: Add scroll-snap to livery grid for row-by-row scrolling by @lyestarzalt(0a0e8ef)
- settings: Remove day/night and contour toggles, fix migration by @lyestarzalt(6e0ea5c)
- debug: Remove misleading FPS counter from debug overlay by @lyestarzalt(c6e1ccf)
- taxi-route: Remove backtracking loops from resolved path by @lyestarzalt(51718a5)
- taxi-route: Compute taxiway names and distance from graph edges by @lyestarzalt(c69551a)
- nav: Fix nav layers disappearing after airport switch by @lyestarzalt(7dcd2cb)
- Exclude test files from tsconfig to avoid top-level await errors by @lyestarzalt(d984e0f)
- lint: Ignore design-system directory in eslint config by @lyestarzalt(113410b)
- test: Update chunk count after adding 10 more airport fixtures by @lyestarzalt(11abda9)
- settings: Add page header, Discord link, and fix Ko-fi label in Support tab by @lyestarzalt(59986fc)
- taxi-route: Stop RAF loop when no route animation needed by @lyestarzalt(537fd4d)
- map: Throttle taxiway light animation to ~10fps (fixes #59) by @lyestarzalt(28d10e2)
- map: Disable approach light animation and idle orbit (#59) by @lyestarzalt(7b92efd)
- map: Use renderer metadata for clearAirport instead of string prefix by @lyestarzalt(2d90dca)
- settings: Move privacy and report issue to Support tab by @lyestarzalt(b75724d)
- Update CHANGELOG.md for v1.6.1 by @github-actionsbot
- map: Document airport switching fix — why safeRemove is bypassed by @lyestarzalt(2e44470)
- Add donation section to README by @lyestarzalt(e1b4153)
- Trim README, link to project page for full details by @lyestarzalt(6cd8f28)
- map: Expose map instance on window.__map in dev mode by @lyestarzalt(9563b21)
- Add .agents/ to gitignore by @lyestarzalt(75bc612)
- Add vitest with config and test scripts by @lyestarzalt(a8ba2b1)
- Remove one-time fixture extraction script by @lyestarzalt(e27b4f2)
- sentry: Migrate to permanent project and upgrade packages by @lyestarzalt(df0353b)
- Replace issue templates with YAML forms and add config by @lyestarzalt(ef54dc1)
- 1.7.0 by @github-actionsbot
- Add X-Plane data fixtures for parser tests by @lyestarzalt(5f5ac0f)
- parsers: Add airport parser tests with real apt.dat fixtures by @lyestarzalt(5dd6983)
- parsers: Add navaid parser tests by @lyestarzalt(df2c702)
- parsers: Add waypoint, airway, and airspace parser tests by @lyestarzalt(61a79b2)
- Add in-memory DB test helper with Drizzle migrations by @lyestarzalt(7a6628a)
- db: Add schema and migration tests by @lyestarzalt(b9b34ee)
- db: Add airport cache pipeline tests by @lyestarzalt(4ae0f2c)
- db: Add nav data cache pipeline tests by @lyestarzalt(2c40397)
- cache: Add cache invalidation tests by @lyestarzalt(11128e5)
- db: Add custom scenery airport cache tests by @lyestarzalt(b6f11ff)
- Add 10 more airport fixtures covering heliports, seaplanes, and grass strips by @lyestarzalt(f1b5ffb)
- parsers: Add structural fingerprint regression tests for 15 airports by @lyestarzalt(6ed08ca)
- parsers: Add bezier, runway geometry, and path parser unit tests by @lyestarzalt(de9f1e6)
- debug: Add layer inspector, draggable overlay, glassmorphism UI by @lyestarzalt(0b37278)
- debug: Show layer draw order in inspector by @lyestarzalt(6aeb922)
- debug: Detachable panels, layer toggle, prominent draw order by @lyestarzalt(5cd280b)
- debug: Tabbed toolbar with detachable panels, state inspector by @lyestarzalt(560a076)
- debug: Add file paths section to debug overlay Map tab by @lyestarzalt(1772e5a)
- settings: Add customLaunchArgs to launcher settings by @lyestarzalt(c5daa63)
- config: Add X-Plane CLI arg catalog by @lyestarzalt(fee7db0)
- settings: Add LaunchArgsCard component by @lyestarzalt(9943567)
- settings: Add launch args card to X-Plane section by @lyestarzalt(a21ec6b)
- launch: Send custom launch args on cold start by @lyestarzalt(b2953ca)
- ci: Replace deb/rpm with AppImage and add arm64 Linux builds by @lyestarzalt(b88bed9)
- ci: Auto-increment RC number from existing artifacts by @lyestarzalt(1bd653e)
- debug: Refactor DevDebugOverlay into folder, add DB panel and settings toggle by @lyestarzalt(8b41b5f)
- taxi-route: Click-to-add taxi route with canvas overlay by @Pwoodlock(6d67450)
- debug: Center detached panels, bold ON/OFF toggle buttons by @lyestarzalt(807a81b)
- ui: Group airport filters under one section and fix hardcoded strings by @lyestarzalt(3f71a2a)
- map: Improve taxiway lights with 3-layer glow and add @types/three by @lyestarzalt(5b7fbbd)
- scenery: Preserve absolute paths and make analyze() read-only (#49) by @lyestarzalt(fa3f1d5)
- settings: Add i18n and improve launch args chip styling by @lyestarzalt(9d25c60)
- settings: Fix scroll in launch args dropdown and add i18n by @lyestarzalt(d6abb36)
- ui: Override Radix ScrollArea table display to prevent content clipping by @lyestarzalt(d2fd6f4)
- db: Auto-delete corrupt database and relaunch on migration failure by @lyestarzalt(6a3cba6)
- taxi-route: Clean up PR #58 to match project conventions by @lyestarzalt(e647869)
- debug: Replace floating overlay with tabbed toolbar by @lyestarzalt(644c36b)
- Enable noUncheckedIndexedAccess and fix all 388 errors by @lyestarzalt(7f6d11c)
- Enable noUnusedLocals and remove dead code across 28 files by @lyestarzalt(6925fd8)
- logging: Extract startup logs to startupLog.ts and add GPU/display diagnostics by @lyestarzalt(b8abe57)
- Update CHANGELOG.md for v1.6.0 by @github-actionsbot
- Update README with recent features and expanded dev section by @lyestarzalt(7f3340c)
- Fix X-Plane version, show 3D terrain screenshot, trim dev section by @lyestarzalt(cad5be7)
- Add hits badge to README by @lyestarzalt(eda737f)
- Update README hero and Discord invite link by @lyestarzalt(b47f09f)
- Clean up and reword README by @lyestarzalt(2f748d7)
- Add install troubleshooting for Windows and macOS by @lyestarzalt(e042047)
- Remove CLAUDE.md from tracking by @lyestarzalt(691fa05)
- Address high vulnerabilities by @necromeo(afc0f71)
- 1.6.1 by @github-actionsbot
- @Pwoodlock made their first contribution
- @necromeo made their first contribution
- ui: Auto-navigate to start tab and scroll to selected item by @lyestarzalt(59391d8)
- launch: Add runway start options — approach distance and glider tow by @lyestarzalt(cb15a61)
- launch: Add air start, carrier, and frigate start modes to pin drop by @lyestarzalt(6ca0112)
- launch: Persist aircraft selection under actual type, not just active filter by @lyestarzalt(5067aa7)
- map: Rewrite taxiway lights as MapLibre circles and fix layer crash by @lyestarzalt(b0fa7c0)
- addons: Follow symlinks and junctions when scanning aircraft, plugins, and liveries by @lyestarzalt(0c1593e)
- data: Don't abort scenery scan when one symlink fails by @lyestarzalt(e7e0d2b)
- ci: Add download links to release and changelog to RC Discord notifications by @lyestarzalt(9ae1ded)
- map: Smaller taxiway lights with radiated glow effect by @lyestarzalt(797d922)
- explore: Rework panel as collapsible side panel by @lyestarzalt(16824cc)
- explore: Fix event list clipping and unify ICAO colors by @lyestarzalt(9eedad5)
- map: Redesign runway end markers to match gate visual style by @lyestarzalt(c0cf5a2)
- Update CHANGELOG.md for v1.5.5 by @github-actionsbot
- Fix dependency vulnerabilities via npm audit fix by @lyestarzalt(f8672ae)
- i18n: Add runway start option translations for all locales by @lyestarzalt(3b0e075)
- ci: Standardize job and step naming across release workflows by @lyestarzalt(80ea170)
- 1.6.0 by @github-actionsbot
- Update CHANGELOG.md for v1.5.4 by @github-actionsbot
- Rewrite release workflow and changelog config by @lyestarzalt(5db7eca)
- Skip redundant Sentry source map uploads on non-Linux builds by @lyestarzalt(0d63d20)
- 1.5.5 by @github-actionsbot
- toolbar: Add coordinate input to pin drop with split button by @lyestarzalt(ce4845a)
- addons: Add rescan button to scenery and browser tabs by @lyestarzalt(221576c)
- addons: Detect manually added scenery and show rescan feedback by @lyestarzalt(e907688)
- map: Interactive drag-to-resize range rings by @lyestarzalt(16482d3)
- toolbar: Add Ctrl+F / Cmd+F shortcut to focus airport search by @lyestarzalt(b894d86)
- addons: Show GLOBAL_AIRPORTS as draggable row with search bar by @lyestarzalt(f31faaf)
- addons: Add delete scenery from disk with confirmation by @lyestarzalt(22d2978)
- app: Add xdispatch:// deep link protocol for airport navigation by @lyestarzalt(0e816e1)
- data: Split airports into two tables for fast custom scenery resync by @lyestarzalt(5a64c1d)
- map: Add starfield background behind globe view by @lyestarzalt(923d4c5)
- ci: Fix release notes not appearing on GitHub releases by @lyestarzalt(7970a79)
- ci: Use file-based release notes and harden workflow by @lyestarzalt(458d893)
- addons: Handle cross-drive install when temp and X-Plane are on different drives by @lyestarzalt(450713a)
- addons: Skip deleted scenery folders instead of showing ??? by @lyestarzalt(f10a48e)
- addons: Remove stale scenery entries from scenery_packs.ini by @lyestarzalt(083d1b7)
- addons: Fix drag-and-drop not working in installer by @lyestarzalt(6174347)
- addons: Sort new scenery into correct priority position in INI by @lyestarzalt(c4a045d)
- app: Prevent multiple instances from running simultaneously by @lyestarzalt(e47a4ea)
- addons: Fix landmarks misclassified as Airport by @lyestarzalt(8b1e078)
- flightplan: Clear old route and re-center when loading new file by @lyestarzalt(3c667dd)
- ui: Move flight plan close button to the left side by @lyestarzalt(afe8ddc)
- addons: Fix rescan spinner and add missing i18n keys by @lyestarzalt(a0bf9ac)
- addons: Simplify scenery toolbar, remove safe mode toggle by @lyestarzalt(a60a9f5)
- map: Redesign range rings with inline labels along the ring by @lyestarzalt(cc81fa0)
- map: Redesign custom airport pin to match design system by @lyestarzalt(258ad9e)
- addons: Polish scenery tab UI for consistency by @lyestarzalt(7a327f5)
- addons: Align browser tab toolbar with scenery tab design by @lyestarzalt(66c1349)
- addons: Remove check updates button and clean up browser tab by @lyestarzalt(b78fddb)
- Update CHANGELOG.md for v1.5.3 by @github-actionsbot
- Update README screenshots and add fuel, weather, terrain views by @lyestarzalt(b1ba519)
- 1.5.4 by @github-actionsbot
- launch: Remember last livery per aircraft by @lyestarzalt(8068db2)
- ci: Add version bump and Discord notification to RC workflow by @lyestarzalt(5f671e8)
- settings: Add interface zoom control and fix launch dialog layout by @lyestarzalt(35cc049)
- launch: Remember last aircraft per type filter and improve star visibility by @lyestarzalt(5668558)
- tileCache: Remove fake DEM tile fallback that warped terrain by @lyestarzalt(0d141dc)
- flightplan: Open dialog defaults to current install FMS plans folder by @lyestarzalt(e30b32a)
- map: Prevent terrain errors on style change and low zoom by @lyestarzalt(bf8db7b)
- map: Remove minzoom from DEM sources that broke terrain mesh by @lyestarzalt(dddcbfa)
- layout: Add min-w-0 to addon manager content area by @lyestarzalt(f29d977)
- map: Replace style.load race condition with getStyle guard by @lyestarzalt(c0332f7)
- map: Use transformStyle to preserve layers across basemap switches by @lyestarzalt(a0a4f9a)
- Update CHANGELOG.md for v1.5.2 by @github-actionsbot
- Rewrite README with complete feature inventory by @lyestarzalt(618796d)
- 1.5.3 by @github-actionsbot
- map: Add setting to toggle idle orbit camera, default off by @lyestarzalt(d48a616)
- settings: Add multi X-Plane installation support by @lyestarzalt(b0aacf3)
- settings: Wrap installation name in brackets in window title by @lyestarzalt(e953904)
- map: Prevent terrain disappearing after zoom out, add dev debug overlay by @lyestarzalt(10cc5af)
- queries: Always rescan addon and aircraft lists on dialog open by @lyestarzalt(68367b2)
- Update CHANGELOG.md for v1.5.1 by @github-actionsbot
- 1.5.2 by @github-actionsbot
- start-position: Toggle deselect for gates, runway ends & helipads by @lyestarzalt(33ee35b)
- map: Add disk tile cache for MapLibre by @lyestarzalt(5f57146)
- map: Add hillshade and contour lines to terrain visualization by @lyestarzalt(be4e92f)
- map: Add idle orbit camera around selected airport by @lyestarzalt(60fa1a3)
- map: Add terrain shading toggle to toolbar overlays by @lyestarzalt(bb03162)
- settings: Add close-on-launch option, remove networks tab by @lyestarzalt(d61797c)
- window: Display app version in title bar by @lyestarzalt(24800fa)
- loading: Add two-phase loading screen with granular airport progress by @lyestarzalt(e4c48e4)
- data: Detect symlinked scenery packs in Custom Scenery folder by @lyestarzalt(9406d66)
- branding: Redesign app icon and inline SVG logo component by @lyestarzalt(dda765a)
- ci: Include arch in Windows and Linux binary names by @lyestarzalt(31061ef)
- data: Validate airport cache on startup before marking as loaded by @lyestarzalt(ae644d1)
- launch: Place fuel in correct X-Plane tank slot for third-party aircraft by @lyestarzalt(8041fc0)
- addons: Harden scenery detection and improve addon manager UI by @lyestarzalt(b2d18d2)
- launch: Exclude AI traffic .acf files from aircraft scanner by @lyestarzalt(d2d6809)
- addons: Allow backslash in aircraft folder paths for livery scanning by @lyestarzalt(1587ef9)
- map: Prevent terrain crashes on globe projection and silence DEM errors by @lyestarzalt(eb8e070)
- Update CHANGELOG.md for v1.5.0 by @github-actionsbot
- Update Discord invite link by @lyestarzalt(22e14ff)
- db: Add dbCredentials to drizzle config for Drizzle Studio by @lyestarzalt(1203801)
- 1.5.1 by @github-actionsbot
- ils: Scaffold 3D glide slope visualization (disabled) by @lyestarzalt(b028548)
- weather: Redesign WeatherDialog with interactive altitude diagram by @lyestarzalt(6826eb9)
- weather: Add environment controls, i18n, and fix dialog sizing by @lyestarzalt(fb2c054)
- map: Add day/night terminator overlay by @lyestarzalt(2ffad99)
- map: Add range rings layer for aircraft category reach visualization by @lyestarzalt(72d9f3e)
- map: Add pin-drop custom start location by @lyestarzalt(137a0fc)
- launcher: Persist aircraft list filters across sessions by @lyestarzalt(300ad1f)
- map: Render aircraft silhouettes for VATSIM/IVAO traffic by @lyestarzalt(cf14265)
- map: Redesign player aircraft icon with canvas-based rendering by @lyestarzalt(403ae66)
- xplane: Detect aircraft category from X-Plane metadata datarefs by @lyestarzalt(af2224a)
- flight-strip: Redesign with grouped layout, color-coded values, drag-to-reposition & new datarefs by @lyestarzalt(a3b59d1)
- logbook: Save last 10 launches with browse & restore by @lyestarzalt(0b3c859)
- ui: Add forwardRef to Badge component by @lyestarzalt(2f1f4cf)
- ui: Correct ref types and add missing forwardRef in shadcn components by @lyestarzalt(b29b9fb)
- launcher: Derive fuel tank ratios from _cgpt capacity for third-party helicopters by @lyestarzalt(568afaf)
- launcher: Skip --version on Windows Steam to avoid launch dialog by @lyestarzalt(1223c8f)
- launcher: Correct fuel tank count for third-party aircraft by @lyestarzalt(993d7c9)
- launcher: Improve fuel parsing and add payload fallback for third-party aircraft by @lyestarzalt(d833981)
- launcher: Adjust sun arc horizon line based on day length by @lyestarzalt(fa7fc12)
- launcher: Persist aircraft path instead of full object to prevent stale livery/config by @lyestarzalt(7db1445)
- map: Clear selected procedure when flight plan is removed by @lyestarzalt(4adb08d)
- map: Replace deferred layer removal with synchronous getStyle guard by @lyestarzalt(ddb4116)
- addons: Invalidate launcher aircraft cache after addon mutations by @lyestarzalt(60aad9d)
- ui: Clean up LoadingScreen design system usage and dead code by @lyestarzalt(a25ae6d)
- ui: Add categorical color tokens to design system by @lyestarzalt(cc8104d)
- ui: Convert remaining hardcoded colors to design system tokens by @lyestarzalt(320c378)
- ui: Use correct shadcn/ui components for tabs, toggles, and buttons by @lyestarzalt(1fb73a3)
- ui: Centralize Badge variants, Button tooltips, and Spinner component by @lyestarzalt(ade11ac)
- ui: Add Input icon slots, improve FlightConfig layout and token usage by @lyestarzalt(d9ebc19)
- websocket: Replace ad-hoc reconnect with state machine, backoff & keepalive by @lyestarzalt(6119d6e)
- Update CHANGELOG.md for v1.4.1 by @github-actionsbot
- ci: Add separate mac arm64/x64 builds and rename artifacts by @lyestarzalt(40fd2ac)
- 1.5.0 by @github-actionsbot
- map: Add country and surface type airport filters by @lyestarzalt(66e709f)
- data: Detect and store exact X-Plane version by @lyestarzalt(9c5ec6b)
- gateway: Detect and display newer Gateway scenery releases by @lyestarzalt(66c3dbc)
- simbrief: Prevent empty object rendering in VerticalProfile tooltip by @lyestarzalt(85b7182)
- launcher: Handle CRLF line endings and missing tank names in ACF parser by @lyestarzalt(8c73b47)
- addon-manager: Always detect .acf as aircraft regardless of nesting by @lyestarzalt(acee2ea)
- addon-manager: Resolve 7zip binary path and add alpha badge by @lyestarzalt(f95766f)
- launcher: Switch ramp spawn from lle_ground_start to ramp_start by @lyestarzalt(d45f2f3)
- map: Update existing sources when switching airports by @lyestarzalt(66b5f6e)
- db: Handle Windows file lock when deleting stale database by @lyestarzalt(6384c0c)
- sentry: Skip renderer error reporting in development by @lyestarzalt(1572a0f)
- Update CHANGELOG.md for v1.4.0 by @github-actionsbot
- about: Add Gilles to credits as special thanks for testing by @lyestarzalt(e985061)
- Add emojis to README and gitignore design system files by @lyestarzalt(f149241)
- 1.4.1 by @github-actionsbot
- networks: Add IVAO online network support with mutual exclusivity by @lyestarzalt(8b4b124)
- launcher: Add Weight, Balance & Fuel dialog with per-tank fuel and payload stations by @lyestarzalt(37f4290)
- launcher: Add weather customization with presets and custom mode by @lyestarzalt(2c71aad)
- launcher: Replace SunArc with visual celestial arc component by @lyestarzalt(d375ea9)
- ivao: Add null guards for external API data by @lyestarzalt(022600d)
- launcher: Clean up FlightConfig sidebar layout by @lyestarzalt(22ca286)
- Update CHANGELOG.md for v1.3.2 by @github-actionsbot
- 1.4.0 by @github-actionsbot
- map: Improve MapLibre error logging and SVG icon loading by @lyestarzalt(610d39b)
- addon-manager: User-friendly error for EPERM in protected X-Plane folders by @lyestarzalt(cb94a92)
- simbrief: Guard against non-string NOTAM and SIGMET fields by @lyestarzalt(618fd1e)
- map: Guard against NaN coordinates in fitMapToFlightPlan by @lyestarzalt(8d39912)
- launcher: Preserve unrecognized lines in Freeflight.prf by @lyestarzalt(7b500af)
- addon-manager: Preserve scenery_packs.ini order and disable by default by @lyestarzalt(588ee1a)
- compass: Normalize bearing to 0-360 instead of -180 to 180 by @lyestarzalt(d11594b)
- toolbar: Consolidate 12 items into 7 for narrow-screen support by @lyestarzalt(11de983)
- launcher: Use FlightInit JSON for cold start instead of Freeflight.prf by @lyestarzalt(d4d2f67)
- ui: Move addon manager from settings to toolbar by @lyestarzalt(a59c67a)
- addon-manager: Always show in toolbar and indicate order is preserved by @lyestarzalt(4559f89)
- Update CHANGELOG.md for v1.3.1 by @github-actionsbot
- deps: Upgrade maplibre-gl to ^5.19.0 by @lyestarzalt(8ab9a84)
- launcher: Add TODO for --no_save_prefs user settings issue by @lyestarzalt(27820fd)
- launcher: Add TODO for pgrep false positive on macOS by @lyestarzalt(3d0151f)
- 1.3.2 by @github-actionsbot
- map: Defer layer removal when MapLibre is mid-render by @lyestarzalt(a84d476)
- simbrief: Surface real API error message instead of generic HTTP 400 by @lyestarzalt(d092def)
- map: Fix taxiway name layer interpolation and visibility by @lyestarzalt(d85b6e3)
- simbrief: Sanitize API response to handle empty objects by @lyestarzalt(dc44185)
- Terrain DEM maxzoom and SimBrief array coercion crashes by @lyestarzalt(40a9bc7)
- sentry: Fix source map uploads and VerticalProfile crash by @lyestarzalt(6a028ad)
- simbrief: Tell user to generate a flight plan on simbrief.com first by @lyestarzalt(491ae8d)
- Update CHANGELOG.md for v1.3.0 by @github-actionsbot
- 1.3.1 by @github-actionsbot
- settings: Add user-configurable font size (small/medium/large) by @lyestarzalt(ff974a2)
- launcher: Persist flight config across sessions by @lyestarzalt(bafac37)
- map: Add airport dot filters (type, custom scenery) by @lyestarzalt(74a22d7)
- map: Add taxiway name labels from taxi route network by @lyestarzalt(ad1e075)
- map: Add live weather radar overlay using RainViewer API by @lyestarzalt(603ee68)
- ui: Increase base text size from text-xs to text-sm across all components by @lyestarzalt(23a39e7)
- db: Replace broken migration system with schema fingerprinting by @lyestarzalt(fdc3677)
- main: Retry DB init on failure to prevent zombie app state by @lyestarzalt(604fb2c)
- db: Harden startup against all DB failure paths by @lyestarzalt(4bb1e72)
- main: Move window security handlers into createWindow by @lyestarzalt(abdc055)
- layers: Centralize zoom levels with named ZOOM_LEVEL constants by @lyestarzalt(1ea12bf)
- Update CHANGELOG.md for v1.2.1 by @github-actionsbot
- Add Ko-fi donation badge and link by @lyestarzalt(b0cce0f)
- Move macOS install notice below intro section by @lyestarzalt(fd944ae)
- Update X-Plane requirement to 12.4+ by @lyestarzalt(8ef8830)
- 1.3.0 by @github-actionsbot
- gates: Square helipad backgrounds with heading indicator by @lyestarzalt(57fd3ca)
- parser: Gates pointing wrong direction due to negative headings in apt.dat by @lyestarzalt(049692e)
- Add CHANGELOG.md and auto-update on release by @lyestarzalt(5be512d)
- Add star prompt to README by @lyestarzalt(cafd26e)
- Update package.json keywords and description by @lyestarzalt(46988ca)
- Add Discord notification on release by @lyestarzalt(5f3b7c6)
- release: Pull latest before changelog commit in finalize step by @lyestarzalt(ac8dcec)
- 1.2.1 by @github-actionsbot
- map: Add phase-colored route, T/C T/D markers, and alternate airport to flight plan layer by @lyestarzalt(d4302c6)
- simbrief: Expand OFP dialog with vertical profile, navlog, performance, and briefing tabs by @lyestarzalt(8c47571)
- sentry: Upload source maps for all processes and enable tracing and session replay by @lyestarzalt(edf288b)
- Update flight setup screenshot by @lyestarzalt(f4bc66c)
- 1.2.0 by @github-actionsbot
- addon-manager: Add core types and Result utilities by @lyestarzalt(59e8343)
- addon-manager: Add scenery_packs.ini parser by @lyestarzalt(937fb45)
- addon-manager: Add DSF binary header parser by @lyestarzalt(3eea54a)
- addon-manager: Add folder scanner for classification by @lyestarzalt(3a3ae20)
- addon-manager: Add scenery classifier with priority tiers by @lyestarzalt(8a7b4a5)
- addon-manager: Add SceneryManager class by @lyestarzalt(9d68184)
- addon-manager: Extract IPC handlers to separate module by @lyestarzalt(26a6e54)
- addon-manager: Add React Query hooks by @lyestarzalt(b842fcd)
- addon-manager: Add Addon Manager dialog UI by @lyestarzalt(46ee67c)
- addon-manager: Integrate with main process and UI by @lyestarzalt(8a111f3)
- addon-browser: Add browser types by @lyestarzalt(b17f5ce)
- addon-browser: Add version detector module by @lyestarzalt(b7d5dbc)
- addon-browser: Add aircraft scanner by @lyestarzalt(46bc1d7)
- addon-browser: Implement installed addon browser with security hardening by @lyestarzalt(ba7500d)
- installer: Add installer types by @lyestarzalt(382e171)
- installer: Add archive scanner for ZIP/7z/RAR by @lyestarzalt(e61ccee)
- installer: Add type detector for addon classification by @lyestarzalt(8758974)
- installer: Add InstallerManager with analyze method by @lyestarzalt(059d9ef)
- installer: Add installer:analyze IPC handler by @lyestarzalt(0c261a3)
- installer: Add installer preload API by @lyestarzalt(1a262fd)
- installer: Add useInstallerAnalyze hook by @lyestarzalt(5e0e119)
- installer: Add InstallerTab UI with DropZone by @lyestarzalt(2f12a08)
- installer: Integrate InstallerTab into AddonManager by @lyestarzalt(b2d6699)
- installer: Add click-to-browse file picker by @lyestarzalt(d41d5ff)
- installer: Implement Phase 2 addon installation by @lyestarzalt(159b74e)
- addon-manager: Add logging for key operations by @lyestarzalt(8d79113)
- addon-manager: Add i18n support by @lyestarzalt(83b1925)
- addon-manager: Complete i18n for all components by @lyestarzalt(5ec780a)
- i18n: Add addonManager translations for all languages by @lyestarzalt(35478bb)
- addon-manager: Redesign UI/UX for all tabs by @lyestarzalt(94be0c9)
- toolbar: Add Alpha badge to Addons button by @lyestarzalt(d493b9c)
- simbrief: Add SimBrief flight plan import integration by @lyestarzalt(940096c)
- Resolve multiple Sentry bugs by @lyestarzalt(0ed0597)
- map: Defer layer removal during render to prevent MapLibre crash by @lyestarzalt(3d60af4)
- map: Throttle approach light animation to 30fps by @lyestarzalt(6444029)
- tracker: Clear stale flight data on reconnect and add reconnect button by @lyestarzalt(22f2ada)
- addon-manager: Add backup cleanup and error handling by @lyestarzalt(60a5624)
- apt-parser: Handle seaplane and heliport headers by @lyestarzalt(ea04c55)
- installer: Address null safety issues by @lyestarzalt(1b957f8)
- installer: Remove duplicate empty state text by @lyestarzalt(accf67d)
- Remove plane marker when X-Plane process stops by @lyestarzalt(a4c69b6)
- db: Replace manual SQL with Drizzle migrations by @lyestarzalt(3eeb945)
- Update README with SimBrief and Addon Manager features by @lyestarzalt(35bbfba)
- Add starting position and tracking screenshots, update Discord link by @lyestarzalt(dcf87a0)
- Update settings screenshot by @lyestarzalt(68d9556)
- Add TODO for TerrainControl crash issue by @lyestarzalt(2dc4e60)
- ci: Add commit links to changelog by @lyestarzalt(9e89f86)
- Add memory optimization TODO by @lyestarzalt(ca049b6)
- Add archive handling dependencies by @lyestarzalt(244b54d)
- Remove debug console.log statements by @lyestarzalt(9baed2a)
- 1.1.0 by @github-actionsbot
- Add flight plan loading and nav layer consolidation by @lyestarzalt(ab6f7c9)
- Add follow mode for plane tracking by @lyestarzalt(9122162)
- Add Sentry error tracking integration by @lyestarzalt(287cd7c)
- flightplan: Enrich waypoints with nav database info by @lyestarzalt(237efe3)
- metar: Integrate metar-taf-parser library for proper METAR decoding by @lyestarzalt(24a6bfd)
- i18n: Add translations for toolbar tooltips and airport panel by @lyestarzalt(d232755)
- map: Custom airport markers and navigation fixes by @lyestarzalt(29cbdac)
- map: Use pin beacon icon for custom airports by @lyestarzalt(72b09d8)
- launch: Improve flight config UI and require start position by @lyestarzalt(8406616)
- logging: Add production support logging for user diagnostics by @lyestarzalt(b09c2eb)
- privacy: Add opt-out crash reporting toggle in settings by @lyestarzalt(fd3e6e6)
- Add SQLite caching for navigation data by @lyestarzalt(c3c8812)
- Track nav data source type for Navigraph switching by @lyestarzalt(dbb24b8)
- Add migration for source_type column in nav_file_meta by @lyestarzalt(a49aceb)
- Add null guards to prevent 'getLayer' errors on undefined map by @lyestarzalt(2b204f8)
- Properly re-add layers after map style change by @lyestarzalt(b43cbeb)
- Centralize styleVersion subscription to avoid HMR errors by @lyestarzalt(bc3fa33)
- ui: Improve main UI layout and UX by @lyestarzalt(bb8f4b4)
- ui: Position FlightStrip above FlightPlanBar when visible by @lyestarzalt(8719458)
- Prevent programmatic map movements from disabling follow mode by @lyestarzalt(7e749b8)
- Improve plane tracking and fix airport layer displacement by @lyestarzalt(8312af6)
- Remove Sentry from preload (incompatible with sandbox) by @lyestarzalt(edbe735)
- map: Prevent getLayer crashes after map destruction by @lyestarzalt(92f128e)
- map: Simplify style change handling to prevent crashes by @lyestarzalt(7f295dd)
- validation: Allow X-Plane internal airport IDs up to 7 chars by @lyestarzalt(6f06878)
- ux: Add tooltip to disabled Launch button by @lyestarzalt(b0ed84d)
- layout: Restructure top bar and sidebar positioning by @lyestarzalt(32ddb27)
- ui: Restore CompassWidget and fix positioning by @lyestarzalt(f5d15c6)
- procedures: Improve CIFP parsing for SID/STAR/Approach accuracy by @lyestarzalt(dec67a2)
- ui: Restore ExplorePanel and fix route antimeridian crossing by @lyestarzalt(f970e2b)
- airspace: Ensure counter-clockwise winding for GeoJSON polygons by @lyestarzalt(a502fad)
- airspace: Filter out antimeridian-crossing polygons by @lyestarzalt(e8f48ab)
- readme: Add cache-busting param to shields.io badges by @lyestarzalt(3658fbc)
- Consolidate navigation types with proper enums by @lyestarzalt(fa6b823)
- ui: Improve FlightPlanBar layout and interactions by @lyestarzalt(4ef2936)
- Rename Sidebar to AirportInfoPanel and remove FlightPlanTab by @lyestarzalt(6f3f544)
- compass: Remove wind indicator, keep only heading by @lyestarzalt(9caa9a1)
- ui: Redesign AirportInfoPanel with better info hierarchy by @lyestarzalt(3eafde0)
- launch: Redesign aircraft preview with livery navigation by @lyestarzalt(1caa3c8)
- Add open source community templates by @lyestarzalt(6b214d4)
- readme: Add Discord badge, tech stack badges, and support section by @lyestarzalt(dab3205)
- Add flight plan screenshot to README by @lyestarzalt(0cfbed0)
- Add Sentry source maps and conventional changelog by @lyestarzalt(ae69cc2)
- Update Sentry config with env vars for org/project by @lyestarzalt(87498ae)
- 1.0.0 by @github-actionsbot
- Improve launch logging and folder picker reliability by @lyestarzalt(d2588f5)
- 0.9.4 by @github-actionsbot
- Parse startup location metadata (row code 1301) by @lyestarzalt(f8fc584)
- Use precise coordinates for REST API ramp spawning by @lyestarzalt(9af7e15)
- Preserve user preferences when writing Freeflight.prf by @lyestarzalt(63a7690)
- Include ws and related packages in build by @lyestarzalt(ad55436)
- Prevent database closing on macOS window close by @lyestarzalt(736454b)
- Extract launch execution logic to dedicated executor module by @lyestarzalt(89de9db)
- Add TODO comments for freeflightGenerator refactoring by @lyestarzalt(97c3e37)
- 0.9.3 by @github-actionsbot
- Package electron-squirrel-startup for Windows builds by @lyestarzalt(ce65589)
- 0.9.2 by @github-actionsbot
- Architecture overhaul with TanStack Query, centralized types, and spawn fixes (#24) by @lyestarzalt(24c8f38)
- 0.9.1 by @github-actionsbot
- Update screenshots to reflect new UI by @lyestarzalt(2cc2f51)
- 0.9.0 by @github-actionsbot
- 0.8.0 by @github-actionsbot
- signs: Render airport signs as proper SVG rectangles by @lyestarzalt(f1eaf20)
- layers: Add helipad, beacon, and tower layers by @lyestarzalt(aa4091b)
- ui: X-Plane design system overhaul and unit preferences by @lyestarzalt(610f18f)
- Load React DevTools in development mode by @lyestarzalt(8956a62)
- db: Add aptFileMeta table and airport metadata columns by @lyestarzalt(9c00050)
- db: Update table creation for new schema by @lyestarzalt(ca8b644)
- xplane: Add types for apt.dat parsing by @lyestarzalt(3685ec5)
- xplane: Add file mtime checking for cache invalidation by @lyestarzalt(454ee8a)
- xplane: Extract 1302 metadata during apt.dat parsing by @lyestarzalt(52d2e9b)
- xplane: Implement batch inserts and cache checking by @lyestarzalt(0809a10)
- xplane: Update clear to also clear aptFileMeta by @lyestarzalt(3abed83)
- Add Explore feature for discovering airports and routes (#14) (#15) by @lyestarzalt(f3dcc4c)
- layers: Add barIndex for approach lights and extract surface types by @lyestarzalt(7949175)
- aptParser: Fix bezier curve parsing for smooth pavements by @lyestarzalt(1e341c0)
- runways: Render shoulders with default width when not specified by @lyestarzalt(00b2d19)
- linearFeature: Airport lines not rendred properly by @lyestarzalt(6150097)
- airspace: Improve label readability with line placement by @lyestarzalt(f72810e)
- CSP, sign scaling, and sign parsing issues by @lyestarzalt(48eb72d)
- signs: Use constant icon size and trigger repaint after image load by @lyestarzalt(13667bd)
- signs: Pre-generate all sign images before adding layer by @lyestarzalt(a01f4fc)
- types: Sync Aircraft interface in preload.ts with launcher types by @lyestarzalt(4754010)
- layers: Standardize map layers with class-based architecture by @lyestarzalt(7fb728d)
- nav-layers: Consolidate config and remove legacy exports by @lyestarzalt(33f80bc)
- signs: Use text labels instead of SVG images, fix CSP for Google Fonts by @lyestarzalt(1b11dc5)
- plans: Add sign layer redesign spec by @lyestarzalt(4eadb5d)
- Add apt.dat cache invalidation design by @lyestarzalt(eb4f703)
- Add implementation plan for apt.dat cache by @lyestarzalt(3b7ebb2)
- Remove unused MORA and MSA layer code by @lyestarzalt(55b8dc0)
- Disable sign layer temporarily by @lyestarzalt(e7fa7a3)
- 0.7.0 by @github-actionsbot
- Fix repo URLs and add macOS install note (#10) by @lyestarzalt(55ea3f1)
- ui: Shadcn components, semantic colors, Map refactor & compass redesign (#11) by @lyestarzalt(3620f16)
- 0.6.1 by @github-actionsbot
- launcher: Add cold & dark and system time options by @lyestarzalt(c38628f)
- Enhance README with logo and screenshots by @lyestarzalt(af08967)
- 0.6.0 by @github-actionsbot
- Add Dependabot configuration by @lyestarzalt(c9e3755)
- Hide menu bar and disable devtools in production by @lyestarzalt(799df0a)
- Simplify release workflow by @lyestarzalt(6e24b15)
- 0.5.3 by @github-actionsbot
- @github-actions[bot] made their first contribution
- @lyestarzalt made their first contribution