Skip to content

Watchtower 8.1.873 (build 873)

Choose a tag to compare

@github-actions github-actions released this 16 Jun 22:26

✨ 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

  1. Téléchargez le fichier APK
  2. Ouvrez-le sur Android
  3. Activez "Sources inconnues" si demandé