- core: remove DispatchGroup from MediaExtractionEngine to fix hanging on yt-dlp launch failure
- core: clear readabilityHandlers in Aria2DownloadEngine if process fails to launch
- core: fix TOCTOU type warning for findFreePort
- build: fix inverted logic in Mach-O validation script
- ci: fix hardcoded macOS SDK version check in release workflow
- ci: prevent workflow_dispatch from failing on verify-tag
- fix(engine): resolve aria2 port TOCTOU race and secure conf file
- fix(server): eliminate main queue deadlock risk in local extension server
- fix(controller): ensure synchronous state save on app termination
- fix(ui): fix table skipping new items by diffing identity instead of count
- fix(scheduler): use 2-letter abbreviations to resolve day name collisions
- fix(settings): purge keychain orphans when primer access is denied
- fix(metadata): prevent synchronous DNS resolution from blocking async pool
- refactor: clean up dead code and unused variables
- Generate random pairing token in AppSettings
- Update LocalExtensionServer to strict check token on non-OPTIONS endpoints
- Add GET /ping endpoint for extension connection verification
- Redesign Integration settings pane with modern step-by-step UI and Toast notifications
- Harden media extraction and aria2 engine paths
- Update IP resolution with getaddrinfo
- Add ChunkMapView to visualize active segmented downloads using aria2 RPC
- Add drag-and-drop support for URLs and text files in main window and dock
- Refactor settings panes to use native macOS HIG Form and .toolbar layouts
- Fix DNS rebinding vulnerability by validating Host header in local server
- Fix memory leak in console buffer by capping to 512KB
- Fix UI hang during aria2c version check by running it in detached task
- Refactor SettingsView to act as a flat detail pane instead of a nested sidebar or macOS native window
- Add custom horizontal tab bar for switching between setting categories
- Create SpeedLimiterView and add it as a primary tool in the sidebar
- Add state retention using AppStorage for settings tab selection and speed limits
- Fix EXC_BAD_ACCESS in DownloadTable by using sortableSize instead of debugDescription