Ctrl K
ComunidadGuías…

CHANGELOG.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Changelog

All notable changes to this project will be documented in this file.

## v3.10.4

- ⚡️ Playlists: Increased episode limit to 200 #757
- ⚡️ Plugins: Added API to open native modals from actions #772
- ⚡️ UI: Show episode totals for unstarted anime on hover #872
- ⚡️ Torrent Search: Allow batch searches for airing anime #904
- ⚡️ Manga: Added MyAnimeList link to entry menu #921
- ⚡️ Manga: Smoother keyboard scrolling and cursor hiding when idle #918
- ⚡️ VideoCore/MpvCore: Volume boost up to 300% #964
- ⚡️ VideoCore: Playback speed slider #865
- 🦺 Torrent Download: Fixed torrent client startup before file selection #912
- 🦺 qBittorrent: Fixed missing filenames in file selection #957
- 🦺 Denshi: Fixed background startup on Linux #923
- 🦺 Library: Show missing episodes when episode metadata is unavailable #951
- 🦺 VideoCore: Fixed unnecessary source refresh at HLS playback startup #953
- 🦺 VideoCore: Potential fix for disappearing subtitles after seeking #968
- 🦺 Mediastream: Fixed embedded font extraction for filenames with spaces #971
- 🦺 VideoCore: Fixed Anime4K memory leaks and cleanup #955
- 🦺 InSight: Replaced Jikan with Tenrai for character data
- 🦺 Torrent Search: Best releases no longer force batch status #979
- 🦺 Plugins: Include playback state in start, stop and completion events #977
- 🦺 Subtitles: Fixed VTT conversion dropping lines with custom placements #975

## v3.10.3

- ⚡️ AniList: Last added, last updated filtering options
- ⚡️ Plugin APIs: Ability to change marketplace URL
- 🦺 Continuity: History no longer deleted on episode completion
- 🦺 VideoCore: Potential fix for disappearing subtitles
- 🦺 Torrentstream: Fixed wrong torrent from being selected for autoplay #948
- 🦺 Torrentstream: Fixed VLC mobile compatibility #928
- 🦺 Plugins: Fixed newEpisodeGridItemMenuItem in torrent streaming
- 🦺 Mediastream: Direct play and progress fixes #926
- 🦺 MpvCore: Fixed audio issues on macOS 27
- ⬆️ Updated dependencies

## v3.10.2

- ⚡️ Perf (Directstream): Improved torrent streaming handling
  - Prevents delayed HTTP responses on large torrents
  - Faster seeks and piece prioritization
- ⚡️ Torrent Search: Reduced cache TTL and automatic retries
- 🦺 TorBox: Fixed download link filename encoding
- 🦺 Issue Recorder: Upgraded rrweb to fix session replay
- 🦺 Autoselect: Fixed language parsing
- 🦺 MpvCore: Fixed autonext on video end
- 🦺 AniList: Restrict retries to 429 errors only

## v3.10.1

- ⚡️ Manga: Made the refresh button more prominent
- 🦺 Cache layer: Fixed logging out on invalid token
- 🦺 UI: Fixed manga list disappearing due to unread only option (regression)
- 🦺 Plugins: Fixed DOM observe method incorrectly firing twice

## v3.10.0

- ⚡️ Manga: Improved source refresh
  - Refresh saved sources, find missing sources, or compare all installed providers
  - Retry failed entries or find alternatives when a source stops working
- ⚡️ Built-in Players: Configure extra chapters to skip
  - Custom patterns for auto-skip, skip buttons, and timeline highlighting
- ⚡️ VideoCore: Faster and more reliable subtitles
- ⚡️ Torrent: Optional availability badges for recently released episodes
- ⚡️ Online Streaming: Improvement to reliability
  - Refresh stale source urls before switching providers
  - Keep provider, server, quality, audio, and subtitle choices during recovery
  - Remember HLS quality between episodes
  - Respect provider defaults and per-anime subtitle choices
  - Support subtitles that require provider headers
- ⚡️ Denshi: Restore scroll position on Search and Lists
- ⚡️ Denshi: Export MpvCore logs from Video Playback settings
- ⚡️ Plugins: Show badge counts for unpinned tray plugins
- ⚡️ Plugins: Added APIs for custom Discord Rich Presence activities and AniList avatar URLs
- 🦺 Transcoding / Direct Play: Fixed codec and container detection and stopped reusing stale media containers
- 🦺 MpvCore: Fixed the player background color
- 🦺 Nakama: Fixed watch parties using custom-source media
- 🦺 VideoCore: Fixed stale playback sessions blocking a new client
- 🦺 MPV/IINA: Restoring watch progress now waits until media is ready
- 🦺 Cache: Fixed deleted file cache entries remaining active in memory
- 🦺 UI: Fixed some visual bugs
- ⬆️ MpvCore: Updated mpv-prism to 0.1.8
  - Better support for dual-gpu setups
  - Fixed startup race causing infinite loading
  - Fixed logging on Windows
- ⬆️ Updated dependencies

## v3.9.1

- 🦺 VideoCore/MpvCore: Fixed preferred track selection
- 🦺 VideoCore/MpvCore: Enforce absolute path for screenshot dir
- 🦺 VideoCore: Fixed subtitles not appearing until after cycling
- 🦺 Nakama: Fixed online streaming watch parties (regression)
- 🦺 MpvCore: Fixed watch parties not working
- 🦺 Library: Update library size stats after a scan
- 🦺 Nakama: Send media to peers and host relay, fixes custom sources
  - Progress tracking is still not supported
- 🦺 Nakama: Fixed interference with connected peers not in watch party
- 🦺 Plugins: Fixed missing fields in Discord RPC API event payload
- 🦺 Plugins: Fixed tray icon badge state handling after remounts
- 🦺 Torrent Download: Fixed filename detection when downloading file
- 🦺 Manga: Workaround for AVIF file type when downloading
- 🦺 MpvCore: Fixed logging on Windows
- 🦺 MpvCore: Updated mpv-prism to 0.1.1
  - Linux: Removed bundled graphics libraries
  - Linux: Fixed EGL not working for certain configs
  - Linux: Fixed flickering issues when using shaders
  - Linux: Potential fix for GPU mismatches
  - Windows: Fixed UNC path handling
  - Windows: Potential fix for GPU mismatches
- 🦺 UI: Fixed minor UI bugs

## v3.9.0

- 🎉 Denshi: New libmpv-based Built-in Player (Experimental)
  - Enable in 'Settings > Video Playback'
  - Hardware-accelerated rendering directly in the app viewport (no external window)
  - Flawless codec and subtitle support on all platforms
  - Supports many 'mpv.conf' options and shaders
- ⚡️ UI: New splashcreen, updated components and colors
- ⚡️ Torrent Streaming: Up to 20% faster startup depending on seeding
- ⚡️ Debrid Streaming: Up to 5 seconds faster launch for cached streams
- ⚡️ UI: Support for alt + mouse wheel horizontal scrolling on carousels
- ⚡️ VideoCore: Support for screenshot directory
- ⚡️ Plugins: Added new ChromeDP APIs
- ⚡️ Discord: Seanime logo no longer displayed in Rich Presence
- ⚡️ Debrid: Premiumize support #845
- 🦺 Torrent Streaming: Fixed batch selection
- 🦺 VideoCore: Ability to exit fullscreen when next stream is loading
- 🦺 MPV/IINA: Fixed progress tracking dropping when media path is temporarily unavailable #836
- 🦺 AllDebrid: Fixed batch torrent streaming #841
- 🦺 Manga: Fixed unnecessary image proxy
- 🦺 Torrent Streaming: More accurate download progress reporting
- 🦺 Nakama: Refresh collection when turning off host library sharing
- 🦺 Torrent Client: Fixed runtime error when display name is null
- 🦺 Torrent Client: Use classic file-based downloading instead of memory-mapped files
- 🦺 Mobile: Potential fixes for debrid downloading
- ⬆️ Updated Electron to 42.4.0
  - Fixes AC3/EAC3 audio support detection on Windows for HTML5 player
  - Fixes security vulnerabilities
- ⬆️ Upgraded to Rust-based React Compiler

## v3.8.7

- ⚡️ VideoCore: Improved hls.js error handling
- 🦺 iOS: Fixes for media paths
- 🦺 UI: Fixed media entry modal number inputs
- 🦺 Torrent: Fixed search caching #827
- ⬆️ Updated hls.js

## v3.8.6

- 🦺 Fixed settings regression introduced in v3.8.5

## v3.8.5

- 🦺 Built-in Torrent Client: Fixed runtime error causing by pausing
- 🦺 Built-in Torrent Client: Added in-memory map fallback
- 🦺 VideoCore: Potential fix for body pointer events
- 🦺 Manga: Potential fix for image format and size detection failing
- 🏗️ Core: Improved support for gomobile

## v3.8.4

- ✨ Built-in torrent client (Experimental)
  - Only available as a feature flag
- ⚡️ Transcode: Support for Low-power Intel QSV
- ⚡️ Manga: Support for zooming
- ⚡️ AniList: Support for animated profile pictures
- ⚡️ Plugin: Added dropdown actions for manga
- ⚡️ Plugin: Option to change fetch redirect policy
- ⚡️ VideoCore(Perf): Optimized subtitle parsing
- 🦺 VideoCore: Fixed keybinds handling and input focus in mini player
- 🦺 Extension: Fixed unified code diff
- 🏗️ Core: Experimental support for gomobile

## v3.8.3

- ⚡️ Plugins: ctx.appSettings now includes debrid, torrent streaming and transcode settings
- ⚡️ Torrent streaming: Option to preload next stream (Unstable)
- 🦺 Scanner: Fixed runtime error caused by concurrent file checking
- 🦺 VideoCore: Fixed autonext skipping playlist episodes
- 🦺 VideoCore: Fixed playback failure when replaying fully downloaded torrent stream
- 🦺 VideoCore: Fixed occasional bugs caused by new React19 ref handling
- 🦺 VideoCore(Perf): Throttle torrent stream subtitle events to avoid UI lag
- 🦺 VideoCore(Perf): Throttle thumbnail scrobbling requests
- 🦺 Torrentstream: Dropping torrent removes them on disk immediately
- 🦺 MPV: Potential fix for stale events causing incorrect progress updates
- 🦺 MPV: Generate fresh IPC sockets for each launch to avoid collisions
- 🏗️ MPV: Refactored error messages handling
- 🏗️ VideoCore: Use View Transitions for mini player transitions
- 🏗️ Torrentstream: Fully downloaded files now stream from file on disk directly
- 🏗️ UI: Replaced drawer components and built-in player drawer to avoid layout thrashing

## v3.8.2

- 🦺 VideoCore: Fixed audio selection
- 🦺 VideoCore: Fixed auto next for local files
- 🦺 VideoCore: Disallow miniplayer in fullscreen app mode
- 🦺 VideoCore: Fixed torrent stream playback cancellation logic
- 🦺 VideoCore: Refactored escape key handling
- 🦺 Manga: Fixed incorrect progress updates on next chapter
- 🦺 Schedule: Fixed incorrect timezone in modals
- 🦺 Hide Spoilers: Fixed torrent selection modal handling
- 🦺 Issue Recorder: Fixed query error serialization
- 🦺 Torrent Search: Fixed runtime error causing fewer results
- 🦺 Core: Disabled request body limits
- 🦺 Denshi: Skip inital view transition on content load

## v3.8.1

- 🦺 Online streaming: Fixed sidebar visibility in fullscreen mode

## v3.8.0

- ✨ Torrent Search: Search from multiple providers at once
  - Seanime can now aggregate torrent results from multiple providers
- ⚡️ Subtitle Translator: Support for OpenAI-compatible local LLMs
- ⚡️ UI: Route preloading and faster transitions
  - Media entries in your collection will open virtually instantly
  - Media pages loading time has been reduced by 40%
- ⚡️ Denshi: Window position and size are now remembered
- ⚡️ VideoCore: Auto-import local subtitle files
  - The native player will now automatically import subtitle files from the same directory as the video file
- ⚡️ External Player Link: New '{subtitleUrl}' placeholder for local sub files
- ⚡️ UI: Ability to hide spoilers
  - New '/spoilers' command to toggle spoilers on/off for a specific anime
- ⚡️ Online streaming: New HTTP/1-based video proxy
- ⚡️ Online streaming: Option to automatically cycle through providers
  - Seanime can now try providers until a working one is found
- ⚡️ Extensions: Ability to disable extensions
- ⚡️ Streaming: Ability to delete previous batch selection
- ⚡️ Debrid: Improved downloading handling
  - Fixes some edge cases encountered while downloading from TorBox and RD
- ⚡️ Plugins: More APIs
  - 'ctx.settings', 'ctx.auth', 'ctx.extensions' to securily manage the app systems
- ⚡️ Settings: New 'Extension Secure Mode'
  - Confirmation prompts whenever an extension tries to perform a sensitive action
- 🦺 qBittorrent: Fixed support for 5.2.x
- 🦺 Cache mode: Queued updates are deleted on manual mutation
- 🦺 VideoCore: Potential fix for duplicated subtitles
- 🦺 VideoCore: Potential fix for media session not being ended
- 🦺 Online streaming: Fixed video source selection
- 🦺 Online streaming: Fixed occasional HTTP/2 related errors
- 🦺 Plugins: Faster reads for '$storage' and '$store'
- 🦺 UI: Fixed some UI issues
- 🦺 Auto Downloader: Fixed handling of debrid downloads
- 🦺 Manga: Fixed chapter page image height
- 🦺 Core: Fixed handling of stale cookies
- ⬆️ Updated Go to 1.26.2

## v3.7.1

- ⚡️ Cache mode: Ability to update entries in the cache (Experimental)
  - You can now update progress while AniList is down. Data will be auto-synced when AniList is back online.
- ⚡️ VideoCore: Ability to save screenshots to disk
- ⚡️ Plugin: Added more APIs
  - Added '$shared' API for sharing pure functions between hooks and runtimes
  - Added 'ctx.jobs', 'ctx.settings', 'ctx.cache' for less boilerplate
  - Added '$debug' API for looking at plugin logs on the client
- 🦺 Cache mode: Fixed certain queries bypassing the cache layer
- 🦺 Home: Fixed 'not authenticated' errors for local accounts
- 🦺 Torrentstream: Fixed 'Disable IPV6' option not working
- 🦺 Plugin: Fixed potential crash caused by concurrent shared map writes
- 🦺 Torrentstream: Fixed HEAD requests
- 🦺 MPV: Fixed player launch when using '--terminal=no --really-quiet'
- 🦺 Auto-select: Fixed form fields showing empty values after saving
- 🦺 Settings: Fixed form fields showing empty values after saving
- 🦺 UI: Fixed some UI issues

## v3.7.0

- 🔒 BREAKING: Non-local instances now require a server password (Read the docs for more info).
- ⚡️ Search: Support for tags #614
- ⚡️ Plugins: New APIs and Hooks
  - Added VideoCore play methods (#699) and skip data manipulation
  - Added API to register an episode tab
  - Added Auto Downloader, Torrent search hooks
  - Added Playback, Scanner, Debrid, Torrent streaming, Torrent search, Auto-select API methods
- ⚡️ Home Screen: Added 'Repeating' filter for 'My lists'
- ⚡️ Windows: Use user-default explorer application
- ⚡️ Denshi: Right-click context menu for inputs
- ⚡️ VideoCore: Increased subtitle parsing speed for local files
- ⚡️ Denshi Player: Fullscreen with double click instead of double right-click
- ⚡️ Search: Global search no longer filters out adult entries
- 🦺 Denshi: Fixed blank screen after server reconnection
- 🦺 Playback: Fixed stale data being used for events
- 🦺 Transcoder: Potential fix for 10bit issues with NVENC (?)
- 🦺 Continuity: Fixed potential progress being ignored
- 🦺 Scanner: Fixed unrelated roman numerals being treated as seasons
- 🦺 Video Proxy: Fixed slow non-HLS video proxy #710
- 🦺 Plugin: Fixed $storage API returning stale data
- 🦺 VideoCore: Fixed screenshots with Anime4K
- 🔒 Security overhaul
  - Added `securemode = "strict"` which disables certain actions and plugin capabilities
  - Config: Added `server.accessAllowlist` `server.trustedProxies` and `server.externalUrl` (Experimental)
  - Improved Electron security for renderers
  - Added security checks for server-side Electron macOS updater
  - Improved client identity security checks
- 🏗️ Denshi: App startup no longer relies on websocket connection

## v3.6.1

- 🦺 In-App Player: Fixed deadlock caused by stream cancellation
  - Cancelling a stream no longer cause future stream requests to hang (regression)
  - It is now possible to cancel a stream while metadata is being loaded
- 🏗️ VideoCore: Refactored stream cancellation logic

## v3.6.0

- ⚡️ Anime: Paste magnet link anywhere to stream or download
- ⚡️ Auto-Select: Improved scoring and comparison logic
- ⚡️ Manga: Resume page position
- ⚡️ Playlist: Option to select all episodes for a media
- ⚡️ Plugins: Added ctx.dom.clipboard API
- ⚡️ Denshi: Pause video on minimize/hide
- ⚡️ Transcoder: Refactored to enhance performance and maintanability
- 🦺 Auto Downloader: Fixed potential duplicate downloads with Debrid
- 🦺 Debrid Streaming: Fixed HTTP streaming memory leaks
- 🦺 External Player: Fixed issues with playback status tracking being carried over
- 🦺 Playlist: Fixed episode selection for anime without metadata
- 🦺 Schedule Calendar: Fixed potential issues with timezones
- 🦺 Local Account: Fixed local lists not being uploaded to AniList
- 🦺 Local Account: Fixed runtime error caused by empty lists
- 🦺 Local Account: Refresh active media periodically to avoid stale metadata
  - Note: This can cause rate limiting issues. If you have a lot of media, an AniList account is recommended
- 🦺 Auto Downloader: Fixed 'Download now' for queued items
- 🦺 VideoCore: Fixed some streaming logic errors
- 🦺 VideoCore: Fixed handling of AniSkip chapters
- 🦺 Media Card: Fixed list data missing from manga cards on certain pages
- 🦺 Auto downloader: Fixed runtime error caused by faulty extensions
- 🏗️ Refactored most unit tests, removed outdated tests
- ⬆️ Migrated to React 19
- ⬆️ Updated dependencies

## v3.5.2

- ⚡️ Built-in Player: Improved performance
  - Reduced lag caused by animations and subtitle streaming
- ⚡️ Added "Check for updates" button
- ⚡️ Added Update Channels (Experimental)
  - Github (Default), Seanime (GitHub alternative), Seanime Canary (Alpha/Beta releases)
- ⚡️ Issue Recorder: Reduced final size by deduplicating content
- ⚡️ Qbittorrent: Added re-authentication mechanism
- 🔒 Server: Fixed various security issues
- 🦺 MKV Parser: Fixed handling of chapters from multiple editions
  - Fixes out-of-sync seekbar
- 🦺 Rsbuild: Added missing node polyfills
  - Fixes "Copy stream URL" (regression)
- 🦺 UI: Fixed PageWrapper forward ref
  - Fixes home carousel items not loading
- 🦺 Library: Fixed missing episodes not refreshing after toggling notifications
- 🦺 Anime: Fixed entry list and library data not showing up in carousels
- 🏗️ Server: Added update channel fallback

## v3.5.1

- ✨ Denshi: Added desktop app settings
  - Close to tray, Open in background, Open at login
- ⚡️ Scanner: Improved handling of batch folder titles
  - Fixed cases where generic batch folder titles could cause incorrect matches downstream
- ⚡️ Extensions: Added $scannerUtils helper API
  - Provides utility functions manipulating media titles and building search queries
- ⚡️ VideoCore: Custom subtitle delay controls #628
- ⚡️ Server: Automatically log out of AniList when token is invalid
- 🦺 Server: Fixed incorrect "Completed" status on progress update for unauthenticated users
- 🦺 Server: Don't count AniList 404 errors as API failures
- 🦺 Scanner: Fixed hydration rules runtime error #632
- 🦺 VideoCore: Fixed potential layout thrashing
- 🏗️ Server: Redact username in logs and issue reports
- 🏗️ DX: Fixed Tailwind HMR

## v3.5.0

- ✨ New Library Scanner
  - Context-aware matching that no longer relies solely on fuzzy matching
  - Improved accuracy for title variations, smarter parsing and comparisons
  - Better handling of multi-season anime, movies and specials
- ✨ Scanner: Configuration
  - Add rules to fully customize matching and hydration behavior
- ✨ Improved Issue Recorder
  - Issue Recorder now records the UI, allowing to reproduce issues more easily
  - Ability to attach screenshots and notes to recordings
- ⚡️ Scanner: Added support for Anime Offline Database
  - Enhanced matching will now use the Anime Offline Database to improve accuracy
- ⚡️ New Transcoding/Direct Play media player
  - Video playback using transcoding/direct play will now use Seanime's custom player (VideoCore)
- ⚡️ Updated LibASS Renderer (Jassub)
- ⚡️ Theming: Added toggle for restoring blur effects
- ⚡️ Improved filename parser
- ⚡️ Super Update: Added 'start=' enumeration support
- ⚡️ VideoCore: Stats for nerds
  - View file path, codecs, playback info with the keybind 'Z'
- ⚡️ VideoCore: Character Lookup
  - Quickly lookup characters while watching with the keybind 'H'
- ⚡️ Sidebar: 'Search' button now redirects to the search page
  - Use 's' keybind for quick search access
- ⚡️ Denshi: Click on tray icon to toggle visibility #599
- ⚡️ Password inputs are now masked by default
- ⚡️ Internal: Revamped Scan Log Viewer
- ⚡️ Internal: Revamped Issue Log Analyzer
  - Added Session Replays for easier debugging
- 🦺 Auto Downloader: Fixed handling of custom episode offsets
- 🦺 Auto-select: Removed year filter for batch searches #612
- 🦺 Manga: Disable 'Continue Reading' button when next chapter is unavailable
- 🦺 VideoCore: Fixed previous/next episode keybinds
- 🦺 Scanner: Fixed episode normalization when AniList has more episodes than AniDB
- 🦺 Scanner: Refresh anime collection after scanning
- 🦺 Library Explorer: Fixed bulk un-ignore option not showing up
- 🏗️ UI: Decreased internal AniList rate limiter burst size
- 🏗️ Server: Decreased internal AniList rate limiter burst size
- 🏗️ TorBox: Seeding option is no longer overridden
- 🏗️ (BREAKING): Migrated Frontend from Next.js to Tanstack Router+Rsbuild/Rspack
  - 10x faster build times
  - Up to 3x faster hot reloading on heavy components
- ⬆️ Updated dependencies
- ⬆️ Updated Go to 1.26

## v3.4.2

- 🦺 Auto Downloader: Skip watched episodes (regression)

## v3.4.1

- 🦺 Auto Downloader: Fixed resolution preference causing no results to be returned
- 🦺 Performance: Removed heavy background blurring and glow effects
- 🦺 Torrent Search: Reverted 'special' provider inclusion in batch searches
- 🦺 My Lists: Fixed library badge not showing up

## v3.4.0

- ✨️ New Auto Downloader
  - Up to 10x more torrents will be compared in a single run
  - Added ability to select multiple other indexers/providers for specific rules
  - Added new constraints: Min seeders, Min size, Max size, Excluded terms
  - Added suggestions for rule parameters
  - Added ability to simulate runs to test specific rules
  - New 'Default Provider' setting
- ✨️ Auto Downloader: Profiles
  - Ability to apply filters globally or set up a scoring system for torrents
  - Ability to delay downloads in order to fetch better torrents
  - Each profile can have its own set of preferred params (providers, codecs, etc...)
  - Each rule can have a specific profile or inherit global ones
- ✨️ Auto-select is now fully customizable
  - Ability to choose and rank providers/indexers, release groups, codecs, etc. 
  - Ability to prefer/avoid/block specific codecs, sources, languages
  - Ability to exclude terms
- ⚡️ Improved UI Performance
  - Increased fluidity on heavy pages
  - Up to 2x reduction in FPS drops when navigating
- ⚡️ Improved torrent filename parsing
- ⚡️ Torrent Search: 'Special' provider will be included in batch search
- ⚡️ Anime Library: Locked files are shelved if their library path is missing
  - This is useful when using external drives
- 🦺 Library Explorer: Reload anime entry after super update
- 🦺 Plugins: Fixed DOM events not firing when reloading tab
- 🏗️ BREAKING: Removed 'Default Auto-select Provider' setting from 'Torrent Provider'
  - Use auto-select customization instead
- 🏗️ Plugins: Webview API is now stable

## v3.3.1

- ⚡️ Logs retrived from the UI are now anonymized
- ⚡️ UI: Prevent sidebar from overflowing by automatically unpinning menu items
- ⚡️ Plugins: Updated APIs
  - Added Viewport methods to DOM API
  - Added tooltip option for Button Actions
  - Updated and added new methods to Webview API
  - Added AbortContext
- 🦺 Offline: Fixed runtime error caused by disabling offline mode
- 🦺 Plugins: Fixed Webview API (window, hide/close, dragging), Tray events
- 🦺 Manga: Fixed pages not loading if server password is removed
- 🦺 Scanner: Remove episode title from filename when detecting file type 
- 🦺 Manga: Prevent malformed data returned by extension from crashing UI
- 🦺 Fixed minor UI issues

## v3.3.0

- ✨️ Plugins: New Webview API (Alpha)
  - It is now possible to create new screens, widgets, in plugins
- ✨️ Built-in Player: Subtitle Track Translation (Alpha)
  - Supports DeepL and OpenAI for on-the-fly subtitle track translation
- ⚡️ Metadata Parent: Link standalone Specials to a parent anime
  - Allow standalone Special entries to inherit AniDB metadata from the parent anime #509
- ⚡️ Plugins: New Tray components and UI context APIs
- ⚡️ AllDebrid Support - @GabrielNunesIT
- ⚡️ Library Explorer: Ability to delete files #561
- ⚡️ Extensions: View code changes before updating extension
- ⚡️ Library path selection for download destination - @Ari-03
- ⚡️ Auto Downloader: Filter for media selection - @umag
- ⚡️ Updated 'Aired Recently' layout #541
- ⚡️ Torrent List: Added filter and sorting options
- ⚡️ Auto Downloader: Ability to remove rules for no longer airing shows #528
- 🔒 Plugins: Security changes
  - New "unsafe flags" required for script and link manipulation in the DOM
  - Domain whitelisting required for network access in plugins
  - Plugins using unsafe flags can only be updated manually
- 🦺 Built-in Player: Fixed progress update on first watch
- 🦺 Real Debrid: Fixed non-zipped downloads appearing under '.tmp-' folders
- 🦺 VLC: Fixed progress tracking on Linux #566
- 🦺 Auto Downloader: Fixed default provider not being overridden when absent
- 🦺 Fixed potential panic caused by 'include in library' feature #571
- 🏗️ Nakama and Cloud Rooms are now stable
- ⬆️ Updated dependencies

## v3.2.5

- 🦺 Online Streaming: Fixed default server not being selected

## v3.2.4

- ⚡️ Plugins: Enhanced API stability across tabs
  - DOM and Screen APIs are now stable across multiple tabs
  - Eliminated conflicting DOM events causing UI crashes
- 🦺 Custom Sources: Fixed media not appearing in collection on restart
- 🏗️ Server: Load custom sources synchronously before AniList data is fetched

## v3.2.3

- ✨️ Nakama: Cloud Rooms (Public Beta)
  - Host watch parties without exposing your server to the internet.
  - Communication between the host and peers is managed by Seanime's Rooms API
  - Note: This feature might be restricted or removed in the future.
- 🦺 Online streaming: Fixed missing AniSkip data
- 🦺 VideoCore: Fixed custom fonts not applying
- 🦺 Torrent streaming: Fixed auto play starting wrong torrent in some cases
- 🦺 Nakama: Fixed peers kicked out of watch party when playback ends
- 🦺 Nakama: Restrict skip actions when watch party is active
- 🏗️ Settings: Updated Nakama settings layout

## v3.2.2

- 🦺 Denshi Player: Fixed double progress updates
- 🦺 Denshi Player: Fixed request deadlock after pre-stream error
- 🦺 UI: Minor fixes
- 🏗️ Plugins: Updated and fixed some APIs

## v3.2.1

- 🦺 Denshi Player: Fixed scrollbar appearing in fullscreen after selecting torrent
- 🦺 Plugins: Refactored Storage API to avoid stale data issues
- 🦺 Streaming: Fixed duplicated episode dropdown menu
- 🦺 Online Streaming: Fixed video sources ignoring selected server
- 🦺 Online Streaming: Fixed playback reloading when toggling autoplay
- 🦺 Plugins: Fixed Action API setters using old props
- 🏗️ Denshi: Disabled hardware media key handling
- 🏗️ Plugins: Sort actions by extension ID

## v3.2.0

- ✨️ Nakama: Watch party support for online streaming (Experimental)
- ✨️️ Nakama: Watch party chat
- ⚡️ Online Streaming: Import external subtitle files
- ⚡️ Nakama: Improved watch party support with built-in player
- ⚡️ Plugins: New VideoCore API for interacting with built-in players
- 🦺 Online Streaming: Fixed ASS subtitles from providers
- 🦺 Nakama: Fixed playlists for shared library episodes
- 🦺 Home screen: Fixed genre selector for anime library
- 🦺 Online Streaming: Fixed page z-index
- 🏗️ Nakama: Refactored watch party & relay mode handling
  - Relay server no longer launches torrent streams
- 🏗️ VideoCore: Shared event system for Denshi player and online streaming

## v3.1.0

- ✨️ Online Streaming: New player with added features (Experimental)
  - Supports common subtitle formats including ASS/SSA
  - Anime4K sharpening support
  - SRT/VTT soft subs to ASS conversion support
  - Preview thumbnails
  - Preferences (language, audio, keybinds)
- ✨ Denshi Player: New features and improvements
  - PGS subtitle support (Experimental)
  - ASS subtitle customization
  - Custom ASS font support
  - Blacklist subtitle names
  - Subtitle delay support
  - Faster thumbnail generation
- ⚡️ Server: TLS support @Ju1-js
- ⚡️ Extensions: Added ChromeDP headless browser API
- 🦺 Video Proxy: Fixed playlist failing at integer conversion
- 🦺 Continue Watching: Add entries without metadata when streaming
- 🦺 Plugins: Updated API
  - Added Pre/PostDeleteEntry hooks
  - Added '$anilist.ClearCache()' and 'ctx.anime.clearEpisodeMetadataCache()'
- 🏗️ iOS: Update PWA icon
- ⬆️ Updated Go, Next.js and dependencies

## v3.0.8

- 🦺 Extensions: Fixed "incompatible or obsolete" extension error on startup (regression)

## v3.0.7

- ⚡️ Manga Reader: Added visual feedback for selected settings #525
- 🦺 Local Manga: Fixed rare runtime crash when loading pages 
- 🦺 Fixed custom sources for local accounts
- 🦺 Custom sources: Fixed potential resource leak
- 🦺 Extensions: Fixed drawer component for tray plugins
- 🏗️ Refactoring: Fixed shared module thread-safety and runtime module updates
  - Fixes issues when switching offline mode on/off at runtime
  - Fixes issues when logging in/out at runtime
- 🏗️ iOS: Update PWA icon 

## v3.0.6

- 🦺 Server: Fixed -datadir flag (regression)

## v3.0.5

- ⚡️ Denshi: Added "Play externally" context menu option to episode cards
- ⚡️ Nakama: Added support for sharing custom source media
  - Shared episodes from custom sources are not supported by playlists
- ⚡️ Denshi: Alt/Cmd+Arrow keys for navigation
- 🦺 Denshi Player: Fixed parsing of Matroska files (missing subtitle tracks)
- 🦺 Manga: Fixed "reload sources" not working
- 🦺 Schedule: Fixed schedule breaking due to custom sources
- 🦺 Nakama: Fixed "Resolve hidden media" appearing on peer's home screen
- 🦺 Offline: Fixed local chapters being ignored when syncing
- 🦺 Extensions: Fixed "View extension code" when downloading code
- 🦺 Server: Fixed image proxy
- 🏗️ Denshi: Implemented new Matroska Parser
- 🏗️ Server: Added -host, -port, -password, -disable-password, -disable-features [list], -disable-all-features flags

## v3.0.4

- ⚡️ Extensions: Increased custom source ID limit (Breaking)
- 🦺 Extensions: Fixed adding custom sources to collection (Breaking)

## v3.0.3

- ⚡️ Extensions: Added "notes" field to extension manifest for additional info
- 🦺 Anime: Display download button when no default torrent provider is selected
- 🦺 Marketplace: Fixed empty custom source lists
- 🦺 Video Proxy: Fixed certain URIs not being rewritten
- 🦺 Custom sources: Fixed "Resolve hidden media" 
- 🏗️ Denshi Player: Use default or forced subtitle/audio tracks
- 🏗️ Denshi Player: Added "off" option for subtitles
- 🏗️ Denshi Player: Show error message when subtitle format isn't supported
- 🏗️ Server: Updated tray icon

## v3.0.2

- ⚡️ Extensions: Increased custom source media ID limit
- 🦺 Extensions: Fixed Go to JS attribute mappings
- 🦺 Debrid streaming: Fixed single-file torrents being added to selection history
- 🦺 Extensions: Fixed "view code" when granting permissions
- 🦺 Denshi: Fixed youtube trailer embeds
- 🦺 Fix: Include more formats in anime relations
- 🦺 Scanner: Less aggressive 'Special' episode detection
- 🦺 Transcoding: Fixed some LibASS renderer issues
- 🏗️ Streaming: Renamed "Using previous selection" to "Auto-selecting from previous torrent"
- 🏗️ Streaming: Automatically disable "auto-select" when it fails
- 🏗️ Anime: Keep download button visible on all views
- 🏗️ Fixed 32-bit builds (integer overflow)

## v3.0.1

- ⚡️ Home Screen: New "My Lists" and "Missed Sequels" items
- ⚡️ Denshi Player: Add external subtitles (Experimental)
- ⚡️ Manga: Option to overwrite all selected sources with default provider
- 🦺 Denshi Player: Fixed subtitle & audio selection for RealDebrid
- 🦺 Denshi: Force single instance of the client
- 🦺 Denshi Player: Fixed some ASS subtitle signs being skipped
- 🦺 Denshi Player: Fixed dragging/pasting subtitle files
- 🦺 Manga: Fixed refreshing all sources
- 🦺 Real Debrid: Fixed auto play 404 errors
- 🦺 Denshi Player: Fixed updating number values for keybinds
- 🦺 Denshi Player: Fixed handling of auto select errors
- 🦺 Fixed editing entries when logged off AniList
- 🦺 Fixed issues with default torrent provider
- 🦺 Fix: Undo automatic trailers
- 🦺 MPV/Iina: Don't append next episode if auto next is off
- 🦺 Fix: Potential database locking issues
- 🦺 Fixed some UI issues
- 🏗️ Security(Server Passcode): Added authentication to proxy endpoints
- 🏗️ Security: Granting plugin permissions requires two-way handshake
- 🏗️ Security: Ability to view plugin code before granting permissions
- 🏗️ Auto Downloader: Ability to choose all media
- 🏗️ Extensions: Added $store API to content provider extensions
- 🏗️ Added single instance warning to crash screen

## v3.0.0

- 📝 BREAKING: Seanime Desktop is now deprecated. Download the new desktop client https://seanime.app/download
- 🎉 Seanime Denshi: New desktop client & built-in player
  - Seanime Denshi (based on Electron) replaces Seanime Desktop (based on Tauri)
  - New built-in player for local/torrent/debrid streaming
  - New player supports ASS/SSA subtitles, importing subtitle files, Anime4K Upscaling
  - PiP, Mini player, keybinds and more
- 🎉 Custom Sources: New extension type for adding custom media
  - Seanime now no longer limited to AniList!
  - Add custom sources to watch/read anything you want (even non-anime series)
  - Create and share your own custom sources
- 🎉 Library Explorer: New way to manage your scanned library
  - Global view of all files in your anime libraries
  - Search, match, unmatch, edit files faster than ever before
  - Support for renaming files (PowerRename-like) and editing metadata in bulk
- 🎉 Playlists: New playlist system with support for all playback types (Experimental)
  - Quickly add an episode to a playlist from the right click menu
  - Playlists now support torrent/debrid/online streaming, transcoding and can switch between them
  - Playlists now support external player links
- 🎉 New cache layer for zero downtime
  - All requests are now automatically cached to disk
  - Seanime will keep working as usual when AniList is temporarily down
- ⚡️ Library management improvements:
  - Unmatched files: Integrated search & preview for faster matching
- ⚡️ Torrent/Debrid streaming improvements:
  - Auto play next episode now works when episode file is selected manually
  - Files are now selected automatically based on index after the first one is selected manually
  - Manual file selection is now easier with a redesigned interface
- ⚡️ Plugins: Tray plugins can now be displayed as drawers
- ⚡️ MPV/Iina: Next local file episode is automatically appended to player's playlist
- ⚡️ Torrent client: Select files to download from batches
- ⚡️ Online Streaming: Previous/Next button #161
- 🦺 Offline: Fixed syncing issues where non-downloaded episodes' images were downloaded
- 🦺 Manga: Fixed reading downloaded chapters when no provider is selected
- 🦺 Plugin(DOM): Fixed some DOM APIs not working
- 🏗️ BREAKING: Removed all built-in extensions

## v2.9.10

- ⚡️ Plugins: Added Schedule and Filler management hooks
- 🦺 TorBox: Fixed streaming uncached torrents
- 🦺 Nakama (Sharing): Do not share unmatched entries
- 🦺 Nakama (Sharing): Fixed unwatched count in detailed library view
- 🦺 Server Password: Fixed auth redirection on iOS
- 🦺 Server: Update anime collection in modules when manually refreshing
- 🦺 Torrent/Debrid streaming: Lowered episode list cache duration

## v2.9.9

- 🦺 Fixed torrent streaming for desktop players

## v2.9.8

- 🦺 External Player Link: Fixed torrent streaming links
- 🦺 VLC, MPC-HC: Fixed input URI encoding
- 🦺 M3u8 Proxy: Potential fix for missed rewrites
- 🦺 Server Password: Do not load page before authentication
- 🦺 Online streaming: Do not always restore fullscreen
- 🦺 Fixed some UI bugs

## v2.9.7

- ⚡️ Nakama: Better default titles with MPV
- ⚡️ External Player Links: New variables for custom scheme #345
  - {mediaTitle}, {episodeNumber}, {formattedTitle}, {scheme}
- 🦺 Fixed Auto Downloader not working with Debrid 
- 🦺 Auto Play: Use same torrent when playback is started from previous selection
- 🦺 Nakama: Fixed external player link starting playback on system player 
- 🦺 Online streaming: Fixed m3u8 Proxy skipping some URIs #396
- 🦺 Fixed VLC progress tracking for local file playback #398
- 🦺 Plugin Hooks: Fixed some events being ignored 
- 🦺 Online streaming: Invalidate all episode queries when emptying cache
- 🏗️️ Online streaming: Display errors in the UI

## v2.9.6

- 🦺 Fixed server crash caused by navigating to 'Schedule' page

## v2.9.5

- ⚡️ Updated Discord RPC: Media title used as activity name, links
- ⚡️ Offline mode: Option to auto save currently watched/read media locally #376
- ⚡️ Offline mode: Bulk select media to save locally #377
- ⚡️ Metadata: Prefer TVDB title when AniDB isn't up-to-date
- ⚡️ Scan summaries: Search input for filenames
- 🦺 Potential fixes for high memory usage and app slowdowns
- 🦺 Torrent list: Fixed 'Stop seeding all' button pausing downloading torrents
- 🦺 Playground: Fixed UI crash caused by console logs
- 🦺 Scanner: Fixed matching being messed up by "Part" keyword in filenames
- 🦺 Parser: Fixed folder names with single-word titles being ignored
- 🦺 Online streaming: Don't hide button for adult entries
- 🦺 Online streaming: Fixed wrong episode selection when page is loaded #384
- 🦺 Potential fix for auto play not being canceled
- 🦺 Nakama: Fixed host's list data being added to anime that aren't in the collection
- 🦺 External Player Link: Fixed incorrect stream URL when server password is set
- 🦺 Media player: Use filepaths for comparison when loading media instead of filenames
- 🦺 Nakama: Fixed case sensitivity issue when comparing file paths on Windows
- 🦺 Fixed external player links by encoding stream URL if it contains a query parameter #387
- 🦺 Playlists: Fixed playlist deletion
- 🏗️ Slight changes to the online streaming page for more clarity
- 🏗️ Settings: Added memory profiling to 'logs' section
- 🏗️ Anime: Removed (obsolete) manual TVDB metadata fetching option
- 🏗️ Perf(Extensions): Do not download payload when checking for updates

## v2.9.4

- ⚡️ Migrated to Seanime's own anime metadata API
- ⚡️ Release calendar: Watch status is now shown in popovers
- 🦺 Fixed schedule missing some anime entries due to custom lists
- 🦺 Watch history: Fixed resumed playback not working for local files
- 🦺 Fixed streaming anime with no AniList schedule and no episode count
- 🦺 Fixed 'Upload local lists to AniList' button not working
- 🦺 Fixed repeated entries in 'Currently watching' list on the AniList page

## v2.9.3

- ⚡️ Plugins: Added Textarea component, 'onSelect' event for input/textarea
- 🦺 Fixed release calendar missing long-running series
- 🦺 Include in Library: Fixed 'repeating' entries not showing up

## v2.9.2

- ⚡️ Discover: Added 'Top of the Season', genre filters to more sections
- ⚡️ Nakama: Detailed library view now available for shared library
- ⚡️ TorBox: Optimized TorBox file list query - @MidnightKittenCat
- ⚡️ Episode pagination: Bumped number of items per page to 24
- 🦺 Nakama: Fixed dropdown menu not showing up for shared anime
- 🦺 Nakama: Base unwatched count on shared episodes
- 🦺 Scanner: Fixed modal having 'Use anilist data' checked off by default
- 🦺 UI: Revert to modal for AniList entry editor on media cards
- 🦺 Plugins: Allow programmatic tray opening on mobile
- 🦺 Fixed incorrect dates in AniList entry editor #356
- 🦺 UI: Revert incorrect video element CSS causing pixelation #355

## v2.9.1

- 🦺 Server Password: Fixed token validation on public endpoints
- 🦺 Server Password: Fixed login from non-localhost, HTTP clients #350
- ⚡️ Release calendar: Option to disable image transitions
- ⚡️ Manga: Double page offset keybindings - @Ari-03
- 🦺 Plugin: Fixed newMediaCardContextMenuItem and other APIs
- 🦺 Fixed IINA settings not being applied
- 🏗️ Downgraded Next.js and React Compiler
  - Potential solution for client-side rendering errors #349

## v2.9.0

- 🎉 New feature: Nakama - Communication between Seanime instances
  - You can now communicate with other Seanime instances over the internet
- 🎉 Nakama: Watch together (Alpha)
  - Watch (local media, torrent or debrid streams) together with friends with playback syncing
  - Peers will stream from the host with synchronized playback
- 🎉 Nakama: Share your anime library (Alpha)
  - Share your local anime library with other Seanime instances or consume your remote library
- ✨ Local account
  - By default, Seanime no longer requires an AniList account and stores everything locally
- ✨ Server password
  - Lock your exposed Seanime instance by adding a password in your config file
- ✨ Manga: Local source extension (Alpha)
  - New built-in extension for reading your local manga (CBZ, ZIP, Images)
- ✨ New schedule calendar
- ✨ macOS: Support for IINA media player
- ✨ Toggle offline mode without restarting the server
- ✨ New getting started screen
- ⚡️ Discord: Pausing anime does not remove activity anymore
- ⚡️ UI: New setting option to unpin menu items from the sidebar
- ⚡️ UI: Added pagination for long episode lists
- ⚡️ Online streaming: Episode number grid view
- ⚡️ Performance: Plugins: Deduplicate and batch events
- ⚡️ Discord: Added option to show media title in activity status (arRPC only) - @kyoruno
- ⚡️ PWA support (HTTPS only) - @HyperKiko
- ⚡️ MPV/IINA: Pass custom arguments
- ⚡️ Discord: Keep activity when anime is paused
- ⚡️ UI: Updated some animations
- 🦺 Fixed multiple Plugin API issues
- 🦺 Goja: Added OpenSSL support to CryptoJS binding
- 🦺 Fixed filecache EOF error
- 🦺 Fixed offline syncing

## v2.8.5

- 🦺 Fixed scraping for manga extensions
- 🦺 Library: Fixed bulks actions not available for unreleased anime
- 🦺 Auto Downloader: Button not showing up for finished anime
- 🦺 Online streaming: Fixed 'auto next episode' not working for some anime

## v2.8.4

- ⚡️ Plugin development improvements
    - New Discord Rich Presence event hooks
    - New bindings for watch history, torrent client, auto downloader, external player link, filler manager
    - Plugins in development mode that experience a fatal error can now be reloaded multiple times
    - Uncaught exceptions are now correctly logged in the browser devtool console
- 🦺 Fixed macOS/iOS client-side exception caused by 'upath' #238
- 🦺 Removed 'add to list' buttons in manga download modal media cards
- 🦺 Manga: Fixed reader keybinding editing not working on macOS desktop
- 🦺 Fixed AniList page filters not persisting
- 🦺 Fixed 'Advanced Search' input not being emptied when resetting search params
- 🦺 Extensions: Fixed caught exceptions being logged as empty objects
- 🦺 Fixed extension market button disabled by custom background image
- 🦺 Fixed Plugin APIs
    - Fixed DOM manipulation methods not working
    - Correctly remove DOM elements created by plugin when unloaded
    - Fixed incorrectly named hooks
    - Fixed manga bindings for promises
    - Fixed select and radio group tray components
    - Fixed incorrect event object field mapping (Breaking)
- 🏗️ Frontend: Replace 'upath' dependency

## v2.8.3

- ⚡️ Updated Playground 
- ⚡️ Discover page: Play the trailer on hover; carousel buttons 
- 🦺 Playground: Fix online streaming search options missing media object
- 🦺 Discord: Fixed anime rich presence displaying old episodes
- 🦺 Discord: Fixed manga rich presence activity #282
- 🦺 Library: Fixed anime unwatched count for shows not in the library
- 🦺 Library: Fixed filtering for shows not in the library
- 🦺 Library: Fixed 'Show unwatched only' filter
- 🦺 Torrent search: Fixed Nyaa batch search with 'any' resolution
- 🏗️ Torrent Search: Truncate displayed language label number

## v2.8.2

- ✨ UI: Custom CSS support
- ✨ In-app extension marketplace
    - Find extensions to install directly from the interface
- ⚡️ Discord: Rich Presence anime activity with progress track
- ⚡️ Torrent: New 'Nyaa (Non-English)' built-in extension with smart search
- ⚡️ Torrent search: Added labels for audio, video, subtitles, dubs
- ⚡️ Torrent search: Improved non-smart search UI
- ⚡️ Extensions: Built-in extensions now support user preferences
  - API Urls are now configurable for some built-in extensions
- ⚡️ Extensions: Auto check for updates with notification
- ⚡️ Extensions: Added media object to Online streaming search options
- ⚡️ Extensions: User config (preferences) now accessible with '$getUserPreference' global function
- ⚡️ UI Settings: Color scheme live preview #277
- ⚡️ Manga: Fullscreen toggle on mobile (Android) #279
- 🦺 Library: Fixed genre selector making library disappear #275
- 🦺 Online streaming: Fixed search query being altered
- 🦺 Fixed offline mode infinite loading screen (regression from v2.7.2) #278
- 🦺 Extensions: Fixed playground console output #276
- 🦺 Extensions: Fixed JS extension pool memory leak
- 🦺 Extensions: Fixed Plugin Actions API
- 🏗️ Removed Cloudflare bypass from ComicK extension
- 🏗️ Extensions: Deprecated 'getMagnetLinkFromTorrentData' in favor of '$torrentUtils.getMagnetLinkFromTorrentData'
- 🏗️ Plugins: New 'ctx.anime' API
- 🏗️ Server: Use binary (IEC) measurement on Windows and Linux #280
- 🏗️ Extensions: Updated and fixed type declaration files
- 🏗️ Extensions: New 'semverConstraint' field

## v2.8.1

- 🦺 Fixed runtime error when launching the app for the first time
- 🦺 Fixed torrent search episode input
- 🦺 Fixed update popup showing empty "Updates you've missed"

## v2.8.0

- 🎉 Plugins: A powerful new way to extend and customize Seanime
    - Build your own features using a wide range of APIs — all in JavaScript.
- ✨ Playback: Faster media tracking, better responsiveness
    - Faster autoplay, progress tracking, playlists
- ✨ Torrent streaming: Improved performance and responsiveness
    - Streams start up to 2x faster, movies start up to 50x faster
- ✨ Server: DNS over HTTPS support
- ✨ Manga: Refresh all sources at once #233
- ✨ Library/Streaming: Episode list now includes specials included by AniList in main count
- ✨ Torrent search: Sorting options #253
- ✨ Debrid streaming: Improved stream startup time
- ✨ Library: New 'Most/least recent watch' sorting options (w/ watch history enabled) #244
- ✨ Extensions: Ability to edit the code of installed extensions
- ⚡️ Streaming: Added Nyaa as a fallback provider for auto select
- ⚡️ Manga: Unread count badge now takes into account selected scanlator and language
- ⚡️ Torrent list: Stop all completed torrents #250
- ⚡️ Library/Streaming: Improved handling of discrepancies between AniList and AniDB
- ⚡️ Library: Show episode summaries by default #265
- ⚡️ UI: Option to hide episode summaries and episode filename
- ⚡️ AniList: Option to clear date field when editing entry
- ⚡️ Extensions: New 'Update all' button to update all extensions at once 
- ⚡️ Extensions: Added 'payloadURI' as an alternative to pasting extension code
- ⚡️ Extensions: 'Development mode' that allows loading source code from a file in the manifest
- ⚡️ Torrent streaming: Option to change cache directory
- ⚡️ Manga: Selecting a language will now filter scanlator options and vice versa
- ⚡️ Discover page: Context menu for 'Airing Schedule' items #267 - @kyoruno
- ⚡️ Added AniList button to preview modals #264 - @kyoruno
- 🦺 Fixed AnimeTosho smart search #260
- 🦺 AutoPlay: Fixed autoplay starting erroneously
- 🦺 Scanner: Fixed local file parsing with multiple directories
- 🦺 Scanner: Fixed resolved symlinks being ignored #251
- 🦺 Scanner: Removed post-matching validation causing some files to be unmatched #246
- 🦺 Library: Fixed 'unwatched episode count' not showing with 'repeating' status
- 🦺 Library: Fixed incorrect episode offset for some anime
- 🦺 Torrent search: Fixed excessive API requests being sent during search query typing
- 🦺 Parser: Fixed crash caused by parsing 'SxExxx-SxExxx'
- 🦺 Video Proxy: Fixed streaming .mp4 media files - @kRYstall9
- 🦺 Extensions: Fixed bug causing invalid extensions to be uninstallable from UI
- 🦺 Extensions: Fixed concurrent fetch requests and concurrent executions
- 🏗️ Debrid streaming changes
    - Added visual feedback when video is being sent to media player
    - Removed stream integrity check for faster startup
- 🏗️ Refactored websocket system
    - New bidirectional communication between client and server
    - Better handling of silent websocket connection closure
- 🏗️ Refactored extension system
    - Usage of runtime pools for better performance and concurrency
    - Improved JS bindings/bridges
- 🏗️ Web UI: Added data attributes to HTML elements
- 🏗️ Offline mode: Syncing now caches downloaded chapters if refetching
- 🏗️ BREAKING(Extensions): Content provider extension methods are now run in separate runtimes
    - State sharing across methods no longer works but concurrent execution is now possible
- ⬆️ Migrated to Go 1.24.1
- ⬆️ Updated dependencies

## v2.7.5

- 🦺 Extensions: Fixed runtime errors caused by concurrent requests
- 🦺 Manga: Removed light novels from manga library #234
- 🦺 Fixed torrent stream overlay blocking UI #243
- 🏗️ Server: Removed DNS resolver fallback

## v2.7.4

- 🚑️ Fixed infinite loading screen when launching app for the first time
- ⚡️ External player link: Option to encode file path to Base64 (v2.7.3) 
- 🦺 Desktop: Fixed startup failing due to long AniList request (v2.7.3) 
- 🦺 Debrid: Fixed downloading to nonexistent destination (v2.7.3) 
- 🦺 Anime library: Fixed external player link not working due to incorrect un-escaping (v2.7.3) 
- 🦺 Small UI fixes (v2.7.3) 
- 🏗️ Server: Support serving Base64 encoded file paths (v2.7.3)

## v2.7.3

- ⚡️ External player link: Option to encode file path to Base64 
- 🦺 Desktop: Fixed startup failing due to long AniList request #232
- 🦺 Debrid: Fixed downloading to nonexistent destination #237
- 🦺 Anime library: Fixed external player link not working due to incorrect un-escaping #240
- 🦺 Small UI fixes
- 🏗️ Server: Support serving Base64 encoded file paths

## v2.7.2

- 🦺 Fixed error alert regression
- 🦺 Anime library: Fixed downloading to library root #231
- 🦺 Fixed getting log file contents on Linux
- 🏗️ Use library for 'copy to clipboard' feature

## v2.7.1

- ⚡️ Transcoding: Support for Apple VideoToolbox hardware acceleration
- ⚡️ Manga: New built-in extension
- 🦺 Fixed hardware acceleration regression
- 🦺 Fixed client cookie regression causing external player links to fail
- 🦺 Fixed Direct Play regression #224
- 🦺 Anime library: Fixed selecting multiple episodes to download at once #223
- 🦺 Desktop: Fixed copy to clipboard
- 🦺 Fixed UI inconsistencies
- 🏗️ Extensions: Removed non-working manga extension
- 🏗️ Improved logging in some areas
- 🏗️ Desktop: Refactored macOS fullscreen

## v2.7.0

- ✨ Updated design
- ✨ Command palette (Experimental)
  - Quickly browse, search, perform actions, with more options to come
  - Allows navigation with keyboard only #46
- ✨ Preview cards
  - Preview an anime/manga by right-clicking on a media card
- ✨ Library: Filtering options #210
  - Filter to see only anime with unseen episodes and manga with unread chapters #175 (Works if chapters are cached)
  - New sorting options: Aired recently, Highest unwatched count, ...
- ✨ New UI Settings
  - 'Continue watching' sorting, card customization
  - Show unseen count for anime cards #209
- ⚡️ Torrent/Debrid streaming: 'Auto play next episode' now works with manually selected batches #211
  - This works only if the user did not select the file manually
- ⚡️ Server: Reduced memory usage, improved performance
- ⚡️ Discord Rich Presence now works with online & media streaming
- ⚡️ 'Continue watching' UI setting options, defaults to 'Aired recently'
  - BREAKING: Manga unread count badge needs to be reactivated in settings
- ⚡️ Torrent streaming: Slow seeding mode #200
- ⚡️ Debrid streaming: Auto-select file option
- ⚡️ Quick action menu #197
  - Open preview cards, more options to come
- ⚡️ Revamped Settings page
- ⚡️ Anime library: Improved Direct Play performance
- ⚡️ Quickly add media to AniList from its card
- 🦺 Torrent streaming: Fixed auto-selected file from batches not being downloaded #215
  - Fixed piece prioritization
- 🦺 Debrid streaming: Fixed streaming shows with no AniDB mapping 
- 🦺 Anime library: 'Remove empty directories' now works for other library folders
- 🦺 Anime library: Download destination check now takes all library paths into account
- 🦺 Online streaming: Fixed 'auto next' not playing the last episode
- 🦺 Server: Fixed empty user agent header leading to some failed requests 
- 🦺 Anime library: Ignore AppleDouble files on macOS #208
- 🦺 Manga: Fixed synonyms not being taken into account for auto matching
- 🦺 Manga: Fixed genre link opening anime in advanced search
- 🦺 Extension Playground: Fixed anime torrent provider search input empty value
- 🦺 Continuity: Ignore watch history above a certain threshold
- 🦺 Online streaming: Fixed selecting highest quality by default
- 🦺 Fixed Auto Downloader queuing same items
- 🦺 Manga: Fixed pagination when filtering by language/scanlator #217
- 🦺 Manga: Fixed page layout overflowing on mobile
- 🦺 Torrent streaming: Fixed incorrect download/upload speeds
- 🦺 Anime library: Fixed special episode sorting
- 🏗️ Server: Migrated API from Fiber (FastHTTP) to Echo (HTTP)
- 🏗 External media players: Increased retries when streaming
- 🏗 Torrent streaming: Serve stream from main server
- 🏗 Watch history: Bumped limit from 50 to 100 
- 🏗 Integrated player: Merged both online & media streaming players
  - BREAKING: Auto play, Auto next, Auto skip player settings have been reset to 'off'
- 🏗 Renaming and Removals
  - Scanner: Renamed 'matching data' checkbox
  - Torrent/Debrid streaming: Renamed 'Manually select file' to 'Auto select file'
  - Removed 'Use legacy episode cards' option
  - 'Fluid' media page header layout is now the default
- ⬆️ Migrated to Go 1.23.5
- ⬆️ Updated dependencies

## v2.6.2

- ⚡️ Advanced search: Maintain search params during navigation #195
- 🦺 Torrent streaming: Fixed playback issue
- 🦺 Auto Downloader: Fixed list not updating correctly after batch creation
- 🔧 Torrent streaming: Reverted to using separate streaming server

## v2.6.1

- ⚡️ Anime library: Filtering by year now takes into account the season year
- ⚡️ Torrent streaming: Custom stream URL address setting #182
- 🦺 Scanner: Fixed duplicated files due to incorrect path comparison
- 🦺 Use AniList season year instead of start year for media cards #193
- 🏗️ Issue recorder: Increase data cap limit

## v2.6.0

- ✨ In-app issue log recorder
  - Record browser, network and server logs from an issue you encounter in the app and generate an anonymized file to send for bug reports
- ⚡️ Auto Downloader: Added support for batch creation of rules #180
- ⚡️ Scanner: Improved default matching algorithm
- ⚡️ Scanner: Option to choose different matching algorithms
- ⚡️ Scanner: Improved filename parser, support for SxPx format
- ⚡️ Scanner: Reduced log file sizes and forced logging to single file per scan
- ⚡️ Improved Discover manga page
- ⚡️ New manga filters for country and format #191
- ⚡️ Torrent streaming: Serve streams from main server (Experimental)
  - Lower memory usage, removes need for separate server
- ⚡️ Auto deletion of log files older than 14 days #184
- ⚡️ Online streaming: Added 'f' keybinding to restore fullscreen #186
- 💄 Media page banner image customization #185
- 💄 Media banner layout customization
- 💄 Updated user interface settings page
- 💄 Updated some styles
- 💄 Added 'Fix border rendering artifacts' option to UI settings
- 🦺 Fixed Auto Downloader form #187
- 🦺 Streaming: Fixed auto-select for media with very long titles
- 🦺 Fixed torrent streaming on VLC
- 🦺 Fixed MPV resumed playback with watch continuity enabled
- 🦺 Desktop: Fixed sidebar menu item selection
- 🏗️ Auto Downloader: Set minimum refresh interval to 15 minutes (BREAKING)
  - If your refresh interval less than 15 minutes, it will be force set to 20 minutes. Update the settings accordingly.
- 🏗️ Moved 'watch continuity' setting to 'Seanime' tab

## v2.5.2

- 🦺 Fixed SeaDex extension #179
- 🦺 Fixed Auto Downloader title comparison
- 🦺 Fixed m3u8 proxy HTTP/2 runtime error on Linux
- 🦺 Fixed Auto Downloader array fields
- 🦺 Fixed online streaming error caused by decimals
- 🦺 Fixed manual progress tracking cancellation
- 🦺 Fixed playback manager deadlock
- 🦺 Desktop: Fixed external player links
- 🦺 Desktop: Fixed local file downloading (macOS)
- 🦺 Desktop: Fixed 'open in browser' links (macOS)
- 🦺 Desktop: Fixed torrent list UI glitches (macOS)
- 🏗️ Desktop: Added 'reload' button to loading screen
- ⬆️ Updated filename parser
  - Fixes aggressive episode number parsing in rare cases
- ⬆️ Updated dependencies
- 🔑 Updated license to GPL-3.0

## v2.5.1

- 💄 Updated built-in media player theme
- 🦺 Fixed Auto Downloader form fields (regression)
- 🦺 Fixed online streaming extension API url (regression)
- ⬆️ Migrated to Go 1.23.4
- ⬆️ Updated dependencies

## v2.5.0

- ⚡️ UI: Improved rendering performance
- ⚡️ Online streaming: Built-in Animepahe extension (Experimental)
- ⚡️ Desktop: Automatically restart server process when it crashes/exits
- ⚡️ Desktop: Added 'Restart server' button when server process is terminated
- ⚡️ Auto progress update now works for built-in media player
- ⚡️ Desktop: Back/Forward navigation buttons #171
- ⚡️ Open search page by clicking on media genres and ranks #172
- ⚡️ Support for AniList 'repeat' field #169
- ⚡️ Ignore dropped anime in missing episodes #170
- ⚡️ Improved media player error logging
- ⚡️ Online streaming: m3u8 video proxy support
- ⚡️ Ability to add to AniList individually in 'Resolve unknown media'
- 🦺 Fixed TorBox failed archive extraction
- 🦺 Fixed incorrect 'user-preferred' title languages
- 🦺 Fixed One Piece streaming episode list
- 🦺 Added workaround for macOS video player fullscreen issue #168
  - Clicking 'Hide from Dock' from the tray will solve the issue
- 🦺 Fixed torrent streaming runtime error edge case
- 🦺 Fixed scanner 'Do not use AniList data' runtime error
- 🦺 Fixed Transmission host setting not being applied
- 🦺 Javascript VM: Fixed runtime panics caused by 'fetch' data races
- 🦺 Online streaming: Fixed scroll to current episode
- 🦺 Online streaming: Fixed selecting highest/default quality by default
- 🦺 Fixed UI inconsistencies
- 🏗️ Removed 'Hianime' online streaming extension
- 🏗️ Real Debrid: Select all files by default
- 🏗️ UI: Improved media card virtualized grid performance
- 🏗️ Javascript VM: Added 'url' property to fetch binding
- 🏗️ Reduced online streaming cache duration
- 🏗️ Core: Do not print stack traces concurrently
- 🏗️ UI: Use React Compiler (Experimental)
- ⬆️ Updated dependencies

## v2.4.2

- ⚡️ 'Include in library' will keep displaying shows when caught up
- ⚡️ Settings: Open data directory button
- 🦺 Desktop: Fixed authentication issue on macOS
- ⚡️ Desktop: Force single instance
- ⚡️ Desktop: Try to shut down server on force exit
- ⚡️ Desktop: Disallow update from Web UI
- 🦺 Desktop: Fixed 'toggle visibility'
- 🦺 Desktop: Fixed 'server process terminated' issue

## v2.4.1

- ⚡️ Desktop: Close to minimize to tray
  - The close button no longer exits the app, but minimizes it to the system tray
  - Exit the app by right-clicking the tray icon and selecting 'Quit Seanime'
- ⚡️ Qbittorrent: Custom tag settings #140
- 🦺 Fixed Linux server requiring libc
- 🦺 Desktop: Fixed 'toggle visibility'

## v2.4.0

- 🚀 Desktop app
  - You can now download the new desktop app for Windows, macOS, and Linux
  - The desktop app is a standalone GUI that embeds its own server
- 🦺 Anime library: Fixed toggle lock button
- 🦺 Torrent streaming: Fixed file previews
- 🏗️ Rename 'enhanced scanning'
- 🔨 Updated release workflow

## v2.3.0

- ✨ Real-Debrid support for streaming and downloading
- ⚡️ Manga: Unread chapter count badge
- ⚡️ HTTPS support for qBittorrent and Transmission
- ⚡️ Online streaming: Theater mode
- 🦺 Scanner: Fixed NC false-positive edge case
- 🦺 Fixed pause/resume action for qBittorrent v5 #157
- 🏗️ Added fallback update endpoint & security check
- 🏗️ Fixed update notification reliability
- 🏗️ Fixed cron concurrency issue


## v2.2.3

- 🦺 Offline: Fixed episode images not showing up without an internet connection
  - Remove and add saved series again to fix the issue
- 🦺 Offline: Download only used images
- 🦺 Debrid streaming: Fixed MPV --title flag
- 🦺 Debrid streaming: Fixed stream cancellation
- ⚡️ Media streaming: Custom FFmpeg hardware acceleration options
- 🏗️ Moved filename parser to separate package

## v2.2.2

- ✨ Debrid Streaming: Auto select (Experimental)
- ⚡️ Scanner: Improved episode normalization logic
- ⚡️ Debrid Streaming: Retry mechanism for stream URL checks
- ⚡️ Online streaming: New "Include in library" setting
- ⚡️ Online streaming: Show fetched image & filler metadata on episode cards
- ⚡️ Settings: Torrent client "None" option
- 💄 UI: Integrated online streaming view in anime page
- 🦺 Fixed custom background images not showing up #148
- 🦺 Fixed external player link for downloaded Specials/NC files #139
- 🦺 Fixed "contains" filter for Auto Downloader #149
- 🏗️ Merged "Default to X view" and "Include in library" settings for torrent & debrid streaming
- 🏗️ Made library path optional for onboarding and removable in settings
- 🏗️ Updated empty library screen
- 🏗️ Fix Go toolchain issue #150

## v2.2.1

- ⚡️ New getting started page
- ⚡️ Auto Downloader: Added 'additional terms' filter option
- 🦺 Torrent streaming: Fixed auto-select runtime error
- 🦺 Fixed auto-scanning runtime error
- 🦺 Fixed issue with inexistant log directory
- 🦺 Torrent streaming: Fixed runtime error caused by missing settings
- 🦺 Fixed scan summaries of unresolved files not showing up

## v2.2.0

- 🎉 New offline mode
    - New local data system with granular updates, removing the need for re-downloading metadata each time. Option for automatic local data refreshing. Support for media streaming. Better user interface for offline mode.
- 🎉 Debrid support starting with TorBox integration
    - TorBox is now supported for downloading/auto-downloading and streaming torrents.
    - Automatic local downloading once a torrent is ready
- 🎉 Watch continuity / Resumable playback
    - Resume where you left off across all playback types (downloaded, online streaming, torrent/debrid streaming)
- ✨ Support for multiple library directories
- ✨ Export & import anime library data
- ⚡️ Improved scanner and matcher
    - Matcher now prioritizes distance comparisons to avoid erroneous matches
- ⚡️ Extensions: User configs
- ⚡️ Improved Auto Downloader title comparisons #134
    - New ‘Verify season’ optional setting to improve accuracy if needed
- ⚡️ Online streaming: Manual match
- ⚡️ Torrent streaming: Change default torrent client host #132
- ⚡️ JS Extensions: Torrent data to magnet link global helper function #138
- ⚡️ Media streaming: Direct play only option
- ⚡️ Built-in player: Discrete controls (Hide controls when seeking)
- ⚡️ Built-in player: Auto skip intro, outro
- ⚡️ Support for more video extensions #144
- 🦺 Fixed Semver version comparison implementation (affects migrations)
- 🦺 Fixed Auto Downloader form #133
- 🦺 Fixed ‘continue watching’ button for non-downloaded media #135
- 🦺 Fixed Hianime extension
- 🦺 Fixed specials not working with external player link for torrent streaming #139
- 🦺 Fixed some specials not being streamable
- 🏗️ Refactored metadata provider code
- 🏗️ New documentation website

## v2.1.1

- ✨ Discover: New 'Schedule' and 'Missed sequels' section
- ⚡️ Self update: Replace current process on Linux #114
- ⚡️ Auto play next episode now works for torrent streaming (with auto-select enabled)
- ⚡️ Anime media cards persist list data across pages
- 🦺 Fixed duplicated playback events when 'hide top navbar' is enabled #117
- 🦺 Fixed UI inconsistencies & layout shifts due to scrollbar
- 🦺 Fixed anime media card trailers
- 🦺 Fixed nested popovers not opening on Firefox
- 🏗️ UI: Added desktop-specific components for future desktop app
- 🏗️ Added separate build processes for frontend

## v2.1.0

- ✨ Manage logs from the web interface
- ✨ Extensions: Improved Javascript interpreter
  - New Cheerio-like HTML parsing API
  - New CryptoJS API bindings
- ✨ Extensions: Typescript/Javascript Playground
  - Test your extension code interactively from the web interface
- ✨ AnimeTosho: 'Best release' filter
- ✨ Manga: New built-in "ComicK (Multi)" extension
  - Supports language & scanlator filters
- ✨ Auto play next episode for Desktop media players
  - Enable this in the media player settings
- ✨ Manga extension API now support language & scanlator filters
- ⚡️ Playlist creation filters
- ⚡️ Unmatch select files instead of all
- ⚡️ New option to download files to device #110
- ⚡️ Progress modal key bindings #111
  - 'u' to update progress & 'space' to play next episode
- 🦺 Extensions Fixed JS runtime 'fetch' not working with non-JSON responses
- 🦺 qBittorrent login fix
- 🏗️ Updated extension SDK
  - Breaking changes for third-party extensions

## v2.0.3

- ✨ Settings: Choose default manga source
- 🦺 Fixed 'resolve unmatched' feature
  - Fixed incorrect hydration when manually resolving unmatched files
- 🦺 Torrent streaming: Fixed external player link on Android
- 🦺 UI: Display characters for undownloaded anime
- 🏗️ Updated extension SDK

## v2.0.2

- ✨ Ignore files
- ⚡️ Improved 'resolve unmatched' feature
  - Select individual files to match / ignore
  - Suggestions are fetched faster
- 🦺 Torrent streaming: Fixed MPV cache
- 🦺 Fixed manual match overwriting locked files
- 🦺 Fixed episode summaries

## v2.0.1

- ✨ Torrent streaming: Show previously selected torrent
- ✨ Support for AniList 'repeating' status
- 🦺 Fixed External Player Link not working on Android
- 🦺 Fixed UI inconsistencies
- 🦺 Fixed SeaDex provider

## v2.0.0

- 🎉 Extension System
  - Create or install torrent provider, online streaming, and manga source extensions
  - Support for JavaScript, TypeScript, and Go
  - Easily share extensions by hosting them on GitHub or any public URL
  - Extensions are sandboxed for security and have access only to essential APIs
- 🎉 Windows System Tray App
  - Seanime now runs as a system tray app on Windows, offering quick and easy access
- 🎉 External Media Player Link (Custom scheme)
  - Open media in external player apps like VLC, MX Player, Outplayer, and more, using custom URL schemes
  - Stream both downloaded media and torrents directly to your preferred player that supports custom schemes
- ✨ Torrent Streaming Enhancements
  - Stream torrents to other devices using the external player link settings
  - Manually select files for torrent streaming (#103)
  - View torrent streaming episodes alongside downloaded ones in your library
  - Improved handling of Specials & Adult content (#103)
  - Torrent streaming now passes filenames to media players (#99)
  - Option to switch to torrent streaming view if media isn't in your library
- ⚡️ Enhanced Auto Downloader
  - Improved accuracy with a new option to filter by release group using multiple queries
- ✨ UI Enhancements
  - Customize your experience with new user interface settings
  - Updated design for media cards, episode cards, headers, and more
- ✨ Manga Enhancements
  - Manually match manga series for more accurate results
  - Updated page layout
- ✨ Notifications
  - Stay informed with new in-app notifications
- ⚡️ Smart Search Improvements
  - Enhanced search results for current torrent providers
  - Reduced latency for torrent searches
- ⚡️ Media Streaming Enhancements
  - Defaults to the cache directory for storing video segments, removing the need for a transcode directory
- ⚡️ Library Enhancements
  - Filter by title in the detailed library view (#102)
  - More options for Discord Rich Presence (#104)
- 🦺 Bug Fixes & Stability
  - Fixed incorrect listing on the schedule calendar
  - Resolved runtime error when manually syncing offline progress
  - Resolved runtime error caused by torrent streaming
  - Corrected links on the AniList page's manga cards
- 🏗️ Logging & Output
  - Continuous logging of terminal output to a file in the logs directory
  - FFmpeg crashes are now logged to a file
  - Enforced absolute paths for the `-datadir` flag
- 🏗️ Codebase Improvements
  - Refactored code related to the AniList API for better consistency
  - Enhanced modularity of the codebase for easier maintenance
  - Updated release workflow and dependencies

## v1.7.3

- ⚡️ Perf: Optimized queries
  - Start-up time is reduced
  - Editing list entries has lower latency
  - Fetching larger AniList collections is now up to 5 times faster
- 💄 UI: Updated components
  - Larger media cards
  - Updated episode grid items
  - Use AniList color gradients for scores
  - Improved consistency across components
- ⚡️ Automatically add new media to AniList collection when downloading first episode
- 🦺 Transmission: Escape special characters in password 
- 🦺 UI: Escape parentheses in image filenames

## v1.7.2

- ⚡️ Scanner: Support more file extensions
- ⚡️ Removed third-party app startup check if the application path is not set
- 🦺 Auto update: Fixed update deleting unrelated files in the same directory
- 🦺 Media streaming: Fixed direct play using wrong content type #94
- 🦺 Torrent streaming: Fixed inaccurate file download percentage for batches #96

## v1.7.1

- 🦺 Media streaming: Fixed direct play returning the same file for different episodes
- 🦺 Torrent streaming: Fixed playing individual episode from batch torrents #93
- 🦺 Torrent streaming: Fixed panic caused by torrent file not being found
- 🦺 Fixed crash caused by terminating MPV programmatically / stopping torrent stream
- 🦺 Fixed 'manga feature not enabled' error when opening the web interface #90
- 🦺 Fixed manga list being named 'watching' instead of 'reading'
- 🦺 Media streaming: Fixed 'file already closed' error with direct play
- 🦺 Torrent streaming: Fixed persistent loading bar when torrent stream fails to start
- 🦺 Schedule: Fixed calendar having inaccurate dates for aired episodes
- 🦺 Media streaming: Fixed byte range request failing when video player requests end bytes first (direct play)
- 🏗️ Media streaming: Refactored direct play file cache system
- 🏗️ Scan summaries: Use preferred titles
- 🏗️ Internal refactoring for code consistency

## v1.7.0

- ✨ Improved anime library page
  - New detailed view with stats, filters and sorting options
- ✨ Revamped manga page
  - Updated layout with dynamic header and genre filters
  - Page now only shows current, paused and planned entries
- ✨ Improved 'Schedule' page: New calendar view for upcoming episodes
- ✨ Improved 'Discover' page: Support for manga
- ✨ Improved 'AniList' page
  - Updated layout with new filters, sorting options and support for manga lists
  - New stats section for anime and manga
- ✨ Global search now supports manga
- ✨ Online streaming: Added support for dubs
- ✨ Media streaming: Auto play and auto next #77
- ⚡️ 'None' option for torrent provider #85
	- This option disables torrent-related UI elements and features
- ⚡️ Torrent streaming: Added filler metadata
- ⚡️ Ability to fetch metadata for shows that are not in the library
- ⚡️ MPV: Added retry mechanism for connection errors
- ⚡️ Perf: Improved speed when saving settings
- ⚡️ Perf: Virtualize media lists for better performance if there are many entries
- ⚡️ Transcoding: Option to toggle JASSUB offscreen rendering
- ⚡️ Online streaming: Refactored media player controls
- ⚡️ UI: Improved layout for media streaming & online streaming
- ⚡️ UI: Added indicator for missing episodes on media cards
- 🦺 Media streaming: Fixed direct play #82
- 🦺 Media streaming: Fixed font files not loading properly
- 🦺 Transcoding: Set default hardware accel device to auto on Windows
- 🦺 Torrent streaming: Fixed manual selection not working with batches #86
- 🦺 Online streaming: Fixed episode being changed when switching providers
- 🦺 Playlists: Fixed list not updating when a playlist is started
- 🦺 UI: Make global search bar clickable on mobile
- 🦺 Online streaming: Fixed Zoro provider
- 🦺 Fixed terminal errors from manga requests
- ⬆️ Updated dependencies

## v1.6.0

- 🚀 The web interface is now bundled with the binary
  - Seanime now ships without the `web` directory
  - This should solve issues with auto updates on Windows
- 🎉 Media streaming: Direct play support
  - Seanime will now, automatically attempt to play media files directly without transcoding if the client supports the codecs
- ✨ Metadata: View filler episodes #74
  - Fetch additional metadata to highlight filler episodes
- ✨ Setting: Refresh library on startup
- ⚡️ Scanner: Support for symbolic links
- 🚀 Transcoding: JASSUB files are now embedded in the binary
  - No need to download JASSUB files separately unless you need to support old browsers
- 🦺 Media streaming: Fixed subtitle rendering issues
  - This should solve issues with subtitles not showing up in the media player
- 🦺 Scanner: Fixed runtime error when files aren't matched by the autoscanner
- 🦺 Media streaming: Fixed JASSUB on iOS
- 🦺 Fixed crash caused by concurrent logs
- 🏗️ BREAKING: Media streaming: Metadata extraction done using FFprobe only
- 🔨 Updated release workflow
- ⬆️ Updated dependencies

## v1.5.5

- ⚡️ Manga reader fullscreen mode (hide the bar)
  - You can now toggle the manga reader bar by clicking the middle of the page or pressing `b` on desktop
  - Click the cog icon to toggle the option on mobile
- ⚡️ Changed manga reader defaults based on screen size
  - Clicking `Reset defaults for (mode)` will now take into account the screen size
- 🦺 Fixed list not updating after editing entry on 'My lists' page
- 🦺 Fixed manga list not updating after deleting entry
- 🦺 Fixed score and recommendations not updating when navigating between series

## v1.5.4

- ⚡️ Added episode info to Torrent Streaming view #69
- ⚡️ Custom anime lists are now shown in 'My Lists' page #70
- 🦺 Fixed active playlist info not showing up on the web UI
- 🦺 Torrent streaming: Fixed manual selection not working when episode is already watched
- 🦺 Torrent Streaming: Fixed transition

## v1.5.3

- ✨ Self update (Experimental)
  - Update Seanime to the latest version directly from the web UI
- 🦺 Media streaming: Fixed issue with media player not using JASSUB #65
- 🦺 Online streaming: Fixed progress syncing #66
- 🦺 Fixed .tar.gz decompression error when downloading new releases on macOS
- 🦺 Fixed some layout issues
- 🏗️ Changed default subtitle renderer styles on mobile #65
- 🏗️ Use binary path as working directory variable by default
  - Fixes macOS startup process and other issues
- 🏗️ Added `server.usebinarypath` field to config.toml
  - Enforces the use of binary path as working directory variable
  - Defaults to `true`. Set to `false` to use the system's working directory
- 🏗️ Removed `-truewd` flag
- 🏗️ Disabled Fiber file compression

## v1.5.2

- 🦺 Fixed transcoding not starting (regression in v1.5.1)
- 🦺 Fixed Discover page header opacity issues
- 🦺 Fixed runtime error caused by missing settings
- 🏗️ Reduced latency when reading local files

## v1.5.1

- ⚡️ Reduced memory usage
- ⚡️ Automatic Transcoding cache cleanup on server startup
- 🚀 Added Docker image for Linux arm64 #63
- 🚑️ Fixed occasional runtime error caused by internal module
- 💄 UI: Improved stream page layouts
- 🦺 Fixed Transcode playback error when switching episodes
- 🦺 Fixed MPV regression caused by custom path being ignored
- 🦺 Fixed hanging request when re-enabling Torrent streaming after initialization failure
- 🦺 Fixed error log coming from Torrent streaming internal package
- 🦺 Fixed 'change default AniList client ID' not working
- 🏗️ Moved 'change default AniList client ID' to config.toml
- 🔨 Updated release workflow

## v1.5.0

This release introduces two major features: Transcoding and Torrent streaming.
Thank you to everyone who has supported the project so far.

-  🎉 New: Media streaming / Transcoding (Experimental)
    - Watch your downloaded episodes on any device with a web browser using dynamic transcoding
    - Support for hardware acceleration (QSV, NVENC, VAAPI)
    - Dynamic quality selection based on bandwidth (HLS)
- 🎉 New: Torrent streaming (Experimental)
    - Stream torrents directly from the server to your media player
    - Automatic selection with no input required, click and play
    - Auto-selection of single episodes from batch torrents
    - Support for seeding in the background after streaming
- ✨ Added ability to view studios' other works
  - Click on the studio name to view some of their other works
- ✨ Added settings option to open web UI & torrent client on startup
- ⚡️ Updated terminal logs
- ⚡️ Improved support for AniList score options #51
  - You can now use decimal scores
- ⚡️ Added ability to change default AniList client ID for authentication
- 💄 UI: Moved UI customization page to the settings page
- 💄 UI: Improved data table component on mobile devices
- 🦺 Fixed failed websocket connection due to protocol mismatch #50
- 🏗️ Playback blocked on secondary devices unless media streaming is enabled
- 🏗️ Online streaming is stable
- 🏗️ Refactored MPV integration

## v1.4.3

- ⚡️ Manga: Improved pagination
  - Pagination between chapters downloaded from different sources is now possible
- ⚡️ Manga: Source selection is now unique to each series
- ⚡️ Manga: Added page container width setting for reader
- ⚡️ UI: Improved handling of custom colors
  - Added additional preset color options 
  - Fixes #43
- ⚡️ Missing episodes are now grouped per series to avoid clutter
- 🦺 Fixed slow animation when loading manga page
- 🦺 Fixed some UI inconsistencies
- 🏗️ Removed playback state logs

## v1.4.2

- 🎉 Customize UI colors
  - You can now easily customize the background and accent colors of the UI
- ✨ Docker image
  - Seanime is now available as a Docker image. Check DOCKER.md for more information
- ⚡️ Added '--truewd' flag to force to Seanime use the binary's directory as the working directory
  - This solves issues encountered on macOS
- ⚡️ Environment variables are now read before initializing the config file
	- This solves issues with setting up Docker containers
- 🦺 Fixed episode card size setting being ignored in anime page
- 🦺 Fixed incorrect 'releasing' badge being shown in media cards when hovering

## v1.4.1

- ✨ Play random episode button
- ⚡️ Scanner: Improved absolute episode number detection and normalization
- 🦺 MPV: Fixed multiple instances launching when using 'Play next episode'
- 🦺 Progress tracking: Fixed progress overwriting when viewing already watched episodes with 'Auto update' on
- 🦺 Manga: Fixed disappearing chapter table
- 🦺 Scanner: Fixed panic caused by failed episode normalization
- 🦺 Offline: Disable Auto Downloader when offline
- 🦺 Manga: Fixed download list not updating properly
- 🦺 Offline: Fixed crash when snapshotting entries with missing metadata
- 💄 Removed legacy anime page layout
- 💄 Fixed some design inconsistencies
- 🏗️ Scanner: Generate scan summary after manual match
- 🏗️ Core: Refactored web interface codebase
  - New code structure
  - More maintainable and less bloated code
  - Code generation for API routes and types

## v1.4.0

- 🎉 New feature: Offline mode
    - Watch anime/read manga in the ‘offline view’ with metadata and images
    - Track your progress and manage your lists offline and sync when you’re back online
- 🎉 New feature: Download Chapters (Experimental)
    - Download from multiple sources without hassle
    - Persistent download queue, interruption handling, error detection
- ✨ Manga: Added more sources
    - Mangadex, Mangapill, Manganato
- ✨ Anime: Improved NSFW support
    - Search engine now supports Nyaa Sukebei
    - Hide NSFW media from your library
- ⚡️ Manga: Improved reader
    - Reader settings are now unique to each manga series
    - Automatic reloading of failed pages
    - Progress bar and page selection
    - Support for more image formats
- ⚡️ Added manga to advanced search
- ⚡️ Unified chapter lists with new toggles
- 💄 New settings page layout
- 💄 Added fade effect to media entry banner image
- 🦺 Scanner: Force media ID when resolving unmatched files
- 🦺 Manga: Fixed page indexing for Mangasee
- 🦺 Fixed incorrect start dates
- 🦺 Progress tracking: Fixed incorrect progress number being used when Episode 0 is included
- 🦺 UI: Fixed issues related to scrollbar visibility
- 🏗️ Core: Built-in image proxy
- ⬆️ Updated Next.js & switched to Turbopack

## v1.3.0

- ✨ Discord Rich Presence
    - Anime & Manga activity + options to disable either one #30
    - Enable this in your settings under the ‘Features’ section
- ✨ Command line flags
    - Use `--datadir` to override the default data directory and use multiple Seanime instances
- ✨ Overhauled Manga Reader
    - Added ‘Double Page’ layout
    - Page layout customization
    - Pagination key bindings
    - Fixes spacing issues #31
    - Note: This introduces breaking changes in the cache system, the migration will be handled automatically.
- ⚡️MAL manga progress syncing
- ⚡️Enable/Disable or Blur NSFW search results
- 🦺 Fixed MAL anime progress syncing using wrong IDs
- 🦺 Fixed MAL token refreshing
- 🦺 Fixed error toasts on authentication
- 🏗️ Removed built-in ‘List Sync’ feature
    - Note: Use MAL-Sync instead
- 🏗️ Refactored config code
- 🏗️ Implemented automatic version migration system
    - Some breaking changes will be handled automatically

## v1.2.0

- 🎉 New feature: Manga (Experimental)
	- Read manga chapters and sync your progress
- ✨ Added "Best releases" filter for Smart Search
  - Currently powered by SeaDex with limited results
- ⚡️ Improved TVDB mappings for missing episode images
- ⚡️ Added YouTube embeds for trailers
- 🦺 Fixed TVDB metadata reloading
  - You can now reload TVDB metadata without having to empty the cache first 
- 🏗️ Improved Discover page
  - Reduced number of requests to AniList with caching
  - Faster loading times, lazy loading, more responsive actions
- 🏗️ Improved file cacher (Manga/Online streaming/TVDB metadata)
  - Faster I/O operations by leveraging partitioned buckets
  - Less overhead and memory usage

## v1.1.2

- ✨ Added support for TVDB images
    - Fix missing episode images by fetching complementary TVDB metadata for specific media
- ⚡️ Improved smart search results for AnimeTosho
- ⚡️ Unresolved file manager sends fewer requests
- 🚑️ Fixed runtime error caused by Auto Downloader
- 🚑️ Fixed bug introduced in v1.1.1 making some pages inaccessible
- 🦺 Removed ambiguous "add to collection" button
- 🦺 Fixed start and completion dates not showing when modifying AniList entries on "My Lists" pages
- 🦺 Fixed Auto Downloader skipping last episodes
- 🦺 Fixed smart search torrent previews
- 🦺 Fixed trailers
- 🏗️ Refactored episode metadata code

## v1.1.1

This release introduced a major bug, skip to v1.1.2+

- ✨ Added support for TVDB images
    - Fix missing episode images by fetching complementary TVDB metadata for specific media
- ⚡️ Improved smart search results for AnimeTosho
- ⚡️ Unresolved file manager sends fewer requests
- 🚑️ Fixed runtime error caused by Auto Downloader
- 🦺 Fixed Auto Downloader skipping last episodes
- 🦺 Fixed smart search torrent previews
- 🦺 Fixed trailers
- 🏗️ Refactored episode metadata code

## v1.1.0

- 🎉 New feature: Online streaming
    - Stream (most) anime from online sources without any additional configuration
- ✨ Added “Play next episode” button in progress modal
- ✨ Added trailers
- ⚡️Improved torrent search for AnimeTosho
- ⚡️Improved auto file section for torrent downloads
    - Seanime can now select the right episode files in multi-season batches, and will only fail when it can’t tell seasons apart
    - Feature now available for Transmission v4
- ⚡️ Custom background images are now visible on all pages
- ⚡️ Added ability to un-match in unknown media resolver
- 🦺 Fixed authentication #26
- 🦺 Fixed torrent name parsing edge case #24
- 🦺 Fixed ‘resume torrent’ button for qBittorrent client #23
- 🦺 Fixed files with episode number ‘0’ not appearing in Playlist creation
- 🦺 Fixed panic caused by torrent search for anime with no AniDB metadata
- 🦺 Fixed incorrect in-app settings documentation for assets #21
- 🦺 Fixed anime title text clipping #22
- 🦺 Fixed frontend Playlist UI issues
- 🦺 Added in-app note for auto scan
- 🏗️ Playlists are now stable
- 🏗️ Refactored old/unstable code
- 🏗️ Refactored all tests

## v1.0.0

- 🎉 Updated UI
  - Smoother navigation
  - Completely refactored components
  - Some layout changes
- 🎉 New feature: Transmission v4 support (Experimental)
- 🎉 New feature: UI Customization
  - Customize the main pages to your liking in the new UI settings page
  - Note: More customization options will be added in future releases
- 🎉 New feature: Playlists (Experimental)
  - Create a queue of episodes and play them in order, (almost) seamlessly
- 🎉 New feature: Auto scan
  - Automatically scan your library for new files when they are added or removed
  - You don't need to manually refresh entries anymore
- ⚡️ Refactored progress tracking
  - Progress tracking is now completely server-side, making it more reliable
- ⚡️ Improved MPV support
  - MPV will now play a new file without opening a new instance
- ⚡️ Added ability to remove active torrents
- 🏗️ Updated config file options
  - The logs directory has been moved to the config directory and is now configurable
  - The web directory path is now configurable (though not recommended to change it)
  - Usage of environment variables for paths is now supported
- 🏗️ Updated terminal logs
- 🏗️ Refactored torrent handlers
- 🦺 "Download missing only" now works with AnimeTosho
- 🦺 Fixed client-side crash caused by empty scan summary
- 🦺 Various bug fixes and improvements
- ⬆️ Updated dependencies

## 0.4.0

- 🎉 Added support for **AnimeTosho**
  - Smart search now returns more results with AnimeTosho as a provider
  - You can change the torrent provider for search and auto-download in the in-app settings
  - Not blocked as often by ISPs #16
- ✨ Added ability to silence missing episode notifications for specific media
- ⚡️ Improved scanning accuracy
  - Fixed various issues related to title parsing, matching and metadata hydration 
- ⚡️ Improved runtime error recovery during scanning
  - Scanner will now try to skip problematic files instead of stopping the entire process
  - Stack traces are now logged in scan summaries when runtime errors occur at a file level, making debugging easier
- ⚡️ Auto Downloader will now add queued episode magnets from the server
- 💄 Minor redesign of the empty library page
- 🦺 Fixed issue with static file serving #18
- 🦺 Fixed panic caused by episode normalization #17
- ⬆️ Updated dependencies
- ⬆️ Migrated to Go 1.22
- 🔨 Updated release workflow

## 0.3.0

- 🏗️ **BREAKING:** Unified server and web interface
  - The web interface is now served from the server process instead of a separate one
  - The configuration file is now named `config.toml`
  - This update will reset your config variables (not settings)
- 🏗️ Handle runtime errors gracefully
  - Seanime will now try to recover from runtime errors and display the stack trace
- ⚡️ Support for different server host and port
  - Changing the server host and port will not break the web interface anymore
- ✨ Added update notifications
  - Seanime will now check for updates on startup and notify you if a new version is available (can be disabled in settings)
  - You can also download the update from the Web UI
- ⚡️ Added ability to download ".torrent" files #11
- ⚡️ Improved MPV support
  - Refactored the implementation to be less error-prone
  - You can now specify the MPV binary file path in the settings
- 🦺 Fixed bug causing scanner to keep deleted files in the database
- 🦺 Fixed UI issues related to Auto Downloader notification badge and scanner dialog
- 🦺 Fixed duplicated UI items caused by AniList custom lists
- 🏗️ Refactored web interface code structure
- ⬆️ Updated dependencies

## 0.2.1

- ✨ Added MPV support (Experimental) #5
- 🦺 Fixed issue with local storage key value limit
- 🦺 Fixed crash caused by incorrect title parsing #7
- 🦺 Fixed hanging requests caused by settings update #8

## 0.2.0

- 🎉 New feature: Track progress on MyAnimeList
  - You can now link your MyAnimeList account to Seanime and automatically update your progress
- 🎉 New feature: Sync anime lists between AniList and MyAnimeList (Experimental)
  - New interface to sync your anime lists when you link your MyAnimeList account
- 🎉 New feature: Automatically download new episodes
  - Add rules (filters) that specify which episodes to download based on parameters such as release group, resolution, episode numbers
  - Seanime will automatically parse the Nyaa RSS feed and download new episodes based on your rules
- ✨ Added scan summaries
  - You can now read detailed summaries of your latest scan results, allowing you to see how files were matched
- ✨ Added ability to automatically update progress without confirmation when you finish an episode
- ⚡️ Improved handling of AniList rate limits
  - Seanime will now pause and resume requests when rate limits are reached without throwing errors. This fixes the largest issue pertaining to scanning.
- ⚡️ AniList media with incorrect mapping to AniDB will be accessible in a limited view (without metadata) instead of being hidden
- ⚡️ Enhanced scanning mode is now stable and more accurate
- 💄 UI improvements
- 🦺 Fixed various UX issues
- ⬆️ Updated dependencies

## 0.1.6

- 🦺 Fixed crash caused by custom lists on Anilist

## 0.1.5

- 🚑️ Fixed scanning error caused by non-existent database entries
- ⬆️ Updated dependencies

## 0.1.4

- ⚡️ Added ability to resolve hidden media
  - Before this update, media absent from your Anilist collection would not appear in your library even if they were successfully scanned.
- 🦺 Fixed crash caused by manually matching media
- 🦺 Fixed client-side crash caused by an empty Anilist collection
- 🦺 Fixed rate limit issue when adding media to Anilist collection during scanning
- 🦺 Fixed some UX issues
- ⬆️ Updated dependencies

## 0.1.3

- ✨ Added scanner logs
  - Logs will appear in the `logs` folder in the directory as the executable
- ⚡️ New filename parser
- ⚡️ Improved standard scanning mode accuracy
  - The scanner now takes into account media sequel/prequel relationships when comparing filenames to Anilist entries
- 🦺 Fixed unmatched file manager
- 🏗️ Refactored code and tests
- ⬆️ Updated dependencies
- 🔨 Updated release workflow

## 0.1.2

- 🚑️ Fixed incorrect redirection to non-existent page

## 0.1.1

- ✨ Added ability to hide audience score
- ✨ Added ability to delete Anilist list entries
- ✨ Added ability to delete files and remove empty folders
- 🦺 Fixed issue where the app would crash when opening the torrent list page
- 🦺 Fixed minor issues

## 0.1.0

- 🎉 Alpha release