Commit Graph

91 Commits

Author SHA1 Message Date
SuperKali
07879be87c feat: replace liblzma with lzma-rust2 for multi-threaded XZ decompression
- Replace liblzma C bindings with native Rust lzma-rust2 library
- Use XzReaderMt for parallel decompression across all platforms
- Remove dependency on system xz command
- Use get_recommended_threads() to utilize half of CPU cores
- Clean up unused find_binary and get_binary_search_paths functions
- Update module documentation to reflect native Rust approach

This change provides consistent multi-threaded decompression performance
across macOS, Linux, and Windows without requiring external tools.
2025-12-26 01:28:07 +01:00
SuperKali
ab0a9c3959 feat: rewrite Windows device detection with native Win32 APIs
Replace PowerShell with Win32 APIs (CreateFileW, DeviceIoControl) for reliable
device enumeration on all Windows editions.

Key improvements:
- Add IOCTL_DISK_GET_DRIVE_GEOMETRY_EX for disk size and geometry
- Add IOCTL_STORAGE_QUERY_PROPERTY for bus type and model detection
- Add drive letter mapping via GetLogicalDrives() and volume extents
- Fix system disk detection (check for C: drive instead of assuming disk 0)
- Add smart stop: halt enumeration after 4 consecutive non-existent drives
- Refactor: extract helpers, reduce code by 26% (475→349 lines)

Error handling:
- Suppress expected errors (1,2,5,21) to eliminate log spam
- Only log unexpected device failures

Fixes device enumeration failures on Windows editions without PowerShell.
2025-12-26 00:12:46 +01:00
SuperKali
224edd1463 feat: update system and changelog modal improvements
- Add GitHub release fetching command in Rust backend
- Implement changelog modal with contributor avatars
- Improve update modal UI with modern styling
- Add "What's New" button linking to changelog
- Remove GitHub issue links from changelog (keep attribution)
- Fix contributor section spacing and alignment
- Add manufacturer logo container contrast for light mode
- Improve bullet alignment in changelog

Translation updates:
- Add common.confirm key to all 15 languages
- Remove orphaned modal.scanningDevices key
- Add update contributors key to all locales
2025-12-25 18:23:58 +01:00
SuperKali
40ac3227d8 ci: preserve release notes during artifact uploads
Add omitBodyDuringUpdate and omitNameDuringUpdate to all upload jobs
to prevent overwriting auto-generated release notes with PR references.

- Remove generateReleaseNotes: false from upload jobs (not needed)
- Add omitBodyDuringUpdate: true to preserve release notes
- Add omitNameDuringUpdate: true to preserve release names
- Finalize job keeps omitBodyDuringUpdate but omits omitNameDuringUpdate
  to ensure release title is set correctly when publishing

This ensures 'What's Changed' section with PR references remains
visible when releases are created from tags.
2025-12-25 11:10:43 +01:00
SuperKali
ccd7e65c12 feat: enhance progress bar animations and fix storage modal hover
Enhanced progress bar with visual effects:
- Gradient color with shimmer animation
- Pulsing glow effect at leading edge
- Diagonal stripe pattern overlay
- Increased height from 8px to 10px
- Improved cubic-bezier easing (0.4s transition)
- Stage-specific colors removed (unified theme)
- Reduced motion support for accessibility

Fixed storage modal hover bug:
- Removed translateX(4px) effect on list-item hover
- Eliminated shadow artifact when hovering over USB/SD devices
2025-12-25 10:25:11 +01:00
SuperKali
fa68945062 feat: add skeleton loading components and improve modal animations
- Introduced `ListItemSkeleton` and `BoardCardSkeleton` components for loading states in lists and cards.
- Enhanced `DeviceModal`, `ImageModal`, and `ManufacturerModal` to utilize skeleton loading during data fetching.
- Improved modal exit animations for a smoother user experience.
- Updated styles for skeleton loading and modal animations.
- Removed loading text from translations across multiple languages.
2025-12-25 00:40:11 +01:00
SuperKali
13dd5f97dd docs: significantly expand and restructure development guide
- Added a comprehensive table of contents for easier navigation.
- Expanded prerequisites section with specific version requirements and platform-specific dependencies.
- Introduced a detailed step-by-step setup process, including automated installation scripts.
- Added a dedicated development workflow section with available commands and daily usage patterns.
- Clarified build instructions and outputs for distribution.
- Enhanced overall formatting and organization.
2025-12-24 16:34:02 +01:00
Igor
8cbfd6046b Add link to releases on presentation Gif 2025-12-24 10:04:21 +01:00
SuperKali
5a1ce6ce87 docs: fix vendor logos URL dimension (150 instead of 272) 2025-12-24 09:38:33 +01:00
SuperKali
4cfbe6ad73 chore: skip PR checks for documentation and non-code files
Add paths-ignore filter to pr-check workflow to skip running lint, type check, and build jobs when only documentation, images, or configuration files are modified.
2025-12-23 14:05:52 +01:00
Igor Pecovnik
0a1996355f Move Development instructions to separate readme file 2025-12-23 13:02:41 +01:00
Igor Pecovnik
9ca05f821b Move contributing into separate file which is autoexposed in tabs 2025-12-23 13:02:41 +01:00
Igor Pecovnik
52aa3de329 Add our generic Code of conduct 2025-12-23 13:02:41 +01:00
Igor Pecovnik
fb24d9a00c Align welcome text with other projects, improve wording, show total numbers of download 2025-12-23 13:02:41 +01:00
Igor Pecovnik
087e42544d Add animated GIF of Armbian imager screens 2025-12-23 13:02:41 +01:00
SuperKali
aa6f58448c Fix manufacturer sorting to prioritize any platinum over standard-only 2025-12-22 22:31:45 +01:00
SuperKali
3011dd7094 Fix image extension filter to include oowow.img.xz and similar files 2025-12-22 22:17:04 +01:00
SuperKali
426a6717e4 Sort manufacturers by platinum and standard board priority 2025-12-22 21:49:54 +01:00
SuperKali
eb64841a56 Add workflow to sync GitHub labels from labels.yml 2025-12-22 14:51:08 +01:00
SuperKali
68a686bf41 Update PR check workflow: fix runners, remove build-full, add cleanup 2025-12-22 14:34:45 +01:00
SuperKali
802d1fdecc Apply rustfmt formatting and fix Clippy warnings 2025-12-22 14:34:35 +01:00
SuperKali
e7ccc8b97f Add GitHub issue templates, labels, and PR check workflow
- Bug report and feature request issue templates
- Comprehensive label definitions for issue management
- PR check workflow with multi-platform build verification
  (Linux x64/ARM64, Windows, macOS Intel/ARM)
- Frontend linting and Rust clippy checks
- Security audits for npm and cargo dependencies
- Caching optimization for faster CI runs
2025-12-22 14:00:32 +01:00
SuperKali
e306ddcb0b Disable updater for non-AppImage Linux installations 2025-12-21 23:05:36 +01:00
SuperKali
c9fc93135e Fix Windows flash access denied and UI freeze issues
- Replace PowerShell-based partition discovery with Windows API
  (FindFirstVolumeW/FindNextVolumeW, IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS)
- Lock and dismount volumes before raw disk access using
  FSCTL_LOCK_VOLUME and FSCTL_DISMOUNT_VOLUME
- Keep volume handles open during operation to prevent Windows remount
- Use FILE_FLAG_WRITE_THROUGH for writes, FILE_FLAG_NO_BUFFERING for
  verification to bypass OS cache
- Fix intermittent UI freeze by releasing volume locks in background
  threads with FSCTL_UNLOCK_VOLUME before CloseHandle
- Add sector-aligned reads for verification when using NO_BUFFERING
2025-12-21 21:07:11 +01:00
SuperKali
40b97bafab Add GitHub Actions workflow for manual artifact builds 2025-12-21 16:38:28 +01:00