Releases
v8.1.873-b873
Watchtower 8.1.873 (build 873)
Compare
Sorry, something went wrong.
No results found
✨ Nouvelles fonctionnalités
dock blur+transparency, 5-item cap, clipping fix, menu drag-reorder
UI improvements – screens
console→AppLogger, isolated runtime dispose, 30s timeout, pubspec sync
CF 3-step toast UX + WebView tab grouper
🧩 Corrections
pin flutter_qjs to fixed quickjs-plus commit (followRedirects removed in Flutter 3.38)
parallel diagnostics (pool=4), sources search+filter, improved log format
missing navigatorKey import + StateNotifier→Notifier migration
Dart 3.x dot-shorthand + missing semicolon build errors
audit QW-01 à QW-16 — sécurité TLS, null-safety, jank scroll, ZeusDL robustesse, batch invalidate, mounted checks
address code-review rejections on Task #1
compilation errors + P0 null-safety + context.mounted guards\n\n - main.dart: restore conditional import (constant.dart moved before dev_seed conditional)\n - eval/javascript/service.dart: fix broken string interpolation /\n - get_video_list.dart: null guard episode.manga.value (epManga local var + StateError)\n - get_chapter_pages.dart: null guard chapter.manga.value (chManga local var)\n - download_provider.dart: null guard chapter.manga.value (throw StateError)\n - push_router.dart: null guard chapter.manga.value + context.mounted checks after await\n - 10 files: wrap print() in kDebugMode guard (production log hygiene)\n - crop_borders_provider, download_isolate_pool, custom_extended_image_provider,\n m_extension_server, isolate_service, doh_resolver: null-safe settings access
audit corrections — TLS, null-safety getSync(kSettingsId), OOB prev/next episode, kSettingsId constant, ZeusDL update cache\n\n - security: enable TLS certificate verification in all HTTP clients (m_client.dart default, m_downloader, m3u8_downloader, download_isolate_pool, search_subtitles)\n - null-safety: replace all 151+ isar.settings.getSync(227)! bang operators with null-safe fallback (getSync(kSettingsId) ?? Settings())\n - constants: add kSettingsId = 227 in constant.dart; migrate all call sites across 57 files\n - anime player: fix incognitoMode as class-level field (moved to lazy getter); add bounds checks in getPrevEpisodeIndex/getNextEpisodeIndex to prevent index-out-of-range crash; add hasPrevEpisode/hasNextEpisode helpers; protect getAnime() with explicit StateError\n - zeus_dl: add 1-hour in-memory cache on GitHub release check to avoid network hit on every app start\n - imports: add missing constant.dart / settings.dart imports across all modified files
Telegram-style animated minimize to mini dock
🧹 Suppressions
bump quickjs-plus to e2e26f1 (btoa/atob + crypto.subtle.digest)
update quickjs-plus to cf58b32 — fetch() bridge
📱 Installation Android
Téléchargez le fichier APK
Ouvrez-le sur Android
Activez "Sources inconnues" si demandé
You can’t perform that action at this time.