103 Commits

Author SHA1 Message Date
SuperKali
d63d047a0f fix: pass APPLE_SIGNING_IDENTITY to Tauri for proper code signing v1.2.3 2025-12-31 17:56:16 +01:00
SuperKali
4b9f5289f7 fix: notarize only DMG file instead of .app bundle 2025-12-31 17:30:48 +01:00
SuperKali
840509ec0c feat: add Apple code signing and notarization for macOS builds 2025-12-31 17:06:14 +01:00
SuperKali
8e99d25c8d feat: add settings panel with theme, language, and developer options
Implement comprehensive settings modal with:
- Theme switching (light/dark/auto) with system preference detection
- Language selection for 17 languages with native name sorting
- Developer mode with detailed logging and log viewer
- About section with app info and external links
- Update notification improvements with reduced log spam

Technical improvements:
- Added ThemeContext with persistent state management
- Implemented memory-safe log file reading (5MB limit)
- Fixed all ESLint, TypeScript, and Clippy warnings
- Added JSDoc documentation for public APIs
- Updated README.md and DEVELOPMENT.md with new features
v1.2.2
2025-12-30 09:59:24 +01:00
SuperKali
41c0e90f54 feat: detect board from custom image filename and improve decompression
Board detection:
- Parse Armbian filename pattern (Armbian_VERSION_BOARD_DISTRO_...) to extract board name
- Match extracted board name against database to show board image instead of generic icon
- Auto-load board data if not cached with race condition protection
- Fallback to generic icon for non-Armbian images

Decompression improvements:
- Decompress custom images to app cache directory (custom-decompress/)
- Use timestamp-based unique filenames to avoid conflicts
- Cleanup decompressed files after successful flash

Performance:
- Optimize lock scope to release mutex early after extracting boards
- Use compare-and-swap pattern to prevent race conditions
2025-12-29 13:37:11 +01:00
SuperKali
054c41fcec refactor: organize scripts into dedicated directories
- Move build scripts (build-*.sh) to scripts/build/ directory
- Move sync-locales.js to scripts/locales/ directory
- Update GitHub workflow to reference new script paths
- Improve DEVELOPMENT.md with new script paths and detailed Project Structure
- Remove obsolete scripts/README.md
2025-12-26 22:02:36 +01:00
SuperKali
cb826757b4 fix: sync locale translation keys
- Add missing modal.loading key to all locales
- Remove orphaned keys from hr.json and sv.json
2025-12-26 15:47:28 +01:00
github-actions[bot]
7e588600d2 i18n: Auto-translate and sync locale files (#51)
* i18n: sync and auto-translate locale files
* Update missing Swedish translations
* Update translation for 'showSystemDevices' key
---------
Co-authored-by: igorpecovnik <6281704+igorpecovnik@users.noreply.github.com>
Co-authored-by: Igor <igor@armbian.com>
2025-12-26 15:47:28 +01:00
Igor
96a92c3ebe feat: add Croatian language support (#50)
- Add Croatian (hr) locale file with complete translations
- Add Croatian to i18n configuration
- Update supported languages list in README
2025-12-26 15:47:28 +01:00
Igor Pecovnik
f5d29248d8 feat: add AI-powered translation sync automation
Adds automated translation file synchronization with AI-powered
translations using LibreTranslate API.

Features:
- Auto-detects missing translation keys from en.json source
- Translates new keys using LibreTranslate (free/public API)
- Preserves i18next placeholders like {{count}} and {{boardName}}
- Batch processing with rate limiting
- Falls back to TODO: prefix on translation failures
- GitHub Action runs daily and creates PRs automatically
- Supports custom LibreTranslate instances and API keys
2025-12-26 15:47:28 +01:00
Igor
f1e3e2c553 Add Swedish translation (#44)
* Add Swedish localization file sv.json

* Add Swedish language support

* Add Swedish to supported languages in README

* Translate Swedish locale strings to Swedish

* Add missing items, translated with AI

---------

Co-authored-by: Niklas Engvall <niklas@engvall.it>
2025-12-26 14:05:10 +01:00
SuperKali
d81df9e463 feat: add system devices toggle in device selection modal
Add a toggle button to show/hide system devices in the device selection modal. This prevents users from accidentally selecting system drives while still allowing advanced users to access them when needed.

Changes:
- Add showSystemDevices state toggle in DeviceModal
- Filter devices based on toggle state (default: hide system devices)
- Redesign warning banner with toggle badge button
- Add Shield icon and translations for all 15 languages
- Update CSS with new banner layout and toggle button styles
2025-12-26 10:35:48 +01:00
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