- Add auto-check updates for Android in bootstrap
- Show update dialog instead of toast notification
- Same UX as Desktop: dialog with 'Later' and 'Update' buttons
- Notifications appear 5 seconds after app launch
Part of v1.7.6
Flutter integration:
- Update SingboxConfigOption with per-app proxy fields
- Add perAppProxyMode, includedApplications, excludedApplications
- Read per-app settings from SharedPreferences
- Pass settings to libcore via HiddifyOptions
libcore backend:
- Implement ProcessName routing rules for desktop platforms
- Support include mode (whitelist) and exclude mode (blacklist)
- Only Chrome/Firefox/etc. specified by name use VPN
Version bump: 1.7.5 → 1.7.6
Update libcore submodule to include per-app proxy support
Two update methods now available:
1. EXE installer (requires UAC, shows SmartScreen without signature)
Changes:
- Added .zip asset detection with priority (portable/windows/win)
- ZIP auto-install: extract → replace files → restart
- Priority: .zip → .exe (portable first for better UX)
- Batch script handles file replacement after app closes
- No administrator rights needed for ZIP updates
Benefits of ZIP:
✅ No UAC prompts
✅ No SmartScreen warnings
✅ Fast updates (just file replacement)
✅ Perfect for testing without code signing
✅ Fallback to .exe if .zip not available
- Use GTK default flags for single instance
- Fix icon path to absolute /usr/share/icons
- Add postinstall chmod 644 for icon
- Remove Dart-level single instance code
- Changed window size to mobile phone format (400x800)
- Removed width condition for ActiveProxyFooter - now always visible
- Added run-umbrix.sh launch script with icon copying
- Stats cards now display on all screen sizes
- Changed app title from Hiddify to Umbrix in home page
- Added custom Umbrix logo (192x192 PNG)
- Updated intro page with Umbrix branding and gradient design
- Updated drawer menu with Umbrix logo
- Modified add profile modal with modern gradient cards
- Updated Russian translations (appTitle: Umbrix)