Commit Graph
100 Commits
Author SHA1 Message Date
spinline f579431098 ci: install rustup in runner container if missing
Build MIPS Binary / build (push) Failing after 1m2s
2026-02-06 20:41:05 +03:00
spinline 6014ec64e8 ci: replace checkout action with direct git fetch
Build MIPS Binary / build (push) Failing after 1s
2026-02-06 20:39:46 +03:00
spinline bdb30f33d8 ci: trigger server runner
Build MIPS Binary / build (push) Failing after 34s
2026-02-06 20:33:16 +03:00
spinline 2ea2894664 ci: test build speed with cached image
Build MIPS Binary / build (push) Successful in 4m47s
2026-02-06 19:22:37 +03:00
spinline e329275956 ci: use cross-rs image with Rust for proper sysroot, cache builder image
Build MIPS Binary / build (push) Successful in 7m39s
2026-02-06 19:10:57 +03:00
spinline 1f7af5fe30 ci: remove RUSTFLAGS, musl target is static by default
Build MIPS Binary / build (push) Successful in 13m49s
2026-02-06 18:51:49 +03:00
spinline bf54d2699e ci: force static linking with crt-static and -static flags
Build MIPS Binary / build (push) Failing after 10m7s
2026-02-06 18:39:40 +03:00
spinline 46d61b5562 fix: suppress unused_assignments warning for got_first_message
Build MIPS Binary / build (push) Has been cancelled
2026-02-06 18:33:18 +03:00
spinline 103d353422 ci: use rust:latest + rustup nightly (rust:nightly tag doesn't exist)
Build MIPS Binary / build (push) Successful in 12m22s
2026-02-06 18:08:40 +03:00
spinline b8f8c60c22 ci: use rust:nightly image with musl.cc cross-compiler for self-contained MIPS build
Build MIPS Binary / build (push) Failing after 30s
2026-02-06 18:07:33 +03:00
spinline 03a07a9075 ci: use Docker directly instead of cross to avoid host toolchain resolution
Build MIPS Binary / build (push) Failing after 31s
2026-02-06 18:04:41 +03:00
spinline 861ad445fc ci: use +nightly flag instead of RUSTUP_TOOLCHAIN env var
Build MIPS Binary / build (push) Failing after 30s
2026-02-06 18:00:53 +03:00
spinline 1aeb33fbf4 ci: use shell commands instead of GitHub Actions for host runner
Build MIPS Binary / build (push) Failing after 30s
2026-02-06 17:59:17 +03:00
spinline dd025bd185 fix: use RELEASE_TOKEN secret (GITEA_ prefix reserved), add .runner to gitignore
Build MIPS Binary / build (push) Failing after 45s
2026-02-06 17:57:25 +03:00
spinline 6554c4248c ci: add Gitea Actions workflow for MIPS build
Build MIPS Binary / build (push) Has been cancelled
2026-02-06 17:31:32 +03:00
spinline 14f811fd79 fix: convert sort dropdown to signal-based for iOS Safari 2026-02-06 17:19:47 +03:00
spinline 2a919211d9 fix: fixed statusbar at bottom, fix dropdown toggle race, fix theme buttons on iOS
- StatusBar now uses fixed positioning at viewport bottom (z-[99])
- Dropdown toggle uses skip_next_close guard to prevent close-then-reopen
- Global close listener uses click instead of pointerdown (fires after toggle)
- Theme/limit buttons use on:pointerdown instead of on:click for iOS compat
- Main content has pb-8 to prevent overlap with fixed statusbar
- Rebuilt tailwind.css
2026-02-06 17:17:07 +03:00
spinline 2c25d3bdf1 chore: rebuild tailwind.css 2026-02-06 14:21:17 +03:00
spinline 1d06906475 fix: wrap toolbar+main in overflow-hidden, free statusbar from clipping 2026-02-06 14:19:46 +03:00
spinline e4cc6322bf fix: dropdown clipped by overflow-hidden, change to overflow-x-hidden 2026-02-06 14:09:34 +03:00
spinline d1604fb8fb frontend(statusbar): use signal-based dropdowns to fix iOS Safari toggle 2026-02-06 13:57:26 +03:00
spinline 3b34b0e61a fix: prevent toast spam on server disconnect - show once, reconnect silently with backoff 2026-02-06 13:37:12 +03:00
spinline 19d9d7f30f fix: use details-based dropdowns for iOS Safari toggle behavior 2026-02-06 13:34:07 +03:00
spinline a3321c7cf1 fix: properly check notification permission result, show toast feedback on Safari 2026-02-06 13:26:37 +03:00
spinline 22672f7aaa refactor(ui): switch to inline styles for safe-area padding (simpler approach) 2026-02-06 13:19:02 +03:00
spinline e10b252eff fix(ui): use configured safe-area spacing for notch support 2026-02-06 13:13:53 +03:00
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
spinline a6a40997fb fix(ui): replace mismatched upload icon with consistent arrow-up icon 2026-02-04 23:16:43 +03:00
spinline 75a0a37dba fix(ui): enable dim and nord themes by removing conflicting config 2026-02-04 23:09:33 +03:00
spinline 6e9af2b48a feat(ui): persist theme selection in local storage 2026-02-04 22:56:49 +03:00
spinline 8471fe0dc2 fix: resolve unused variable warning and revert tailwind config conflict 2026-02-04 20:30:43 +03:00
spinline db7c074ce3 fix(config): explicity add daisyui plugin and themes to tailwind config 2026-02-04 20:27:47 +03:00
spinline 7e7d6b17db chore(ui): update daisyui theme config to include dim and nord 2026-02-04 20:15:43 +03:00
spinline 874e24389e chore(ui): cleanup unused themes, keeping only light/dark/dim/nord 2026-02-04 20:04:13 +03:00
spinline 4b36123264 fix(ui): cleaner rewrite of torrent table without macro comments 2026-02-04 19:50:00 +03:00
spinline e4a8716502 fix(ui): restore table footer and fix syntax errors 2026-02-04 19:45:48 +03:00
spinline 3b63aa18ac fix(ui): remove accidentally duplicated code block in torrent table 2026-02-04 19:42:48 +03:00
spinline 9f44688a4f feat(ui): add mobile sorting dropdown with native focus implementation 2026-02-04 19:39:37 +03:00
spinline 6076637012 fix(ui): global touch blur listener for robust ios dropdown closing 2026-02-04 19:28:02 +03:00
spinline 0d9d6f3641 fix(ui): restore missing limits logic for statusbar 2026-02-04 19:20:45 +03:00
spinline c42ee6ce81 fix(ui): refactor to native css focus dropdowns for ios support 2026-02-04 19:14:20 +03:00
spinline a47bc38909 fix(ui): use blocks for show conditions to satisfy macro parser 2026-02-04 19:08:13 +03:00
spinline de0f85e81a fix(ui): resolave closure type mismatch and lint warnings 2026-02-04 19:02:01 +03:00
spinline 95b7535ff2 fix(ui): use global touchstart listener for ios dropdowns 2026-02-04 18:37:36 +03:00
spinline 79f18a4c39 fix(ui): adopt context menu backdrop pattern for robust ios dropdowns 2026-02-04 18:28:56 +03:00
spinline 05f813673b fix(ui): use global window listener for dropdowns, remove overlays, restore theme logic 2026-02-04 18:18:21 +03:00
spinline 3e806d37ae fix(ui): robust iOS dropdown handling and explicit active styles 2026-02-04 18:03:22 +03:00
spinline f0b3db9caf fix(ui): finalize iOS dropdown interactions and add selection checkmark 2026-02-04 17:53:22 +03:00
spinline 57da8b02c2 fix(ui): use standard button role for iOS overlays and escalate debug logs 2026-02-04 17:50:50 +03:00
spinline 4bcb998888 chore: force debug logging for speed limits 2026-02-04 17:42:12 +03:00
spinline 4949b756bd fix(ui): use opaque-but-invisible overlay for iOS click handling 2026-02-04 17:40:27 +03:00