[COLOR red][B]Version 2.8.3[/B][/COLOR]
- [B]Startup[/B]: on a fresh install or immediately after an update, opening Red Light while the service was still writing settings to the database could cause Kodi to lock up. The plugin now waits up to 5 seconds for the service to finish before reading the database. On normal boots the property is already set so there is no delay.
- [B]WeTrakr[/B]: show details (the lookup that maps a WeTrakr show id to a TMDb id) are now cached locally for 30 days. Previously the cache was in-memory only, so every sync re-fetched the details for every show in your watch history.
- [B]WeTrakr[/B]: after the first full sync, subsequent background syncs download only the watch history added since the last sync instead of the entire history every time. The full download still runs on first connect and on Force Sync.
- [B]WeTrakr[/B]: only one sync runs at a time. If a background sync is already in progress, a second trigger from opening a list or marking something watched skips and uses the data already stored. A Force Sync waits up to 30 seconds for any running sync to finish before starting.
- [B]WeTrakr[/B]: the check that decides whether anything has changed since the last sync now compares only the specific activity timestamps that drive the sync, not the entire server response.
- [B]Context Menu[/B]: Mark Watched, Mark Unwatched, Mark Season Watched/Unwatched, Clear Progress, and Unmark Previous Episode now show a confirmation dialog before acting.

[COLOR red][B]Version 2.8.2[/B][/COLOR]
- [B]Service[/B]: fixed a lockup after addon updates. Kodi only restarts a service's new version after a clean exit — a force-kill leaves the updated service dead until the next full Kodi restart. The service was being force-killed because startup work ran on the main thread and took longer than Kodi's 5-second limit. All startup tasks now run in a background thread so the main thread reaches waitForAbort in milliseconds, guaranteeing a clean exit on every update. SetAddonConstants also retries with an abort-aware wait in case the new invoker starts before the addon ID is fully registered.

[COLOR red][B]Version 2.8.1[/B][/COLOR]
- [B]Extras[/B]: Original language now appears on the info line (year / certificate / duration row) for both Movies and Shows. Displays as a 3-letter code — ENG, ITA, KOR, etc. Cached metadata entries that predate this are treated as stale and re-fetched once.
- [B]Contents Sort Order[/B]: Recently Watched now appears above Title in the In Progress and Watched sort pickers, matching the default.

[COLOR red][B]Version 2.8.0[/B][/COLOR]
- [B]Contents[/B]: Contents Sort Order for Watchlists > In Progress and Watched default to Recently Watched on a new install. Default Recently Watched.
- [B]WeTrakr[/B]: Public Lists Trending, Latest, and Search show 50 lists per page (same as Trakt Public Lists) and offer Next Page when more are available.
- [B]Next Episodes[/B]: a rewatch of an early episode now sorts the show to the top of the list. The default method (highest episode) was returning the highest episode's play date as the sort key, so a rewatch of S01E01 on a show last watched years ago still sorted by the old date. The sort now uses the most recent play across all episodes of the show.

[COLOR red][B]Version 2.7.9[/B][/COLOR]
- [B]WeTrakr[/B]: Recently Watched and Next Episodes follow the latest play of a title. A rewatch no longer sorts by the first watch.
- [B]WeTrakr[/B]: the public episode calendar uses the show TMDb id. It was reading the episode id from the row, so every title lookup failed and the list opened empty.
- [B]WeTrakr[/B]: episode and movie calendars use TMDb ids from the calendar row when WeTrakr sends them, so the list fills in one pass more often and you see [I]Open again to load the rest[/I] less often.
- [B]Results[/B]: a season range in the filename shows a hyphen (S01-S04) The rest of the name still uses spaces (Show Title).
- [B]Results[/B]: a finished season of a still-running show lists season packs and show packs. The season you opened lists no packs until every episode has aired. A show pack on a running show has to name that season (S04 or S01-S04). A bare Complete pack waits until the show has ended.
- [B]Direct Sources[/B]: EasyNews username and password are always listed. Enable turns on once both are filled (same as Debrid after Authorise). The other EasyNews options only show when Enable is on.
- [B]Context Menu[/B]: MDBList, PunchPlay, Simkl, and WeTrakr match Trakt on movie and TV rows — [B]In … Lists[/B] opens lists that contain the title; PunchPlay adds Watchlist and Collection shortcuts; WeTrakr adds Plan to Watch (same opt-in as Trakt Watchlist/Library under Settings > Context Menu).
- [B]Playback[/B]: Movies and Episodes Autoplay info text explains cached debrid torrent External and/or Internal Scrapers, and that direct sources need Autoplay Result (with Check Before Full Search enabled).
- [B]Tips[/B]: Autoplay Next Episode points to Settings > Playback > Episodes and matches that Autoplay wording.

[COLOR red][B]Version 2.7.8[/B][/COLOR]
- [B]WeTrakr[/B]: Clear Progress and Mark Unwatched cancel the playing session on WeTrakr, so a title stopped mid-play comes off In Progress and off Playing now.

[COLOR red][B]Version 2.7.7[/B][/COLOR]
- [B]WeTrakr[/B]: Next Episodes follows the episode WeTrakr has lined up, including a show you are watching again. A finished show stays off the list.
- [B]WeTrakr[/B]: a playback that reaches the watch point records one watch. It no longer also sends a second watched mark.

[COLOR red][B]Version 2.7.6[/B][/COLOR]
- [B]Downloads[/B]: choosing one file from a pack shows [B]Pack download started[/B] for that file. Choosing more than one still shows [B]Multi File Pack Download Started[/B].
- [B]WeTrakr[/B]: shows dropped on WeTrakr after the first sync or in Red Light are removed from Next Episodes.

[COLOR red][B]Version 2.7.5[/B][/COLOR]
- [B]In Progress[/B]: home widgets open from the lists already stored. Opening In Progress inside Red Light still checks the watched provider. A background sync still updates the widgets when the account changes. After playback, Red Light clears its resume bookmarks in Kodi's video database, including once on the next list open. Further home refreshes leave that database alone.
- [B]Playback[/B]: ending playback releases the reusable Python interpreter. Leaving Red Light releases one left over from browsing. A home widget can still leave one warm for the next widget.
- [B]Settings[/B]: a setting's info text ends with the value Red Light ships with, such as Default on, Default off, or Default Full.

[COLOR red][B]Version 2.7.4[/B][/COLOR]
- [B]Playback[/B]: [B]Loading Screen[/B] [B]Background[/B] has [B]Progress Row[/B] (default on). On a play you start yourself, Kodi's progress row shows at the top while it searches, then closes once the file is chosen, before playback starts. Off runs that search with no window. [B]Autoplay Next Episode[/B] and [B]Autoscrape Next Episode[/B] are unchanged.

[COLOR red][B]Version 2.7.3[/B][/COLOR]
- [B]Internal Scrapers[/B]: a season pack is shown only after every episode in that season has aired. A show pack is shown only after the show has ended or been canceled. Pirate Bay, Nyaa, AnimeTosho, and TorrentDownloads follow the same rule.
- [B]Internal Scrapers[/B]: [B]Filter Foreign Audio[/B] (default on, under Torrent Scrapers). A file tagged as one non-English language is dropped. English, multi-language, and untagged files stay. Hindi, Dublado, and PLDUB are dropped. Ing and Ingles count as English. A two-letter code between the quality and the source (such as iT in 1080p.iT.WEB-DL) is a release group, not a language, and a two-letter code inside the title is not a language. Nyaa and AnimeTosho are not filtered.
- [B]WeTrakr[/B]: Mark Unwatched clears every play of that movie, episode, season, or show, so a title watched more than once comes off the watched list. Remove from Watched in the lists manager does the same for a movie or a whole show. Thank you to Alberto Aznar @ WeTrakr for the 1.0.4 API fixes.
- [B]WeTrakr[/B]: In Progress follows WeTrakr's playing list. A stop under 80% stays in progress, including under 1%.
- [B]WeTrakr[/B]: Force Sync downloads watched history in large pages, so a long account can finish. A page that does not arrive fails the sync and leaves the ticks already stored.
- [B]WeTrakr[/B]: after this update, the next background sync downloads watched history once and fills in anything missing. If that download does not finish, the next sync tries again.
- [B]PunchPlay[/B]: Force Sync keeps downloading watched history until the account is finished. A download that stops early fails the sync and leaves the ticks already stored.
- [B]PunchPlay[/B]: after this update, the next background sync downloads watched history once and fills in anything missing. If that download does not finish, the next sync tries again.
- [B]Force Sync[/B]: Trakt, Simkl, MDBList, PunchPlay, and WeTrakr name the step on the progress window and fill the bar as that step runs.
- [B]Rescrape Actions[/B]: [B]Offer Full Search After Early Results[/B] is removed. It was listed in settings and did not run a search. A select list of five or six rows is one row shorter.
- [B]Mark Watched[/B]: while you are still in Red Light, a widget refresh no longer starts every few seconds. Home widgets update after you leave. The list you marked still refreshes so the tick changes.

[COLOR red][B]Version 2.7.2[/B][/COLOR]
- [B]Playback[/B]: [B]Loading Screen[/B] [B]Background[/B] runs an external scraper with no window. From a home widget it stays on the player while the file opens.
- [B]WeTrakr[/B]: playback scrobble is left to [B]script.wetrakr[/B] when that addon is installed, enabled, authorised, and [B]Mark as watched[/B] or [B]Send now playing[/B] is on. Lists, sync, and Mark Watched stay in Red Light.
- [B]WeTrakr[/B]: clearing a resume point also clears it on WeTrakr.
- [B]Single Episode Lists[/B]: [B]Use TV Show Views[/B] marks each row as a TV show and puts the same watched count on the poster as TV Shows (for example 4/10).
- [B]Calendars[/B]: [B]Public Calendar Max Items[/B] of 0 uses 250. Simkl and WeTrakr public calendars list that many airings closest to today.

[COLOR red][B]Version 2.7.1[/B][/COLOR]
- [B]WeTrakr[/B]: lists. Authorise under Meta Accounts. Authorise stores an account token and renews it. Lists use Red Light's app key. [B]My Lists[/B] shows signed-in MDBList and PunchPlay, then Simkl Lists, then signed-in TMDb, then Trakt Lists when signed in, then Trakt Public Lists, then [B]WeTrakr Lists[/B] when signed in, then [B]WeTrakr Public Lists[/B]. Simkl Lists stays on the menu without a sign-in so Public Calendar is there. Trakt Public Lists and WeTrakr Public Lists do not need a sign-in. WeTrakr Lists is Plan to Watch, Watching, Waiting, Playing, Paused, Watched, Dropped, Favorites, and your lists in name order. A status shelf still opens as Movies and TV Shows. One of your lists opens as a single list of movies and TV shows. Until you set [B]Set Custom Sort[/B], a status shelf stays in the order WeTrakr sent and one of your lists stays in the order you set there. One of your lists can also sort by Date Added. Watching, Waiting, and Paused are TV shows. Playing is movies. [B]WeTrakr Lists Manager[/B] adds and removes tracking, favorites, and your lists. Lists use Red Light's app key. When WeTrakr is the Watched Status Provider, playback scrobbles and watched ticks, resume, and Next Episodes come from that account. WeTrakr marks a title watched at 80%. It does not scrobble while another provider is selected. A rejected token asks you to revoke and authorise again. Tools includes [B]Clear WeTrakr Cache[/B], and Clear All Cache includes it. Status shelves, your lists, and Calendar stay hidden until the account is authorised. [B]WeTrakr Public Lists[/B] is always shown and does not need a sign-in.
- [B]WeTrakr[/B]: playback reports start, pause, resume, and seek. A sync downloads watched history or the playing list only when that part of the account changed.
- [B]WeTrakr[/B]: About WeTrakr is removed from Meta Accounts. Authorise and Revoke use the same wording as MDBList, PunchPlay, Simkl, and Trakt.
- [B]WeTrakr[/B]: [B]WeTrakr Public Lists[/B] holds [B]Discover[/B] (Trending, Popular, Top Rated), Trending and Latest public lists, the public calendar above Search, and search for public lists. A Trending or Latest list opens as one list of movies and TV shows, in that list's order. These do not need an account. WeTrakr has no recommendations list for the whole account.
- [B]WeTrakr[/B]: calendars. [B]My Lists[/B] > [B]WeTrakr Lists[/B] > [B]Calendar[/B] is the signed-in following calendar. [B]Public Calendar[/B] is under [B]Simkl Lists[/B] and under [B]WeTrakr Public Lists[/B], above Search. Neither needs an account. Both WeTrakr calendars have Movies and Episodes for the same Previous/Future days. Episodes use the day labels. Movies are a movie list in that release order, using the certification country. When Show Public Calendars is on, TV Shows shows [B]Simkl Calendar[/B] and [B]WeTrakr Calendar[/B], and Anime shows [B]Simkl Calendar[/B].
- [B]Simkl[/B]: [B]Track Rewatches[/B] is shown only for a signed-in account whose plan is PRO or VIP. V1 and V2 both qualify. A free plan turns it off. A missing plan does not turn it on. [B]My Lists[/B] needs a signed-in AUTH V2 account whose plan is PRO or VIP. The plan comes from the Simkl profile. It is refreshed when the token refreshes and when Simkl Lists opens. A missing plan, or a profile call that fails, still tries the lists. If Simkl then says the lists need a paid plan, that still wins.
- [B]Random Lists[/B]: [B]WeTrakr Lists (Personal)[/B] when signed in, and [B]WeTrakr Lists (Public)[/B] without a sign-in. Personal follows the WeTrakr shelves, then your lists. Public is Discover, then Trending and Latest lists. The menu is Movies, TV Shows, Anime, Because You Watched, then MDBList, PunchPlay, Simkl, TMDb, Trakt, and WeTrakr in that order, then Personal Lists.
- [B]Watched Status Provider[/B]: revoking the account that is the current provider sets it to [B]Red Light[/B]. Another signed-in account is not chosen.
- [B]Single Episode Lists[/B]: [B]Use TV Show Views[/B] (default off). When on, Next Episodes, In Progress Episodes, Recently Watched, and the calendars open as TV Shows and use the view saved under Set TV Shows, so a skin that only offers poster and wall views for TV Shows can use them there. Off keeps Set Episode Lists. A season's episode list is unchanged. Widgets stay on episodes.
- [B]Extras[/B]: poster strips show the skin's watched tick on a movie that is marked watched, and on a show that is caught up with every episode that has aired. A resume point does not count. A show that is only partly watched does not get the tick, and neither does a show with nothing aired. Recommended, Related, More Like This, Similar, More from the Year, Genres, Networks, and a collection use it. Cast and the text rows do not.
- [B]Playback[/B]: [B]Loading Screen[/B] (Content, default [B]Full[/B]). [B]Artwork[/B] keeps the fanart, logo, and progress and hides the quality counts, the scrapers still running, and the file being tried. [B]Background[/B] runs that search with no window. Resume and Start Over still show. Back cancels on Full and Artwork. A next episode that already scrapes while the current one plays is unchanged.
- [B]Browse[/B]: a pack that contains one video still opens the file list. It no longer plays that file as soon as Browse is chosen.
- [B]Internal Scrapers[/B]: Comet, MediaFusion, and Torrentio mark a result as a pack when the torrent name is a season or a show and the file is one episode. When the torrent name is that file, it is marked as a pack if the addon sends the file size and the file is not the first file in the torrent. The size stays the size of that file. Torz and Zilean use the same season and show name check as the other torrent indexers.

[COLOR red][B]Version 2.7.0[/B][/COLOR]
- [B]Simkl[/B]: [B]My Lists[/B] Provider Default follows the order on simkl.com when that preview is not the order the item API returns (a digital / DVD auto list, newest day first). Release Date uses the first-release day. A title with no first-release day uses its year, not its DVD day. A year on its own no longer leaves that sort identical to Provider Default.
- [B]Search[/B]: collection results use the TMDb collection poster. A collection with no poster keeps the movie folder icon (thanks [B]Valar_Morghulis[/B]).

[COLOR red][B]Version 2.6.9[/B][/COLOR]
- [B]My Lists[/B]: MDBList, Simkl, and PunchPlay lists have [B]Set Custom Sort[/B], same as Trakt and TMDb. Until you set one, the list stays in the order the site sent.
- [B]List Sort Order[/B]: PunchPlay Watchlist, Collection, Favourites, and status shelves follow Settings > Content > List Sort Order, same as Trakt, Simkl, and MDBList. Anime uses the TV Shows default. Set Custom Sort on a shelf overrides that shelf only. PunchPlay My Lists stay on their own sort.
- [B]Artwork[/B]: posters and backdrops fall back to an image with no language tag when the metadata language and English both have none. English is English, then no tag. Another language is that language, then English, then no tag. Clear Meta Cache so titles already stored pick the image up.
- [B]RPDb[/B]: one check per Kodi session. If the API key is rejected or the monthly limit is used up, rating posters stay off and the TMDB poster is used instead. A title with no RatingPosterDB image uses the TMDB poster instead of a blank tile. A saved image is reused for a week, and a miss is remembered for a day.
- [B]Tools[/B]: [B]Clear Kodi Images[/B] (Database & Cache Maintenance, under Clear Meta Cache) deletes Kodi's thumbnail files, empties the Textures database, and clears the Red Light meta cache. This is every Kodi image, not only Red Light. Restart Kodi afterwards so artwork loads again. Clear Meta Cache on its own still only drops saved poster addresses.

[COLOR red][B]Version 2.6.8[/B][/COLOR]
- [B]MDBList[/B]: Mark Show as Watched sends each regular season (same as Mark Season). A first watch is counted from [I]added[/I] as well as [I]updated[/I], so Mark Episode from Next Episodes writes the local tick when MDBList has already stored it (#255).

[COLOR red][B]Version 2.6.7[/B][/COLOR]
- [B]Results[/B]: the same torrent from several External sites keeps one row. A listing with a real size wins over 0 GB; if both have a size the larger one is kept. Cached vs uncached and Real-Debrid resolve are unchanged.
- [B]Internal Scrapers[/B]: [B]Torrent Downloads[/B] name-search indexer (Settings > Torrent Scrapers > Internal Scrapers, default off). torrentdownloads.pro RSS plus torrentdownload.info (two pages) for hash and size, same debrid cache check as the other internals. TV also searches Sxx and Season N so season packs can show. Scrape with ALL Internal includes it. Clear Internal Scrapers Cache after changing Instance.
- [B]Extras[/B]: Trailer and Videos give up after 20 seconds if YouTube never starts (toast, Extras stays open) instead of waiting forever. Quitting Kodi during a trailer no longer waits on that script.
- [B]Tools[/B]: External Scraper Settings toasts [I]No External Scrapers assigned[/I] instead of doing nothing when no pack is in a slot. The Tools row still only appears once a slot has a pack. Tools only refreshes when that row appears or disappears (first assign / last clear), not when you add or remove a further slot.
- [B]Playback[/B]: if Kodi is quitting while Trakt / Simkl / MDBList / PunchPlay / WeTrakr Stop jobs are still queued, the remaining jobs are written back for the forced shutdown pass. Previously only the job in hand was kept and the rest were dropped.

[COLOR red][B]Version 2.6.6[/B][/COLOR]
- [B]Simkl[/B]: Authorise uses AUTH V2 (device PIN, 8-character code, 7-day token with refresh). Existing V1 sign-ins keep working until you revoke and Authorise again.
- [B]Simkl[/B]: [B]My Lists[/B] (custom lists) under Simkl Lists when signed in with V2. Read-only — create/edit stays on simkl.com. List contents need Simkl PRO or VIP; a free V2 account sees the upgrade notice instead of an empty list.
- [B]Simkl[/B]: [B]Search My Simkl Lists[/B] still matches watchlist titles. On AUTH V2 it also matches custom list names and titles inside those lists (PRO/VIP for list contents).
- [B]Simkl[/B]: V2 tokens refresh in the background. Restore Default Client ID is the V2 app unless you are still signed in with V1, in which case it restores the V1 key so it matches that grant. Revoke, then Authorise, to move to V2. A custom V1 Client ID is cleared on V1 Revoke and on a successful V2 Authorise (shipped V2 key). A custom V2 key is kept.
- [B]Simkl[/B]: after the first sync, watchlist updates use one `/sync/all-items?date_from=` request (Phase 2). Opening Watching / Plan to Watch no longer re-downloads the whole library; removals use a cheap ids-only diff instead of `extended=full`. List and widget opens reuse the last activities check for a minute.
- [B]Simkl[/B]: [B]Track rewatches[/B] (default off, Simkl PRO/VIP). When on, finishing at 80%+ or marking watched something already completed records a new Simkl rewatch instead of a no-op. Continue Watching can then include those titles. Simkl may reject a rewatch within two days of the last watch. The flag is never sent on scrobble start. A free account gets a toast and the setting is turned back off; the same stop or mark is retried without the flag so a first watch still records.
- [B]Simkl[/B]: [B]Test Client ID Key[/B] tests the key in the Client ID field. AUTH V2 if the device endpoint issues a code; AUTH V1 only if that fails and the old PIN endpoint accepts it. A V2 key while still signed in with V1 (or the reverse) is reported as a mismatch, not as the other auth type.
- [B]Tips[/B]: [B]Meta List Search[/B] Simkl paragraph matches that (V2 custom lists need PRO/VIP; still no public username/ID search).
- [B]Meta Accounts[/B]: [B]Import Trakt to…[/B] (QR / link) is removed for MDBList, PunchPlay, Simkl, and WeTrakr. Trakt no longer allows exports to other tracking services.

[COLOR red][B]Version 2.6.5[/B][/COLOR]
- [B]Trakt[/B]: opening your own private lists from Liked Lists, User Lists, widgets, or a numeric list id sends the signed-in token. Those paths used to fetch anonymously, so Trakt returned 403 even though My Lists worked.

[COLOR red][B]Version 2.6.4[/B][/COLOR]
- [B]Next Episodes[/B]: [B]Sort by Latest Activity[/B] (default off). When the list is Recently Watched, orders by the newer of last watched and this next-up's air date, for every Watched Status Provider. Unaired (red) episodes are not bumped. Same-day order between a watch and a new air date can be approximate because air dates have no time. Does not combine with Sort Recently Aired to Top.
- [B]Rescrape Actions[/B]: [B]Rescrape With Disabled External Scrapers[/B] (High Middle) and [B]Rescrape With Disabled Internal Scrapers[/B] (immediately below, default Off). Each forces that family on for the retry. Existing installs keep their current Rescrape order and Internal is added last.
- [B]Play Options[/B]: [B]Scrape with ALL External Scrapers[/B] turns External on for that title and runs every scraper in every assigned slot (enabled or disabled) in parallel. Empty slots stay unused. Search Mode is not changed. Same path as Custom Values and Rescrape With Disabled External Scrapers.
- [B]Play Options[/B]: [B]Scrape with ALL Internal Scrapers[/B] turns Internal Scrapers on for that title and runs every Indexer and Site (Comet, Torrentio, Torz, Nyaa, AnimeTosho, PirateBay, MediaFusion, Zilean), using each assigned instance. Enable is not saved. Still needs a debrid account. Not EasyNews, AIOStreams, NZB, debrid cloud, or folders.
- [B]Internal Scrapers[/B]: when TMDb has no IMDb (anthology seasons listed as their own S01 show), Comet, Torrentio, Torz, MediaFusion and Zilean resolve the parent IMDb and season from Cinemeta air dates ([I]Monster: The Lizzie Borden Story[/I] S01 → [I]Monster[/I] S04). Debrid then picks the file with that remapped season, not TMDb S01. EasyNews and name-search indexers are unchanged. Placeholder IMDb ids are treated as missing.
- [B]Subtitles[/B]: that same Cinemeta id is search-only for OpenSubtitles / SubMaker and Next Episode subtitle timing. Playback meta, watched and scrobble stay on the TMDb show. Titles that already have an IMDb are unchanged. Auto Enable Subtitles is still required for toasts; embedded tracks no longer need an IMDb to toast [I]Local subtitles found[/I].
- [B]Tips[/B]: [B]Multi Scrapers[/B] covers Play Options ALL External / ALL Internal, Custom Values order, and the two Disabled Scrapers rescrape actions.
- [B]Meta Accounts[/B]: if Trakt, PunchPlay or MDBList token refresh fails with 401 or invalid_grant, or Simkl / TMDb Lists return 401 while still showing as authorised, a once-per-session toast asks you to revoke and Authorise again. Timeouts and server errors are ignored. Tokens are not cleared automatically.
- [B]Meta Accounts[/B]: Authorise in Settings is picked up by the background service without restarting Kodi (MDBList watched writes, Trakt / Simkl / PunchPlay / WeTrakr). A 401 re-reads settings.db before refresh. Local watched on Stop is unchanged if the remote write still fails.
- [B]Results[/B]: when TMDb has other shows that start with the same title ([B]Batman[/B] vs [B]Batman: Caped Crusader[/B]), episode scrapes require the exact show name before SxxExx even if Filter Results by Name is off. [B]Same Title Series[/B] still only covers exact-title twins (year in the name). Filter Results by Name no longer keeps those extra-title files via pack substring. External Scrapers and debrid cloud are unchanged.
- [B]Search Anime[/B]: uses Fen Light's TMDb anime search (keyword 210024) instead of a full TV search with anime dropped after the fact. Empty matches such as Batman no longer show a Next Page of more non-anime hits.
- [B]Startup[/B]: after a settings DB upgrade, [B]ReloadSkin[/B] runs on Windows only (as 1.4.7 described). Android, CoreELEC and other Linux keep [B]UpdateLibrary[/B] without a skin reload. Reload is skipped if the screensaver or DPMS is active — on Amlogic/CoreELEC that reload during the screensaver can leave sound but no picture until Kodi is restarted.
- [B]Settings[/B]: [B]Same Title Series[/B] info text now includes examples (Doctor Who 1963 vs 2005, The Office UK vs US).

[COLOR red][B]Version 2.6.3[/B][/COLOR]
- [B]Next Episodes[/B]: [B]Sort Recently Aired to Top[/B] stays off unless you enable it. When on, [B]Days[/B] (0–180, default 0 = today only) keeps already-aired next-ups at the top, newest first. Unaired (red) episodes are not pinned.
- [B]Kodi 22[/B]: Movies, TV, Search, and My Lists (PunchPlay, TMDb, Simkl, Trakt, MDBList) no longer open empty on current Piers nightlies. Early Beta 2 is unchanged (thanks [B]Abukarim[/B]).
- [B]Menus[/B]: Restore Menu no longer leaves the previous listing one Back away. It refreshes the current folder instead of opening the same menu again on top of history.
- [B]External Scrapers[/B]: Choose Module for slots 2 and 3 assigns that slot. After 2.6.2's in-window Settings clicks, those rows were writing slot 1.

[COLOR red][B]Version 2.6.2[/B][/COLOR]
- [B]Settings[/B]: Set TMDb Metadata Language (next to MPAA Region). TMDb titles, plots, taglines, episode names and related artwork follow that language when TMDb has a translation; otherwise English. Changing the language clears metadata cache and Kodi folder listings. Scraping still uses English or original titles. Popular and Trending keep the same titles.
- [B]Settings[/B]: toggles, list choices, numeric/path/key rows and the other Settings Manager pickers run in the window instead of `RunPlugin`, so those clicks should not put up Kodi's plugin busy wheel. Authorise, revoke, force sync, clear cache, reset and Source Folders are unchanged.
- [B]Settings[/B]: expiry alerts move from General > My Services to Debrid Accounts, under [B]Alert When Service Expires Within (Days)[/B]. Same Days value and per-service toggles, including EasyNews when that account is authorised.
- [B]Settings[/B]: Revoke Authorisation asks first (Cancel focused) for Meta Accounts, debrid, TMDb Lists, and OpenSubtitles.
- [B]Playback[/B]: watched and progress are written locally on Stop before Trakt / Simkl / MDBList / PunchPlay / WeTrakr. Those account updates run in the background service so Home widgets can pick up the new tick from Kodi's own rebuild. Red Light no longer forces a second widget refresh after Stop.
- [B]Refresh Widgets on Timer[/B]: After Stop or a mark it waits two minutes, same as Refresh Widgets After Sync, so it does not rebuild Home on top of Kodi's own refresh. The timer still runs once that window has passed.
- [B]Watched[/B]: Mark as watched / unwatched from a list refreshes that list immediately. Home widgets refresh if you are already on Home; otherwise they wait until you leave the addon so the current list is not buried under a full widget rebuild.
- [B]EasyNews[/B]: a failed search is not stored as no results, so Autoscrape during playback can pick it up next time. Connection errors retry once.
- [B]Confirm dialogs[/B]: the default button (usually Cancel / No) is focused when the dialog opens, instead of always landing on OK / Yes. Long import/export confirms still start on the scrollbar.
- [B]Colour pickers[/B]: Right from the last column of swatches focuses OK. Left from the buttons still returns to the palette. Select and Back still jump to OK and Cancel.
- [B]Meta Accounts[/B]: after Authorise, Trakt, Simkl, MDBList and PunchPlay all sync and show Sync Complete (or Failed), whether or not that service is the Watched Status Provider.

[COLOR red][B]Version 2.6.1[/B][/COLOR]
- [B]External Scrapers[/B]: Install / Other / Cancel on the empty-slot picker are the same width so all three stay on screen. Left / Right / Down from the text use the same navigation as import/export, including when nothing is assigned yet.
- [B]External Scrapers[/B]: uninstalling a scraper clears that Choose Module slot instead of leaving the old name assigned.

[COLOR red][B]Version 2.6.0[/B][/COLOR]
- [B]Internal Scrapers[/B]: episode scrapes keep a result only when the filename names that episode (or an episode range that includes it). Season or show packs that only name the season are dropped.
- [B]Internal Scrapers[/B]: StremThru Torz default instance is Munif. Existing installs keep their current Instance.
- [B]Content[/B]: [B]Catalogue Addon Item Limit[/B] and [B]Catalogue Widgets Item Limit[/B] (default 20, max 100) set the page size for Trending and similar catalogue lists. Independent of Paginate Lists / personal watchlist pages. Stay at 20 unless you need more.
- [B]Settings[/B]: Paginate Lists addon and widget page size is 1–5000 (was 0 to an unbounded default).
- [B]Tools[/B]: Clear External Scrapers Cache and Clear EasyNews Search History now ask to confirm, same as the other individual clears. Clear All still asks once.

[COLOR red][B]Version 2.5.9[/B][/COLOR]
- [B]Internal Scrapers[/B]: StremThru Torz default instance is Midnight. Existing installs keep Kuu-lection until they change Instance. Clear Internal Scrapers Cache after switching host.
- [B]Internal Scrapers[/B]: Sites > Stricter filenames (default on). Movies must include the year in the filename (year either side allowed). Bonus discs, soundtracks, e-books, extras-only or subtitle-only files, and known dump/group names are dropped. Turn off to keep the full IMDb-scoped list.

[COLOR red][B]Version 2.5.8[/B][/COLOR]
- [B]Internal Scrapers[/B]: season packs that name an episode range are kept only when the scraped episode is in that range.
- [B]Meta Accounts[/B]: Authorise with a rejected or missing API key uses the same OK dialog as Test. After the QR, every service uses the same toasts: Account Authorised, Authorisation Canceled, or Error Authorising.
- [B]Search History[/B]: Settings > Content > Search History Sort. Most Recent (default) or A-Z. Display only. A-Z uses Ignore Articles.

[COLOR red][B]Version 2.5.7[/B][/COLOR]
- [B]Playback[/B]: when a source returns no playable link, resolve now falls through to the next result more cleanly instead of surfacing a stray error on multi-source retries.

[COLOR red][B]Version 2.5.6[/B][/COLOR]
- [B]Sources[/B]: Internal Scrapers and External Scrapers share the Results timeout as one clock. Indexer name searches do not start extra queries after time is up.
- [B]Scrapers[/B]: Real Debrid cloud, AllDebrid cloud, EasyNews, NZB and Folders no longer abort a scrape when the title has no year in the metadata.

[COLOR red][B]Version 2.5.5[/B][/COLOR]
- [B]AIOStreams[/B]: StremThru 302s are followed without waiting for the debrid CDN to start sending the file. TorBox Auto/Hyperdrive could stall that GET (12s timeout) and skip to the next result.

[COLOR red][B]Version 2.5.4[/B][/COLOR]
- [B]AIOStreams[/B]: StremThru play links that 302 to a debrid CDN (e.g. TorBox) are followed before Kodi opens them. Kodi's Stat/HEAD on the StremThru URL was timing out even though GET worked.
- [B]Settings[/B]: [B]Torrent Sources[/B] is now [B]Debrid Accounts[/B] (debrid auth and cloud search) and [B]Torrent Scrapers[/B] (External Scrapers and Internal Scrapers). The left menu has one more item, so it scrolls. Internal Scrapers group [B]Indexers[/B] (AnimeTosho, Nyaa, PirateBay) and [B]Sites[/B] (Comet, MediaFusion, StremThru Torz, Torrentio, Zilean) A–Z, each with one shared Filter Results by Name, Same Title Series, and Allow episode title without show name.
- [B]Torrent Scrapers[/B]: [B]Prefer Internal Scrapers[/B] (default Off) only shows when Internal and External are both on. Same hash still lists once per debrid (cached wins); on a tie the Internal Indexer/Site label is kept instead of the pack.
- [B]Internal Scrapers[/B]: no separate season/show pack search. PACK is only when the filename looks like a pack; Sites often name the episode file inside a pack, so a scrape can have no PACK rows and still be using those torrents.
- [B]Internal Scrapers[/B]: [B]Zilean[/B] (IMDb hash DB), [B]MediaFusion[/B] (Stremio JSON) and [B]PirateBay[/B] (apibay.org name search) join the existing internals. Comet, StremThru Torz and Torrentio default on; AnimeTosho, Nyaa, PirateBay, MediaFusion and Zilean stay off. The master Enable is on for new installs and Reset Settings; existing installs keep their current Enable.
- [B]Same Title Series[/B]: optional (default Off). Indexers share one switch (year in the search, shown whenever Internal Scrapers are on). Sites share another (year in filenames when Filter Results by Name is on). EasyNews, NZB, AIOStreams, folders, and each cloud keep their own switch under Filter Results by Name. Enable this and Red Light will keep scrape results on the series you opened when another show shares the same title. External Scrapers are unchanged.

[COLOR red][B]Version 2.5.3[/B][/COLOR]
- [B]Scrape Progress[/B]: ticks stay grey through cache check and SORTING. The red at the end only meant the scrape was finishing, but it was easy to take as an error. Playback resolve still turns red if a link is taking unusually long.

[COLOR red][B]Version 2.5.2[/B][/COLOR]
- [B]Trakt Library[/B]: collection keeps loading after the first 250 titles (Trakt’s per-page cap). A stale first-page cache is dropped so existing installs pick up the rest. Next Page is still only shown when list pagination is on in Settings.

[COLOR red][B]Version 2.5.1[/B][/COLOR]
- [B]Scrape Progress[/B]: after scrapers finish, cache check no longer resets the bar against a multi-minute timeout. Sorting shows SORTING. Preferred-filter scoring parses each filename once instead of once per filter.

[COLOR red][B]Version 2.5.0[/B][/COLOR]
- [B]Simkl[/B]: default Client ID is the original approved app. The 2.4.6 key is kept only while that app is still authorised; Revoke restores the original default. Personal Client IDs are unchanged. Unauthorised installs still on the 2.4.6 key are moved back to the original default.
- [B]Simkl[/B]: Drop still hides In Progress when Simkl has no catalog row for that TMDb show (e.g. the 2003 Battlestar miniseries). Specials no longer inherit a duplicated regular-episode watch as 1/N.
- [B]Real Debrid[/B]: [B]Check Cached Status[/B] is available again (default off). An existing on value in settings is kept. Real Debrid still has no native torrent cache; the check is third-party, as before.
- [B]Icons[/B]: if [I]repo.redwizard.xyz[/I] is unreachable, menu media and Change Icon fall back to [I]zeus-768.com[/I]. Shortcut folders that still point at the repo (or the old GitHub URLs) are remapped to whichever host is up.
- [B]Debrid cache check[/B]: hashes already known cached or uncached (24h local cache) are not sent to Premiumize / TorBox / Offcloud / RD again. Premiumize checks 100 hashes per request instead of 50. Result filtering no longer does full-dict membership on every row.
- [B]Sources[/B]: External torrents are cache-checked when Internal Scrapers are on but return nothing for that title (e.g. Nyaa on a non-anime episode).

[COLOR red][B]Version 2.4.9[/B][/COLOR]
- [B]Playback[/B]: sorting no longer crashes with Red Light Error when a scraper result has no debrid field (Gears / hoster rows, but applies to all scrapers).

[COLOR red][B]Version 2.4.8[/B][/COLOR]
- [B]Simkl[/B]: pasting Client ID Key also accepts a copied Python/JSON settings line (extracts the hex key).

[COLOR red][B]Version 2.4.7[/B][/COLOR]
- [B]Simkl[/B]: pasting Client ID Key ignores quotes or a stray trailing }.
- [B]Settings[/B]: Cancel on a Client ID / API key keyboard keeps the current value. It no longer asks to enter a blank key.

[COLOR red][B]Version 2.4.6[/B][/COLOR]
- [B]Simkl[/B]: new Client ID. Installs still on the old default are updated; Authorise again if you were signed in. A custom Client ID is left alone.
- [B]Episode matching[/B]: 480 / 720 / 1080 / 2160 are no longer dropped when that number is the episode (One Piece - 1080.mkv / e1080).

[COLOR red][B]Version 2.4.5[/B][/COLOR]
- [B]Internal Scrapers[/B]: Comet, StremThru Torz and Torrentio default to on; AnimeTosho and Nyaa stay off. The Internal Scrapers master Enable stays off. Existing installs are updated only if Internal is still off and no internal scraper has been turned on.
- [B]Sources[/B]: Internal Scrapers and External Scrapers no longer list the same torrent twice. One row per info hash per debrid (cached wins over unchecked/uncached; the pack/Gears label is kept when both found it).
- [B]Scrape Progress[/B]: the debrid cache-check pass keeps 4K / 1080p / 720p / SD counts when Internal Scrapers are enabled (it was only showing TOTAL). With both Internal and External on, cache is checked once for all torrent hashes instead of twice.
- [B]Episode matching[/B]: SxxExx accepts 4-digit episode numbers (One Piece S23E1170). Bare/absolute also keeps e164 / ep15 / episode.15.

[COLOR red][B]Version 2.4.4[/B][/COLOR]
- [B]Torrent Sources[/B]: Internal Scrapers uses the same separator pattern as External Scraper slots (heading then Enable) for AnimeTosho, Nyaa, Comet, StremThru Torz and Torrentio. Debrid accounts follow a [B]Debrid Accounts[/B] separator.

[COLOR red][B]Version 2.4.3[/B][/COLOR]
- [B]Internal Scrapers[/B]: Settings > Torrent Sources now uses separators per indexer and site (same style as External Scraper slots) so AnimeTosho, Nyaa, Comet, StremThru Torz and Torrentio stay distinct.
- [B]Scrape Progress[/B]: TOTAL count colour defaults to [B]FFFF33AE[/B] (Settings > Results Color Highlights). Existing installs that already have a colour keep it.
- [B]Options[/B]: Enable Scrapers includes [B]AIOStreams[/B], [B]NZB Indexers[/B] and [B]OC Cloud[/B]. Direct sources are A–Z, then clouds A–Z ([B]AD[/B], [B]OC[/B], [B]PM[/B], [B]RD[/B], [B]TB[/B]). Fixes the menu crashing when one of those was already on.
- [B]Check Before Full Search[/B]: the results row is now [B]Run Scraper Search[/B]. It continues with enabled Internal Scrapers and External Scrapers. EasyNews / cloud / folders from the first pass are kept and not searched again. Matches a scrape with Check Before off.
- [B]Authorise[/B]: closing the PIN / QR wait window (including Back after returning from a browser on the same Android device) now cancels the wait instead of leaving it stuck.
- [B]Real Debrid[/B]: removed [B]Check Cached Status[/B]. Real Debrid does not expose torrent cache; the third-party check was excluding viable RD results. Same idea as AllDebrid. Existing installs with the toggle on are migrated off. [B]Rescrape With No Cache Check[/B] still applies to TorBox, Premiumize and Offcloud; Real Debrid-only users no longer see that rescrape path.
- [B]Authorise[/B]: QR, clipboard, and short links use each service's prefilled PIN/code URL when the site supports it (Trakt activate/CODE, Simkl pin path, PunchPlay / MDBList / WeTrakr / Offcloud complete URIs, AllDebrid user_url, Real Debrid, TorBox). The wait screen still shows the code for typing. Premiumize still needs the code typed (their page has no prefill).

[COLOR red][B]Version 2.4.2[/B][/COLOR]
- [B]Internal Scrapers[/B]: [B]AnimeTosho[/B], [B]StremThru Torz[/B] and [B]Torrentio[/B] join Comet and Nyaa (Settings > Torrent Sources > Internal Scrapers, off by default). Turn on [B]Enable[/B], then Indexers ([B]AnimeTosho (Anime)[/B], [B]Nyaa (Anime)[/B]) and/or Sites ([B]Comet[/B], [B]StremThru Torz[/B], [B]Torrentio[/B]). They run in the main scrape (no Check Before Full Search), with or without External Scrapers. Results show [B]Indexer: AnimeTosho / Nyaa[/B] or [B]Site: Comet / Torz / Torrentio[/B] and [B]Scraper: Internal[/B]. Indexers are anime name search; Sites are IMDb-scoped. They use the same debrid [B]Check Cached Status[/B] as External Scrapers. Clear Internal Scrapers Cache after changing host or category. Tips: Internal vs External cache clears stay separate; Multi Scrapers notes internals are not slots.
- [B]Debrid[/B]: [B]Check Cached Status[/B] and [B]Include Uncached Results[/B] no longer say External Scrapers. They apply to Internal Scrapers as well, and show when Internal and/or External Scrapers are enabled. [B]Add Resolved Debrid Cache to Cloud[/B] uses the same gate; TorBox also shows it when NZB Indexers are on.
- [B]Playback[/B]: Stop in the first second after a source opens no longer shows Playback Failed. The file had already started; the resolve queue was still waiting to mark success.

[COLOR red][B]Version 2.4.1[/B][/COLOR]
- [B]Comet / Nyaa (Anime)[/B]: optional native torrent scrapers (Settings > Torrent Sources, under External Scrapers, off by default). Red Light queries Comet or Nyaa, keeps names with its own episode matching (SxxExx and absolute numbers such as Show - 100), then runs the same debrid cache check as external scrapers. Comet is IMDb-scoped and is the high-volume option; Nyaa is the anime tracker (name search). Requires an authorised debrid. Clear Internal Scrapers Cache after changing host or category.

[COLOR red][B]Version 2.4.0[/B][/COLOR]
- [B]EasyNews / NZB[/B]: Filter Results by Name can keep a TV file with no show title when SxxExx or a bare/absolute number matches and the episode title is distinctive ([B]Allow episode title without show name[/B], on by default, separate EasyNews and NZB toggles). Turn that off to require the show title or an alias.
- [B]PunchPlay[/B]: if Mark Show as Watched fails part-way through the seasons, earlier seasons from that attempt are rolled back so the show is not left half-marked.

[COLOR red][B]Version 2.3.9[/B][/COLOR]
- [B]Skip Intro[/B]: ignore TheIntroDB rows that are actually credits (same timestamps as credits, or starting in the second half of the episode) and use IntroDB / chapters instead.

[COLOR red][B]Version 2.3.8[/B][/COLOR]
- [B]EasyNews / NZB[/B]: Filter by Name can keep a file with no show title when SxxExx or a bare/absolute number still matches and the TMDb episode title is in the filename (skips generic names like Home).
- [B]Tips / Changelog[/B]: wrapping a long line that uses [COLOR name] no longer leaks raw tags (e.g. Meta List Search magenta row).
- [B]PunchPlay Manager[/B]: [B]Add To My List[/B] / [B]Remove from My List[/B] only for ordinary lists the title is (or is not) on. Dynamic, watchlist, and externally synced lists are skipped. PunchPlay lists are movie/show only (no episode rows).
- [B]Trakt Lists Manager[/B]: [B]Add To NEW Personal List[/B] (after add/remove, same place as TMDb / Personal Lists) creates a private list and adds this title. From an episode row the new list gets the show.
- [B]List Managers[/B]: the same toasts for add/remove/create — [I]Success[/I], [I]Error[/I], [I]Already In List[/I], [I]Item not in list[/I], [I]Added to …[/I] / [I]Removed from …[/I] when the list is named, [I]List Creation Cancelled[/I] / [I]Error Creating List[/I]. Cancelling create no longer also says Error Creating List.

[COLOR red][B]Version 2.3.7[/B][/COLOR]
- [B]Simkl[/B] ([I]#238[/I]): Mark Show as Watched no longer treats a shelf-only history add ([I]added.shows[/I] with 0 episodes) as success. If Simkl does not expand episode timestamps, Red Light POSTs each season number (same as Mark Season) so Force Sync does not bring the show back unwatched.

[COLOR red][B]Version 2.3.6[/B][/COLOR]
- [B]Next Episodes / episode widgets[/B]: landscape art uses the episode still (TMDb) when one exists, so FENtastic+ LandscapeInfo shows the episode rather than the show. Poster stays the show poster. [B]Avoid Episode Spoilers[/B] still hides stills on unwatched episodes.
- [B]Artwork[/B]: when TMDb has no English landscape, the title's fanart is used in the landscape slot (movies and TV). Optional [B]Fanart.tv[/B] API key (Meta Accounts, above OMDb) then fills remaining empty landscape, clearlogo, poster, and fanart. TMDb wins when it already has the image. Does not add episode stills. Clear Meta Cache after adding a key so cached titles are re-fetched.
- [B]OMDb[/B]: [B]Test API Key...[/B] in Meta Accounts once a key is entered. Reports an invalid key or the free daily request limit.
- [B]Premieres / Latest Releases[/B]: [B]Premieres & Latest Releases Sort[/B] (Content > General) can order Movies Premieres, Movies Latest Releases, TV Premieres, and Anime Premieres by newest release / first-air date instead of TMDb popularity.
- [B]Widgets[/B]: optional [B]Fill From Later Pages[/B] (under Hide Watched Items in Widgets). When Hide Watched is on, catalogue widgets (Trending, Latest Releases, Blockbusters, Oscar Winners, and similar) pull later pages so the row stays full. Random catalogue widgets oversample instead. Off by default.
- [B]Trakt Public Lists[/B]: [B]Search User Lists[/B] accepts a numeric list ID, a username (that user's public lists), a [I]trakt.tv/users/...[/I] or [I].../lists/...[/I] URL, or [I]trakt.tv/lists/{id}[/I] (official lists included on ID/URL lookup). Name search is unchanged.
- [B]Trakt Official lists[/B]: Like / Unlike now uses the numeric list id (same [I]/lists/{id}/like[/I] path as user lists). Search User Lists (ID/URL), Trending / Popular, In Trakt Lists, Extras, and Unlike on Liked Lists.
- [B]Trakt Like / Unlike[/B]: only when signed in. Context menu shows [B]Like List[/B] or [B]Unlike List[/B] (not both). Public catalogues still browse without a login.
- [B]In Trakt Lists[/B]: includes official Trakt lists as well as personal (owner shows as [I]Trakt Official[/I]). Search User Lists name search still skips official; ID / [I]trakt.tv/lists/{id}[/I] still opens them.
- [B]MDBList[/B]: [B]Search MDBLists[/B] (needs an MDBList account). Title search, username (that user's public lists), numeric ID, [I]user/slug[/I], or [I]mdblist.com/lists/...[/I] URL. Dynamic lists open the same as My Lists (magenta in search results).
- [B]MDBList contents[/B]: titles with IMDb (or TVDb) but no TMDb are no longer dropped — same TMDb-then-IMDb lookup as Trakt lists. Helps dynamic and public lists.
- [B]PunchPlay[/B]: [B]Search PunchPlay Lists[/B] opens a list by numeric ID or [I]punchplay.tv/lists/{id}[/I] (signed in). No name search — PunchPlay has no public list search API. Private lists stay hidden. Dynamic lists magenta.
- [B]PunchPlay[/B]: drop [B]Add to Watched[/B] and [B]My Lists → PunchPlay → Watched[/B]. PunchPlay has no Watched shelf ([B]Mark as watched[/B] is history). Use [B]Mark as Watched[/B] (and TV Shows → Watched when PunchPlay is the provider).
- [B]PunchPlay[/B]: Mark Show as Watched writes episode history (same season POSTs as Mark Season) so Force Sync no longer brings the show back unwatched. History sync uses one pull; a 429 / failed page leaves local watched unchanged and is not reported as Sync OK.
- [B]PunchPlay Manager[/B]: [B]Add to Collection[/B] / [B]Remove from Collection[/B] like Planning and Favourites. Remove works from My Lists → PunchPlay → Collection.
- [B]Watched[/B]: playback writes aligned with the providers: local tick at 80% when Watched Status Provider is Trakt or Simkl, 90% for MDBList or PunchPlay. Red Light remains 90%, WeTrakr scrobble % is unchanged.
- [B]Personal Lists Manager[/B]: [B]Add To Personal List[/B] / [B]Remove From Personal List[/B] only for lists the title is (or is not) on. [B]Add To NEW[/B] is unchanged.
- [B]List folders[/B]: plot is the description plus [I]N likes[/I] when Trakt/MDBList sent a count (row already has user and item count). No description: [I]user · N items · N likes[/I]. Long descriptions are clipped — most skins do not scroll folder plots.
- [B]Shortcut Folders[/B]: Cancel on the name or Choose Icon step aborts Add to Shortcut Folder (and Add Content) instead of continuing the rest of the wizard. You stay on the list you were browsing.
- [B]Tips[/B]: [B]Meta List Search[/B] covers each My Lists search (title, username, ID / URL), magenta dynamic rows, and Trakt Official vs a user's public lists.
- [B]Authorise[/B]: QR dialogs no longer claim the link was copied to the clipboard (that only works on some desktops). Pin, QR, and short URL where the service has them are unchanged. Debrid still uses OR Enter code when the QR includes the pin, AND Enter code when the site needs it typed.
- [B]EasyNews / NZB[/B]: with title filter on, episode files that use a bare or absolute number (`e164`, `Show - 001`) are kept when they match the show or an alias and there is no conflicting Sxx. Search is still title + SxxExx.
- [B]Extras[/B]: Cast tiles show actor name and character under the photo. A long name or role marquees on unfocused tiles; the focused person stays still because [I]Name as Role[/I] is already in the Cast heading. Recommended / Related are unchanged.
- [B]Extras[/B]: a long Plot autoscrolls after a short pause (same timing as collection overview). OK / Enter on the plot still opens the full text viewer.

[COLOR red][B]Version 2.3.5[/B][/COLOR]
- [B]Icons[/B]: online menu media (icons, flags, networks, themes) now loads from [I]repo.redwizard.xyz[/I] instead of GitHub. Existing shortcut folders that still point at the old GitHub URLs are remapped. Change Icon lists names from [I]icons.json[/I] on that host.
- [B]External cache check[/B]: if one debrid's hash check overruns the deadline, that provider is labelled [B]UNCHECKED[/B] and kept; others keep their real cached/uncached split. A check that finishes just after the deadline still replaces Unchecked when it arrives before results are shown.

[COLOR red][B]Version 2.3.4[/B][/COLOR]
- [B]Premiumize[/B]: do not send the API Bearer token on CDN play/download URLs (EnergyCDN etc). If the file host is [I]premiumize.me[/I] itself, Authorization is still added. Cache check, resolve, and account calls still use the Premiumize API with Authorization. Stops Kodi Range requests restarting the file from the beginning (couple-of-seconds loop at start). Seeking is unchanged.
- [B]Next Episodes[/B]: widgets no longer keep unaired (red) title colouring after the episode has aired. Cached rows now rebuild on the local calendar day (same as personal calendars). Mark Watched on those rows was missing while they were still treated as unaired.
- [B]Tips[/B]: [B]Multi Scrapers[/B] covers slots, Choose Module, and Search Mode (from Torrent Sources info text).

[COLOR red][B]Version 2.3.3[/B][/COLOR]
- [B]AIOStreams[/B]: when a title has no IMDb id, search with [I]tmdb:XXXX[/I] (and [I]tmdb:XXXX:S:E[/I] for episodes) instead of skipping the scrape. IMDb is still preferred when present.

[COLOR red][B]Version 2.3.2[/B][/COLOR]
- [B]MDBList[/B]: API calls always use OAuth Bearer (removed the unused personal-API-key fallback from the original key-auth pass).
- [B]Watchlists[/B]: [B]Include Unaired Media in Watchlists[/B] (Content > General) now covers Trakt Watchlist, MDBList Watchlist, PunchPlay Watchlist and Planning, and Simkl Plan to Watch (was Trakt only). Default remains on.
- [B]External cache check[/B]: a Premiumize / TorBox / Offcloud hash-check timeout or empty reply no longer crashes the check thread or marks every hash uncached. That provider is labelled [B]UNCHECKED[/B] and stays in the list; other debrids keep their real cached/uncached split. Avoids the auto [B]Rescrape With No Cache Check[/B] pass that made every row UNCHECKED. Premiumize checks in chunks with a longer timeout.

[COLOR red][B]Version 2.3.1[/B][/COLOR]
- [B]Next Episodes[/B]: optional [B]Next Episodes (Recently Watched)[/B] and [B]Next Episodes (Airdate)[/B] (same membership for Trakt, Simkl, MDBList, PunchPlay, and Red Light). Not on the default TV Shows / Anime menus — add with context [B]Check for New Menu Items[/B]. After you add then remove them, [B]Browse Removed items[/B] can put them back; [B]Restore Menu[/B] returns the stock list and Check for New is how they are added again. Settings Sort Type still only applies to the original Next Episodes item. Both lists can be widgeted at once; each caches its own order.
- [B]TV Shows / Specials[/B]: watched count on the Specials season row no longer copies the latest regular season (e.g. S5 10/10 showing as Specials 10/37). Specials now uses its own watched total.
- [B]Menus[/B]: [B]Browse Removed items[/B] can add the item back (choose position) or just open it — Restore Menu is not required.
- [B]Public Calendar[/B]: Removing it toasts to turn that setting off instead of Cancelled. Move now works.

[COLOR red][B]Version 2.3.0[/B][/COLOR]
- [B]EasyNews Video Search[/B]: row previews are set on [I]icon[/I], [I]thumb[/I], [I]poster[/I], [I]landscape[/I], [I]ListItem.Icon[/I], and [I]ListItem.Thumb[/I] so FENtastic Plus Icon / WideList can show them. Nimbus List and Nimbus Plus FlixList bind side art from [I]Art(fanart)[/I] on plugin files, so those skins get the preview there; other skins keep addon fanart as the page backdrop. Results use [I]files[/I] content (same as debrid cloud browsers).
- [B]Content[/B] ([I]#217[/I]): [B]Show Plot on Loading and Pause[/B] (was Loading Screen only). Off also clears the playing item plot so the skin pause OSD does not show the synopsis. Episode title still shows; [B]Avoid Episode Spoilers[/B] still applies when this is on.
- [B]OK dialogs[/B]: long text (e.g. [B]About WeTrakr Scrobble[/B], Import & Export summaries) focuses the scrollbar first so Up/Down scrolls immediately — same as long Import & Export confirm dialogs.

[COLOR red][B]Version 2.2.9[/B][/COLOR]
- [B]EasyNews / My Services[/B]: restore result thumbs and menu icons. Video [I]pr-[/I] and image [I]sm-[/I] previews drop the last 4 hash characters (full id 403s on [I]th.easynews.com[/I]). Search history rows use the search icon, not calendar. Nimbus List gets the preview on [I]fanart[/I] (that skin binds side art there); other skins keep addon fanart so fanart views stay readable.
- [B]EasyNews Images[/B]: backing out of the thumb grid no longer flashes the search-history list when the query was already at the top — skip [I]Container.Update[/I] when history order did not change. New searches and re-ordering still refresh history on exit. Video Search after Images no longer runs the image processor (that left an empty result list).
- [B]Next Episodes[/B]: a mid-episode resume now adds [B]Clear Progress[/B] on the widget as well as in the addon menu. Cached widget rows were keeping the old context menu after Stop (progress bar updated, Clear Progress did not).
- [B]PunchPlay Authorise[/B]: Yes on [B]set PunchPlay as Watched Status Provider[/B] updates Settings immediately. The first watched pull runs in the background and toasts when it finishes (same for switching Indicators to PunchPlay when that local watched table is empty).
- [B]Autoscrape Next Episode[/B] ([I]#147[/I]): after [B]Next Episode Ready[/B], Stop or end-of-file opens a full-screen cover (next-episode art) before source select, and keeps it under results / resolve until the next episode is fullscreen — no Home / widget flash between episodes. Credits stay watchable until you Stop; the cover is not shown over still-playing video. Back on the cover (before results) cancels the handoff. Stop after Confirm / scrape-done is a handoff even if the Ready toast has not fired yet (toast is only the last alert window).
- [B]Skip Intro[/B] ([I]#220[/I]): still one seek, no 400ms retry. After Prompt Yes, restore fullscreen when the overlay closes, wait briefly, then seek — do not re-assert fullscreen during the jump (that hitch felt like a freeze).

[COLOR red][B]Version 2.2.8a[/B][/COLOR]
- [B]MDBList / Next Episodes[/B]: Mark Watched or Unwatched no longer blocks the next list open on a full paginated [I]sync/watched[/I] pull. Local watched is already written; the monitor still syncs in the background. Same skip after mark for Trakt and Simkl (PunchPlay already skipped that refresh).
- [B]Skip Intro[/B] ([I]#220[/I]): Yes / Auto seek once and do not retry 400ms later if the playhead has not moved yet (that second seek can reboot some Amlogic / CoreELEC boxes). After Prompt Yes, wait briefly for the overlay to close, then seek, then restore fullscreen.

[COLOR red][B]Version 2.2.8[/B][/COLOR]
- [B]External Scrapers[/B]: [B]Choose Module[/B] lists known compatible packs that are already installed (Classy, CocoScrapers, Diamond, Gears, Magneto, Taz19, Viper). [B]Other[/B] swaps to every Python module in the same picker (Back returns to the known list). If none of those packs are free for the slot (none installed, or the only ones installed are already assigned elsewhere), a prompt offers Install or Other and names the pack already in use. Install says when a pack is not available from any installed repository. Existing slot assignments are not changed or auto-filled. [B]Open Slot Module Settings[/B] returns to Torrent Sources after you close the pack's settings.
- [B]PunchPlay[/B]: follow PunchPlay token guidance — refresh shortly before the 1-hour access token expires, retry once on 401, and serialise refreshes (refresh tokens rotate on use; two at once signed users out). Lists could still look authorised from cache while progress/scrobble failed.
- [B]Sources[/B] ([I]#219[/I]): optional [B]Prefer Known Release Groups[/B] under Results > Sorting and Filtering (None / Source Select / Autoplay / Both, default None). Boosts a bundled list of known Scene / P2P groups inside current Results Sorting — does not override quality, size, provider order, or size/quality filters.
- [B]Sources Results[/B]: after Autoscrape Next Episode, the top focused row no longer stays dark / low-contrast for several seconds (dismiss the leftover Ready toast, focus the list once it has items, and apply tinted-row text from the list item).
- [B]Subtitles[/B]: the selected Auto Enable source is always tried first (its own cache, then a download) even if the other provider already has a cached file. If it has nothing, Red Light tries the other provider, then any leftover cached file. Same order for Subtitles Info alert timing.
- [B]Content[/B]: [B]Show Plot on Loading Screen[/B] (default on) — disable to hide the movie/episode synopsis on the source loading screen. Episode title line still shows when disabled.
- [B]TMDb Helper / external play[/B]: missing episode [I]playcount[/I] no longer aborts after scrape (treat as unwatched for spoilers only; resume and watched writes unchanged).
- [B]Playback[/B]: shortened and aligned Credit Stingers / Autoscrape / Autoplay [B]Alert Timing Source[/B] and % help text.
- [B]Settings Manager[/B]: INFO help text waits 5 seconds before autoscroll starts (repeat pause stays 7 seconds).

[COLOR red][B]Version 2.2.7[/B][/COLOR]
- [B]Widgets / Cancel[/B] ([I]#208[/I]): cancel drops the scrape lock immediately (and a second widget waits briefly for it) so [B]Source search already running[/B] no longer blocks a quick re-click after backing out of scrape/results. Overlay force-close is skipped if a newer scrape already owns the UI.
- [B]Settings[/B]: Autoscrape / Autoplay / Credit Stingers [B]Show Alert After (%) Playback[/B] and [B]Alert Timing Source[/B] info text clarify that % is the clock when source is Playback Percentage, and the fallback when Chapter / Subtitles / IntroDB miss.
- [B]Sources Results[/B]: optional [B]Show Episode Title[/B] under Results > Display (List format only) places [B]SxxExx - episode title[/B] on the same line as the results count. Custom episode-group scrape mapping is appended when active.
- [B]Sources Results[/B]: [B]Tint Focused Result Background[/B] in Rows / WideList now uses the same light focused text as List (was dark-on-tint and unreadable).
- [B]Autoplay Next Episode[/B]: [B]Close[/B] on Next Up again dismisses and plays next when the episode ends — even if [B]When No Interaction[/B] is [B]Cancel[/B]. [B]Cancel[/B] (and timeout with that default) still stop next; [B]Back[/B] / Escape match [B]Close[/B].
- [B]Settings / General[/B]: [B]Danger Zone[/B] — [B]Default Red Light Settings[/B] restores defaults while keeping accounts, API keys, subtitle logins, NZB indexer accounts, and External Scraper slots; [B]Reset Red Light[/B] wipes addon data and rebuilds (pauses monitors, retries/renames locked files, OK dialogs stay dismissible; restart recommended).

[COLOR red][B]Version 2.2.6[/B][/COLOR]
- [B]Autoscrape Next Episode[/B]: after [B]Next Episode Ready[/B], [B]Stop[/B] during credits opens next-episode sources again (same binge habit as before 1.8.2). Stop before Ready still cancels prep; starting another episode still supersedes.
- [B]Autoscrape Next Episode[/B]: picking a source from the post-episode results window plays the first choice immediately. After 2.2.1's [I]setResolvedUrl[/I] handoff, that path reused the previous episode's spent PlayMedia handle so the first resolve was a noop and only the next queued source started via [I]Player.play()[/I] (looked like "Source A fails, Source B works" — swap picks and it reversed). Widget / fresh [I]PlayMedia[/I] scrapes still use [I]setResolvedUrl[/I].
- [B]Widgets / Resume[/B]: after Continue on an in-progress episode, wait for real duration before the post-[I]setResolvedUrl[/I] resume seek (was a single 500ms check). Kodi 22 often ignores [I]StartPercent[/I] on widget PlayMedia; slow 4K demux made the old timing miss and start at 0% even when In Progress showed.
- [B]Playback Progress[/B]: seeking forward then stopping (e.g. scrub to ~30 min and Stop) no longer drops the resume point — re-sample position via InfoLabels after seek/stop, keep the higher post-seek time, write local progress before the remote scrobble thread, and do not treat brief seek "not playing" blips as a superseded playback.
- [B]PunchPlay Progress[/B]: stop + seek progress is kept on In Progress Episodes when PunchPlay's remote in-progress list has not caught up yet (bulk playback sync no longer wipes recent local-only resume rows). Progress-only change-feed tips refresh playback only — not a full watched-history rebuild — so Next Episodes after Stop is no longer stalled for ~20s by PunchPlay Sync.
- [B]Widgets / Cancel[/B] ([I]#208[/I]): backing out of scrape or the sources results window from a home-widget [I]PlayMedia[/I] path no longer leaves Kodi's [B]One or more items failed to play[/B] confirm up. Close scrape/results UI, then clear the pending playlist item, [I]setResolvedUrl(False)[/I], and dismiss [I]okdialog[/I].
- [B]Next Episodes / Widgets[/B]: post-playback widget refresh no longer calls [I]UpdateLibrary[/I] while you are still inside Red Light (e.g. Next Episodes after Stop). That second directory reload could fail if you pressed Back during busy and dump you onto Kodi's empty Files view. Widgets refresh when you return to Home.
- [B]Next Episodes[/B] ([I]#203[/I]): cold rebuild after play/stop (Trakt / Simkl / MDBList / PunchPlay) shows an explicit busy dialog so skins that blank the container do not look hung. Warm reopen (unchanged watched/progress) still paints from cache with no spinner.
- [B]Next Episodes / In Progress Episodes[/B]: for [B]30s[/B] after Stop, open from local watched/progress (skip blocking provider sync). Instant list after play; sync resumes on later opens / monitors. No deferred auto-refresh timer.
- [B]Next Episodes incremental[/B]: after finishing one episode, only dirty shows rebuild; unchanged shows reuse cached row packets. Mark watched no longer hard-wipes the list cache (activity token already invalidates).
- [B]In Progress Episodes cache[/B]: reopen without progress/watched change paints cached rows (live resume re-read). Provider progress refresh still runs first, then the cache token is checked.
- [B]Recently Watched Episodes cache[/B]: reopen without watched activity paints from cache like Next Episodes.
- [B]Personal calendars cache[/B]: Trakt / MDBList / PunchPlay / Simkl calendar shelves cache painted rows; fingerprint includes the local calendar day so Today/Yesterday labels roll overnight.
- [B]List Managers[/B]: Mark Watched / Mark Unwatched are playcount-gated like the main context menu (Trakt / Simkl / MDBList / PunchPlay). Movies and episodes show one action; TV shows match shelf rules (Watched when incomplete, Unwatched when any progress).
- [B]List Managers[/B]: Simkl Lists Manager no longer re-downloads every status list on open (was ~10 throttled API calls / ~14s on slow devices) — one [I]/sync/all-items/{type}/all[/I] warm fills the lists cache; later opens and shelves reuse it until activities/list changes. PunchPlay Manager caches watch-status + favourites the same way (one pull each, not per menu row). MDBList Manager membership uses the full cached watchlist/library (not page 1) and skips a forced my_lists refresh on open.
- [B]Direct Sources[/B]: EasyNews credential label is [B]Username[/B] (was Login), matching AIOStreams.
- [B]Torrent Sources / Debrids[/B]: when a debrid is authorised but Enable is off, [B]Revoke Authorisation[/B] stays visible (other provider settings still require Enable).

[COLOR red][B]Version 2.2.5[/B][/COLOR]
- [B]Widgets / Resume[/B]: Kodi was still showing Resume / Start over from home widgets because [I]setResolvedUrl[/I] stores bookmarks against the [I]plugin://[/I] path. Now resolve the live [I]MyVideos*.db[/I] (and clear every non-empty one), force listitem resume to 0, and keep only [B]WatchedProgress[/B] for skins. Red Light's source prompt remains the resume UI.
- [B]Next Episodes cache[/B]: activity token now fingerprints real resume percent values (not just progress row count). A Simkl reset to 0% left In Progress empty while a cached Next Episodes row could still paint the old progress. Cache paint re-reads live progress and drops stale [B]WatchedProgress[/B].

[COLOR red][B]Version 2.2.4[/B][/COLOR]
- [B]Progress Sync[/B]: leftover ≤1% playback rows (e.g. Simkl reset that leaves a 0% [I]/sync/playback[/I] entry) no longer trigger Red Light's Resume / Start over prompt — treat as cleared. Simkl / PunchPlay playback sync now drops ≤1% the same way Trakt / MDBList already did. Opening In Progress Episodes / Movies with Simkl as Watched Status Provider refreshes playback via activities (parity with Trakt / MDBList / PunchPlay).
- [B]Trakt Progress[/B]: playback sync now full-replaces local progress (including when remote is empty) instead of only deleting rows with a Trakt [I]resume_id[/I]. Local pause writes used [I]resume_id=0[/I], so a reset on another device could leave stale resume on this one.

[COLOR red][B]Version 2.2.3[/B][/COLOR]
- [B]Widgets / Resume[/B]: in-progress movies and episodes on home widgets no longer set an InfoTag resume point (still set [B]WatchedProgress[/B] + duration). That stops Kodi's Resume / Start over dialog before scrape so only Red Light's source resume prompt appears.

[COLOR red][B]Version 2.2.2[/B][/COLOR]
- [B]Next Episodes[/B]: reopen the same shelf without a watched/progress change is much faster. Built rows are cached until watched status, resume points, Dropped/hidden, or Include Unwatched membership change; Trakt watched refresh before the list is activity-gated like Simkl/MDBList/PunchPlay (no full [I]sync/watched/shows[/I] pull when nothing changed). First open and the rebuild right after you finish an episode still do a full build.
- [B]Watched Status Provider[/B]: switching Indicators (Trakt / Simkl / MDBList / PunchPlay) now runs an activity-gated sync for that provider instead of always forcing a full pull on Simkl/MDBList/PunchPlay (and skipping Trakt). Full force only when that provider's local watched table is empty; stale data still catches up via activities. Tools > Force Sync unchanged for a deliberate wipe.
- [B]EasyNews Playback[/B]: [B]Set Max. Retries for Playback[/B] now allows up to [B]8[/B] (was 4) when Playback Method is Retry or Both — some links only resolve on the 5th+ attempt.
- [B]EasyNews[/B]: failed / empty search responses no longer raise [I]'NoneType' object has no attribute 'get'[/I] in the scraper — treat as no results instead of logging an exception.
- [B]Search Collections[/B]: Search > Search Collections looks up TMDb movie sets by name, then opens the existing Browse Movie Set list for that franchise.
- [B]Public Calendar[/B]: Simkl public TV/Anime airings (no account filter) under My Lists > Simkl Lists > Public Calendar (always TV + anime). Optional on the TV Shows / Anime menus via Settings > Single Episode Lists > Calendars > [B]Show Public Calendar on TV / Anime Menus[/B] (default off). [B]Include Anime in Public TV Calendar[/B] only affects the TV Shows menu entry; the Anime menu entry is always anime-only. Trakt/MDBList/PunchPlay calendars stay personal. Uses shared Calendars day/display settings (Simkl public feeds still only go back ~1 day).
- [B]Public Calendar[/B]: [B]Public Calendar Max Items[/B] (default 250; [B]0[/B] = unlimited) caps listitem builds after the day window — keeps airings closest to today. [B]Cache Public Calendar List[/B] (default on) reuses painted rows on reopen like Next Episodes. My Lists > Simkl Lists stays visible when Simkl is unauthorised so Public Calendar remains reachable (personal shelves / Calendar / Search stay auth-only). My Lists Public Calendar always includes TV + anime; [B]Include Anime in Public TV Calendar[/B] only affects the TV Shows menu entry.
- [B]Display Format[/B] ([I]#201[/I]): optional [B]Omit Season/Episode Tags on Widgets[/B] (Single Episode Lists > General, default off) — same idea as [B]Omit Show Title Tag on Widgets[/B]. When on, widgets skip Season/Episode info tags even if Display Format is [B]TITLE - SxE. EPISODE[/B] or [B]SxE. EPISODE[/B], so skins that bind those (e.g. under logos) do not duplicate SxE while Label/Title still carry the full string. Within-addon lists unchanged; [B]EPISODE[/B] format still omits those tags everywhere.
- [B]Kodi 22 Widgets[/B]: backing out of scrape / source select / resolve (or getting "Source search already running" on a second widget) now calls [I]setResolvedUrl(False)[/I] so Kodi does not leave the original [I]plugin://[/I] item unresolved — that was the [B]One or more items failed to play[/B] dialog after cancel on home widgets.
- [B]Widgets / lists[/B]: when Kodi cannot spawn more Python threads (common on AF3 home with many Skin Variables widgets — [I]can't start new thread[/I]), list builds soft-throttle and fall back instead of failing empty with a Red Light error toast. Still worth lowering Max Threads / widget concurrency on heavy homes.

[COLOR red][B]Version 2.2.1[/B][/COLOR]
- [B]Kodi 22 Playback[/B]: start streams with [I]setResolvedUrl()[/I] when the plugin handle expects it (home-widget / [I]PlayMedia[/I] paths). [I]Player().play()[/I] from a plugin is unsupported and left the original [I]plugin://[/I] item unresolved, so skins using home widgets could show [B]One or more items failed to play[/B] after stop. Later sources in the same resolve queue still fall back to [I]Player().play()[/I] once the handle is consumed; [I]RunPlugin[/I] / background nextep (handle -1) unchanged.
- [B]Sources[/B]: fix scrape freeze / empty results after providers return links ([I]#198[/I]) — Quality Sort Order was treated as a function during results sort (`order.index`), killing the scrape window. Ranks now use a dedicated list cache and always call the settings helper.
- [B]Watched Sync I/O[/B]: Trakt / Simkl / MDBList watched bulk writes no longer [I]VACUUM[/I] the provider DB on every sync (same as PunchPlay). That full rewrite was stalling Next Episodes / list rebuilds after playback on slow storage (e.g. SD cards) for Estuary and other skins.
- [B]Simkl Sync[/B]: continuous watched sync now uses [I]date_from[/I] on a single multi-type [I]/sync/all-items[/I] request when movies and TV both need a Phase 2 delta (Simkl guidance) — merges locally instead of re-downloading the full watch history. Movies-only deltas still use [I]/movies/completed[/I]; first sync / Force Sync / list-removal reconciliation stay sequential per-type full pulls. API calls are spaced across plugin/service invokers (shared throttle file + home property, 1.5s gap) and overlapping syncs are coalesced to avoid same-second request bursts Simkl flags on their debug page.
- [B]Calendars[/B]: [B]Simkl Calendar[/B] now uses the shared Calendar Display Format settings (within addon / widgets) — it was incorrectly falling through to Single Episode Display Format.
- [B]Calendars UTC[/B]: [B]Simkl[/B], [B]MDBList[/B], and [B]PunchPlay[/B] calendars keep full air timestamps (when the API provides them) so [B]UTC (+/-)[/B] shifts Today/Tomorrow the same way as Trakt. Day-window filtering uses the adjusted local day.
- [B]Meta Accounts Simkl[/B]: Client ID Key / Restore / [B]Test Client ID Key...[/B] sit under Authorise (same order as PunchPlay / Trakt). Client keys stay visible before Authorise (Trakt-style); PunchPlay Client ID / Test are no longer auth-gated so all three match.
- [B]Display Format / Widgets[/B]: when Calendars or Single Episode Lists format is [B]EPISODE[/B], Season/Episode info tags are omitted so skins that bind those (common under logos) no longer re-add SxE. Optional [B]Omit Show Title Tag on Widgets[/B] (Single Episode Lists > General, default off) skips TVShowTitle on widget listitems so skins that bind it as a second line don't show the show name under Label.
- [B]My Services[/B]: treat subscriptions as [B]expired[/B] once the expiry timestamp has passed (or the provider reports non-premium) — previously [I]timedelta.days[/I] could still show [B]today[/B] / [B]expires today[/B] for accounts that lapsed earlier the same calendar day (Real Debrid Account Info and menu labels). When expired, Account Info shows [B]Expired[/B] only (no expiry date — providers often still return today's date). Cache now stores the raw expiry and recomputes remaining days on read.

[COLOR red][B]Version 2.2.0[/B][/COLOR]
- [B]MDBList Calendar[/B]: request [I]calendar/events[/I] with [I]start[/I]/[I]end[/I]/[I]limit[/I] (max Show Previous/Future Days span) so past airings are returned. Still applies Calendars day settings on read; also accepts [I]show_id[/I] when [I]show_tmdb[/I] is missing. Calendars > Show Previous Days info text updated (MDBList past airings work; clarifies Simkl's public-feed limit).
- [B]Single Episode Lists[/B]: optional [B]Show Unwatched Count in Title[/B] (under Provide Unwatched Episodes Info) appends the remaining aired unwatched count to Label and Title — e.g. [I]Show 1x10. Name (5)[/I] — so widgets that only bind those still show it. Restores the missing setting helper that was crashing all Calendars / single-episode lists.
- [B]Sources[/B]: scrape no longer crashes (and leaves the results window stuck) when an uncached torrent has a null seeder count — treat missing/null seeders as 0 for the uncached min-seeders filter.

[COLOR red][B]Version 2.1.9[/B][/COLOR]
- [B]Simkl Mark Watched[/B]: when Simkl already has the title complete (0 added / already watched) — e.g. finished after a mid-play source switch left ~30% progress, or marked in the Simkl app — treat as success and clear local progress instead of toasting [B]Error[/B] (same idea as Trakt's already-watched history handling).
- [B]MDBList Drop[/B]: Drop / Undrop only toast success when the API confirms it (or membership matches after the call). Failed [I]sync/dropped[/I] fetches no longer cache an empty Dropped list (which could leave Next Up unfiltered). Dropped IDs for Next Up now use the same paginated [I]sync/dropped[/I] fetch as other MDBList sync lists (and accept flat [I]items[/I] rows), so large Dropped sets (e.g. Trakt imports) are not only partly applied. Success detection also recognises MDBList's [I]updated[/I] count (not only Trakt-style [I]added[/I]) so a real Drop no longer toasts [B]Error[/B].
- [B]MDBList Manager[/B]: from an episode row, both [B]Add/Remove Show To Static List[/B] and [B]Add/Remove Episode To Static List[/B] (episode uses TMDb episode id + S/E). Watchlist / Library / Drop stay show-scoped.
- [B]Trakt Drop[/B]: Drop / Undrop now toast a named result when Trakt confirms the change (or Dropped membership matches); failures toast [B]Error[/B] instead of a silent refresh. [B]My Lists > Trakt Lists[/B] gains a [B]Dropped[/B] shelf (TV shows from Trakt [I]users/hidden/dropped[/I]); Trakt Lists Manager can [B]Open Dropped TV Shows[/B]. PunchPlay Manager gains [B]Open Dropped Movies/TV Shows[/B] (MDBList/Simkl already had Open Dropped).
- [B]Trakt Lists Manager[/B]: from an episode row, both [B]Add/Remove Show To Personal List[/B] and [B]Add/Remove Episode To Personal List[/B] (episode uses TMDb episode id). Watchlist / Library / Favorites / Drop stay show-scoped.
- [B]Clean Databases[/B]: Cache Clean Results no longer shows raw [I][COLOR green][/I] placeholder lines — the text viewer now treats [I][CR][/I] as line breaks and avoids hard-wrapping mid-BBCode tag.
- [B]Clear Cache[/B]: individual clears toast a named result (e.g. Meta Cache Cleared, Main Cache Cleared) to match Trakt/Simkl/MDBList/PunchPlay, instead of a bare Success.
- [B]Quality Sort Order[/B]: under Results > Sorting and Filtering — set your own quality order when Results Sorting uses Quality (e.g. 720p above 1080p above SD above 4K). Default remains 4K, 1080p, 720p, SD. Separate from Include Results Quality (which qualities are shown). Applies to all providers.
- [B]Real Debrid[/B]: when [I]addMagnet[/I] returns rate limit ([I]error_code[/I] 34 / too_many_requests) — common after a run of infringing/failed magnets — wait briefly before trying the next result so later cached links can still resolve. Also treats invalid/non-dict [I]addMagnet[/I] responses as a clean miss (no crash).

[COLOR red][B]Version 2.1.8[/B][/COLOR]
- [B]Play # Episodes[/B]: under Playback Options on an episode — enter how many to play (e.g. 3). Red Light autoplays that many in a row, then stops. Skips Next Up / Still Watching for the chain (middle ground between one episode and Autoplay Next forever).
- [B]Simkl Calendar[/B]: under My Lists > Simkl Lists — episode airings from Simkl's public [I]calendar/v2[/I] feeds (TV + Anime), joined to your Watching and Plan to Watch shows. Uses the shared [B]Calendars[/B] settings (display, date labels, sort, flatten, previous/future days). Anime airings that omit a season number are included as S01 when a TMDb id is available.
- [B]Simkl Client ID[/B]: Meta Accounts > Simkl — [B]Client ID Key[/B] and [B]Restore Default Client ID Key[/B] (shown before Authorise, same idea as Trakt). Tokens are not cleared when the Client ID changes; re-Authorise if API calls start failing.
- [B]MDBList episode lists[/B]: static (and other) MDBLists that contain episodes open as single-episode items — same idea as Trakt episode lists — instead of being treated as movies/shows. Show identity prefers show TMDb / show IMDb; flat episode TMDb ids are not used as the parent show.
- [B]MDBList menu/list parity[/B]: Search My MDBLists (local name filter); Liked Lists is a flat catalogue (no Movies/TV split); list open supports mixed movies/shows/episodes in list order (Trakt/TMDb-style); Random Lists gains Random MDBList Lists (watchlist/library + shuffle/single My Lists, Liked, Popular).
- [B]Debrid cloud / Filter by Name[/B]: title normalize accent-folds before stripping non-ASCII — [I]Pokémon[/I] > [I]Pokemon[/I] (not [I]Pokmon[/I]), [I]Léon[/I] > [I]Leon[/I]. Fixes cloud folder/title gates and Filter by Name when accents were in the show or file name (#173).
- [B]Autoplay Next Episode[/B]: when [B]When No Interaction with Window[/B] is [B]Cancel[/B], [B]Close[/B] and [B]Back[/B] / Escape on the Next Up window also cancel (same as [B]Cancel[/B] / no interaction). Play / Pause & Wait defaults keep prior Close/Back behaviour.
- [B]Trakt watched toast[/B]: no generic [B]Error[/B] toast at ~90% playback when history add returns 0 (already watched after scrobble/stop). Playback marks match Simkl/MDBList/PunchPlay (suppress Error during playback); already-watched history adds are treated as success (#187).

[COLOR red][B]Version 2.1.7[/B][/COLOR]
- [B]Continual Random Play[/B]: [B]Check Still Watching After X[/B] applies again (removed in 1.9.6). Same setting as Autoplay Next Episode; default 3. Setting is always listed under Playback > Episodes so source-select users can change it without enabling Autoplay Next Episode. Unsuccessful scrapes / no-results skips do not count toward Still Watching and do not stop the search (#62).

[COLOR red][B]Version 2.1.6[/B][/COLOR]
- [B]Watched Status Provider[/B]: live Settings, tips, and info text consistently use [B]Watched Status Provider[/B] and the picker name [B]Red Light[/B] (not mixed [I]Local[/I] / [I]Watched Indicators[/I]). [I]Local[/I] remains only for unrelated features (e.g. Local Media Folders, Local Subtitles) or when describing on-device storage.
- [B]Meta Accounts[/B]: [B]Import Trakt to…[/B] (QR / copied link to each service's own import page) now matches under [B]MDBList[/B], [B]PunchPlay[/B], [B]Simkl[/B], and [B]WeTrakr[/B]. Red Light does not run the import — finish it on the website, then sync where available. WeTrakr remains scrobble-only for ticks in the addon. WeTrakr import URL: [I]https://wetrakr.com/profile/settings/data[/I].
- [B]Trakt Client Keys[/B]: Client ID / Secret, Restore Default, and Test Client Keys are available before Authorise (were hidden until signed in). When Authorise fails because custom keys are rejected, offer Restore Defaults. Fixes the catch-22 when personal Trakt apps are gone and Authorise returns HTTP 401.
- [B]Meta Accounts HTTP[/B]: Trakt, Simkl, MDBList, and PunchPlay share a [B]20s[/B] request timeout. MDBList no longer retries connect/read failures (offline/airplane fails once) and only retries flaky [I]429/5xx[/I] a couple of times; Trakt [I]429 Retry-After[/I], Simkl spacing, and PunchPlay token refresh are unchanged.
- [B]PunchPlay[/B]: [B]Test Client ID Key...[/B] under Meta Accounts (when authorised), plus [B]Restore Default Client ID Key[/B] when a custom ID is set — same idea as Trakt's client key check.
- [B]Simkl authorise[/B]: use [I]POST /users/settings[/I] for the account profile call (Simkl's documented method).
- [B]Next Episodes / Progress (Simkl & MDBList)[/B]: refresh watched/progress via activities first — full sync only when something changed (same idea as the background monitors and TV show lists). Speeds up list open when nothing is new.
- [B]Next Episodes / Progress (PunchPlay)[/B]: same skip-when-unchanged idea via PunchPlay's [I]/me/sync/changes[/I] feed (not Simkl-style activities). Avoids re-paging full [I]/me/history[/I] on every list open (which was hitting HTTP 429 right after a background sync).
- [B]PunchPlay Mark Watched[/B]: season/history POSTs send required [I]title[/I], [I]year[/I], [I]watchedAt[/I], and [I]episodes[/I] as [I]{episodeNumber, name, watchedAt}[/I] objects (API beta). After mark/unmark, tip the PunchPlay change feed instead of letting Next Episodes run a full history rebuild under DialogBusy. Watched bulk writes no longer VACUUM [I]punchplay_db[/I] on every sync. Local watched DB + PunchPlayMonitor cover refresh. Episode Mark Unwatched stops scanning [I]/me/history[/I] once the row is found (newest-first) instead of paging the whole library.
- [B]Simkl Mark Unwatched[/B]: no longer runs a blocking full force sync after a successful remove — same as Trakt / Simkl Mark Watched (local watched DB + normal activities sync).
- [B]Debrid cloud[/B]: when a file has no [I]Sxx[/I]/[I]NxN[/I] marker, bare aired-order numbers can match — [I]Show - 001[/I] as S01E01, or absolute numbers like [I]Dragon Ball Z - 255[/I] for S09E02 from TMDb season counts (#173 follow-up). Explicit season tokens still win; resolution tags (720/1080/…) are ignored. Season-subtitle-only names (e.g. arc title + [I]- 01[/I] with no number) are still not guessed.
- [B]Episode groups[/B]: Rescrape With Episode Group [B]Auto[/B] prefers TMDb [I]Original Air Date[/I] over Absolute (or whatever was first in the list). The optional Anime "Seasons" fallback does the same when no group is named Seasons. Assign / Prompt still choose manually; no multi-group scrape loop (#178).
- [B]Results[/B]: [B]Filter Results by Size[/B] renamed to [B]Size Filter Method[/B] (Off / Use Line Speed / Use Size). Info text unchanged.
- [B]Folder paths[/B]: Import & Export and Download pickers open on the real filesystem (not [I]special://[/I]) so you can navigate to other storage. Choosing a folder under Red Light's addon data still saves it as [I]special://[/I] for portability; folders elsewhere keep a normal device path.
- [B]Changelog / text viewer[/B]: wider scrollbar for easier scrolling on touchscreens; list-based paging so Changelog/Tips scroll reliably; wrap uses font pixel widths (not a fixed character count) so long lines are not cut off mid-word with [I]...[/I]; BBCode spans such as [I]italics[/I] stay intact across wraps; taller minimum scrollbar grip for touch.

[COLOR red][B]Version 2.1.5[/B][/COLOR]
- [B]MDBList sync[/B]: failed watched/progress fetches no longer wipe local ticks (bulk replace is skipped). Failed TMDb season fetches no longer cache an empty episode list.
- [B]Anime episode groups[/B]: optional Content setting falls back to TMDb's "Seasons" group for anime when none is assigned (off by default). Explicit Assign Episode Group still wins; the fallback is scrape-time only and is not saved as your assigned group.
- [B]Next Episodes / single-episode lists[/B]: Trakt, MDBList, PunchPlay, Simkl, TMDb, Personal, and Favorites list managers (and watchlist/library shortcuts) are available on the context menu and in Options, acting on the parent show — same as Progress.

[COLOR red][B]Version 2.1.4[/B][/COLOR]
- [B]MDBList Manager[/B]: status-aware [B]Add To / Remove from Static List[/B] for your editable MDBLists (same idea as Trakt personal lists). Dynamic/AI lists stay browse-only. [B]My Lists[/B] under MDBList refreshes on open and shows static lists first so newly created site lists are not stuck behind a stale cache.
- [B]Single Episode Lists[/B]: [I]ListItem.Title[/I] now uses the same Single Episode / Calendars display format as [I]ListItem.Label[/I] (without colour tags), so mixed Home widgets that bind Title honour Red Light settings. Season episode lists still keep a plain episode Title for combined season/episode skin views.
- [B]Debrid cloud[/B]: episode file matching accepts spaced forms like [I]S4 -17[/I], [I]S4 - E17[/I], and [I]S6-29[/I], and prefers the requested season over later fake [I]SxxExx[/I] hash tags (#173). Still requires an explicit season marker — no bare episode > S01 guessing.
- [B]Context Menu[/B]: [B]PunchPlay Manager[/B] is enabled by default with the other list managers (MDBList > PunchPlay > Simkl > TMDb > Trakt). Existing installs get it on upgrade without turning it on by hand.

[COLOR red][B]Version 2.1.3[/B][/COLOR]
- [B]Extras[/B]: whole-page scroll without the mouse-breaking focus animations — genre/ratings and action buttons sit in the scrolling list so they move off-screen with Plot/Cast/etc., while only the title/logo stay fixed.
- [B]Simkl[/B]: Mark Watched for anime titles posts under Simkl [I]anime[/I]/[I]shows[/I] history with TVDB-style season mapping. Mark Unwatched always uses [I]shows[/I] (Simkl's remove endpoint silently ignores top-level [I]anime[][/I], which left titles watched online while Red Light toasted Success). Watched sync imports [I]/sync/all-items/anime[/I], anime activity refreshes indicators, and history calls stop after a network failure instead of stacking bucket timeouts.
- [B]UTC (+/-)[/B]: uses your real timezone offset only. The old Fen-style extra +5 hours is removed. TMDb dates are still treated as 20:00 before applying the offset. If you previously set a value to compensate, reset to your real offset.
- [B]Aired episode counts[/B]: still-airing shows recount aired episodes with the same premiered-date rules as unaired colouring, so season/show totals (e.g. "4 episodes") stay in sync when a new episode is treated as aired.

[COLOR red][B]Version 2.1.2[/B][/COLOR]
- [B]Anime / Next Episodes[/B]: airing show and season episode caches refresh much sooner (was up to 96h). When Next Episodes cannot find a following episode for a still-airing show, Red Light force-refreshes that show's TMDb meta once so newly listed episodes (common with weekly anime) can appear without waiting for cache expiry. Next Episodes also refreshes MDBList/Trakt/Simkl/PunchPlay watched data before building (same idea as In Progress).

[COLOR red][B]Version 2.1.1[/B][/COLOR]
- [B]Notifications / Progress[/B]: use the transparent mini addon icon for toasts and the progress dialog poster slot (thanks [B]OfficerKD637[/B]). The corner badge was already mini.
- [B]Episode lists[/B]: separate [I]ListItem.Title[/I] (plain episode name) from [I]ListItem.Label[/I] (SxE + styling), match Kodi [I]SxE.[/I] formatting, and wrap unaired colour/italics around the full label — better for combined season/episode skin views (thanks [B]OfficerKD637[/B]).
- [B]PunchPlay[/B]: Mark Unwatched on a single episode deletes that episode's [I]/watch-history/{id}[/I] rows instead of the season-wide watch DELETE (which cleared every episode in the season).
- [B]Trakt[/B]: send [I]scrobble/start[/I] when playback begins (and [I]scrobble/stop[/I] when it ends) so Trakt shows [B]Playing now[/B] / [B]Now Playing[/B] without needing [B]script.trakt[/B]. Still defers when the official Trakt add-on is installed, enabled, authorised, and set to scrobble that media type (#172). Stop is sent synchronously on every end (not only under 5% / over 90%), so Playing now clears when you exit mid-play.
- [B]Trakt Lists Manager[/B]: Mark Watched/Unwatched shows a Success toast; Mark Unwatched when the title is already clear no longer toasts Error (Trakt returns 0 deleted). Same Mark Unwatched no-op handling for [B]Simkl[/B], [B]MDBList[/B], and [B]PunchPlay[/B]. MDBList add-to Watchlist/Library failures no longer misuse the "Item not in list" toast.
- [B]Watched status[/B]: Mark Watched/Unwatched (context menu and all service managers) toast Success after a successful mark.
- [B]Extras[/B]: mouse support for action buttons — buttons drawn above overlapping lists; removed focus-linked meta fade / list slide that flickered under mouse hover. Keyboard/remote navigation unchanged. [I]ExtrasUtils[/I] skin rebuild (on startup / Extras order change) updated so it no longer regenerates the old flickering layout.

[COLOR red][B]Version 2.1.0[/B][/COLOR]
- [B]Subtitles[/B]: rate-limit reject no longer treats SRT cue index [I]429[/I] (or long real downloads) as an error — restores auto-apply after OpenSubtitles/SubMaker pick.
- [B]AIOStreams EasyNews[/B]: Retry/No Seek also apply to cached [I]EN+[/I] badge rows (were only matched as exact [I]EN[/I]); AIO wrapper HTTP 404/5xx fails resolve so RETRYx can re-probe instead of one dead OpenFile.

[COLOR red][B]Version 2.0.9[/B][/COLOR]
- [B]PunchPlay[/B]: full meta provider — Meta Accounts auth (public Client ID + device code), [B]Watched Status Provider[/B] option, background sync/monitor, native playback scrobble (~90%), My Lists (Watchlist / Collection / Favourites / status shelves / custom lists), manager, calendar, Random Lists, import-export re-auth reminder. Place after MDBList, before Simkl. Defers native scrobble when [B]script.punchplay[/B] is already authorised. Shelf labels use PunchPlay terms (not Trakt Library parity); collection format fixed to [B]digital[/B] on add in v1.
- [B]PunchPlay[/B]: TV Shows / Movies [B]Watched[/B] (and Recently Watched) refresh PunchPlay history before building the list — same pattern as MDBList — so the first open is not empty or half-synced.
- [B]PunchPlay[/B]: status shelves / Favourites / Watchlist classify anime via TMDb when PunchPlay omits [B]isAnime[/B], so Anime folders are not empty with titles dumped under TV Shows.
- [B]PunchPlay Collection[/B]: load full Collection then classify Movies/TV/Anime client-side — add API only allows [B]movie|show[/B], so anime often sits as [B]show[/B] and [B]type=anime[/B] queries were empty.
- [B]PunchPlay Calendar[/B]: under My Lists > PunchPlay Lists uses the same episode-list UI and shared [B]Calendars[/B] settings as MDBList/Trakt (display, date labels, sort, flatten, previous/future days). Movies/digital releases from the PunchPlay calendar API are skipped (episodes only).
- [B]PunchPlay Lists[/B]: load ordinary list contents from [B]GET /lists/{id}[/B] (items are embedded there). The paginated [B]/items[/B] route is for dynamic lists and was returning HTTP 404 for personal lists, leaving Eva Movies / Eva TV (etc.) empty. Also treat a valid access token as authorised for sync (username is display-only).
- [B]PunchPlay labels[/B]: menus/manager use PunchPlay terms ([B]Collection[/B], [B]Favourites[/B], [B]Planning[/B], [B]Watched[/B]) instead of Trakt/Simkl parity names ([B]Library[/B], [B]Favorites[/B], [B]Plan to Watch[/B], [B]Completed[/B]).
- [B]Meta Accounts / menus[/B]: PunchPlay inserted A–Z after MDBList (watched provider picker, My Lists, context/Options/Extras managers, cache clears, Random Lists, import-export Meta Accounts reminder, tip copy).
- [B]Simkl Anime[/B]: season-split Plan to Watch titles (e.g. Re:Zero S4, Steel Ball Run) often sync with only a dead/movie TMDb id or an episode-level IMDb. Enrich missing IDs from Simkl anime detail, fall back across TMDb/IMDb/TVDb, and map episode IMDb finds to the parent show so they appear under Anime Plan to Watch (Frieren-style full IDs were already fine).
- [B]Simkl Anime[/B]: list remove/add for those remapped titles uses the Simkl id (and anime bucket) instead of the parent show's TMDb/IMDb — stops Success toasts that left the item on the list. Remove success now requires a real deleted count.
- [B]Simkl[/B]: My Lists status shelves add a third [B]Anime[/B] row (Plan to Watch / Watching / On Hold / Completed / Dropped). TV shelves are shows-only; anime is no longer merged into TV.
- [B]My Lists[/B]: [B]MDBList[/B], [B]PunchPlay[/B], and [B]Simkl[/B] use grouped folders like Trakt/TMDb (e.g. Watchlist > Movies / TV / Anime). PunchPlay also gets Anime shelves (isAnime / Collection type=anime).
- [B]Import & Export[/B]: long confirm dialogs focus the scrollbar again so Up/Down scrolls the text and Left/Right reach Cancel/OK (settings, favorites & history, Kodi favorites).
- [B]AllDebrid Cloud[/B]: folder matching for source search — open magnets when the show title is in the folder name. Full title+S/E filtering stays on files inside the pack so season packs without SxxExx in the magnet name are found again (regression from 1.7.3 alias-aware folder gate).
- [B]Debrid resolve[/B]: pack file pick requires an explicit season tag (Sxx / NxN) to match the episode you asked for — stops complete-show packs resolving e.g. S12E01-E02 when searching S01E02 (episode-only -e02 false match). Same fix for AllDebrid, Real Debrid, Premiumize, Offcloud, and TorBox magnet resolve.
- [B]Cloud / aliases[/B]: keep Japan (and mostly-Latin) TMDb alternative titles for scrape aliases — e.g. [I]Mairimashita! Iruma-kun[/I] for Welcome to Demon School! Iruma-kun. AD/RD/OC/TB folder gates also match those aliases, not only the English primary title.
- [B]AIOStreams EasyNews[/B]: EN rows honour [B]EasyNews Playback Method[/B] — Retry queues RETRYx attempts (re-materialize AIO > CDN each time), and No Seek applies [I]|seekable=0[/I] on the final EasyNews URL. Not full native EN resolve (AIO owns the signed link), but much closer for seeking/scrobbling when you keep EN inside AIOStreams. Setting is shown under Playback Utilities when [B]EasyNews[/B] and/or [B]AIOStreams[/B] is enabled (Exclude NO SEEK for My Services stays EasyNews-only).
- [B]AIOStreams[/B]: reject uncached Failover placeholder streams ([I]static/downloading.mp4[/I]) during resolve — fail the source instead of playing a short clip that Kodi treats as success (and that can fire next-episode autoscrape).
- [B]Offcloud[/B]: post-play cleanup only deletes cloud requests Red Light created during resolve — playing a cached Offcloud URL no longer removes a user-owned cloud item when Store Resolved to Cloud is off (#167).
- [B]Subtitles[/B]: reject SubMaker / OpenSubtitles rate-limit error payloads (e.g. [I]Too many requests[/I] wrapped as a tiny SRT) so they are not applied as real subs or toasted as [B]Downloaded subtitles found[/B]. OpenSubtitles downloads use the same content checks as SubMaker.
- [B]Subtitles[/B]: with [B]Auto Enable Subtitle Source[/B] set to OpenSubtitles, do not reuse SubMaker temp files or prefer SubMaker for Subtitles Info fetches — that skipped the OpenSubtitles API while still applying [I]RedLightSubs_[/I] files.

[COLOR red][B]Version 2.0.8[/B][/COLOR]
- [B]WeTrakr[/B]: authorise under Meta Accounts for [B]scrobble only[/B] — Red Light reports play/pause/finish to WeTrakr. [B]Enable Scrobbling[/B] toggles reporting without revoking (default on). [B]Scrobble at %[/B] defaults to [B]90[/B] (aligned with Red Light's watched mark). Watched ticks, resume, Next Episodes, and lists stay with [B]Watched Status Provider[/B] (recommended: [B]Red Light[/B]). Details via About WeTrakr Scrobble and the settings descriptions. Defers when the official [B]script.wetrakr[/B] add-on is already authorised.
- [B]Menus / Context / Info[/B]: list/auth services ordered A–Z where it helps (context catalog, Options, Random Lists, cache clears, related info text). [B]Meta Accounts[/B]: MDBList > Simkl > Trakt > WeTrakr > OMDb > TMDb API > TMDb Lists > RPDb > Google > Groq. Existing context-menu order migrates on upgrade.
- [B]My Lists[/B]: nested items use context icons (Calendar, Favorites, Movies/TV, Next Up, etc.); service brand icons stay on the root folders.
- [B]Settings[/B]: [B]Context Menu[/B] (Choose Content / Choose Order) moved from [B]Content[/B] to [B]Features[/B], beside Extras.
- [B]Import & Export[/B]: post-import Meta Accounts re-authorise reminder now includes [B]TMDb Lists[/B] and [B]WeTrakr[/B] (with MDBList / Simkl / Trakt). API-key metas unchanged. New tip under Tips for Use covers all three backup pairs (Settings, Favorites & History, Kodi Favorites).

[COLOR red][B]Version 2.0.7[/B][/COLOR]
- [B]Real Debrid[/B]: with [B]Add Resolved Debrid Cache to Cloud = None[/B], do not delete Downloads history before Kodi opens the play URL (that could invalidate the unrestricted CDN link — same class of failure as Offcloud #160). Temp torrent is still removed at resolve; Downloads history is cleared after playback finishes or fails so Check Before Full Search leftovers stay fixed.

[COLOR red][B]Version 2.0.6[/B][/COLOR]
- [B]Because You Watched (AI)[/B]: stop retrying the same Gemini/Groq model forever after a failed response (soft-fail rows were cleared immediately because [B]timeout_ends=0[/B] counted as expired). Do not cache failed/empty AI results as a blank list. Update default Google models to current IDs ([B]gemini-3.1-flash-lite[/B], [B]gemma-4-31b-it[/B]) — retired [B]gemini-2.5-flash-lite[/B] / [B]gemma-3[/B] IDs were returning HTTP 404.
- [B]Settings[/B]: Calendars > Show Previous Days info notes that the MDBList Calendar API does not expose past airings. AI Similar info text lists Extras > Similar, Browse Similar, and Because You Watched (Content > General > Service used for Because You Watched). That Because You Watched service picker only lists Similar (AI) / Related (Trakt) when those services are authorised.

[COLOR red][B]Version 2.0.5[/B][/COLOR]
- [B]Offcloud[/B]: with [B]Add Resolved Debrid Cache to Cloud = None[/B], do not delete the cloud request before Kodi opens the play URL (those links are request-scoped and were dying immediately). Temporary requests are removed after playback finishes or fails instead — keeps the 2.0.4 leftover-cleanup goal without breaking play (#160).
- [B]MDBList Calendar[/B]: fix blank Calendar folder — harden show meta (studio tags), accept either MDBList calendar response shape, ignore empty API/cache blips, and fix day-window filtering so upcoming airings show again.
- [B]MDBList[/B]: [B]Next Up[/B] under My Lists > MDBList Lists (beside Calendar) — next unwatched episodes from MDBList watched history, even when Watched Indicators is Simkl/Trakt/Local. Uses the shared Next Episodes list settings.

[COLOR red][B]Version 2.0.4[/B][/COLOR]
- [B]Performance[/B]: metacache stores JSON instead of Python repr; list meta no longer mirrors through window properties (database path only). SQLite connections use WAL / synchronous NORMAL. Thread pool default is [B]20[/B] (was 60), including when [B]Limit Concurrent Threads[/B] is Off, to reduce TMDb rate-limit pressure after faster list builds (thank you [B]Tikipeter[/B]). When the limit is On, a previously saved Maximum Active Threads value is kept.
- [B]MDBList[/B]: [B]Calendar[/B] under My Lists > MDBList Lists — episode airings from MDBList, using the shared [B]Calendars[/B] settings (display, date labels, sort, flatten, previous/future days; same window as Trakt Calendar). Upcoming airings for in-progress shows are no longer dropped when MDBList tags them [B]release_type=watched[/B].
- [B]Calendars[/B]: day labels and sort use Trakt/MDBList air dates (not TMDb premiered), and the list stays in plugin order so [B]Sort by Date[/B] no longer puts e.g. Monday above Yesterday. Word labels also use weekday names for the past week (not only upcoming days). Service air dates no longer get the TMDb [B]UTC (+/-) + 5h[/B] / 20:00 bump (that was shifting calendar rows a day ahead).
- [B]Settings[/B]: Single Episode Lists > [B]Trakt Calendar[/B] renamed to [B]Calendars[/B] (shared by Trakt Calendar and MDBList Calendar).
- [B]My Lists[/B]: meta-list menus reordered for consistency — services A–Z on the root; within each service Watchlist > Library > Favorites/status > My Lists > Liked > Recommended/Popular > Calendar > Search (Simkl keeps status shelves: Plan to Watch > Watching > On Hold > Completed > Dropped).
- [B]Debrid[/B]: when [B]Add Resolved Debrid Cache to Cloud[/B] is [B]None[/B] (or Show Packs Only for non-packs), temporary resolve leftovers are removed so Check Before Full Search does not short-circuit on the stream you just played — Real Debrid (torrent + Downloads history), Offcloud (cloud add path), TorBox (sync cleanup), AllDebrid (magnet transfer; unlock history has no per-item delete API).
- [B]Resume[/B]: Red Light keeps the resume prompt (widget/Kodi no longer ask first). In-progress items still set resume time + duration for [B]EndTimeResume[/B] (#116); resume [B]total[/B] is omitted so Kodi does not treat them as resumable play actions. Use Red Light's Continue / Start from beginning after scrape (or Auto Resume Always).

[COLOR red][B]Version 2.0.3[/B][/COLOR]
- [B]Skip Intro[/B]: [B]Off[/B] = off; [B]Auto[/B] = skip without asking whenever Skip Intro applies (autoplay, source select, first or later episode; self-started plays when that option is on); [B]Prompt[/B] = ask first (Yes skips; No or ignore/timeout does not). Clearer description for [B]Also On Plays You Start Yourself[/B].

[COLOR red][B]Version 2.0.2[/B][/COLOR]
- [B]Performance[/B]: movie and TV show lists reuse one metacache SQLite connection per worker thread when building listitems (fewer open/close cycles; thank you [B]Tikipeter[/B]).

[COLOR red][B]Version 2.0.1[/B][/COLOR]
- [B]Settings[/B]: [B]Watched Status Provider[/B] and Trakt/Simkl/MDBList sync tools (interval, refresh widgets, force sync, clear cache) move from General to [B]Meta Accounts[/B] — provider at the top; sync/cache under each service when authorised.
- [B]Simkl[/B]: status lists (Plan to Watch / Watching / etc.) sort by title again when Title is the active sort — list fetch no longer uses [I]ids_only[/I], which omitted titles and left lists in API order.
- [B]Playback[/B]: [B]Limit Autoplay Size (MB)[/B] under Movies/Episodes when Autoplay is on — caps autoplay file size only (default [B]0[/B] = Off). Select Source is unaffected; cloud and local folders are exempt (#149).
- [B]My Services[/B]: Settings > General > My Services lists authorised Debrid/EasyNews accounts as per-service expiry alert On/Off toggles (default On) when [B]Alert When Service Expires Within (Days)[/B] is not [B]0[/B]. Alphabetical; unauthorised services stay hidden.
- [B]Next Episodes[/B] / [B]Next Episode prep[/B]: shows that use absolute episode numbers inside seasons (e.g. One Piece S23E1170) no longer skip the list — next S/E is resolved from TMDb episode lists instead of assuming episodes are 1..season count (#144).
- [B]Progress[/B]: Ended/Canceled shows no longer count unaired placeholder seasons toward the aired total (e.g. a blank S2E1 after an S1 finale), so titles like I Parry Everything leave In Progress when all aired episodes are watched (#144).
- [B]Resume[/B]: in-progress movies and episodes now pass total duration to Kodi's resume point so skins and Skin Variables Dynamic Nodes can calculate [B]EndTimeResume[/B] / progress correctly (#116).
- [B]Next Episodes[/B]: [B]Include Watched Indicator Watchlist/Red Light Favorites[/B] — Watchlist now follows Watched Indicators (Trakt Watchlist, Simkl Plan to Watch, or MDBList Watchlist) instead of always using Trakt. Favorites remain Red Light local. When indicators are Red Light, Watchlist has no source.
- [B]Trakt[/B]: renamed [B]Collection[/B] to [B]Library[/B] in menus, Trakt Lists Manager, context shortcuts, and list pickers (matches Trakt's site rename). API paths unchanged.
- [B]List Sort[/B]: [B]Simkl[/B] status shelves (Plan to Watch / Watching / Completed / On Hold / Dropped) each have their own [B]Set Custom Sort[/B] for Movies and TV (no longer one shared order for all Simkl lists). A previous shared Simkl sort is copied onto each shelf on first use, then cleared, so [B]Use Default[/B] on one shelf correctly returns to Content > Movies/TV defaults.
- [B]List Sort[/B]: [B]TMDb[/B] Watchlist, Favorites, and Recommendations get [B]Set Custom Sort[/B] (Movies/TV separate). Custom My Lists also expose [B]Set Custom Sort[/B] on the context menu (same as Edit Properties > Change Sort Order). [B]TMDb My Lists Display Order[/B] in Settings is unchanged — it only orders the list of lists, not list contents.
- [B]Tips[/B]: new [B]List Sort Order[/B] tip covering defaults, per-list Set Custom Sort (Simkl / TMDb), and Trakt Library rename.

[COLOR red][B]Version 2.0.0[/B][/COLOR]
- [B]List Sort Order[/B]: Movies and TV Shows now have independent default sort orders (Settings > Content > List Sort Order). Applies to Watchlist, Library, Simkl, and MDBList; individual lists can override from the context menu, or Use Default to clear. One shared sort model replaces the previous per-provider mechanisms; existing ordering is preserved on upgrade except title sorting is now case-insensitive (thanks [B]JMAN730[/B] / #40).

[COLOR red][B]Version 1.9.9[/B][/COLOR]
- [B]Progress[/B]: [B]Exclude Specials from Show Progress[/B] (default On) — Season 0 specials no longer count toward TV show watched progress, progress %, or In Progress / Watched classification. Independent of [B]Show Special Episodes When Available[/B]. Turn Off to restore the previous behaviour.
- [B]Trakt[/B] / [B]Simkl[/B]: [B]Reset Scrobble[/B] now clears that provider's progress DB even when a different watched-status provider is active (avoids deleting the wrong service's resume bookmark).
- [B]Context Menu[/B] / [B]Options[/B]: [B]Trakt Lists Manager[/B], [B]In Trakt Lists[/B], and [B]TMDb Lists Manager[/B] only appear when that account is authorised (same as Simkl / MDBList).

[COLOR red][B]Version 1.9.8[/B][/COLOR]
- [B]Trakt Lists Manager[/B]: state-aware Add/Remove for Watchlist, Collection, and Favorites; Drop/Undrop for shows; personal-list pickers filtered by membership; Mark Watched/Unwatched and Reset Scrobble; Open Watchlist / Collection / Favorites / Liked Lists / My Lists and Refresh Widgets (Simkl/MDBList parity).
- [B]TMDb Lists Manager[/B]: state-aware Watchlist/Favorites Add or Remove; custom-list pickers filtered by membership using cached list contents (live item status only when a list is not cached).

[COLOR red][B]Version 1.9.7[/B][/COLOR]
- [B]Trakt Calendar[/B]: [B]Calendar Date Labels[/B] — three groups in matching order ([B]YYYY-MM-DD[/B], [B]MM-DD-YYYY[/B], [B]DD-MM-YYYY[/B]): [B]Words / …[/B] (Today/Tomorrow/weekday for the near week, that format outside it; default [B]Words / YYYY-MM-DD[/B]), date-only, and [B]Day + …[/B] (e.g. [B]TODAY 07-20-2026[/B]). Word and Day + date modes keep pin-today.

[COLOR red][B]Version 1.9.6[/B][/COLOR]
- [B]Special Open Actions[/B]: optional [B]Skip on In-Progress Movies[/B] — when enabled, selecting an in-progress movie resumes playback directly instead of opening Extras / Movie Set (thanks [B]JMAN730[/B] / #77).
- [B]Special Open Actions[/B]: optional [B]Skip on In-Progress Shows[/B] — when enabled, selecting a show that has an in-progress episode opens seasons/episodes instead of Extras (partially watched shows without a resume point are unchanged; Extras stays in the context menu).
- [B]Results[/B]: audio language tags ([B]ENGLISH[/B], [B]SPANISH[/B], [B]FRENCH[/B], [B]GERMAN[/B], [B]ITALIAN[/B], [B]PORTUGUESE[/B], [B]HINDI[/B], [B]JAPANESE[/B], [B]KOREAN[/B], [B]RUSSIAN AUDIO[/B]) can be chosen under [B]Sort To Top[/B] / Filter Results; only explicitly tagged audio (e.g. [B].ENG.[/B], dual-audio [B]ITA.ENG[/B]) is matched — untagged releases are not inferred as English (thanks [B]JMAN730[/B] / #20).
- [B]Results[/B]: [B]ENGLISH OR UNTAGGED[/B] Sort To Top / Filter Results option — boosts explicitly tagged English audio or releases with no other audio-language tag (typical plain English rips); pure foreign-tagged audio stays unboosted.
- [B]Results[/B]: Sort To Top language block ordered as [B]SUBTITLES[/B], [B]MULTIPLE LANGUAGES[/B], then languages alphabetically ([B]ENGLISH[/B], [B]ENGLISH OR UNTAGGED[/B], [B]FRENCH[/B], …).
- [B]Trakt Calendar[/B]: [B]Calendar Date Labels[/B] setting — keep word labels ([B]Today[/B] / [B]Tomorrow[/B] / weekday) or use [B]MM/DD/YYYY[/B], [B]DD/MM/YYYY[/B], or [B]YYYY-MM-DD[/B]; date modes skip pin-today so the list stays chronological (thanks [B]JMAN730[/B] / #138).
- [B]Context Menu[/B]: optional shortcuts under [B]Choose Content for the Context Menu[/B] (not enabled by default) — [B]Trakt Watchlist[/B] / [B]Collection[/B], [B]Simkl Plan to Watch[/B], [B]MDBList Watchlist[/B] / [B]Library[/B], [B]TMDb Watchlist[/B] / [B]Favorites[/B], plus [B]Select Source[/B] and [B]Rescrape & Select Source[/B]. Service shortcuts only appear when that account is authorised; full managers and [B]Play Options[/B] remain unchanged; list shortcuts use a state-aware add/remove confirm.
- [B]TorBox Cloud[/B] / [B]History[/B]: context [B]Add to Airlock[/B] / [B]Remove from Airlock[/B] for torrents, usenet, and web downloads (live status check on open and on action); airlocked items show an [B]AIRLOCK[/B] label.
- [B]Continual Random Play[/B]: removed [B]Use Still Watching with Continual Random Play[/B] — Continual Random no longer uses [B]Check Still Watching After X[/B]; Autoplay Next Episode Still Watching is unchanged.

[COLOR red][B]Version 1.9.5[/B][/COLOR]
- [B]Confirm Autoscrape[/B]: [B]Next Episode Ready[/B] no longer appears as soon as the scrape finishes after [B]Yes[/B] — it waits for the same alert window as Autoscrape without confirm, so Ready means the handoff is imminent (not merely that prep completed).
- [B]Confirm Autoscrape[/B] / [B]Still Watching[/B] / related playback overlays: closing the dialog while video is still playing restores fullscreen video instead of leaving Home widgets or the episodes list on top (common when playback was started from a widget, especially on Android).

[COLOR red][B]Version 1.9.4[/B][/COLOR]
- [B]Trakt[/B]: [B]Search User Lists[/B] no longer returns an empty folder — list owners are read from Trakt's nested [B]user[/B] object (same as Popular / Trending), instead of a missing top-level [B]username[/B] field that skipped every result.

[COLOR red][B]Version 1.9.3[/B][/COLOR]
- [B]Autoscrape Next Episode[/B]: after you pick a source from the Autoscrape results, Next Episode stays enabled so the binge can keep going to later episodes (it was turning off after that pick, so only the first Autoscrape hop worked).

[COLOR red][B]Version 1.9.2[/B][/COLOR]
- [B]Trakt Calendar[/B]: separate episode-title display formats for within the addon and widgets, without changing existing users' effective formatting during upgrade (thanks [B]JMAN730[/B] / #131).
- [B]Subtitles[/B]: added an overview to [B]Tools > Tips for Use[/B], covering automatic subtitle sources, language and local-subtitle preferences, subtitle-based alert timing, limitations, and cache maintenance.

[COLOR red][B]Version 1.9.1[/B][/COLOR]
- [B]Browse[/B]: choosing [B]Browse[/B] on a source no longer closes the sources results window underneath (progress-dialog cleanup was force-closing it) — fixes being kicked back to the previous screen with the file picker floating over it, and the [B]Source search already running[/B] lockout (until Kodi restart) when backing out of the picker without playing. Backing out or a failed file resolve now returns to the sources list; play/stop returns to the sources list as before.

[COLOR red][B]Version 1.9.0[/B][/COLOR]
- [B]TorBox[/B]: temporary resolve/browse transfers are now cleaned up consistently when [B]Add Resolved Debrid Cache to Cloud[/B] is [B]None[/B]. Red Light still creates a temporary TorBox transfer to request playable links, but failed file waits, no-match pack picks, NZB resolve failures, and successful non-retained resolves now all attempt cleanup for transfers Red Light just created.
- [B]Downloads[/B]: [B]Download File[/B] restored to pre-regression [B]RunPlugin[/B] handoff. Fixed nextep resolve diagnostics raising [B]AttributeError[/B] on a fresh [B]Sources()[/B] ([B]play_type[/B] / [B]background[/B] unset) — logging no longer runs before debrid resolve on the download path. [B]Download File[/B] shows a [B]Download started[/B] toast after confirm/title; [B]Download Pack[/B] no longer duplicates [B]Pack download started[/B] on top of [B]Multi File Pack Download Started[/B].
- [B]AIOStreams[/B]: [B]Download File[/B] follows AIO play/redirect links to the direct CDN URL and attaches Premiumize / TorBox download headers (fixes instant [B]Failed[/B] on debrid-backed AIO rows).
- [B]TorBox[/B]: [B]Download File[/B] / play resolve no longer hard-fails when a live TorBox hash-cache probe disagrees with scrape cache (pack download already worked; single-file resolve returned no URL).
- [B]Browse[/B]: releasing the source-search lock while a browsed file plays — fixes [B]Source search already running[/B] stuck until Kodi restart after Browse closes the results list.
- [B]Scrape Cancel[/B]: Back during scrape keeps the search lock until that scrape fully stops (no parallel scrape / zombie results), and skips debrid cache-check after cancel so the search actually ends.
- [B]Scrape Progress[/B]: internal providers (e.g. [B]AIOStreams[/B], [B]EasyNews[/B], cloud) no longer appear under the external scraper wave label (e.g. [B]Gears Scrapers: AIOStreams[/B]) — they show as a separate segment when running in parallel.
- [B]Addon icon[/B]: refreshed mini icon with proper alpha for Kodi skin overlays (thanks [B]OfficerKD637[/B] for flagging the transparency issue).
- [B]Images[/B]: [B]Downloads > Images[/B] opens a thumb grid when files exist; an empty folder shows the image viewer with back navigation instead of a blank list or [B]None Found[/B] toast. Image download no longer crashes on [B]RunPlugin[/B] when the busy dialog runs before [B]download_prep[/B]; local image browse creates missing folders safely.

[COLOR red][B]Version 1.8.9[/B][/COLOR]
- [B]My Services[/B]: shared expiry formatting across Account Info for Real Debrid, Premiumize, AllDebrid, EasyNews, TorBox, and Offcloud ([B]Expires[/B] as a friendly date plus [B]Days Remaining[/B]).
- [B]My Services[/B]: menu labels show cached days remaining (e.g. [B]EasyNews · 42 days[/B]) — 12-hour cache, no API call on every menu open.
- [B]My Services[/B]: [B]Alert When Service Expires Within (Days)[/B] under [B]General > My Services[/B] (default 7; 0 = off). Startup notification for authorised Debrid and EasyNews accounts; each remaining-day count alerts once. Fixed repeat alerts on every boot when the day count had not changed.
- [B]Continual Random Play[/B]: optional [B]Use Still Watching with Continual Random Play[/B] under [B]Playback > Episodes[/B] (visible when [B]Autoplay Next Episode[/B] and [B]Check Still Watching After X[/B] are enabled). When off, continual random skip chains no longer trigger the Still Watching prompt; normal Autoplay Next Episode is unchanged (#62 follow-up).

[COLOR red][B]Version 1.8.8[/B][/COLOR]
- [B]Extras[/B]: [B]Play[/B] / [B]Play Next Episode[/B] / [B]Play Options[/B] close the Extras window before scrape starts — fixes the movie playing behind Extras / sources UI (Extras was left stacked over fullscreen).

[COLOR red][B]Version 1.8.7[/B][/COLOR]
- [B]Scrape Progress[/B]: [B]TOTAL[/B] results count on the scrape progress dialog has its own colour picker ([B]Scrape Progress TOTAL Count Color[/B], default white). The [B]TOTAL[/B] label stays muted grey; only the number is coloured (when [B]Scrape Progress Count Colours[/B] is on).

[COLOR red][B]Version 1.8.6[/B][/COLOR]
- [B]TorBox Cloud[/B]: sources context menu [B]Delete from TorBox Cloud[/B] (same idea as RD Cloud) — removes the cached torrent / usenet / webdl transfer from your TorBox account.
- [B]AIOStreams[/B]: [B]ElfHosted[/B] added but disabled in the instance picker (public host returns [B]Search API is disabled[/B]); preset id reserved so it can be re-enabled later without remapping other instances.
- [B]Continual Random Play[/B]: if an episode has no scrape results, skip to another random episode (up to [B]25[/B] tries) instead of stopping the binge; [B]Check Still Watching After X[/B] (same setting as Autoplay Next Episode) now applies to continual random, including skipped episodes (even when nothing is playing yet). Skips also bypass [B]Rescrape Actions[/B] ask prompts (and treat failed autoplay cascades the same) so the binge does not stop to ask for retries (thanks [B]JMAN730[/B] / #62).
- [B]Random Lists[/B]: [B]Random Shuffled Trakt Liked Lists[/B] (and My Lists / Personal / TMDb shuffle-all menus) open each list via [B]random.build_*_contents[/B] with [B]random=true[/B] (and Trakt [B]sort_by=random[/B]), matching working shortcut folders — and no longer reuse a cached Kodi folder listing so item order reshuffles every visit.
- [B]Random Lists[/B]: empty [B]Trakt Liked Lists[/B] (All and Single) toast only ([B]No Trakt Liked Lists[/B]) — no clickable placeholder row; same for empty My / Personal / TMDb Single. Empty My Lists (All) still offers [B]Make New Trakt List...[/B].
- [B]Random Lists[/B]: [B]Random Trending / Popular User Lists (All)[/B] now shuffle list order and open contents randomized (same shuffle= path as My Lists) — [B]random=true[/B] alone was stripped from folder URLs so Public All never randomized.
- [B]Random Lists[/B]: folder URLs keep [B]random=[/B] again (no longer stripped in [B]build_folder_url[/B]); Trakt / Personal / TMDb shuffle-(All) parents also skip Kodi disc-cache so order reshuffles every visit.
- [B]Scrape Progress[/B]: [B]4K[/B] / [B]1080[/B] / [B]720[/B] / [B]SD[/B] source counts on the scrape progress dialog use your existing [B]Results Color Highlights[/B] quality colours (labels stay muted grey). [B]Scrape Progress Count Colours[/B] toggle (default [B]On[/B], above Tint Focused Result Background) turns that off to keep counts white (thanks [B]JMAN730[/B] / Jesse-N-Taylor / #76).
- [B]NZB Indexers[/B]: title scrape integration (EasyNews-style) — when NZB indexers and TorBox Pro are configured, NZB runs as an internal provider on movie/episode source search with Filter Results by Name, Fallback Search Queries, Search Width, Check Before Full Search, Autoplay (cached TorBox Pro usenet hits only), and Priority. Results use the NZB provider colour ([B]FFD4A017[/B] default), [B]Site:[/B] indexer label, and [B]CACHED[/B] / [B]TORBOX[/B] hoster tags; play resolves via TorBox Pro usenet ([B]resolve_nzb[/B]).
- [B]NZB Indexers[/B]: new [B]Direct Sources[/B] section — search any Newznab-compatible indexer (NZBGeek, NZBPlanet, DrunkenSlug, NZBHydra2, Prowlarr, etc.) with up to [B]3 indexer slots[/B] (name, URL, API key, per-slot [B]Test Connection[/B]). When enabled and configured, an [B]NZB Indexers[/B] menu appears under [B]My Services[/B] (hidden when disabled) with [B]Search All Indexers[/B] and search history. Results merge across slots (deduped, largest first); each result can be [B]sent to TorBox Pro usenet[/B] (stream from your TorBox Cloud once downloaded — TorBox Pro required) or saved as a [B].nzb[/B] file to your Premium download folder for an external client. Requires your own indexer account.
- [B]Playback[/B]: Android — resolve/scrape overlay ([B]sources_playback.xml[/B]) now force-closes when fullscreen playback starts, with explicit [B]Dialog.Close[/B] retries and fullscreen refocus — fixes resolve screen staying on top after the stream opens (e.g. long results browse then pick).

[COLOR red][B]Version 1.8.5[/B][/COLOR]
- [B]Settings Manager[/B]: section headings ([B]General[/B], [B]Window Theme[/B], [B]Watched Indicators[/B], etc.) now switch to dark text on the white focus highlight like other rows — fixes invisible heading text when scrolled onto.

[COLOR red][B]Version 1.8.4[/B][/COLOR]
- [B]Subtitles[/B]: [B]Show Notifications[/B] toggle under [B]Playback > Subtitles[/B] (default [B]On[/B]) — turns off [B]Local[/B] / [B]Cached[/B] / [B]Downloaded subtitles found[/B] toasts and subtitle error notices during auto-enable; subs still attach when enabled.
- [B]Subtitles[/B]: [B]Local subtitles found[/B] now shows when Kodi already has a matching embedded track at auto-enable time (still requires language match; same playback-active and superseded-thread guards as other subtitle toasts).
- [B]Subtitles[/B]: reusing a release-tagged cache file from a [B]prior[/B] play during [B]Auto Enable Subtitles[/B] shows [B]Cached subtitles found[/B]; files written during the [B]current[/B] play (e.g. alert-timing background fetch) show [B]Downloaded subtitles found[/B] instead — fixes misleading [B]Cached[/B] on first play. Alert-timing fetches stay silent; no re-download on cache hit unchanged from 1.8.3.
- [B]Playback[/B]: when a queued source fails to open (bad demux / dead link) and Red Light tries the next one, Kodi’s brief playback-failed confirm is force-closed instead of flash-clicked — quieter resolve cascade; final all-sources-failed dialog/toast unchanged.

[COLOR red][B]Version 1.8.3[/B][/COLOR]
- [B]Playback[/B]: start a new source while the current stream is [B]playing[/B] or [B]paused[/B] — scrape and resolve run normally; [B]play_file[/B] stops the current stream before the resolver opens (same replace workflow as 1.8.2 paused play). Closing the source list with [B]Back[/B] during active playback still does not reopen scrape over fullscreen.
- [B]Subtitles[/B]: same episode with the same release-tagged cache in [B]special://temp/[/B] no longer re-downloads from SubMaker or OpenSubtitles (replace play, normal play, and alert-timing fetch); no [B]Downloaded subtitles found[/B] toast on cache reuse. [B]Local subtitles found[/B] still suppressed when the embedded track already matches; superseded player threads no longer notify after play-while-playing.
- [B]Trakt[/B] widgets ([B]In Progress[/B], [B]Watched[/B], etc.): after Kodi boot, list and widget loads use the local Trakt cache until the first background [B]TraktMonitor[/B] sync finishes (or a three-minute fallback), avoiding wrong rows on a slow first paint when sync and widget refresh overlapped; manual [B]Trakt Sync[/B] clears the gate immediately.

[COLOR red][B]Version 1.8.2[/B][/COLOR]
- [B]Playback[/B]: start a new source while the current stream is [B]paused[/B] — scrape and resolve run normally and replace the paused playback when the new link plays. [B]Actively playing[/B] video is unchanged: new play requests are still ignored so episode-list [B]Back[/B] cannot rescrape over fullscreen.
- [B]Autoplay Next Episode[/B]: fixed duplicate [B]Next Up[/B] alert windows from stale player monitors after paused replace or manual play during credits — only the active playback session can show the alert or run end-of-episode autoplay handoff. Starting a different episode while a [B]Close[/B] (wait for end) autoplay is pending now cancels the stashed next-episode resolve so it cannot fire over your new play (fixes overlapping resolve/resume prompts).
- [B]Autoscrape Next Episode[/B]: stop background prep retrying every few seconds when the next-episode scrape returns no results (or autoplay stash fails) — one attempt per episode, then prep is declined for that play (fixes repeated [B]Next Episode Ready[/B] / scrape churn on Shield and similar devices). Same decline when the next episode is not aired yet (e.g. unreleased finale).
- [B]Autoscrape Next Episode[/B]: manual [B]Stop[/B] or starting another episode after [B]Next Episode Ready[/B] no longer opens stashed sources or starts background playback — autoscrape handoff only runs after natural episode end. Picking a source from the handoff list uses normal foreground resolve/fullscreen (fixes background play while browsing).
- [B]Subtitles[/B]: skip [B]Downloaded subtitles found[/B] (and other subtitle toasts) when playback has already stopped — background OpenSubtitles/SubMaker fetch could finish after an early stop and show a stale alert. Cached subtitle files are unchanged.
- [B]OpenSubtitles[/B]: [B]Check OpenSubtitles Account[/B] now shows daily downloads as [B]remaining of limit[/B] (e.g. [B]10 of 20[/B]) — refreshes quota from [B]opensubtitles.com[/B] when the login response omits counts; fixes misleading single-number or wrong-ratio display (e.g. [B]20[/B] when you had downloads left, or [B]20/20[/B]-style confusion on free accounts).

[COLOR red][B]Version 1.8.1[/B][/COLOR]
- [B]Browse menus[/B]: fixed missing icons in Estuary [B]WideList[/B] view — folder menus now use the content type Estuary expects for custom row icons; [B]Icon Wall[/B] was unaffected.
- [B]Autoscrape Next Episode[/B]: rolled back experimental handoff changes (Home priming, main-thread stash display, widget defer) that could exit fullscreen during [B]Next Episode Ready[/B] or leave orphan stash files; restored stable [B]1.8.0[/B] flow (sources after playback ends, pick > play on scrape thread). Manual playback now clears leftover autoplay stash files so starting an episode from the list cannot replay a stale next-episode resolve.
- [B]Autoplay Next Episode[/B]: fixed duplicate stash resolve when choosing [B]Play[/B] on the next-episode alert (reported OSMC/Pi “rewind” loop). Scoped to autoplay stash handoff only — no global playback properties; manual play, autoscrape, and movies unchanged.
- [B]Autoscrape Next Episode[/B]: background next-episode prep now honours [B]Check Before Full Search[/B] (e.g. AIOStreams-only prescrape) the same as manual first play — was forcing a full internal + external scrape every time.
- [B]Autoplay Next Episode[/B]: AIOStreams [B]EasyNews[/B] direct rows ([B]AIO / EN[/B]) now start from the beginning on next-episode handoff — Kodi could reopen near the end of a similarly sized prior stream and fail resolve/playback.
- [B]AIOStreams[/B]: one automatic retry on connect/read timeout (helps slow instances such as Midnight); [B]kodi.log[/B] lines now include instance name, elapsed ms, and timeout type. Also retries when [B]requests[/B] raises [B]Connection aborted[/B] on read timeout (common on Windows/Kodi). Every search uses a fresh HTTP connection ([B]Connection: close[/B]); retry waits 2s then repeats with the same [B]Results Timeout[/B] read budget.
- [B]MDBList[/B]: fixed [B]My Lists[/B] TV show lists showing wrong titles — list links now carry each list's [B]mediatype[/B] from MDBList (was defaulting to movie). Unified list items resolve TMDb ids from nested [B]show[/B]/[B]movie[/B] blocks. Liked lists and movie lists unchanged.

[COLOR red][B]Version 1.8.0[/B][/COLOR]
- [B]Settings[/B]: [B]Sources Accounts[/B] split into [B]Torrent Sources[/B] (External Scrapers and Debrid Accounts) and [B]Direct Sources[/B] (AIOStreams, EasyNews, Local Media Folders). External scraper [B]Open[/B] / Tools shortcuts unchanged.
- [B]Results[/B]: fixed [B]Scraper[/B] / [B]Group[/B] column colours on focused rows when [B]Tint Focused Result Background[/B] is enabled (grey label, white value — matches Size, Hoster, Site).
- [B]Results[/B]: [B]Tint Focused Result Background[/B] on by default for new installs (opacity remains 40%).

[COLOR red][B]Version 1.7.9[/B][/COLOR]
- [B]AIOStreams[/B]: Hoster row — [B]USENET[/B] for usenet-only [B]AIO+[/B] streams; [B]DIRECT[/B] for EasyNews and other non-debrid services (even when AIO tags the stream as usenet); [B]CACHED[/B]/[B]UNCACHED[/B] only for torrent debrid (TB, PM, RD, etc.).
- [B]Results[/B]: fixed [B]Set Filters for Sort to Top[/B] dialog title (was garbled Fen Light wording); now reads [B]Choose Sort To Top Parameters[/B].

[COLOR red][B]Version 1.7.8[/B][/COLOR]
- [B]Autoscrape Next Episode[/B] (diagnostics): [B]kodi.log[/B] lines tagged [B]NextEpResolve[/B] when background next-episode prep resolves a source — logs [B]play_type[/B], [B]background[/B], [B]self[/B]/[B]meta[/B]/[B]search_info[/B]/[B]get_season[/B] S/E, debrid hash prefix, pack flag, and resolved CDN id (for correlation with [B]VideoPlayer::OpenFile[/B]). No behaviour change.
- [B]Autoscrape Next Episode[/B]: with [B]Confirm Before Autoscrape[/B] enabled, [B]Next Episode Ready[/B] shows as soon as the background scrape finishes after you tap [B]Yes[/B] (while credits are still rolling). Without confirm, the ready toast still waits for the alert window only.
- [B]Notifications[/B]: Red Light toasts (including [B]Next Episode Ready[/B] / [B]Next Up[/B] during playback) no longer play the Kodi notification sound.
- [B]AIOStreams[/B]: when [B]Instance[/B] is [B]Custom[/B], the read-only [B]Active base URL[/B] row is hidden — only [B]Custom URL[/B] appears in that slot (no duplicate URL rows).
- [B]AIOStreams[/B]: fixed left-panel badge on custom instances still showing [B]AIO / AIOStreams[/B] — generic [B]service[/B] ids from the API are now ignored (same as addon names) so the inner debrid/indexer label ([B]PM[/B], [B]TB[/B], [B]NZB[/B], etc.) is used; [B]info[/B] blocks are merged when present.
- [B]AIOStreams[/B]: left-panel badge follows AIO Streams convention — [B]AIO / TB+[/B] cached debrid, [B]AIO / TB[/B] uncached, [B]AIO+[/B] for usenet-only streams (no debrid service).

[COLOR red][B]Version 1.7.7[/B][/COLOR]
- [B]AIOStreams[/B]: [B]Preserve Instance Sort Order[/B] ([B]Tools > Settings > Sources Accounts > AIOStreams[/B]) keeps the result order from your AIOStreams instance and skips Red Light quality, size, and audio filters for AIO rows. Enabled by default.
- [B]AIOStreams[/B]: results suffix row shows the release [B]Group[/B] (e.g. Hone, NTb, Flux) from AIOStreams filename parsing instead of the instance preset name (Viren, Kuu, etc.).
- [B]Sources[/B]: removed provider skip toasts (e.g. [B]EN used only[/B], [B]AIOStreams used only[/B]) when External Scrapers are dropped — scrape continues silently with whatever direct sources you have enabled.
- [B]AIOStreams[/B]: fixed source-search crash when [B]Preserve Instance Sort Order[/B] is on ([B]unhashable type: 'dict'[/B] during result filtering).
- [B]AIOStreams[/B]: fixed left-panel provider label on custom instances showing [B]AIO / AIOStreams[/B] — [B]streamData[/B] fields (debrid service, cached) are merged into each result and generic addon names are ignored so the inner provider (e.g. [B]PM[/B], [B]TB[/B], [B]NZB[/B]) displays correctly.

[COLOR red][B]Version 1.7.6[/B][/COLOR]
- [B]AIOStreams[/B]: re-enabled as a native Red Light source provider ([B]Tools > Settings > Sources Accounts > AIOStreams[/B]). Uses HTTP Basic Auth (UUID + password from your AIOStreams dashboard) against your chosen instance.
- [B]AIOStreams[/B]: result parsing ([B]parsedFile[/B] merge, [B]requestHeaders[/B] on direct play, P2P rows skipped). Optional title filter, prescrape, autoplay, and highlight colour unchanged.
- [B]AIOStreams[/B]: credentials and custom URL are stored per instance preset — switching between Kuu, Midnight, Viren, Yeb, or Custom restores that instance's saved UUID, password, and self-hosted URL.
- [B]AIOStreams[/B]: results list shows the inner source on the left panel (e.g. [B]AIO / TB[/B], [B]AIO / PM[/B], [B]AIO / Torrentio[/B]) instead of repeating AIOStreams.
- [B]AIOStreams[/B]: Site row shows the indexer when AIO provides it (e.g. TorrentGalaxy); Hoster shows [B]CACHED[/B] or [B]DIRECT[/B] based on the stream type.
- [B]AIOStreams[/B]: results show the active AIO instance (e.g. Midnight, Yeb) in the same suffix row as external [B]Scraper:[/B] labels.
- [B]Sources Accounts[/B]: [B]AIOStreams[/B] section moved above [B]AllDebrid[/B] (External Scrapers > AIOStreams > debrid/EasyNews providers > Local Media Folders).
- [B]AIOStreams[/B]: [B]kodi.log[/B] now includes the API error message from failed HTTP responses (e.g. [B]Search API is disabled[/B]) instead of only the status code and URL.
- [B]Sources Accounts[/B] / [B]Playback[/B]: standardised [B]Autoplay[/B] naming in settings labels and help (matches [B]Autoscrape[/B]). Prescrape help pairs [B]Autoplay Result[/B] / [B]Autoplay Cloud Result[/B] below with [B]Autoplay[/B] under [B]Playback[/B]; added missing [B]Autoplay Cloud Result[/B] row for Offcloud.

[COLOR red][B]Version 1.7.5[/B][/COLOR]
- [B]Autoplay Next Episode[/B]: fixed flashing the episode list when choosing [B]Close[/B] (or at natural episode end): stashed resolve now starts a few seconds before fullscreen closes so the resolver covers the transition instead of [B]DialogBusy[/B] (which Kodi tears down when playback stops).
- [B]Autoplay Next Episode[/B]: fixed [B]Cancel[/B] on the alert still autoplaying after the current episode ended.
- [B]Autoplay Next Episode[/B]: fixed default [B]Pause & Wait[/B]: no longer clears the stashed next-episode results; default focus no longer maps to [B]Cancel[/B].
- [B]Next Episode[/B]: fixed background next-episode prep dismissing the on-screen busy overlay while the current episode was still playing.
- [B]Autoscrape Next Episode[/B]: fixed [B]Confirm Before Autoscrape?[/B] prompt re-opening every few seconds after choosing [B]No[/B] (or letting the countdown expire): declining now cancels background prep for the rest of the current episode instead of clearing the scheduled flag and immediately asking again.

[COLOR red][B]Version 1.7.4[/B][/COLOR]
- [B]Autoscrape Next Episode[/B]: fixed [B]Confirm Before Autoscrape?[/B] prompt re-opening every few seconds after choosing [B]No[/B] (or letting the countdown expire): declining now cancels background prep for the rest of the current episode instead of clearing the scheduled flag and immediately asking again.

[COLOR red][B]Version 1.7.3[/B][/COLOR]
- [B]Set Views[/B]: [B]Next Episodes[/B] (and other episode lists such as [B]In Progress[/B]) now use your [B]Set Episodes[/B] view when [B]Set Episode Lists[/B] was never configured separately.
- [B]Autoplay Next Episode[/B] / [B]Autoscrape Next Episode[/B]: background prep again targets the literal next episode ([B]S/E+1[/B]) regardless of Trakt (or other indicator) watch history — same as Fen Light — so rewatching and online/debrid playback queue the following episode even when it is already marked watched.
- [B]Widgets[/B]: home-screen widgets now schedule a silent refresh shortly after playback updates watched/progress data, so lists such as [B]Next Episodes[/B] and [B]In Progress[/B] repopulate sooner instead of showing stale rows until the next Trakt sync. A follow-up [B]Trakt[/B]/[B]Simkl[/B]/[B]MDBList[/B] widget refresh is skipped for two minutes when that post-playback refresh already ran.
- [B]AllDebrid Cloud[/B]: broader cloud scrape — alias-aware folder matching (not just a substring of the show title), [B]magnet/files[/B] fallback when [B]magnet/status[/B] returns an empty tree, fixed empty-name cloud transfers, and honouring [B]Title Filter Off[/B] during the pre-scrape pass (history, saved links, and all completed cloud magnets) instead of only at the final filter step.
- [B]AllDebrid[/B]: removed [B]Check Cached Status (External Scrapers)[/B] — AllDebrid retired the [B]magnet/instant[/B] API and [B]magnet/upload[/B] cache probes are slow, unreliable behind VPN, and often return [B]NO_SERVER[/B]. Existing installs with the toggle on are migrated off; external scrapes with AllDebrid only behave as unchecked (same as the toggle off). [B]Offcloud[/B], [B]Premiumize[/B], [B]Real Debrid[/B] and [B]TorBox[/B] cache check is unchanged.

[COLOR red][B]Version 1.7.2[/B][/COLOR]
- [B]Download File[/B] from results now names the saved file from the chosen release (e.g. [B]Show.S05E02.720p.WEB-DL...[/B]), not the show title (e.g. [B]Show Title (2022)[/B]), when the debrid CDN URL has no readable filename (common on [B]TorBox[/B] [B]tb-cdn.st[/B] links).

[COLOR red][B]Version 1.7.1[/B][/COLOR]
- [B]TorBox[/B]: fixed [B]Download File[/B] / [B]Download Pack[/B] failing with a generic [B]Failed[/B] message while playback still worked: TorBox CDN links ([B]tb-cdn.st[/B]) now get the same [B]Referer[/B] / [B]User-Agent[/B] headers as play (the downloader previously only matched URLs containing the text [B]torbox[/B]).
- [B]Subtitles[/B] ([B]SubMaker[/B]): rejects provider error payloads ([B]SCS[/B] error stubs, HTML/JSON errors), empty or single-cue downloads, and converts valid [B]WebVTT[/B] responses to [B]SRT[/B] before attach — then tries the next ranked candidate instead of saving junk as [B].srt[/B]. Stale cached files saved as [B].srt[/B] but containing [B]WebVTT[/B] are rewritten on reuse.

[COLOR red][B]Version 1.7.0[/B][/COLOR]
- [B]Subtitles[/B] ([B]SubMaker[/B]): passes the playing release [B]filename[/B] to [B]SubMaker[/B] (Stremio extra args) so providers can hash/filename-match the stream. Prefers episode-specific release names over season-pack labels on first play. Only downloads subs in your chosen language — other languages are ignored instead of attaching the first available (e.g. Greek when English was wanted). Improved release matching when provider results use opaque [B]OpenSubtitles[/B] / [B]SCS[/B] tokens (decoded metadata and filename hints). Falls back to [B]OpenSubtitles[/B] when [B]SubMaker[/B] has no suitable subs and an account is configured; [B]OpenSubtitles[/B] search now always includes show/movie title ([B]SxxExx[/B] for TV), sends [B]OpenSubtitles[/B] file hash when the playing file is readable locally, rejects wrong-[B]IMDb[/B] hits, and prefers hash-matched ([B]sync[/B]) results before release-name scoring. Retries by title only when [B]IMDb[/B] plus title returns nothing. [B]SubMaker pick[/B] and [B]OpenSubtitles pick[/B] are logged to [B]kodi.log[/B] during playback.
- [B]Trakt[/B]: watched sync now paginates [B]sync/watched/movies[/B] and [B]sync/watched/shows[/B] through all pages (follows [B]X-Pagination-Page-Count[/B]; no early stop when a page returns fewer than 250 items). TV episode watched indicators request [B]extended=progress[/B] per Trakt’s July 2026 watched API changes.
- [B]Trakt[/B]: fixed multi-[B]Kodi profile[/B] bleed — progress, collection, and watchlist no longer follow the last authorised Trakt token from another profile. Each profile reloads its own settings and uses its own [B]traktcache.db[/B] when the active Kodi profile changes.

[COLOR red][B]Version 1.6.9[/B][/COLOR]
- [B]Subtitles[/B] ([B]SubMaker[/B]): improved release matching when provider URLs are opaque ([B]SCS[/B], [B]subDL[/B], etc.) — decodes [B]SCS[/B] token metadata, combines all item fields for scoring, matches play-filename tokens, and penalises unknown-source subs when playing [B]BluRay[/B] / [B]Remux[/B]. [B]kodi.log[/B] now lists the top ranked candidates (score, language, detected source) before the final [B]SubMaker pick[/B] (with language tag).

[COLOR red][B]Version 1.6.8[/B][/COLOR]
- [B]Subtitles[/B] ([B]SubMaker[/B] / [B]OpenSubtitles[/B]): treats [B]BluRay[/B] and [B]Remux[/B] as the same family (including remux-only stream names with no [B]BluRay[/B] tag). [B]WEB[/B] subs are penalised when playing disc/remux; cached files are stored per release type ([B]_bluray[/B], [B]_remux[/B], [B]_web[/B]) so an old [B]WEB[/B] file is not reused. Applies to on-screen auto-download and [B]Subtitles Info[/B] alert-timing fetches. [B]SubMaker pick[/B] is logged to [B]kodi.log[/B].

[COLOR red][B]Version 1.6.7[/B][/COLOR]
- [B]External Scrapers[/B]: two new [B]Search Mode[/B] options when multiple slots are enabled — [B]Series (All Slots in Order)[/B] runs every slot one after another with no early stop; [B]Primary Slot + Parallel Fallback[/B] gives slot 1 a full dedicated timeout then runs slots 2–3 in parallel with a second timeout. [B]Series (Fallback by Slot Order)[/B] remains the default.
- [B]External Scrapers[/B]: choosing any [B]Search Mode[/B] other than [B]Series (Fallback by Slot Order)[/B] shows a reminder about volunteer-run indexers and that the chosen mode may query the same indexers multiple times — [B]Series (Fallback by Slot Order)[/B] is the recommended default. [B]Series (Fallback)[/B] or [B]Continue[/B]; [B]Back[/B] keeps your current mode.
- [B]External Scrapers[/B]: fixed [B]Search Mode[/B] warning: mode buttons apply your choice reliably (confirm dialog buttons no longer share Kodi action ids). Warning text shortened so [B]Series (Fallback by Slot Order)[/B] can stay the default focus without a scrollbar.
- [B]Subtitles[/B] ([B]SubMaker[/B] / [B]OpenSubtitles[/B]): auto-download now ranks candidates against your playing release — filename similarity plus source hints ([B]WEB[/B], [B]BluRay[/B], [B]HDTV[/B], [B]proper[/B], etc.) from the chosen stream name and metadata — so WEB and BluRay subs are less likely to be mixed up.
- [B]Subtitles[/B]: fixed [B]Downloaded subtitles found[/B] toast on TV episodes: prefer-local no longer treats any embedded track as success without a language match (common on WEB-DL); subtitle apply and notifications now use the active player with episode artwork and a short fullscreen settle delay.
- [B]Skip Intro[/B]: fixed seeking backward when [B]IntroDB[/B] returns bogus near-zero timings (e.g. [B]0s > 5s[/B]): short segments are rejected like embedded chapters, and skip no longer seeks if you are already past the intro end.
- [B]Tools > Database & Cache Maintenance[/B]: added [B]Clear Subtitles Cache[/B] (removes cached [B]SubMaker[/B] / [B]OpenSubtitles[/B] files from Kodi temp); maintenance actions regrouped and alphabetized where order is not otherwise fixed.
- [B]Autoplay Next Episode[/B]: fixed after [B]Local Media Folders[/B] / NAS playback: background prep now targets the literal next episode ([B]S/E+1[/B]) instead of skipping to the next unwatched episode on Trakt (or local) indicators — so rewatching from your library still queues the following episode. Prep skip reasons (series end, no unwatched next, metadata missing, etc.) are logged to [B]kodi.log[/B]. Next-episode prep is no longer cancelled early when playback ends while the background scrape thread is still running.
- [B]Autoplay Next Episode[/B]: fixed alert: [B]Close[/B] dismisses the [B]Next Episode[/B] window and keeps the current episode playing until it finishes; [B]Play[/B] still starts the next episode immediately. [B]Close[/B] was incorrectly treated the same as [B]Play[/B] since [B]1.6.0[/B].
- [B]Next Episodes[/B]: fixed ([B]TV[/B] list and widgets): Trakt watchlist / favourites entries with no watch history no longer resolve to [B]episode 2[/B] when [B]Next Episodes Method[/B] is [B]Last Aired[/B] — watchlist rows use [B]episode 0[/B] (start from the beginning) and must not be advanced before the first unwatched lookup.

[COLOR red][B]Version 1.6.6[/B][/COLOR]
- [B]Random Lists[/B]: fixed dynamic list names (browse paths and widgets): [B]random.build_*[/B] folder URLs again include [B]name=[/B] so Red Light can set the matching [B]Window.Property[/B] for [B]$INFO[Window.Property(redlight.[NAME OF LIST])][/B]. Legacy paths saved without [B]name=[/B] (since [B]1.4.3[/B]) still resolve the property key from list [B]mode[/B]/[B]action[/B] when possible.
- [B]Trakt[/B]: fixed watched sync clearing local TV/movie watched rows when Trakt returns no data or the API request fails (e.g. server error during widget refresh after an update); the last good cache is kept instead.

[COLOR red][B]Version 1.6.5[/B][/COLOR]
- [B]Random Lists[/B]: fixed dynamic widget labels (e.g. [B]Random Because You Watched[/B], random genres/providers): browse and widget paths again include the list [B]name[/B] so Red Light can set the matching [B]Window.Property[/B] for [B]$INFO[Window.Property(redlight.[NAME OF LIST])][/B]. Widgets saved from [B]Random Lists[/B] since [B]1.4.3[/B] may need recreating once so the path includes [B]name=[/B].

[COLOR red][B]Version 1.6.4[/B][/COLOR]
- [B]External Scrapers[/B]: switching [B]Search Mode[/B] from [B]Series (Fallback by Slot Order)[/B] to [B]Parallel (All Enabled Slots)[/B] shows a reminder about shared volunteer-run indexers and responsible use ([B]Keep Series[/B] is the default button).

[COLOR red][B]Version 1.6.3[/B][/COLOR]
- [B]External Scrapers[/B]: [B]Search Mode[/B] now defaults to [B]Series (Fallback by Slot Order)[/B] for new installs — runs one scraper slot at a time instead of hitting indexers in parallel across every enabled slot. Existing saved settings are unchanged. Switch to [B]Parallel (All Enabled Slots)[/B] under [B]Sources Accounts[/B] when you want all enabled scrapers at once.

[COLOR red][B]Version 1.6.2[/B][/COLOR]
- [B]Tools[/B] and [B]Options[/B]: [B]External Scraper(s) Settings[/B] opens a picker when more than one scraper module is configured (lists each slot by name; disabled slots marked). One module configured opens that module's settings directly. Per-slot [B]Open[/B] under [B]Sources Accounts[/B] is unchanged.
- [B]Context Menu[/B]: [B]External Scraper(s) Settings[/B] on movie, TV show, season, and episode rows (after [B]Play Options[/B] where shown). Same picker behaviour. Toggle visibility under [B]Settings > General > Context Menu[/B]. [B]Options[/B] on TV shows and seasons includes the same entry.

[COLOR red][B]Version 1.6.1[/B][/COLOR]
- [B]External Scrapers[/B] ([B]test[/B]): [B]Search Mode[/B] under [B]Sources Accounts[/B] when two or more slots are enabled — [B]Parallel (All Enabled Slots)[/B] runs every enabled slot together (2 enabled = 2 parallel, 3 enabled = 3 parallel; same as 1.6.0). [B]Series (Fallback by Slot Order)[/B] runs one slot at a time and tries the next only when the previous slot returned no torrents. Setting hidden with a single enabled slot. [B]ScrapeExternalWave[/B] lines in [B]kodi.log[/B] when [B]Series[/B] is active.
- [B]External Scrapers[/B]: [B]Choose Module[/B] list marks the current slot assignment with a red indicator and [B]Current selection for slot N[/B] subtitle; list opens focused on that row.

[COLOR red][B]Version 1.6.0[/B][/COLOR] — [I]Development line: multiple external scrapers[/I]
- [B]External Scrapers[/B]: up to [B]3 scraper module slots[/B] under [B]Sources Accounts[/B]. Assign a different package per slot (e.g. Gears, Magneto, Coco), enable or disable each slot, and reorder with [B]Move Up[/B]. Enabled slots run in [B]parallel[/B] with one shared [B]Results > Timeout[/B] budget; results merge into a single deduped list (hash-level). External cache keys are namespaced per module so provider labels cannot collide. Existing single-module installs migrate automatically into slot 1.
- [B]External Scrapers[/B]: [B]Choose Module[/B] hides scrapers already assigned to another slot so the same package cannot be selected twice; a guard on save shows a clear message if a duplicate is attempted.
- [B]External Scrapers[/B]: progress bar thread labels show [B]provider [module][/B] when multiple packages are active. Global [B]Limit Concurrent Threads[/B] applies to external provider threads. Source results and [B]Sources Info[/B] show [B]Scraper: module[/B] (e.g. Gears, Magneto, Coco) on external torrent rows so you can see which slot pulled each result. Slot [B]Open[/B], [B]Move[/B], and [B]Clear[/B] rows hide when that slot is disabled.
- [B]Upgrade[/B]: fixed upgrade from pre-1.6.0: [B]SyncSettings[/B] inserted empty slot defaults after the scraper migration ran, overwriting slot 1; migration now runs after new rows are added and re-runs when slot 1 is still empty but the legacy [B]external_scraper.module[/B] value exists (repairs installs already hit by the bug).

[COLOR red][B]Version 1.5.9[/B][/COLOR]
- [B]Skip Intro[/B]: [B]Prompt[/B] — one dialog per play with a [B]15[/B]-second countdown; timing out no longer opens a second prompt (logs [B]Intro skip: timed out[/B]).
- [B]Skip Intro[/B]: fixed [B]Prompt[/B] on resume — waits for playback position to settle (e.g. [B]Unpause Jumpback[/B] / Kodi bookmark seek) before prompting, and skips the prompt when the resume point is already past the intro.
- [B]Resume[/B]: source [B]Resume[/B] / [B]Start Over[/B] / [B]Cancel[/B] prompt (when [B]Auto Resume[/B] is off): [B]15[/B]-second dot countdown before defaulting to [B]Resume[/B] (was [B]10[/B] seconds).

[COLOR red][B]Version 1.5.8[/B][/COLOR]
- [B]TMDb Helper[/B]: fixed (and other external players): [B]autoplay=true[/B] / [B]autoplay=false[/B] in the playback URL is now honoured regardless of Red Light global [B]Auto Play[/B]. [B]Red Light - Auto Play[/B] resolves the top result; [B]Red Light - Source Select[/B] always opens the source list. In-addon [B]Play[/B] without an [B]autoplay[/B] URL flag still follows [B]Playback > Auto Play[/B] as before.

[COLOR red][B]Version 1.5.7[/B][/COLOR]
- [B]Skip Intro[/B]: fixed [B]Prompt[/B] — the 10-second countdown timing out no longer counts as [B]No[/B] — the prompt can appear again while the intro is still playing. [B]Yes[/B] now seeks immediately (same monitor pass) and verifies the player position on Android; failed or rejected seeks log to [B]kodi.log[/B]. [B]Yes[/B] shortly after the intro end still works via the grace window (previously blocked by an early past-segment check).
- [B]Next Episodes[/B]: fixed widgets sometimes listing episodes you had already watched: [B]Last Watched[/B] mode picked a random watched row per show (broken [B]GROUP BY[/B] query) instead of the most recently played episode; [B]Last Aired[/B] mode could surface the next slot after your highest watched episode even when that slot was already marked watched; watched checks now normalise season/episode types so Trakt/local rows match reliably.

[COLOR red][B]Version 1.5.6[/B][/COLOR]
- [B]Sources[/B]: fixed source search running an EasyNews-only early pass when [B]Check Before Full Search[/B] is off for EasyNews, Real Debrid cloud, and Local Media Folders: all enabled providers now scrape together in one pass. A stale default forced prescrape on every search, and [B]Autoplay Result[/B] could still trigger prescrape even when [B]Check Before Full Search[/B] was disabled. [B]Start Full Scrape[/B] now appears only when prescrape actually ran or external scrapers are still pending. Each scrape logs [B]ScrapePrescrape[/B] to [B]kodi.log[/B] with prescrape state and per-provider [B]Check Before Full Search[/B] flags for diagnosis.
- [B]Skip Intro[/B]: fixed showing [B]Playback Percentage[/B] in Settings until you opened the list and picked a value (display name was wired to alert-timing options on load).
- [B]Also On Plays You Start Yourself[/B] (under [B]Skip Intro[/B]) now defaults to on for new installs; existing saved settings are unchanged.

[COLOR red][B]Version 1.5.5[/B][/COLOR]
- [B]Skip Intro[/B]: own setting under [B]Playback > Episodes[/B] (not under Autoplay / Autoscrape). [B]TheIntroDB[/B] / [B]IntroDB[/B] before embedded chapters; bogus or near-zero chapter pairs ignored. [B]Prompt[/B] keeps the full countdown if playback buffers; still seeks if you tap [B]Yes[/B] shortly after the intro window ends. Prefetched during background next-episode scrape and while resolving sources when [B]Also On Plays You Start Yourself[/B] is on. Logs [B]Intro skip: no timing[/B] with [B]play_type[/B] when nothing usable is found. Optional [B]Also On Plays You Start Yourself[/B] for library / source-list plays. [B]Auto[/B] skips without asking on Autoplay, Autoscrape, or Random Continual next episode — plays you start yourself still prompt when [B]Auto[/B] is selected.
- [B]Autoplay[/B] / [B]Autoscrape Next Episode[/B]: new [B]IntroDB Info[/B] alert timing ([B]TheIntroDB[/B] credits then [B]IntroDB[/B] outro) for pre-credits alerts, with percentage fallback; prefetched during background scrape. [B]Subtitles Info[/B] is hidden from alert timing lists until a SubMaker manifest URL and/or OpenSubtitles account is configured.
- [B]Resolve[/B]: fixed resolve cancel (BACK): backing out while the stream is still opening no longer double-stops the player or hangs Kodi waiting for demuxer threads to exit. Autoplay next-episode chain uses the same light stop path before and during resolve.
- [B]Autoplay Next Episode[/B]: fixed with [B]IntroDB Info[/B] alert timing: the [B]Next Up[/B] window or notification no longer fires as soon as background scrape finishes when the current episode still has time left (buffering no longer bypasses the wait). IntroDB credits are prefetched at playback start and timing is deferred until credits data is available.
- [B]Subtitles Info[/B] alert timing: [B]Subtitle credits entry[/B] and the alert pop now use separate anchors — credits entry tracks last spoken dialogue; the alert scans the full tail after dialogue for music/SFX/credits-roll cues (not only the final ~65 seconds). When dialogue ends long before EOF, timing uses that gap instead of defaulting to ~20 seconds before the end. Episode-matched fetched subs are preferred over Kodi's still-loaded previous-episode subs. Settings descriptions note that subtitle timing follows the subtitle file, not the on-screen credits roll.
- [B]Autoplay Next Episode[/B]: fixed background prep: scrape runs on a worker thread while the playback monitor keeps updating timing; the [B]Next Up[/B] alert now opens during fullscreen playback when the alert window is reached (not from the scrape thread after playback has stopped). Stashed results start resolve only after you choose [B]Play[/B]. Background prep is scheduled once per episode (no repeated scrape loop after fast prep). Choosing [B]Play[/B] or [B]Close[/B] persists the stashed scrape and hands off to the normal [B]playback_prep[/B] resolve path on the plugin thread; the current episode keeps playing until the resolve UI is up, then uses a light stop (no flash back to the episode list).

[COLOR red][B]Version 1.5.4[/B][/COLOR]
- [B]Skip Intro[/B]: ignore bogus embedded chapter pairs (e.g. [B]0s > 4s[/B]) so [B]TheIntroDB[/B] / [B]IntroDB[/B] can supply real intro timing; [B]Prompt[/B] still seeks if you tap [B]Yes[/B] shortly after the intro window ends. [B]Prompt[/B] stays open for the full countdown even if playback buffers.

[COLOR red][B]Version 1.5.3[/B][/COLOR]
- [B]Skip Intro[/B] now applies to the [B]Autoscrape Next Episode[/B] chain as well as [B]Autoplay Next Episode[/B] (same [B]Off[/B] / [B]Auto[/B] / [B]Prompt[/B] setting under [B]Playback > Episodes[/B]).
- [B]Subtitles Info[/B] alert timing: treats music/SFX subtitle cues (e.g. [B]exciting music[/B]) as non-dialogue, and when dialogue ends long before EOF anchors the pop on the first music cue in the final ~65 seconds of the file (instead of the last cue deep in the credits roll). Fixed erroneous clamp to ~20 seconds before EOF that could fire the alert at end credits. Short tails (under 60s after last spoken line) are unchanged.

[COLOR red][B]Version 1.5.2[/B][/COLOR]
- [B]Autoplay Next Episode[/B]: optional [B]Skip Intro[/B] under [B]Playback > Episodes[/B] — [B]Off[/B], [B]Auto[/B], or [B]Prompt[/B]. Applies when the next episode starts from the autoplay chain (not the first episode you chose). Uses embedded intro chapters when present, otherwise [B]TheIntroDB[/B] then [B]IntroDB[/B]. [B]Prompt[/B] uses the same playback overlay as [B]Autoscrape Next Episode[/B] confirm (episode art, top band, Yes/No, 10-second countdown). Fails silently when no data is available.
- [B]Playback Options[/B]: [B]Select Source[/B], [B]Rescrape & Select Source[/B], and other scrape paths that pass [B]Auto Play[/B] off now open the source list instead of jumping straight into playback when [B]Autoplay Cloud Result[/B] (debrid) or [B]Autoplay Result[/B] (EasyNews, AIOStreams, Local Media Folders) is enabled under [B]Sources Accounts[/B]. No change if those prescrape autoplay toggles are off. Normal [B]Play[/B] and prescrape autoplay when enabled are unchanged; cloud scraping is unchanged.

[COLOR red][B]Version 1.5.1[/B][/COLOR]
- [B]Open Red Light Settings…[/B]: fixed from [B]Configure[/B] / [B]Add-on settings[/B] when opened outside the add-on (add-on list context menu or sideblade): settings bootstrap and language invoker handling now match [B]Tools > Settings[/B].
- [B]Shortcut Folders[/B] and main menu edit: [B]Move[/B] is hidden when the folder or menu has only one item (nothing to reorder). If move is triggered anyway, Red Light exits quietly instead of showing a misleading [B]Cancelled[/B] notification.
- [B]People[/B]: fixed and [B]EasyNews Images[/B] search history not updating after a new search until you left and re-opened the history list: refresh the history view when the results window closes, and stop caching search history folders to disc.
- [B]Sources Accounts[/B]: clearer [B]Check Cached Status (External Scrapers)[/B] help for [B]AllDebrid[/B] and [B]Real Debrid[/B] — neither exposes cached status for external scrapers; when enabled, Red Light filters torrents via third-party cache check(s). The scrape may take longer and you will see fewer links.

[COLOR red][B]Version 1.5.0[/B][/COLOR]
- [B]Autoplay[/B] / [B]Autoscrape Next Episode[/B]: removed the extra [B]Next Up: Scraping[/B] toast at background prep start. [B]Autoscrape[/B] shows one [B]Next Episode Ready[/B] alert when results are ready (before the sources list); [B]Autoplay[/B] keeps one [B]Next Up[/B] alert or the autoplay dialog. Background scrape start is still logged for diagnostics.
- [B]Autoscrape Next Episode[/B]: background prep starts earlier (minimum 90s scrape headroom) so slow external scrapes can finish before the pre-credits alert when [B]Results > Timeout[/B] is low. [B]Subtitles Info[/B] waits briefly for the alert-timing subtitle fetch before falling back to percentage; [B]Chapter Info[/B] refreshes when chapter markers become available. Next-episode timing, prep schedule, and ready-state are logged to [B]kodi.log[/B] for diagnosis.
- [B]Autoplay[/B] / [B]Autoscrape Next Episode[/B]: [B]Subtitles Info[/B] alert timing now alerts at last dialogue ([B]Subtitle credits entry[/B]) when credits run after the last spoken line, otherwise at least 20 seconds before EOF; background prep starts [B]pop_at + pipeline[/B] earlier so scrape finishes before the alert.
- [B]Random Shortcut Folders[/B]: fixed opening a random folder (or using one as a widget) no longer spins forever when it contains random movie/TV lists such as [B]Movies Random Genres[/B] or [B]Movies Random Decades[/B]. Lists added via [B]Add Content[/B] now keep their random behaviour; widget paths that omit the [B][RANDOM][/B] suffix still resolve the folder.
- [B]MDBList[/B] / [B]Simkl[/B]: when [B]service.mdblist-scrobbler[/B] or [B]script.simkl[/B] is installed, enabled, and authorised, Red Light no longer duplicates playback scrobble/progress API calls during watch (same deferral pattern as [B]Trakt[/B] with [B]script.trakt[/B]). Manual manager actions, list sync, and background monitors are unchanged.

[COLOR red][B]Version 1.4.9[/B][/COLOR]
- [B]Force MDBList Sync[/B]: fixed crashing with a Python error during watched sync, which left [B]Watched[/B] and [B]In Progress[/B] menus empty even when MDBList lists worked.
- [B]MDBList[/B] [B]Watched[/B], [B]Recently Watched[/B], and [B]In Progress[/B] menus refresh from MDBList when opened ([B]Watched Indicators[/B] = [B]MDBList[/B]). Playback progress sync uses paginated [B]sync/playback[/B] so resume data is not truncated on large libraries.
- [B]Force Trakt Sync[/B]: fixed , [B]Force Simkl Sync[/B], and [B]Force MDBList Sync[/B]: the progress dialog now always closes when sync finishes, fails, or throws an error (e.g. provider API outage) instead of staying on screen.
- [B]Trakt[/B]: fixed trakt sync caching error-page HTML (e.g. Cloudflare blocks) into [B]traktcache.db[/B] when [B]api.trakt.tv[/B] was unreachable; invalid responses are rejected and a poisoned activity row is cleared. If sync still fails, use [B]Clear Trakt Cache[/B] once Trakt is reachable again.
- [B]Clear Trakt Cache[/B] now shows a [B]Trakt Cache Cleared[/B] notification like [B]Clear Simkl Cache[/B] and [B]Clear MDBList Cache[/B] (no duplicate generic [B]Success[/B] toast).

[COLOR red][B]Version 1.4.8[/B][/COLOR]
- [B]Subtitles Info[/B] alert timing: when an alert uses [B]Subtitles Info[/B], Red Light silently downloads a subtitle file in the background ([B]SubMaker[/B] first, [B]OpenSubtitles[/B] fallback when configured) — see [B]Playback > Subtitles[/B]. Targets just before credits for [B]Autoplay[/B]/[B]Autoscrape Next Episode[/B] and [B]Credit Stingers[/B]; background scrape starts earlier so results are ready before the alert. [B]Auto Enable Subtitles[/B] is separate: on-screen subs only. [B]SubMaker Manifest URL[/B] is always shown under [B]Subtitles[/B] (no need to turn on auto-enable first). [B]Prefer Local Subs[/B] and [B]Subtitle Language[/B] apply to local, SubMaker, and OpenSubtitles sources.
- [B]Credit Stingers[/B] (movies): alert fires about three minutes earlier than the configured timing source so the heads-up lands sooner (typical gap vs next-episode percentage on ~1 hour titles).
- [B]Autoplay[/B] / [B]Autoscrape Next Episode[/B]: increased background scrape headroom ([B]Results > Timeout[/B] plus 30 seconds, plus dialog time when applicable) so scrape and confirm dialogs can finish before the pre-credits alert on slower setups.
- [B]OpenSubtitles[/B]: optional subtitle provider under [B]Playback > Subtitles[/B] — free [B]opensubtitles.com[/B] account (username and password; Red Light includes the OpenSubtitles API key, with an optional field for your own consumer key). Choose [B]OpenSubtitles[/B] as [B]Auto Enable Subtitle Source[/B] for downloaded on-screen subs during playback, or use it as the fallback for [B]Subtitles Info[/B] alert timing when [B]SubMaker[/B] is unavailable. [B]Check OpenSubtitles Account[/B] shows your remaining 24h download quota (about 20 downloads on free accounts); [B]Revoke OpenSubtitles[/B] clears saved username, password, and login token.
- [B]Settings Manager[/B]: fixed boolean toggles sometimes showing the label with no on/off control when the saved value was [B]Off[/B]. Opening [B]Red Light Settings[/B] refreshes values from [B]settings.db[/B] so toggles match your saved choices.

[COLOR red][B]Version 1.4.7[/B][/COLOR]
- [B]SubMaker[/B]: skip [B]Sub Toolbox[/B] HTML entries, match [B]eng[/B] (and other ISO codes) to your chosen language name, and reject non-subtitle downloads so playback and [B]Subtitles Info[/B] timing use a real .srt file. [B]Manifest URL[/B] is trimmed on save and read (avoids trailing-space 404s).
- [B]Language Invoker[/B]: Simpler style [B]AddonXMLCheck[/B] on service startup and manual toggle — your saved setting is written to [B]addon.xml[/B], then Red Light restarts with a short toast ([B]Restarting Red Light[/B]; no post-update confirm dialog, no [B]Load Profile[/B], no full skin reload). [B]Tools > Toggle Language Invoker[/B] keeps a confirm when you change it yourself; turning invoker back [B]On[/B] still warns about device instability.
- [B]Startup[/B]: faster boot after the first sync: [B]SyncSettings[/B] skips the heavy [B]settings.db[/B] pass when nothing changed; [B]BootstrapSettings[/B] runs only when window properties, migration, or deferred setup need it. A repo upgrade still runs a full sync once, then returns to the quiet path.
- [B]Settings[/B]: settings DB upgrade widget refresh: [B]ReloadSkin[/B] after migration runs on Windows only when new user-facing settings rows were added (internal [B]migration.*[/B] keys alone no longer trigger it). Android TV gets [B]UpdateLibrary[/B] without a full skin reload.

[COLOR red][B]Version 1.4.6[/B][/COLOR]
- [B]Autoplay[/B]/[B]Autoscrape Next Episode[/B]: fixed with [B]Subtitles Info[/B] alert timing: the next-episode window no longer opens at the start of playback when subtitles run to the end of the episode. Timing now uses seconds remaining after the last subtitle cue, and retries when subtitles become available later in playback.

[COLOR red][B]Version 1.4.5[/B][/COLOR]
- [B]Playback alerts[/B]: playback alerts ([B]Credit Stingers[/B], [B]Autoplay Next Episode[/B], [B]Autoscrape Next Episode[/B]): [B]Alert Timing Source[/B] dropdown replaces the chapter-only toggle - [B]Off[/B], [B]Chapter Info[/B], or [B]Subtitles Info[/B]. [B]Subtitles Info[/B] reads timing from active subtitle files (Kodi player path, [B]A4KSubtitles[/B] temp, [B]SubMaker[/B], sidecar .srt, and other downloads during playback). Existing [B]Off[/B]/[B]Chapter[/B] settings are preserved on upgrade.
- [B]Service[/B]: improved background service shutdown during repo update (especially on Windows): cancels pending widget refresh alarms and avoids loading the main addon while Kodi disables Red Light for an update.
- [B]Shortcut Folders[/B]: fixed opening a shortcut folder no longer errors (folder name was dropped from the navigation URL).
- [B]Menus[/B]: fixed custom menu editor remove and reorder now use the item position (menu names are no longer in folder URLs) and the menu reloads after a change instead of showing [B]Success[/B] with no update.
- [B]Language Invoker[/B]: after an update, addon.xml is restored from your saved setting during service startup with a confirm dialog and Kodi profile reload - not from home-screen widgets. No disable/enable cycle or widget refresh on that path. Manual toggle uses the same profile reload.

[COLOR red][B]Version 1.4.4[/B][/COLOR]
- [B]Tools > Import & Export[/B]: separate zip backup/restore for Red Light settings (custom menus, personal lists, discover lists, list images, and all addon settings).
- [B]Import & Export[/B]: kodi favorites import/export: copy or merge the profile [B]Favourites.xml[/B] file (export is a literal copy; import offers merge by action or full replace with backup of the current file); warns that favorites only work for the add-on or library path that created them; restart Kodi to refresh the [B]Favorites[/B] menu.
- [B]Tools > Import & Export[/B]: [B]Red Light Favorites & History[/B] JSON backup/restore (renamed from [B]Favorites & Progress[/B]) - exports favorites plus local in-progress and watched rows when [B]Watched Indicators[/B] is [B]Red Light[/B]; import merge keeps furthest progress, newer watched dates, and local-only items; replace clears each section present in the file; older backups without watched still import.
- [B]Import & Export[/B] browse: cancelling folder or file browse no longer continues to confirm; export and import folder browse open at your default; after a successful export you can save the chosen folder as your default; [B]Import & Export Directory[/B] under [B]Settings > General[/B]; default backup folder is addon profile [B]Import Export[/B] (special://profile/.../Import Export/) on all platforms when unset; settings backup preview/import text clarifies that [B]settings.db[/B] includes debrids, EasyNews, and TMDb lists as well as Trakt, Simkl, and MDBList.
- [B]Authorisation[/B]: fixed auth QR codes sometimes missing or blank on device authorise dialogs (Trakt, Simkl, MDBList, debrids, EasyNews, TMDb lists, log uploader).
- [B]Custom Sort to Top[/B]: fixed [B]HDR[/B] preference no longer matches [B]HDrip[/B] releases ([B]HDrip[/B] was treated as [B]HDR[/B] because of substring matching in source info tags).
- [B]Tools > Set Views[/B]: fixed saving a view no longer errors (view name was dropped from the save action URL).
- [B]Language Invoker[/B]: after an update or settings import, your saved choice is written back into addon.xml the first time you open Red Light (disable/enable when the value changes). Widgets refresh lightly only - not a full skin reload.

[COLOR red][B]Version 1.4.3[/B][/COLOR]
- [B]Navigation[/B]: improved browse menu navigation: [B]Back[/B] and [B]Exit[/B] return to the correct parent menu ([B]Movies[/B], [B]TV Shows[/B], [B]Anime[/B], [B]My Lists[/B], [B]MDBList[/B], [B]Trakt[/B], [B]TMDb[/B], genres, and more) with list view preserved.
- [B]Navigation[/B]: refined menu folder links for smoother navigation through [B]Trending[/B], watchlists, collections, and other browse shortcuts.

[COLOR red][B]Version 1.4.2[/B][/COLOR]
- [B]MDBList[/B]: optional watched status provider (API key auth) with sync, scrobble/progress, watchlist, library (collection), dropped, and list browse under [B]My Lists > MDBList Lists[/B].
- [B]MDBList Manager[/B] on movie/TV rows (watch/unwatch, reset scrobble, watchlist add/remove) when authorised.
- [B]Settings: Meta Accounts > MDBList[/B]; [B]My Data > MDBList Cache[/B] (sync interval, force sync, clear cache).
- [B]Settings: Meta Accounts > Simkl > clear cache[/B]; [B]Trakt > clear cache[/B].
- [B]Play Random[/B] (continuous): episode handoff timing now follows your autoscrape/autoplay next-episode window for smoother transitions between episodes.

[COLOR red][B]Version 1.4.1[/B][/COLOR]
- [B]Autoscrape confirm dialog[/B]: fixed countdown expiry no longer shows a redundant [B]Cancel Autoscrape[/B] notification.

[COLOR red][B]Version 1.4.0[/B][/COLOR]
- [B]Autoscrape confirm dialog[/B]: fixed 10-second countdown restored to original behaviour - press [B]Yes[/B] during the countdown to scrape; if it reaches 0 (or playback ends) the dialog closes and autoscrape is cancelled.
- [B]Update[/B]: fixed addon update resetting [B]Language Invoker[/B] and icon: saved settings are written back into addon.xml after a repo update (no notification or forced trip to [B]Home[/B]).

[COLOR red][B]Version 1.3.9[/B][/COLOR]
- [B]Next Episode[/B]: fixed autoscrape/autoplay binge playback: next-episode prep no longer blocks scheduling the following episode while the current next one is still playing.
- [B]Still Watching[/B]: fixed and [B]Autoplay Next Episode[/B] dialogs: countdown timers restored (no longer depend on Kodi player infolabels or active playback).

[COLOR red][B]Version 1.3.8[/B][/COLOR]
- [B]Autoscrape confirm dialog[/B]: fixed uses the same layout as the [B]Autoplay Next Episode[/B] alert (poster, dim band, heading, Yes/No buttons); waits for your choice instead of auto-closing.
- [B]Next Episode[/B]: fixed autoscrape/autoplay binge playback: next-episode prep runs in the background, waits for valid duration before triggering, and avoids stopping a stream that is still opening.

[COLOR red][B]Version 1.3.7[/B][/COLOR]
- [B]Results[/B]: optional [B]Tint Focused Result Background[/B] (off by default) tints the focused row using your provider/quality highlight color; [B]Results Background Opacity[/B] (20%-80%) when enabled. Credits and with thanks: Polgara01 (#13).

[COLOR red][B]Version 1.3.6[/B][/COLOR]
- [B]My Lists[/B]: fixed failing to open when a saved menu still used the old navigator.my_content route (alias plus one-time menu migration).
- [B]Simkl[/B]: single [B]Simkl Lists[/B] entry under [B]My Lists[/B] (removed duplicate [B]Simkl My Content[/B] menu).
- [B]Simkl[/B]: [B]Force Simkl Sync[/B] now shows a success notification like [B]Force Trakt Sync[/B].
- [B]Search[/B]: main [B]Search[/B] menu keeps [B]Search Trakt User Lists[/B] only (no Simkl entry; Simkl list search remains under [B]Simkl Lists[/B]).
- [B]Trakt Lists[/B] (personal): [B]Search My Trakt Lists[/B] filters your own lists by name.
- [B]Autoscrape confirm dialog[/B]: fixed compact top-right card without the full-width dim tint band.
- [B]Settings[/B]: fixed settings bootstrap / [B]Remake Settings Cache[/B] error that could leave the settings UI on a white background.

[COLOR red][B]Version 1.3.5[/B][/COLOR]
- [B]Simkl Lists Manager[/B]: dynamic add/remove for [B]Plan to Watch[/B], [B]Watching[/B], [B]Completed[/B], [B]On Hold[/B], and [B]Dropped[/B] (from cached list data); shortcuts to open status lists; lighter refresh after list changes (no full sync on every edit).
- [B]Simkl[/B] lists: [B]Search My Simkl Lists[/B] finds titles across your status lists (includes anime).
- [B]Simkl[/B] lists: new [B]Simkl Lists[/B] sort under [B]Contents Sort Order For Simkl Lists[/B] ([B]Plan to Watch[/B], [B]Watching[/B], [B]Completed[/B], [B]On Hold[/B], [B]Dropped[/B]), including [B]Release Date (asc)[/B].
- [B]Simkl[/B]: [B]Import Trakt to Simkl[/B] under [B]Meta Accounts[/B] (official Simkl import page via QR or link); prompt when switching [B]Watched Status Provider[/B] to Simkl while Trakt is authorised.
- [B]Trakt Collection[/B] and [B]Watchlist[/B]: added [B]Date Added (asc)[/B] and [B]Release Date (asc)[/B] sort options (earliest air/release or added date first).
- [B]Meta Accounts[/B]: [B]Trakt Authorise[/B] now explains when custom Client ID/Secret are rejected; new [B]Test Client Credentials[/B] action under Trakt.
- [B]Meta Accounts[/B]: [B]TMDb API[/B] key entry trims whitespace, warns when a v4 Read Access Token is pasted into the v3 API Key field, and [B]Test API Key[/B] checks for the same mistake.
- [B]Play Random[/B]: fixed auto-starts a source when global [B]Autoplay Episodes[/B] is off (random play keeps its own autoplay path; continual random chains in the background).
- [B]Autoscrape[/B]: confirm-before-scrape prompt now uses an [B]Autoscrape Next Episode[/B] heading and aligns top-right to match the post-scrape flow.
- [B]Prescrape[/B]: debrid cloud scrapers (e.g. Premiumize) no longer run again during the full scrape when they already ran in prescrape.
- [B]Prescrape[/B]: playback failure no longer restarts the full scrape when prescrape already returned results (avoids duplicate Premiumize cloud passes).
- [B]Prescrape[/B]: removed empty-prescrape notice from the results list and autoplay toast (search continues with other scrapers automatically).
- [B]EasyNews[/B]: [B]Autoplay Result[/B] queue continues to the next hit after a failed stream instead of stopping at the first failure.
- [B]Resolve queue[/B]: failed playback no longer closes the resolver between attempts (same walk-the-list behaviour for EasyNews, cloud library, and external debrid).
- [B]EasyNews[/B]: [B]Autoplay Result[/B] (per-provider prescrape toggle) now starts playback like debrid cloud autoplay.
- [B]Playback[/B]: show the playback-failed message once per resolve attempt (no duplicate alerts on EasyNews retries or end-of-queue fallback).
- [B]Playback[/B]: failed dialog notes when an external source was unchecked (cache check was off) and may not be on your debrid.

[COLOR red][B]Version 1.3.4[/B][/COLOR]
- [B]Simkl[/B]: PIN OAuth under [B]Meta Accounts[/B]; optional [B]Watched Status Provider[/B] prompt on authorise (Trakt or Simkl); revoke falls back to the other service or [B]Red Light[/B] when the revoked account was the active provider.
- [B]Simkl[/B] lists (parallel to Trakt): [B]Plan to Watch[/B], [B]Watching[/B], [B]Completed[/B], [B]On Hold[/B], [B]Dropped[/B] under [B]My Content[/B]; [B]Random Simkl Lists[/B]; [B]Simkl Lists Manager[/B] on context menu and [B]Options[/B].
- [B]Simkl[/B] sync: background [B]SimklMonitor[/B], [B]simklcache.db[/B], scrobble/progress/watched when Simkl is the [B]Watched Status Provider[/B]; [B]Clear Simkl Cache[/B] in maintenance.
- [B]Watched Status Provider[/B] picker: lists [B]Red Light[/B], [B]Simkl[/B], and [B]Trakt[/B] alphabetically (values unchanged).
- [B]Context Menu[/B]: [B]TMDb Lists Manager[/B] appears above [B]Personal Lists Manager[/B]; existing order migrates on upgrade.
- [B]Trakt Cache[/B]: [B]Force Trakt Sync[/B] for a full re-sync (parallel to [B]Force Simkl Sync[/B]).
- [B]Most Watched[/B]: when Simkl is the [B]Watched Status Provider[/B], [B]Movies[/B]/[B]TV[/B]/[B]Anime Most Watched[/B] use Simkl trending charts; otherwise Trakt (unchanged).
- [B]Tools > Red Light Import & Export[/B]: scrollable preview dialogs for long backup summaries; progress sections name the active Trakt or Simkl provider when local progress is skipped.
- [B]Anime Providers[/B]: fixed empty lists when browsing [B]Anime[/B] by streaming provider.

[COLOR red][B]Version 1.3.0 - 1.3.3[/B][/COLOR]
- [B]Releases[/B]: test releases for 1.2.9x and 1.3.4.

[COLOR red][B]Version 1.2.9l[/B][/COLOR]
- [B]Sources Browse[/B]: after browse playback, return to the sources results list without re-scraping.
- [B]Sources Browse[/B]: close the results list when playback starts so fullscreen is not blocked.
- [B]Sources Browse[/B]: clear the video playlist before generic browse play so stale episode entries do not interrupt pack playback; playback failure shows a toast; empty browse lists do not fall back to full magnet resolve/play.
- [B]Select dialog[/B]: initialise control_id so keyboard/remote selection before a list click does not break browse pickers.

[COLOR red][B]Version 1.2.9k[/B][/COLOR]
- [B]Sources Browse[/B] (pack): fix playback when picking a file - defer TorBox/Offcloud browse cleanup until after playback starts; close the results list from the window handler when play begins.
- [B]Sources Browse[/B] (single-file torrent): picking a file from the list now plays (cancel still returns to sources); only marked packs skip the picker when there is one file; empty lists on non-pack sources still do not fall back to autoplay.
- [B]Sources Browse[/B]: shared empty-list messages for [B]Browse[/B]/[B]Download[/B] (TorBox uses [B]No video file(s) yet[/B] when listing is empty); resolve picked files via direct URLs where possible; notify when a picked file cannot be resolved; non-pack browse no longer falls back to full magnet resolve after a failed file pick (avoids surprise playback).
- [B]Sources Browse[/B] (verify): drop the extra [B]Source viable[/B] OK dialog; seeing the file list (or picking a file) is enough confirmation and avoids focus bouncing back into [B]Browse[/B].

[COLOR red][B]Version 1.2.9j[/B][/COLOR]
- [B]Prescrape[/B] ([B]Check Before Full Search[/B]): restore early cloud results with [B]Run External Scraper Search[/B] when prescrape finds hits but does not autoplay; [B]No Cloud Results Found[/B] notice only when prescrape truly found nothing, with a notification when [B]Autoplay[/B] continues to external search.
- [B]Prescrape[/B]: empty-cloud notice subtitle says [B]Results from other enabled scrapers[/B] (not results below) when global [B]Autoplay Movie[/B]/[B]Episode[/B] continues to external search.
- [B]Playback[/B]: [B]Autoplay Episode[/B]/[B]Movie[/B] off no longer autoplays external torrent results; per-provider [B]Autoplay Cloud Result[/B] still autoplays cloud prescrape hits when the global setting is off.
- [B]Playback[/B]: [B]Autoplay Cloud Result[/B] now applies on full-scrape cloud hits (not only the prescrape phase), uses provider autoplay settings instead of the active-scraper list, and no longer clears cloud autoplay when falling through to external; failed cloud autoplay shows cloud results instead of jumping straight to external.
- [B]Playback[/B]: prescrape no longer blocks cloud scrapers from the full scrape when they returned no hits; play_source again autoplays cloud hits from per-provider settings at play time (restores pre-1.2.9j behaviour while keeping global [B]Autoplay Episode[/B]/[B]Movie[/B] gating external only).
- [B]Playback[/B]: [B]Autoplay Cloud Result[/B] now switches to a fresh resolver dialog after prescrape (scraper UI was blocking resolve) and falls back to the cloud results list if resolve fails.
- [B]Playback[/B]: when [B]Check Before Full Search[/B] finds no cloud results but [B]Autoplay[/B] is on and external scrapers are enabled, external results now autoplay instead of always opening the results list (cloud autoplay > external autoplay cascade).
- [B]Autoplay Next Episode[/B]: release the resolve lock once playback has started so the next episode can scrape in the background while the current episode is still playing; background next-episode searches bypass the resolve/sources busy gate that previously aborted silently.
- [B]Autoplay Next Episode[/B]: keep the current episode playing until the [B]Next Episode[/B] alert is answered (resolve no longer stops playback before the window); the alert dialog no longer crashes when the player is idle and runs its timer on a background thread so [B]Cancel[/B] / [B]Play[/B] / [B]Close[/B] work reliably.
- [B]Sources Browse[/B] (cached pack): close the results window before the pack picker; skip reopening results after pack playback; ignore playback.media while video is already playing (fixes episode browse [B]Back[/B] rescraping over fullscreen).
- [B]Sources Browse[/B]: restore [B]Browse[/B] on all cached debrid torrents (not only packs) to verify link viability.
- [B]Sources Browse[/B]: TorBox and Offcloud no longer leave browse transfers in cloud when [B]Store Resolved to Cloud[/B] is off (Real Debrid, AllDebrid, and Premiumize already avoided this).

[COLOR red][B]Version 1.2.9i[/B][/COLOR]
- [B]Sources Browse[/B] (cached pack): close the results list before the pack file picker and playback so video is not hidden behind the list; [B]Back[/B] during episode browse no longer restarts scraping when playback is already active.
- [B]Sources Browse[/B]: limited to pack results only (single-file torrents use click-to-play); empty pack lists fall back to the same resolve path as clicking the source; one-file packs play without an extra picker step.

[COLOR red][B]Version 1.2.9h[/B][/COLOR]
- [B]Tools[/B]: [B]Red Light Favorites & Progress Import & Export[/B] - backup Red Light favorites and local progress to JSON; import with merge (keep furthest progress, keep local-only items) or replace per section in the file.
- [B]Settings: Import & Export Directory[/B] under [B]General[/B], default folder for Red Light favorites and progress backup file browse. On Android, folder browse for non-empty download/backup paths starts at local root so parent navigation is not blocked (a Kodi browser quirk).
- [B]Add to Cloud[/B]: Real Debrid and AllDebrid now show [B]No URL Found for Add to Cloud[/B] (matching [B]Download Pack[/B]) when the magnet has nothing to send, instead of [B]Failed[/B].
- [B]Resolve lock[/B]: fixed [B]Resolve or playback in progress[/B] blocking new play attempts after cancelling resume, backing out of resolve, or other early exit from playback (busy flag was not always cleared).
- [B]Resolve lock[/B]: stale resolve busy flag is cleared automatically when nothing is playing and no stream is opening.
- [B]Playback[/B]: debrid / cloud direct links no longer reopen at Kodi's saved URL resume point (near end of file); Red Light [B]StartPercent[/B] resume is still used when set.
- [B]Playback[/B]: failed resolve/play from source search now shows a [B]Playback Failed[/B] dialog instead of failing silently (closes progress window first; uses Kodi native OK dialog so it is not blocked by the resolve UI thread).
- [B]Prescrape[/B] ([B]Check Before Full Search[/B]): choosing [B]Run External Scraper Search[/B] no longer shows a second OK confirm - the list row is the action; external scrapers start immediately.

[COLOR red][B]Version 1.2.9g[/B][/COLOR]
- [B]Download File[/B]: fixed immediate [B]No URL found[/B] when resolving external debrid links (Sources resolve flags were unset on the lightweight downloader path).
- [B]Download Pack[/B]: Real Debrid empty/failed pack lists no longer throw on add-magnet failure (was showing generic [B]Error[/B] instead of the shared [B]No URL found for Download[/B] message used by AllDebrid); RD add-magnet failures now clean up the temp torrent before returning.
- [B]Autoplay[/B]: show [B]No Results Found[/B] when nothing is playable (e.g. only uncached external torrents, with [B]Include Uncached[/B] on or off) instead of closing silently; same dialog when autoplay/background resolve exhausts all links.

[COLOR red][B]Version 1.2.9f[/B][/COLOR]
- [B]TorBox[/B] and [B]Offcloud[/B]: [B]Include Uncached Results (External Scrapers)[/B] shown only when [B]Check Cached Status[/B] is enabled, matching Premiumize (1.2.9e). Include uncached has no effect while cache check is off.

[COLOR red][B]Version 1.2.9e[/B][/COLOR]
- [B]Intended functionality can[/B]: have unintended consequences! Reverted 1.2.6 cancel navigation: stopping playback or resolve during source selection closes the progress dialog and returns to the episode/results browser instead of reopening the sources list.
- [B]Resolve cancel[/B]: Fixed occasional FenLightAM behaviour where backing out of resolve causes Kodi crash.
- [B]Scrape cancel[/B]: Changed FenLightAM behaviour, backing out of the progress dialog now aborts the search, releases the busy lock immediately, and suppresses late results.
- [B]Prescrape[/B] ([B]Check Before Full Search[/B]): renamed [B]Run Full Source Search[/B] to [B]Run External Scraper Search[/B] in results; confirm prompt asks [B]Run external torrent scrapers?[/B] - cloud/EasyNews prescrape already ran; the follow-up step is external torrent scrapers only.
- [B]Prescrape[/B] external follow-up: other enabled cloud/debrid/folder scrapers no longer run again when continuing to external torrent search (only prescrape results plus external scrapers are collected).
- [B]Prescrape[/B] external follow-up: refreshes quality filters, result sort order, and debrid priority ranks before merging external torrent results.
- [B]Prescrape[/B] empty cloud: no confirmation popup when [B]Check Before Full Search[/B] finds nothing - automatically continues with other enabled scrapers and shows a [B]No Cloud Results Found[/B] notice above the results list.
- [B]AllDebrid[/B]: [B]Check Cached Status (External Scrapers)[/B] toggle under [B]Sources Accounts[/B], matching Real Debrid, TorBox, Premiumize, and Offcloud (uses existing AD_check cache API).
- [B]Premiumize[/B]: [B]Include Uncached Results (External Scrapers)[/B] toggle under [B]Sources Accounts[/B], matching TorBox and Offcloud (uncached rows in main list; selecting adds to Premiumize cloud). Shown only when [B]Check Cached Status[/B] is enabled.
- [B]External cache check defaults[/B]: [B]Check Cached Status (External Scrapers)[/B] now defaults to on for Premiumize, Offcloud, and TorBox; Real Debrid and AllDebrid remain off by default. Existing installs: one-time migration sets PM/OC/TB cache check on when still off.
- [B]Kodi Log Uploader[/B]: dismiss busy spinner before the Pastebin QR countdown so [B]Back[/B] can cancel the dialog; close the progress window when exiting early or when the timer finishes; QR screen now runs a 2 minute countdown (was 50 seconds) and auto-closes when it reaches zero.

[COLOR red][B]Version 1.2.9d[/B][/COLOR]
- [B]In Progress[/B] lists: when [B]Watched Indicators[/B] are [B]Trakt[/B] and Trakt is authorised, refresh from Trakt each time a list is opened, as well as when empty. [B]Movies[/B] and [B]In Progress Episodes[/B] pull playback progress; [B]TV Shows In Progress[/B] pulls watched episode state. Episodes with resume at or below 1% are excluded, matching movies.

[COLOR red][B]Version 1.2.9c[/B][/COLOR]
- [B]External cache check[/B]: per-provider toggles under each Debrid account (Real Debrid, TorBox, Premiumize, Offcloud). TorBox/Offcloud include-uncached moved to their Debrid sections. Existing settings migrate automatically. Premiumize cache check wired for external scrapers.
- [B]Movies In Progress[/B]: fixed empty when using Trakt watched indicators: playback progress is saved locally on stop, and Trakt sync no longer wipes those rows while waiting for Trakt to catch up. If Red Light has no progress rows, the list refreshes from Trakt when authorised.

[COLOR red][B]Version 1.2.9b[/B][/COLOR]
- [B]Filter Results by Name[/B]: EasyNews and [B]Local Folders[/B] use exact show-title match before SxxExx (e.g. Wings no longer matches Behind The Wings). Debrid cloud scrapers, use S/E match plus optional title filter; turn off for S/E-only recall.
- [B]Rescrape Actions[/B]: clearer labels ([B]Offer Full Search After Early Results[/B], [B]Disabled External Providers[/B], [B]Real Debrid Only[/B] for no cache check). [B]Rescrape Actions[/B] settings screen shows [B]Action[/B] and [B]Order[/B] only; full help in Settings description. [B]Check Before Full Search[/B] / [B]Run Full Source Search[/B] remain independent of rescrape full_scrape.
- [B]Rescrape Actions[/B]: setting label shortened to: [B]Rescrape With No Cache Check (RD Only)[/B].
- [B]Rescrape With Episode Group[/B]: fixed crashing when a custom group was already applied (another old FenLightAM bug).

[COLOR red][B]Version 1.2.9a[/B][/COLOR]
- [B]Offcloud[/B] support (ported from 1.3.x): QR OAuth auth, [B]My Services Cloud Storage[/B] and [B]History[/B], cloud scrape, external cache check, resolve, packs, highlight colour. [B]Include uncached results (Offcloud)[/B] under [B]External Scrapers[/B] (default Off). [B]Notify when added torrents are ready in Cloud[/B]. [B]Clear Offcloud Cache[/B] in cache tools.
- [B]Sources Accounts[/B]: provider sections reordered alphabetically (AllDebrid, EasyNews, Offcloud, Premiumize, Real Debrid, TorBox; [B]Local Media Folders[/B] last). [B]External Scrapers[/B] debrid toggles ordered Offcloud, Real Debrid, TorBox when each provider is enabled.
- [B]My Services[/B]: same alphabetical provider order (AllDebrid, EasyNews, Offcloud, Premiumize, Real Debrid, TorBox).
- [B]Custom Sort to Top[/B]: fixed for movies: [B]Set Filters to Top[/B] now promotes matching rows to the top of each quality band (4K, 1080p, etc.) instead of the 1.3.x tie-breaker that only reordered identical quality/size/provider rows. SD HDR no longer sorts above 1080p Remux. Debrid cloud results keep pref order when quality limits apply.
- [B]External Scrapers[/B]: setting label shortened to [B]Check for cached status of Results (RD)[/B]. Description text amended.

[COLOR red][B]Version 1.2.9[/B][/COLOR]
- [B]Scrape Progress[/B]: fixed scrape progress window staying open after a search returns no results (including unreleased episodes).
- [B]When a source[/B]: search finds nothing, now shows a Red Light style [B]No results found[/B] dialog after the scrape progress window closes, with the Kodi dialog as a fallback if the skin window cannot open.

[COLOR red][B]Version 1.2.8[/B][/COLOR]
- [B]Playback[/B]: fixed progress / Trakt scrobbling (and Simkl, MDbList, etc.) not updating for TorBox and TorBox Cloud sources: 1.2.7 played those links with a bare Kodi player, skipping Red Light’s playback monitor and script.trakt.ids.

[COLOR red][B]Version 1.2.7[/B][/COLOR]
- [B]Service (AM Lite)[/B]: optional wait for Account Manager Lite Trakt sync only when script.module.acctmgr is installed; runs in the background so startup is not blocked. Fixes “Unknown addon id script.module.acctmgr” log spam and scrape/playback failing to start when AM Lite is not installed (regression from 1.2.6).

[COLOR red][B]Version 1.2.6[/B][/COLOR]
- [B]TorBox Cloud (source search)[/B]: fixed intermittent empty results - folder list cache call was invalid.
- [B]Premiumize Cloud[/B]: faster, more reliable scrape (no early exit before internal_results).
- [B]External[/B]: [B]Check for cached status[/B] is Real Debrid only - AllDebrid removed from this check (AD API changes; prior AD cache logic caused worse results). With the setting off, TorBox/Premiumize no longer call checkcached unless [B]Include uncached TorBox[/B] is on. Torrent host threads get a short grace period after timeout.
- [B]Cancel during playback/resolve[/B]: returns straight to the sources results list; progress dialog closes faster on cancel.
- [B]Cancel during resolve[/B]: stops retrying other sources and returns to the sources list instead of the results/episode browser.
- [B]Premiumize/TorBox cloud[/B]: episode files use exact S/E matching end-to-end; title filter no longer uses pack-range episode patterns (fixes episode 1 listing episode 2).
- [B]TorBox cloud scrape[/B]: restored 1.2.5 search speed by using cached mylist during source search (live bypass_cache only for Cloud Storage browse). Keeps RD-style title+year folder prefilter and per-folder fetch cap so large libraries do not hang.
- [B]TorBox[/B]: Cloud Storage loads all torrent/usenet/webdl lists in parallel (faster, full list on open); only caches a complete fetch for quick Back navigation. Partial API failures are not cached and show a notification.
- [B]TorBox[/B]: Fixed Cloud Storage folder browse on Kodi 21 (removed deprecated setInfo; use name/file_id from API). Cloud Storage list loads sequentially in the UI to avoid plugin thread errors; source search still uses parallel mylist fetch.
- [B]Sources[/B]: fixed debrid cloud (RD/PM/AD/TB) always appearing at the bottom when [B]Show Results at Top[/B] is off: quality limits re-appended all cloud results after non-cloud links; they are now re-sorted into the normal provider/quality order unless [B]Show Results at Top[/B] is enabled for that scraper.
- [B]Premiumize Cloud[/B]: scrape via folder/list (same as Cloud Storage browser) instead of item/listall only - fixes empty results when files live under folders such as My Files, and is much faster on large mixed libraries. Filter-by-name off applies to title rules only; episodes still match S/E, movies still match year.
- [B]Sources[/B]: fixed source search hang when debrid cloud and External scrapers are both enabled.
- [B]TorBox[/B]: fixed torBox download saving files as the hashtag, instead of the filename.
- [B]Other small fixes[/B]

[COLOR red][B]Version 1.2.5[/B][/COLOR]
- [B]Results > Choose Rescrape Actions[/B]: fixed crashing (KeyError) after [B]Start Full Scrape[/B] was added: order labels and the [B]Set Order[/B] dialog now support six priority slots (0–5).
- [B]Scrape Progress[/B]: fixed progress bar stuck on [B]EXTERNAL[/B] after debrid/EasyNews scrapers finish: the [B]External[/B] scrapers module name was treated as a pending internal provider, so the dialog waited for the full [B]Results Timeout[/B] even when no torrent hosts were still running.
- [B]External scraper phase taking[/B]: fixed external scraper phase taking much longer than Red Light 1.1.8: since 1.2.2, Debrid Cloud scrapers blocked the Coco/Magneto/Gears External module until every cloud API call finished (1.2.4 added up to 25s more). Cloud scrapers still start first when enabled, but External runs in parallel again like 1.1.8.

[COLOR red][B]Version 1.2.4[/B][/COLOR]
- [B]TorBox Cloud[/B]: cloud search now respects the Results Timeout budget and skips non-matching folders earlier, so a large TorBox library no longer blocks the entire source search when nothing matches.
- [B]Source search[/B]: internal scrapers finish (or time out at 25s) before the external scraper phase starts, so external no longer sits at a red progress bar waiting on slow internal/cloud scrapers.
- [B]Real Debrid[/B]: fixed Real Debrid (and other debrid) cloud results ignoring [B]Show Results at Top[/B]: quality limits were re-appending all cloud results to the bottom after they had already been sorted to the top.
- [B]AllDebrid external cache check[/B]: fixed allDebrid external cache check returning inconsistent results: API failures no longer mark every torrent as cached, hash matching is normalized to lowercase, invalid hashes are skipped, and instant/ready/cached flags are parsed more reliably from the magnet/instant API.

[COLOR red][B]Version 1.2.3[/B][/COLOR]
- [B]Widgets[/B]: fixed skin widgets (e.g. [B]Movies > Trending[/B]) staying empty after a settings DB upgrade: widget calls no longer block on settings bootstrap, failed Trakt list fetches are not cached, and widgets are silently reloaded with [B]ReloadSkin[/B] only when sync_settings actually migrates or repairs an existing [B]settings.db[/B] (not on every boot).
- [B]Performance[/B]: fixed slow startup and browsing after the 1.2.2 boot-crash fix: settings reads no longer hit SQLite on every call once properties are loaded, the database is not synced twice on boot, path-existence checks are skipped on the read path, and default-settings metadata is cached in memory.
- [B]Widgets[/B]: fixed widget and skin list loads hanging after 5 seconds (or failing) after opening Red Light: the font/skin background thread now runs only in the service process, not in the plugin invoker where it blocked every widget exit.
- [B]Widgets[/B]: fixed widgets staying empty after the above change — widget calls no longer bulk-load settings into window properties (which could fail silently); they read from a warmed in-memory DB cache instead when properties are not yet loaded.

[COLOR red][B]Version 1.2.2[/B][/COLOR]
- [B]Kodi boot crash after[/B]: fixed kodi boot crash after upgrading from older versions when legacy [B]settings.db[/B] contained invalid values. On boot the service migrates/sanitizes the database first, then loads settings into window properties after the GUI is up (so widgets and skin labels work). Skin/XML updates still run when Red Light is first opened.

[COLOR red][B]Version 1.2.1[/B][/COLOR]
- [B]Prescrape[/B]: fixed regression — [B]Start Full Scrape[/B] no longer appears when only EasyNews or debrid cloud results are shown unless [B]Check Before Full Search[/B] is enabled or external scrapers still need to run. Debrid cloud still runs before external scrapers when the provider is enabled.
- [B]TorBox Cloud[/B]: episode search only returns files matching the requested season/episode (no longer lists every file in a season pack when the folder title matches).
- [B]Start Full Scrape[/B]: clean second-pass scrape - resets state, applies [B]Results[/B] limits/filters and external scraper settings. Configurable under [B]Tools > Settings > Rescrape Actions > Start Full Scrape (After Prescrape)[/B] (default [B]Prompt[/B]).
- [B]Meta Accounts[/B]: [B]TMDb Lists[/B] read access token is user-configurable (with restore default and test), same pattern as Trakt client credentials and the [B]TMDb API[/B] key.
- [B]External scrapers[/B]: AllDebrid cached-result filter now uses the AllDebrid instant API (per hash) instead of MediaFusion only, so [B]Check for cached status (RD & AD)[/B] returns AD results again when torrents are on your account.
- [B]External scrapers[/B]: fixed debrid cache check skipping re-query after a previous "not cached" result and failing to update when cache status changed (first pass empty, auto second pass).
- [B]External scrapers[/B]: AllDebrid instant check uses GET magnet/instant (documented API), accepts instant/ready flags, and does not mark every torrent uncached when the API call fails.

[COLOR red][B]Version 1.2.0[/B][/COLOR]
- [B]TorBox Cloud[/B]: debrid cloud results (TorBox, RD, PM, AD) bypass Results quality/HDR/size filters - your cloud library is always shown.

[COLOR red][B]Version 1.1.9[/B][/COLOR]
- [B]TorBox Cloud[/B]: Search Cloud Storage now runs before external scrapers when enabled (no separate Check Before Full Search required).
- [B]TorBox Cloud[/B]: improved cloud matching and fresh mylist/file lookup during source search.
- [B]AIOStreams[/B]: temporarily disabled in this release (no source searches or settings UI) while integration is fixed.

[COLOR red][B]Version 1.1.9~alpha[/B][/COLOR]
- [B]AIOStreams[/B]: optional native source provider ([B]Tools > Settings > Sources Accounts > AIOStreams > Enable[/B]). Uses HTTP Basic Auth username and password from your AIOStreams dashboard.
- [B]AIOStreams[/B]: instance picker and [B]Active base URL[/B] row show each preset with its full domain (Kuu, ElfHosted, Yeb, Midnight, or Custom).
- [B]AIOStreams[/B]: [B]Check Before Full Search[/B] and [B]Autoplay Result[/B] toggles (same pattern as EasyNews and Debrid cloud scrapers).
- [B]AIOStreams[/B] runs alongside Debrid, EasyNews, and external scrapers; P2P results are ignored.
- [B]AIOStreams[/B]: optional result highlight colour under [B]Tools > Settings > Results[/B] (provider highlight mode).
- [B]Results[/B]: removed obsolete Easy Debrid and Off Cloud highlight colours.

[COLOR red][B]Version 1.1.8[/B][/COLOR]
- [B]Fix rare scrape-screen[/B]: lockup caused by thread exhaustion ("can't start new thread") by falling back to serial provider processing when new threads cannot be spawned.
- [B]Sources results window[/B]: now fails safely if initialisation errors occur, preventing stuck scrape dialogs that required a Kodi restart.
- [B]Tools > Database & Cache Maintenance[/B]: added separate [B]Clear EasyNews Scrape Cache[/B] and [B]Clear EasyNews Search History[/B] actions.
- [B]Clear All Cache (Excluding Favorites)[/B] now also clears EasyNews search history.
- [B]Tools > Database & Cache Maintenance[/B]: removed obsolete [B]Clear Easy Debrid Cache[/B] entry from menu and clear-all paths.
- [B]EasyNews[/B]: added [B]Exclude Adult Results[/B] toggle ([B]Safe Search[/B]) in settings.
- [B]Settings Manager[/B]: slowed help text autoscroll repeat timing to 7 seconds.

[COLOR red][B]Version 1.1.7[/B][/COLOR]
- [B]Subtitles[/B]: [B]SubMaker[/B] now supports selectable [B]Subtitle Language[/B] in [B]Settings[/B] (default [B]English[/B]).
- [B]Subtitles[/B]: Now a separate section in [B]Settings > Playback[/B].

[COLOR red][B]Version 1.1.6[/B][/COLOR]
- [B]Subtitles[/B]: [B]SubMaker[/B] added to [B]Subtitles[/B]. [B]Auto Enable Subtitles[/B] (default [B]Off[/B] - as before). [B]Local Subtitles[/B] or [B]SubMaker[/B] (default [B]Local[/B]). [B]To use SubMaker you need to enter your own SubMaker Manifest URL (https://submaker.elfhosted.com).[/B] Default language [B]English[/B]. When [B]SubMaker[/B] is selected, optional [B]Prefer Local Subs If Available[/B] (default [B]On[/B]).

[COLOR red][B]Version 1.1.5[/B][/COLOR]
- [B]Real Debrid[/B]: Limit parallel magnet resolves to 3 (semaphore) to reduce rate limiting when multiple sources resolve at once.
- [B]Real Debrid[/B]: Optional [B]Free active download slot[/B] setting (default [B]Off[/B]). When enabled, removes one active torrent before adding a new one if RD already has 5 active downloads.
- [B]Fix [B]Autoplay Next[/B]: episode[/B] failing when the next episode scrape finishes after the current episode has ended.
- [B]Expand [B]EasyNews[/B] settings[/B]: help text for [B]Refresh Credentials[/B], [B]Fallback Search[/B], [B]Search Width[/B], and [B]Check Before Full Search[/B].
- [B]Settings Manager[/B]: pin [B]INFO[/B] help panel below the settings list (matches list slide) and top-align description text for consistent placement.
- [B]Settings Manager[/B]: fix [B]INFO[/B] text autoscroll (fixed textbox height; faster scroll timing).

[COLOR red][B]Version 1.1.4[/B][/COLOR]
- [B]TorBox[/B]: [B]Include Uncached Results (TorBox)[/B] added under [B]External Scrapers[/B] (default [B]Off[/B]). When enabled, Uncached TorBox sort with the same provider priority as Cached TorBox (grey highlight).
- [B]TorBox[/B]: [B]Notify when added torrents are ready in Cloud[/B] added in [B]Sources Accounts[/B] (default [B]On[/B]).
- [B]TorBox[/B]: Added [B]History[/B] under [B]My Services[/B].
- [B]TorBox[/B]: Fixed [B]Download Pack[/B] not saving files locally.
- [B]AllDebrid, Premiumize, Real Debrid[/B]: and TorBox [B]History[/B] menus now fetch fresh data each time they are opened.
- [B]AllDebrid[/B]: [B]My Services[/B] refresh on open. Cloud browse shows video files only.
- [B]AllDebrid[/B]: Fixed [B]Cloud Storage[/B] crash.
- [B]Premiumize[/B]: Fixed blank [B]History[/B] or [B]No transfers[/B] when transfers exist. Show [B]In-Progress Transfers[/B] and clearer notifications when the list is empty or fails.

[COLOR red][B]Version 1.1.3[/B][/COLOR]
- [B]TorBox[/B]: Fixed [B]Download Pack[/B] picker failing with [B]No URL found for Download[/B] due to a provider name mismatch in the pack file picker.

[COLOR red][B]Version 1.1.2[/B][/COLOR]
- [B]Trakt[/B]: Collection, Watchlist, Personal/Liked lists, List items, Favorites, Watched History, and related calls now paginate (250 items per request) so lists above the old 1,000 cap will load in full. Ready for Trakt's lower per-page API limits.
- [B]Trakt[/B]: after updating from a previous version, run [B]Tools > Database & Cache Maintenance > Clear Trakt Cache[/B]. Otherwise cached lists may still show the old 1,000 item limit until the cache expires.

[COLOR red][B]Version 1.1.1[/B][/COLOR]
- [B]EasyNews[/B]: [B]Search Width[/B] ([B]Focused[/B] / [B]Balanced[/B] / [B]Broad[/B]) to run wider Solr queries; optional refresh credentials, include unknown-language results when filtering, and fallback alias/season searches when the primary query returns nothing.
- [B]EasyNews[/B]: clarified [B]Filter Results by Name[/B] help text in [B]Settings Manager[/B].
- [B]Trakt[/B], [B]Personal[/B] and [B]TMDb Lists[/B]: Removing an item that is not in the list dialog standardised and now shows [B]Item not in list[/B], not [B]Failed[/B] or [B]Error Removing from List[/B].
- [B]TMDb Lists[/B]: FenLightAM bugs fixed.

[COLOR red][B]Version 1.1.0[/B][/COLOR]
- [B]Fixes[/B]: a small fix.

[COLOR red][B]Version 1.0.9[/B][/COLOR]
- [B]Icons[/B]: fixed online icons not loading on update. Please restart Kodi — Python keeps old code in memory on a simple update.

[COLOR red][B]Version 1.0.8[/B][/COLOR]
- [B]Icons[/B]: menu and UI icons (flags, posters, etc.) load from GitHub (slimmer plugin). Addon icon and fanart remain bundled in the addon.
- [B]Authorisation[/B]: backing out of Trakt or TMDb authorisations no longer show a failure message (same as Debrid services). Real errors still notify.

[COLOR red][B]Version 1.0.7[/B][/COLOR]
- [B]TorBox[/B]: authorisation now uses a QR code or auto copy/paste into browser (on same device), instead of an API.
- [B]Real Debrid[/B]: fixed copy/paste into browser (broken in FenLightAM). Clipboard copy now uses stdin instead of shell echo.
- [B]Authorisation[/B]: now using unique QR image filenames to avoid stale/cached QR codes.
- [B]Authorisation[/B]: TinyURL now uses HTTPS and validates response.
- [B]Authorisation[/B]: backing out of Debrid authorisations no longer show a failure message. Real errors still notify.
- [B]Authorisation[/B]: wording in the Debrid authorisation dialogs rewritten and consistent, tailored to what each service supports.

[COLOR red][B]Version 1.0.6[/B][/COLOR]
- [B]TorBox Cloud[/B]: fixed Cloud Storage files not playing (broken in FenLightAM).
- [B]Send URL to WebDL[/B]: added to [B]My Services > TorBox[/B].
- [B]Fanart[/B]: default Red Light fanart changed from local to special path.

[COLOR red][B]Version 1.0.5[/B][/COLOR]
- [B]Fixes[/B]: a few small fixes.

[COLOR red][B]Version 1.0.4[/B][/COLOR]
- [B]External Scrapers[/B]: fixed [B]Open External Scraper Settings[/B].

[COLOR red][B]Version 1.0.3[/B][/COLOR]
- [B]TorBox Cloud[/B]: fixed Cloud Storage (manually added web-links).
- [B]Database[/B]: fixed database error on first run.

[COLOR red][B]Version 1.0.2[/B][/COLOR]
- [B]Playback[/B]: fixed external playback error. Apologies, an oversight.

[COLOR red][B]Version 1.0.1[/B][/COLOR]
- [B]Trakt[/B]: fixed list contents not appearing from Trakt list search. Clear Trakt cache if you experienced this issue.

[COLOR red][B]Version 1.0.0[/B][/COLOR]
- [B]Menus[/B]: redundant options removed from Tools and Settings menus.
- [B]Maintenance[/B]: code cleaned up.

[COLOR red][B]Version 0.0.1[/B][/COLOR]
- [B]Release[/B]: initial release.