Commit Graph

239 Commits

Author SHA1 Message Date
spinline
b8328199f6 feat: add PWA metadata for macOS Safari and notification support 2026-02-06 13:00:14 +03:00
spinline
5b0fab80fe fix(ui): add safe area padding for mobile notch support 2026-02-06 12:55:41 +03:00
spinline
68b517a336 fix: use JavaScript for base64 decoding to avoid UTF-8 encoding issues (65 bytes expected) 2026-02-06 01:17:01 +03:00
spinline
cd2a398b15 feat: request push notification permission when settings button clicked 2026-02-06 01:15:42 +03:00
spinline
1c3ee296f7 fix: skip auto push notification request on Safari (requires user gesture), add debug logs for VAPID key 2026-02-06 01:06:07 +03:00
spinline
e9a82b289b fix: enable push notifications on macOS Safari 16+ (API-based detection instead of UA) 2026-02-06 00:59:52 +03:00
spinline
4dab66c234 fix: enable push notifications on Chrome/Firefox/Edge (all platforms), disable only macOS Safari 2026-02-06 00:55:56 +03:00
spinline
8ccc9e52f3 fix: skip push notifications on macOS Safari (only iOS supports web push) 2026-02-06 00:53:12 +03:00
spinline
7b7cb58871 fix: request notification permission before push subscription on iOS 2026-02-06 00:51:41 +03:00
spinline
3369853c06 fix: attempt push notification subscription when permission is default on iOS 2026-02-06 00:33:52 +03:00
spinline
e8af1a1812 fix: Patch coarsetime for MIPS AtomicU64 support
- Vendor coarsetime crate with portable-atomic fallback
- Use portable-atomic on targets without 64-bit atomics
- Patch crates.io to use local coarsetime
- Fixes MIPS build failure (AtomicU64 missing)
2026-02-06 00:20:51 +03:00
spinline
25e2b6bec9 fix: Enable push on MIPS by switching web-push client
- Use hyper-client to avoid isahc/coarsetime (AtomicU64 on MIPS)
- Keep push notifications enabled for MIPS builds
- Update CI MIPS build to use default features
2026-02-06 00:14:27 +03:00
spinline
8cd4a998a8 fix: Make push notifications optional for MIPS compatibility
- Add push-notifications feature flag (enabled by default)
- Make web-push and openssl optional dependencies
- Conditionally compile push notification code
- Disable push notifications for MIPS builds in CI
- Fixes AtomicU64 error on 32-bit MIPS architecture
- x86_64/ARM builds still have full push notification support
2026-02-06 00:12:02 +03:00
spinline
b41c3a2ecf fix: Add vendored OpenSSL for cross-compilation
- Add openssl dependency with vendored feature
- Fixes CI build for mips-unknown-linux-musl target
- Statically links OpenSSL instead of requiring system package
- Resolves openssl-sys build failures in cross-compile environment
2026-02-06 00:03:23 +03:00
spinline
2e37297a13 fix: Replace tracing with log in frontend
Frontend uses log crate, not tracing. Replaced all tracing:: calls with log:: calls to fix CI build.
2026-02-05 23:59:58 +03:00
spinline
bffc72391a feat: Add iOS push notification support (iOS 16.4+)
- Platform detection utilities (is_ios, is_standalone, supports_push)
- iOS-specific meta tags and Apple touch icons
- Auto-detect iOS and show user-friendly message when not in standalone mode
- Enhanced Service Worker with iOS-compatible notification options
- Comprehensive iOS push notification documentation
- manifest.json scope for PWA compliance
- Only works when added to Home Screen (iOS Safari limitation)
2026-02-05 23:57:08 +03:00
spinline
373da566be feat: Add push notification support with VAPID keys
- Backend: web-push integration with VAPID keys
- Push subscription endpoints (GET /api/push/public-key, POST /api/push/subscribe)
- In-memory subscription store
- Frontend: Auto-subscribe to push after notification permission granted
- Service Worker: Push event handler
- Send push notifications when torrents complete
- Works even when browser is closed
2026-02-05 23:53:23 +03:00
spinline
60fc887327 fix(ios): add vibrate API feature detection for iOS Safari
- iOS Safari doesn't support navigator.vibrate()
- Added feature detection before calling vibrate
- Prevents TypeError on iOS devices
- Haptic feedback still works on Android/Chrome
2026-02-05 23:30:54 +03:00
spinline
7ad6455a1e chore: remove debug logging from browser notifications
- Cleaned up verbose notification logs
- Kept error logging for troubleshooting
- Notifications confirmed working on Chrome/macOS
2026-02-05 23:28:12 +03:00
spinline
17551af8b5 fix: remove on:close event from add torrent modal to prevent callback panic
- Dialog's on:close was calling callback after scope disposal
- Caused 'could not get stored value' error in leptos_reactive
- on_close callback still properly called via handle_close and submit success
2026-02-05 22:52:47 +03:00
spinline
614d6a3117 fix: remove manual notification.close() to prevent WASM crash
- Browser automatically closes notification after 5 seconds
- Manual close() was causing unreachable code error
- Changed to just create and let browser handle lifecycle
2026-02-05 22:45:51 +03:00
spinline
1361b5a228 debug: add detailed logging for browser notifications
- Log notification permission status
- Log critical event detection
- Log notification creation attempts
- Log notification failures with error details
- Help troubleshoot why notifications aren't showing
2026-02-05 22:39:00 +03:00
spinline
3efe60a0f0 feat(pwa): add PWA support and browser notifications for critical events 2026-02-05 22:25:31 +03:00
spinline
480604a97a fix(backend): detect torrent completion by percent_complete reaching 100%
- Changed detection from status change to percent_complete threshold
- Added logging for status changes (debugging)
- More reliable completion detection
2026-02-05 22:05:14 +03:00
spinline
b1c7ff856e feat(backend): add toast notification when torrent completes
- Detects Downloading -> Seeding status transition
- Sends 'Torrent tamamlandı: <name>' notification via SSE
2026-02-05 21:55:13 +03:00
spinline
ce6c3e01aa feat(frontend): add SSE auto-reconnect with toast notifications
- Automatic reconnection with exponential backoff (1s to 30s max)
- Toast when connection is lost: 'Sunucu bağlantısı kesildi'
- Toast when reconnected: 'Sunucu bağlantısı yeniden kuruldu'
- Backend rTorrent notifications still work via SSE
2026-02-05 21:46:20 +03:00
spinline
3bc4b0f364 fix(css): rebuild tailwind to include DaisyUI alert classes 2026-02-05 21:35:34 +03:00
spinline
88b2dddba0 fix(toast): use proper DaisyUI alert structure with SVG icons 2026-02-05 21:26:28 +03:00
spinline
579be70a5a fix(toast): make responsive for mobile screens 2026-02-05 21:20:49 +03:00
spinline
ce32eadffd fix(toast): simplify style, remove duplicate backend notifications 2026-02-05 21:18:58 +03:00
spinline
f2ca731827 fix(frontend): fix toast positioning with wrapper div and inline styles 2026-02-05 21:11:36 +03:00
spinline
0b935638af fix(frontend): disable broken service worker registration 2026-02-05 21:04:42 +03:00
spinline
718fed554f fix(frontend): fix toast positioning - move outside drawer, use fixed position 2026-02-05 21:02:47 +03:00
spinline
e8da646a91 fix(frontend): prevent callback panic by deferring menu close to on_close 2026-02-05 20:55:14 +03:00
spinline
497b39e0ae fix(frontend): use signal-based toast for async contexts 2026-02-05 20:48:40 +03:00
spinline
6c7379483e feat(frontend): add clean-code toast notifications 2026-02-05 20:40:11 +03:00
spinline
6e4a9e2d51 fix: resolve frontend build errors and warnings 2026-02-05 18:49:51 +03:00
spinline
e2a8e17eae feat: implement notification system and backoff strategy for rTorrent polling 2026-02-05 18:31:42 +03:00
spinline
97086bf33a refactor(backend): replace magic numbers with named constants for rTorrent fields 2026-02-05 18:11:53 +03:00
spinline
661d18979b fix(backend): replace blocking std::fs with async tokio::fs 2026-02-05 18:04:30 +03:00
spinline
4c728ad066 docs: update README with comprehensive tech stack and features 2026-02-05 00:41:41 +03:00
spinline
209b7ec2c3 fix(ui): format ETA to be human readable 2026-02-05 00:28:30 +03:00
spinline
f4b3820600 fix(ui): prevent theme dropdown from being permanently interactive by removing block class 2026-02-05 00:22:04 +03:00
spinline
564d0c129b fix(ui): improve mobile view contrast by setting background to base-200 2026-02-05 00:19:24 +03:00
spinline
ebd6d55468 fix(ui): ensure default theme is set correctly in incognito mode 2026-02-05 00:10:14 +03:00
spinline
76195584a3 feat(ui): add dedicated Paused filter 2026-02-04 23:45:58 +03:00
spinline
6cc0043111 feat(ui): add abyss theme 2026-02-04 23:38:44 +03:00
spinline
07cfd41cd1 fix(logic): exclude incomplete paused torrents from completed filter 2026-02-04 23:32:02 +03:00
spinline
97753762b4 fix(ui): update theme selector icon to paint-brush 2026-02-04 23:26:55 +03:00
spinline
efcee71f56 feat(ui): add more themes (cupcake, dracula, cyberpunk, emerald, sunset) 2026-02-04 23:21:12 +03:00