Commit Graph

75 Commits

Author SHA1 Message Date
nimbold fbae92aae9 fix: media download UX and table row selection
- Fix: Remove aria2c from yt-dlp to allow native concurrent downloader to print progress
- Fix: Use generic 'Fetching media data...' message instead of hardcoding YouTube
- Fix: Remove onTapGesture from Table cells to restore native macOS SwiftUI row selection and use simultaneousGesture on the Table itself for double clicks
2026-06-07 23:39:18 +03:30
nimbold 49003665ef feat: improve yt-dlp fetching speed and redesign media detection UI
- Bypass YouTube web bot detection by using iOS/Android player clients in yt-dlp
- Redesign media extraction UX to use a clean inline layout instead of replacing the entire Add window
- Use dropdown Pickers for Type, Quality, and Format selection
- Remove the obsolete MediaInspectorCard
2026-06-07 22:53:38 +03:30
nimbold 1a2c59d243 fix: media downloads connections, progress parsing, file size, and selection highlight
- Removed hardcoded 1 connection limit for media downloads
- Added support for aria2c progress parsing in media downloads
- Fixed missing file size after download completion by reading from disk
- Fixed row selection highlight in DownloadTable by using onTapGesture instead of simultaneousGesture
2026-06-07 22:28:23 +03:30
nimbold c139ac50f2 fix(media): stabilize yt-dlp metadata and add-on updates 2026-06-07 12:48:00 +03:30
nimbold a900d97a5c feat: enhance media engine settings with cookie extraction and update checks
- Added `mediaCookieSource` to `AppSettings` to let users choose the browser for cookie extraction.
- Refactored `EngineSettingsPane` to display `yt-dlp` and `ffmpeg` statuses.
- Added a manual 'Check for Updates' button with UI loading feedback.
- Passed `--cookies-from-browser` to both metadata extraction and download engines if configured.
- Added `--ignore-no-formats-error` to `yt-dlp` metadata extraction to prevent crashes on restricted videos.
2026-06-07 12:15:50 +03:30
nimbold 8831318839 feat: modernize Integration settings UI and add official install button 2026-06-07 10:43:10 +03:30
nimbold eaea5bd908 feat: integrate yt-dlp to DownloadController and add global queue support 2026-06-07 10:23:55 +03:30
nimbold af05180ee6 feat: implement smart progressive disclosure UI and media extraction engine 2026-06-07 10:05:54 +03:30
nimbold 0799b08000 feat: implement gatekeeper architecture for on-demand media engine binaries 2026-06-07 09:57:27 +03:30
nimbold 6552bde261 fix(security): block automatic metadata fetch for private IP addresses 2026-06-07 09:08:11 +03:30
nimbold 387ada1afc fix: correctly remove black padding and mask corners 2026-06-06 16:09:27 +03:30
nimbold 37be7b14f0 style: apply premium gradient to the correct new icon 2026-06-06 16:04:26 +03:30
nimbold 09cea67041 fix(updates): harden Sparkle release metadata 2026-06-06 15:54:44 +03:30
nimbold 6a20250d22 style: remove redundant version string from up-to-date message 2026-06-06 15:31:05 +03:30
nimbold 99b8f66bcf fix: correct Sparkle SUNoUpdateError code to prevent false error messages 2026-06-06 15:28:53 +03:30
nimbold 890b6935b9 feat: inline Sparkle update checks to avoid unnecessary modals 2026-06-06 15:22:58 +03:30
nimbold a375b2e685 feat: integrate Sparkle 2 for secure in-app updates 2026-06-06 15:01:40 +03:30
nimbold 0714f6e707 style: update app icon 2026-06-06 14:11:21 +03:30
nimbold 5e442d1691 feat(branding): update monochrome menu bar icon 2026-06-06 08:21:26 +03:30
nimbold ac8764bb78 fix: clear completed speeds and icon frame 2026-06-05 20:48:26 +03:30
nimbold 41535eca59 feat: update app icon branding 2026-06-05 20:38:55 +03:30
nimbold 2fb851b138 fix: correct download list row selection and remove build number from version string 2026-06-05 19:46:12 +03:30
nimbold a2135bb539 feat: redesign About pane and resolve download properties UI bugs
- Added transparent GitHub icon to About pane.

- Compacted About pane layout and consolidated footer.

- Fixed build script to correctly copy bundled image assets.

- Resolved progress bar state issues in Download Properties.

- Fixed text overlap bugs in Settings.
2026-06-05 13:56:02 +03:30
nimbold c18aa6fdaf fix: complete aria2 downloads via rpc 2026-06-05 12:38:14 +03:30
nimbold 4a9d4cab2f fix(settings): align preferences with runtime behavior 2026-06-05 11:41:56 +03:30
nimbold 2b820ec802 feat: modernize settings and add SOCKS5 support
- Split monolithic SettingsView.swift into modular Settings panes
- Add SOCKS5 proxy support to proxy configuration
- Fix ListRowDensity application in DownloadTable
- Improve discoverability of global speed limit by adding it to Downloads pane
2026-06-05 03:02:29 +03:30
nimbold 0cbb982f5b fix: harden download workflows 2026-06-04 15:41:38 +03:30
nimbold 0040c23050 style: refine UI layouts, toolbars, and chunk map aesthetics
- Make global and contextual Start/Stop toolbar buttons mutually exclusive in main window
- Relocate Add Downloads primary action buttons from top toolbar to standard bottom Action Bar
- Expand Download Properties window width for better readability and condense font sizes
- Wrap Advanced Transfer settings in a native DisclosureGroup to reduce scrolling
- Redesign Chunk Map with rounded corners, larger boxes, and system accent colors
2026-06-04 14:29:13 +03:30
nimbold 8e32762217 feat: implement chunk map inspector, drag-and-drop, and UI refinements
- 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
2026-06-04 13:34:28 +03:30
nimbold d9c7da23e9 fix: resolve settings tab layout and hit-testing issues 2026-06-04 06:03:30 +03:30
nimbold 2f5e593d0b feat: add icons to settings capsule tabs 2026-06-04 05:47:55 +03:30
nimbold 7802b612a4 feat: integrate settings and speed limiter into main window
- 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
2026-06-04 05:29:15 +03:30
nimbold 28bb90e8c2 feat: add stop downloads control 2026-06-04 04:44:04 +03:30
nimbold 86d70a9ca7 Refine add window and font sizing 2026-06-04 04:36:06 +03:30
nimbold b1b3f42ead feat(ui): simplify temporary Firefox extension install 2026-06-04 03:30:44 +03:30
nimbold 91cd65e1d7 fix(security): harden extension bridge and persistence 2026-06-04 03:19:57 +03:30
nimbold e948590335 fix(ui): route to about:debugging without fragment hash and update instructions 2026-06-04 02:45:02 +03:30
nimbold 643f87d366 fix(ui): use Process to invoke open instead of NSWorkspace to avoid url encoding the fragment hash 2026-06-04 02:21:41 +03:30
nimbold 0f522fa794 fix(ui): explicitly route about:debugging to firefox to prevent LaunchServices error 2026-06-04 00:24:32 +03:30
nimbold 604987a360 feat(ui): update integration page with extension install instructions 2026-06-04 00:01:24 +03:30
nimbold 5dc8d66f3c refactor(extension): remove xpi generation and installation
- Switch to copying Firefox extension directory into app bundle Resources
- Remove 'Install to Firefox' button and multi-browser selection logic
- Update Integrations tab to instruct users to load via about:debugging
- Map 'Show Extension Folder in Finder' to the bundled extension source directory
2026-06-03 22:53:54 +03:30
nimbold 0ddea52db8 feat(extension): add Firefox browser extension and native integration
- Implement Firefox extension to intercept downloads and scrape selected links via context menus
- Create LocalExtensionServer over TCP (localhost:6412) to receive links from the extension
- Automatically package extension to firelink.xpi in create_app_bundle.sh
- Add Integrations tab in SettingsView with one-click installer for Firefox variants
- Modify ContentView and TrayMenuView to automatically open the Add Downloads window on extension trigger
2026-06-03 22:15:12 +03:30
nimbold 6750cce6aa perf: reduce main thread CPU usage and SSD wear from frequent JSON serialization 2026-06-03 07:03:18 +03:30
nimbold 1d22b16119 style: refine about page UI and simplify delete confirmation dialog 2026-06-03 06:48:53 +03:30
nimbold 1093d73b0e feat: add monochrome tray icon and download table enhancements
- Added proper monochrome template tray icon loaded explicitly with precise dimensions
- Added redownload functionality for completed or failed items
- Added double-click to open completed files directly from the table
- Added 'Copy Address' context menu action
- Improved context menu organization and conditionally displayed actions
2026-06-03 06:23:03 +03:30
nimbold 21b30a9369 feat: add site logins integration to Add Downloads window 2026-06-03 05:32:39 +03:30
nimbold c4f02ff78f fix: remove unused showMenuBarIcon from AppSettings and conditionally apply theme backgrounds 2026-06-03 05:17:25 +03:30
nimbold f6d34caaf1 style: use visual command icon instead of text for paste hint 2026-06-03 05:11:18 +03:30
nimbold 7e4915f31d fix: resolve SwiftUI infinite layout freeze caused by MenuBarExtra isInserted binding to StateObject by using AppStorage 2026-06-03 05:07:55 +03:30
nimbold ff03a4cda5 feat: add Font Size, List Row Density, and Menu Bar Icon settings 2026-06-03 05:03:31 +03:30