Changelog

Releases of PD-Codes/MediaForge, pulled from GitHub and cached here — so every MediaForge install doesn't have to ask GitHub itself.

v1.5.0

v1.5.0 2026-08-09
  • feat: merge catalogue entries that share a TMDB id into one row with a pill per source
  • feat: pick which source a merged row downloads from, with a preferred-source default
  • feat: show a live match count on each status chip and disable empty ones
  • feat: add lots of missing things
  • feat: add A-Z jump rail, status filters and sorting to the Catalogue page
  • feat: rebuild the catalogue action bar so it stays out of the way on phones
  • feat: give the catalogue details modal a backdrop header like the download modal
  • feat: let third-party catalogues supply their own source colour
  • feat: add a Catalogue page with the full A-Z list of AniWorld and SerienStream [BETA]
  • feat: wire filmo.to, 9anime and aniwaves through search, home feed, auto-sync and monitoring and the hole system
  • feat: add aniwaves.ru series provider with EchoVideo hoster extractor #24
  • feat: add 9anime.or.at series provider with MegaPlay hoster #24
  • feat: add Filmo (filmo.to) movie provider and mint-based hoster resolution [Feature - Provider]: Filmo.to #27
  • feat: reactions, revocable invites, and a working service worker
  • feat: "because you watched" row, and shared skeleton/empty states
  • feat: scoped API keys and a generated OpenAPI document
  • feat: real dry run, plus provider contract tests
  • feat: external worker host, and enforce library scoping
  • feat: wire rules, language profiles and maintenance windows into the download path; add error explanations, bulk actions and settings profiles
  • feat: operations, audit log, groups, rules and language profiles
  • feat: schema migrations, audit log, groups and worker heartbeats
  • feat: module-registered content sources reach the search bar
  • fix: some fixes
  • fix: use a pooled requests session for TMDB instead of a new TLS handshake per call
  • fix: correct the relative import depths in catalogue_worker — bulk queue and auto-sync never ran
  • fix: treat a merged row as queued, synced or selected when any of its sources is
  • fix: load app.js on the Catalogue page so the library check has anything to check against
  • fix: make the catalogue status chips filter for a category instead of hiding it
  • fix: recompile the German catalog — a merge reinstated an older .mo missing 14 strings
  • fix: lots of fixes
  • fix: card layout, module settings fields, dynamic search, cross-language duplicate detection; feat: empty-room reaper, gap dismiss, filter dropdowns
  • fix: render the missing per-row source label in the merged catalogue list
  • fix: show the A-Z rail drag bubble (offsetParent is null while hidden)
  • fix: lock body scroll while the catalogue details modal is open
  • fix: six reported bugs across home feed, module settings, design defaults and the module modal
  • fix: fix style in search suggestions
  • fix: worker status, module deactivation, full audit trail and UI defects
  • fix: worker status, module deactivation, full audit trail and UI defects
  • fix: some modal fixes from previous feat addings
  • fix: Show third-party modules' sites in the DNS test, not just UpTime
  • fix: make live module registration immune to concurrent requests
  • refactor: drop the dead in-memory catalogue cache now that the store owns it
  • refactor: split the 6939-line db.py into a domain package
  • perf: halve the catalogue id backfill's concurrency and delay its start by 90s
  • perf: cache the per-entry library check instead of rescanning on every keystroke
  • perf: throttle the catalogue list re-render on window resize
  • chore: refresh catalogue lists once a day instead of twice, on a background timer
  • docs: document register_catalogue's color parameter and the new page controls
  • style: fix bottom of overview cards
  • test: run the bulk worker for real instead of stubbing start_job
  • test: catch relative imports that point outside the package or at nothing
  • test: cover row merging, source picking and both urls of a merged pair
  • test: guard that app.js is loaded before catalogue.js

v1.4.3

v1.4.3 2026-08-04
  • feat: adding image hoster allow to module function
  • fix: some bugfixes in uptime monitoring system
  • fix: stop leaking the install id from the settings page
  • style: List View Fixes
  • style: wrap the library path in the download modal instead of clipping it
  • security: fix docker resolve the HIGH findings that failed the Trivy gate
  • security: fix some issues with certificates

v1.4.2

v1.4.2 2026-08-04
  • feat: adding new functions to start page 2, adding more functions to jellyfin/plex connectivity (incl. an "Your Profile"), fix some bugs, adding Feature from #26
  • feat: add PyPI dependency preflight before a docker code update
  • feat: add POST /api/update/docker-preflight (admin only)
  • feat: add detail.docker_code_update telemetry data point
  • feat: hide the release banner when that version is already installed
  • feat: offer a retry button and readable reasons when comic preparation fails
  • feat: announce versions with a release banner and a collapsible changelog box
  • feat: link release posts straight to the settings updates tab
  • feat: show a non-dismissible home page modal for important dev infos
  • fix: bound every generated SQL list to a fixed size & issues on Main Menu Shortcuts
  • fix: mobile list rows, integration badges, drop duplicate Auto-Sync path control
  • fix: many style fixes, separation for Instance and profile settings and a fix for #26
  • fix: refuse a docker code update on a dev install even when no channel is sent
  • fix: reject docker code updates on the dev channel and on read-only venvs
  • fix: re-read the cache sizes when the library settings tab is opened
  • fix: distinguish an unmeasurable cache from an empty one in the settings
  • fix: let cached covers revalidate so clearing the cache actually takes effect
  • fix: rebuild comic cover URLs after preparation instead of reusing a cached 404
  • fix: bump the cover cache-buster even when no card was marked stale
  • fix: send no-store on a cover that does not exist yet, for comics and books
  • fix: try every available extractor instead of only the first installed one
  • fix: fall back to another tool when the peek cannot list a comic archive
  • fix: forget circumstantial comic conversion failures after a minute, not an hour
  • fix: let an explicit prepare request retry instead of replaying a cached failure
  • fix: offer the prepare button when a comic conversion failed for a retryable reason
  • fix: clear cover spinners when preparation finishes and only show them where a cover is missing
  • fix: detect a finished comic conversion instead of polling a field the API never sends
  • fix: restart a lost comic conversion request instead of waiting out the deadline
  • fix: stop flagging comics as unprepared once their converted copy exists
  • fix: style fix for specific checkboxes
  • fix: key dev info read state on the server uid instead of the reusable row id
  • perf: prefer the extractor that last succeeded for a format
  • docs: document container updates in the README
  • docs: document dev info post types in the wiki (EN/DE)
  • style: adding flags to language buttons and correct styles. Also adding language as default for new accounts
  • style: rework the language availability pills
  • style: replace update overlay ring spinner with 9-square fade loader
  • test: cover the release-banner suppression rules
  • test: cover extractor fallback, promotion and failure-cache behaviour
  • security: per-install device credential and signed requests
  • security: backup atomicity, telemetry leaks, direct-link SSRF, HLS temp dir
  • security: reject pre-release and non-dotted target versions for docker code updates
  • security: validate the target version against a strict PEP 440 regex and resolve it server-side only
  • security: reject non-http(s) release URLs before they reach an href

v1.4.1

v1.4.1 2026-07-31

This should fix some Captcha issues

  • feat: let _ensure_xvfb report whether a display is actually available
  • fix: fail with an actionable message when no X display is available instead of an unreadable TargetClosedError
  • fix: guard the hanime browser launch for a missing display, its xvfb call was swallowed by a bare except
  • fix: report a missing display as a setup problem, not a crash
  • fix: handle a missing display in the interactive captcha solver, which had no generic error branch
  • fix: verify Xvfb actually stayed alive before promising a display
  • security: strip the Chromium launch command from telemetry payloads, it leaked provider domains including an adult source
  • security: log captcha browser failures by reason code instead of the raw patchright message

v1.4.0

v1.4.0 2026-07-31
  • feat: adding Homescreen 2.0 Banner
  • feat: add classify.is_transport_failure for the crash channel, sharing the unreachable-server tables
  • feat: add MegakinoUnavailable so routes classify by type instead of exception class names
  • feat: add a comic library with reader for all common archive formats
  • feat: index CBZ, CBT, CB7, CBR, CBA and PDF comics grouped into series and issues
  • feat: read series, issue number and credits from ComicInfo.xml, fall back to the filename
  • feat: add a comic reader with single and double-page spreads, zoom and fit modes
  • feat: queue a cover for every issue, series covers first
  • feat: give every comic its own downscaled cover, prepared visibly in the background
  • feat: extract a single page from CBR/CBA instead of repacking the whole archive
  • feat: downscale covers to 640px WebP (1.5 MB page -> 7 KB cover)
  • feat: repack CBR/CBA into a cached CBZ, never touching the original file
  • feat: cache comic covers on disk and drop cache entries when the source is gone
  • feat: add optional ComicVine enrichment, off by default and rate-limited below the API cap
  • feat: add a series/single-issue switch to the comic shelf
  • feat: wire comic_auto_prepare_all so it actually converts every issue
  • feat: point at the automatic preparation setting from the reader
  • feat: prepare comic covers in the background and show that it is happening
  • feat: extract one cover per series after a scan instead of never starting
  • feat: show preparation progress in the shelf header and on each card
  • feat: add a comics settings section for covers, caches and diagnostics
  • feat: add a setting for replacing originals after conversion, off and unwired
  • feat: split the library into one shelf per media kind
  • feat: add /library hub with per-kind tiles and live counters
  • feat: add media_kinds column to custom_paths, configurable in settings
  • feat: add library sub-menu to the sidebar, planned kinds shown disabled
  • feat: let modules register a shelf via register_thirdparty(section="library")
  • feat: TMDB backdrop as the title window's header image (in Modal / Beta)
  • feat: changes on Start Page 2, Hover Information, module changes with TMDB, integration of OpenSubtitles (free API Key needed)
  • feat: add flag.integrations.mediaplayer as its own data point, separate from mediascan
  • feat: add telemetry/classify.py as the single place cancellations and unreachable-server errors are classified
  • feat: wire up the flag./detail. data points that were registered but never emitted
  • feat: let build_play_event emit syncplay.room_content under its own consent toggle
  • feat: make the devInfo feature-usage dashboard registry-driven so unwired keys are visible
  • feat: jellyfin specific settings added, also some fixes in other settings
  • feat: optional absolute episode numbering from the "[Episode NNN]" title marker (aniworld)
  • feat: library => read PDF and EPUB in an overlay instead of a browser tab
  • feat: adding more library functions and fix: one progress bar for single-file jobs, working accent hex input, no search history on load
  • feat: Web Player Overhaul with more options, styles, etc. Also some bug fixes
  • fix: some fixed in ebook library
  • fix: stop reporting yt-dlp hoster errors as MediaForge crashes
  • fix: keep network transport failures out of the telemetry crash channel
  • fix: answer 502 instead of 500 in /api/episodes and /api/providers when megakino.to is unavailable
  • fix: stop filing telemetry crash reports for megakino.to outages on the remaining two routes
  • fix: answer 502 instead of 500 when megakino.to returns an unusable response
  • fix: stop filing a telemetry crash report for every megakino.to outage
  • fix: handle a truncated JSON body in /api/seasons, which had no upstream branch at all
  • fix: for megakino => guard against list-typed API fields in parse_meta
  • fix: accept a JSON array in megakino.to fields documented as plain text
  • fix: stop one malformed megakino.to record from failing the whole /api/series response
  • fix: fixing language
  • fix: use a comics-specific translation for "Series" so German reads Reihen, not Serien
  • fix: accept kind="comic" for reading bookmarks (was collapsed onto epub)
  • fix: group comics by folder and recognise the numbering styles real libraries use
  • fix: treat the parent folder as the series name, filename only for number and title
  • fix: accept an underscore or dot before a bare issue number
  • fix: poll the preparation status immediately instead of 2.5s late
  • fix: show the preparing spinner in the single-issue view too
  • fix: read a trailing "- 0001" as the issue number instead of a story title
  • fix: read a leading number when the title carries its own dash
  • fix: decode percent-escaped characters in filenames (H%f6lle -> Hölle)
  • fix: take the year out of brackets that also name a publisher
  • fix: detect bsdtar when it is installed as "tar", as on Windows 10+ and macOS
  • fix: make the whole poster card clickable on the comic and book shelves
  • fix: add keyboard activation and ARIA state to poster cards
  • fix: prepare comic covers on shelf load, not only during a scan
  • fix: queue cover preparation from /api/library?kind=comic so an already scanned library gets covers at all
  • fix: read the group preference lazily — calling into library_core.js at parse time aborted the page module and left LIB_KIND undefined
  • fix: backdrop and text fix in modal
  • fix: home panel storage view fix for Unix and Docker
  • fix: home panel hidden queue rows will counts visible only
  • fix: assign MEDIA_STATS_ENABLED in its own settings block (was a 500 on probe-worker saves)
  • fix: cockpit storage/limits, mobile heading overflow, empty hover drawer, calendar release dates and series detection
  • fix: queue keep the home page run strip live
  • fix: restore the default home-feed row order and record why the personal rows lead
  • fix: style the shared Start Page groups in the home page modal, which does not load settings_rows.css
  • fix: never report user-initiated cancellations as crashes or errors
  • fix: keep the console silent while the devInfo server is offline or in maintenance
  • fix: honour a download cancel in the CLI captcha solver instead of holding the browser open
  • fix: reset the push-notification fan-out scope in a finally block
  • fix: report flag.self_update after the restart so it survives the process exit
  • fix: only arm the v1 API telemetry throttle when an event was actually sent
  • fix: some fixes in start page order
  • fix: repair Kindle markup, page geometry, chapters and typography
  • fix: change aniworld episode changer to correct season, but leave number absolute
  • fix: some fixes and addings
  • fix: some fixes in book reader
  • fix: settings => put Layout first on the Start Page tab and style its subheadings
  • fix: some fixes in module management, startpage 2 and some more
  • fix: Modules => make CineInfo sources a first-class module capability
  • fix: Web Player => a double tap must not leave fullscreen
  • fix: Fix a crash when uninstalling a module (also causing an lint error)
  • fix: some bug fixes in hanime style, seerr poster responsive, etc.
  • fix: fix hanime issues
  • fix: hanime search backend moved, and unblock its poster CDN
  • fix: sync the German catalogue and wrap the hardcoded strings
  • fix: a successful single-episode retry is no longer booked as failed
  • fix: harden the transcoder, the workers and numeric settings
  • fix: vendor hls.js instead of loading it from a CDN
  • fix: watchdog no longer aborts long downloads
  • fix: validate library paths before queueing an upscale
  • fix: encoding/upscaling no longer deletes the original before the move
  • fix: upscale and encoding queue doesnt run at the same time anymore
  • refactor: generalise _genres_str into a shared _text coercion helper
  • refactor: drop the comic_auto_covers toggle, covers are never optional
  • refactor: split library.js/.css into core + video + books modules
  • perf: parse the megakino API response once instead of decoding the body twice
  • perf: omit empty fields from cached issue rows
  • perf: swap in late covers in place instead of repainting the grid
  • perf: skip the ffprobe pass on book-only paths and the book pass on video-only ones
  • perf: drop the other kind's payload from /api/library responses
  • perf: cache the telemetry consent/enabled_keys read instead of hitting SQLite per event
  • perf: move SyncPlay session telemetry out of the room and registry locks
  • perf: bound the image proxy and collapse concurrent fetches
  • perf: pause polling in hidden tabs, add a queue badge endpoint
  • perf: SQLite pragmas, batched calendar writes and the missing indexes
  • chore: uv lock for py7zr
  • chore: drop the orphaned German msgid left behind by the start page rewording
  • chore: fix .dockerignore, drop dead folders, complete the docs
  • chore: add .gitattributes to fix line-ending noise
  • docs: describe all three classification consumers in classify.py's module docstring
  • docs: describe the folder-per-series layout in the README and the empty state
  • docs: describe the comic library in the README
  • docs: describe the per-media-kind libraries in the README
  • docs: Update Readme and pyproject.toml
  • docs: record that third-party modules never get a telemetry interface
  • docs: document what telemetry never reports in PRIVACY.md and README
  • docs: state the PR title and language rules in the PR template
  • style: theme tokens for status colours, checkbox class, missing breakpoints
  • test: guard the page-module/core load-order contract for all three shelves
  • test: cover crash-safe publishing, hanime cards and the retry plan
  • test: add a pytest suite and wire it into CI
  • build: add py7zr for .cb7 and libarchive-tools to the Docker image for .cbr
  • ci: change Triage for modules
  • ci: consolidate workflows and cut the build minutes
  • ci: pin third-party actions to SHAs and harden the workflows
  • security: keep response content out of the megakino error message, size and position only
  • security: bound the depth of the megakino.to text coercion against hostile nesting
  • security: strip userinfo credentials from URLs before they can reach a telemetry payload
  • security: withhold direct_link.urls and syncplay.room_content when the origin provider cannot be determined
  • security: proxy awareness, cross-site guard, SyncPlay guest scope
  • security: close the SSRF gaps in the two proxies
  • security: one shared, quote-safe HTML escaper for the whole frontend
  • security: admin-gate the integration settings and stop returning secrets
  • security: always verify TLS certificates, drop the first-party exemption

v1.3.1

v1.3.1 2026-07-27
  • fix: emergency fix => upscaling and encoding error fix and bump to version 1.3.1
  • docs: Remove 'Other Cool Projects' section from README

v1.3.0

v1.3.0 2026-07-26
  • feat: complete overhaul of application and many fixes and changes
  • feat: download subtitles from stream too into mkv file
  • feat: new statistics page, download duplicate system (better quality download, audio merge), and some bug fixes as usual
  • feat: Dev Version is now able to install modules for the future version
  • feat: adding themes (templates) to module store and change style of favorites
  • feat: add compact view and better bulk edit for auto-sync
  • feat: adding more general system information to telemetry for better analysis
  • feat: Overhaul design of Auto-Sync Section
  • fix: remove deleted .env.example from pyinstaller spec (build issues)
  • fix: upscaling issue fix
  • fix: watcher system issues fixed (I hope)
  • fix: library scan in duplicate check
  • fix: subtitle download fixes for every extractor
  • fix: some fixes in statistics
  • fix: download duplicate better quality fix from previous commit
  • fix: .env migration to db (there was something missing)
  • fix: Mobile View: When Menu open, the main page will not be scrollable anymore
  • fix: fix download system with language maps to one central map instead of multiple ones, also adding information and buttons for developers how they can create and upload own modules/templates
  • fix: Fix in Module store after installing an package
  • fix: style change of advanced search, some bug fixes (image cache, download abort, rest of files after download abort cleanup, captcha issue after download abort)
  • fix: module store fix with unsigned modules
  • fix: some missing files in last commit
  • fix: workflow fixes
  • fix: add missing translation
  • fix: complete truncated api_autosync_batch endpoint
  • fix: module store doesnt show update
  • fix: auto-sync css issues fixed and batch selection function
  • chore: update CI workflows (scans, build checks, PR helpers) and improve PR template
  • docs: add webplate to readme
  • style: fix checkbox style of "Default for Sites"
  • style: Theme Module padding was not set correctly
  • style: fix media library toolbar to have an better border
  • ci: disable trivy secret scanning to prevent false positives from dependencies
  • ci: add cross-platform build checks, security scans (CodeQL, Trivy) and PR validation workflows

v1.2.5

v1.2.5 2026-07-20
  • feat: Add System Tray and Autostart support
  • feat: show total queue count on main sidebar item
  • feat: adding more routes for modular, included now: Provider, Mirrors, notifications, uptime integration (provider)
  • feat: new integration for Jellyfin - NFO File Provider
  • fix: change notifications from german to english
  • fix: 'NoneType' object is not callable
  • fix: change seerr modals to use default ones
  • fix: some more telemetry stuff for better debugging errors
  • fix: [Bug]: NVENC detection fails: hardware probe uses undersized test frame (128x128)
  • fix: mediaforge settings title
  • fix: add missind card for encoding in settings

v1.2.4

v1.2.4 2026-07-17
  • revert: 4 New providers (due performance issues)
  • feat: 4 New providers (WARNING NOT FULLY WORKING)
  • feat: adding cineinfo orchestrator to modules
  • feat: backup function added
  • feat: Library Duplicate Check
  • fix: uptime monitor fixes
  • fix: Fix Docker Environment with Playwright, that chromium isnt able to write its database because of security locks
  • draft fix: some fixes in new providers (not finished)
  • fix: some fixes and style changes
  • fix: secure custom paths deletion protection and prevent silent fallback
  • fix: fixes in styles, Seerr Modals (provider check), backup (backup without password now possible), Confirmation Modals and some more
  • fix: adding real issue comment and telemetry info
  • fix: test fix of captcha resolve
  • fix: fix app restart logic when app is started directly in console with pip
  • docs: fix image
  • docs: update readme
  • style: rework of Menu Style
  • style: restyled settings and integrations section
  • revert: removing the 4 providers due to too many bugs

v1.2.3

v1.2.3 2026-07-14
  • feat: add ALTCHA proof-of-work captcha support to solver
  • feat: add optional debug logging for captcha browser console/network errors
  • feat: send telemetry event when captcha solving times out or fails
  • feat: adding module sensitive settings and dependency installation
  • feat: change module store unverified button to an list where also not checked modules are listed (Attention)
  • fix: delay first Turnstile click to let widget settle before interacting
  • fix: only steal window focus in visible/manual captcha mode, never in background
  • fix: adding button and security routes to install module dependencies
  • fix: docker fix for xvfb cleanup
  • fix: fix some detection settings

v1.2.2

v1.2.2 2026-07-13
  • feat: encoding starts after every< episode instead after all
  • feat: adding "marked as read" in dev notes
  • fix: skip HTTPExceptions in telemetry Flask error handler, stop 404 being escalated to 500
  • fix: "not a robot" checkbox
  • fix: solve stacked reCAPTCHA/hCaptcha checkbox alongside Turnstile in captcha modals
  • fix: auto sync error telemetry shows raw bytes instead of real error
  • fix: autosync error when a site have issues will postpone next autosyncs for a few minutes (when they would be start within 5 minutes)
  • style: adding Module pill in Menu as indicator that this menu entry comes from an module

v1.2.1

v1.2.1 2026-07-12
  • fix: docker fix for new uv sync method

v1.2.0

v1.2.0 2026-07-12
  • feat: capture crashes from all threads and existing error logs, not just uncaught main-thread exceptions
  • feat: Provider Fallback Order, Fallback Media Provider Sites, CineInfo Ordering; fix: Direct Link from known Providers to normal modal, Module Store fixes and style changes
  • feat: add anonymous telemetry system with tiered opt-in data consent
  • feat: preparation for module store
  • feat: adding module manager versioning and mediaforge requirement
  • feat: add Dev Infos feed synced from remote server, with sidebar badge and homepage warning banners
  • feat: adding new module (media calender), adding more modular possibilities, style fixes and bug fixes included :-)
  • feat: begin of modular third party integration. begin of direct link scraper. begin of anime seasonal overview (not finished yet)
  • fix: some autosync fixes when Hoster is not available
  • fix: update missing languages
  • fix: some module update needs installed
  • fix: remove old hardcoded modules
  • fix: add admin user name to dev info note an fix time format
  • fix: load module store catalog automatically without requiring a manual refresh
  • fix: recompile corrupted German translation catalog and add missing strings
  • fix: remove obsolete Jinja2 extensions and broken Python rule from babel.cfg
  • fix: make Module Manager and Module Store pages responsive on mobile
  • fix: put fallback messages from warning to debug
  • fix: send declarative enabled_keys snapshot with every telemetry flush
  • fix: emit immediate telemetry signal on consent grant and stage change instead of waiting for restart
  • fix: solve hanime.tv stream extraction blocked by new Cloudflare Turnstile and player DOM changes
  • fix: Module Manager refresh was not working during an restriction in flask
  • fix: adding missing file for last commit
  • refactor: change module storage to mediaforge home dir
  • refactor: split app.py and style.css into seperate files. Also fixing some bugs and styles
  • chore: split feature request into category-specific issue templates
  • docs: clarify UGREEN/Synology are supported but not optimized, with install help offered
  • test: add multi-platform diagnostics suite and hardware encoder checks
  • build: add uv.lock, migrate Dockerfile to uv and bump minimum Python to 3.10
  • build: add uv.lock and bump minimum Python version to 3.10
  • ci: add docker build check for PRs and stale issue handler

v1.1.0

v1.1.0 2026-07-06
  • feat: adding third party tab into integrations and move CR and Fernsehserien.de
  • feat: adding fernsehserien.de as an third party integration
  • feat: add time-range selector (presets + custom) to the UpTime page
  • feat: bucket UpTime history bars over the selected range with a grey no-data state
  • feat: expand a per-bucket heartbeat detail view on click, mobile-friendly
  • feat: add tap-friendly heartbeat tooltip on the UpTime page showing status, time, response and error
  • feat: add native UpTime monitoring for source sites with background monitor, DB and API
  • feat: add UpTime tab in integrations with per-source tracking, interval, retention and timeout
  • feat: add UpTime dashboard page with live in-place updates and sidebar entry
  • feat: show heartbeat hover tooltips with time, status and response time on UpTime page
  • feat: add MegaKino and hanime to the DNS reachability check
  • feat: label resolved IPs with their CDN provider in the DNS check
  • feat: verify source sites by real content and flag ISP/CUII block pages instead of trusting the URL
  • feat: add native UpTime monitoring for source sites with background monitor, DB and API
  • feat: add UpTime tab in integrations with per-source tracking, interval, retention and timeout
  • feat: add UpTime dashboard page with live in-place updates and sidebar entry
  • feat: show heartbeat hover tooltips with time, status and response time on UpTime page
  • feat: add MegaKino and hanime to the DNS reachability check
  • feat: label resolved IPs with their CDN provider in the DNS check
  • feat: verify source sites by real content and flag ISP/CUII block pages instead of trusting the URL
  • feat: add Vidavaca extractor and make Vidara extractor domain-agnostic
  • feat: add new/trending section visibility toggles for hanime source
  • feat: add hanime.tv (18+) as a source provider, disabled by default
  • feat: load hanime new/trending on the start page with censored/uncensored pills
  • feat: resolve hanime series, episodes and streams via a signing headless browser
  • feat: add hanime HLS extractor with yt-dlp download
  • feat: gate hanime activation behind a two-step 18+ age confirmation
  • feat: include hanime in search, seerr and autosync search
  • feat: add hanime source toggle and ordering in settings
  • feat: add MegaKino (megakino9.com) as content provider for movies and series
  • feat: load MegaKino new movies, new series and popular on the start page
  • feat: include MegaKino in search, direct-link input and advanced search
  • feat: support MegaKino downloads via VOE extractor
  • feat: add MegaKino to Seerr search and auto-sync series search
  • feat: add MegaKino source toggle and ordering in settings
  • feat: add captcha/browser tuning options (ad-blocker, overlay remover, ad-tab guard, ua-sync, webgl spoof, manual solve, visible window, timeout) in network settings
  • feat: add persistent captcha browser-profile toggle and clear button in settings
  • feat: add app restart button (relaunch without update) in settings
  • feat: add configurable source order with arrow and drag-and-drop reordering on start page
  • feat: add per-source toggles to show/hide and reorder new and popular sections
  • feat: add Sources settings tab to enable/disable sources and hide disabled ones from search
  • feat: clarify legacy-import card and allow dismissing it (persisted server-side)
  • fix: forgot the caching for the third party providers..
  • fix: fix fernsehserien.de scraper with more ideal slug conversion
  • fix: several fixes
  • fix: some fixes
  • fix: docker fix for patchwright
  • fix: change DNS and uptime to header checks
  • fix: guard megakino browse against a non-list movies field so search no longer crashes
  • fix: keep the download-modal Anime4K upscale checkbox selection from being reset by a late settings fetch
  • fix: restore missing loadHanimeBrowse so the start page loads when hanime is enabled
  • fix: try DoH and plain transport for MegaKino and validate JSON to stop parse-error log spam
  • fix: show offline-source banner on the start page with DNS test and UpTime links when monitoring is on
  • fix: migrate existing AutoSync jobs from s.to to serienstream.to on startup
  • fix: route MegaKino scraper through the DoH session to bypass ISP blocks
  • fix: normalise MegaKino genres field to stop search crashing on list values
  • fix: log MegaKino network failures as warnings instead of full tracebacks
  • fix: switch functional request URLs from s.to to serienstream.to
  • fix: stop short block-page markers from falsely flagging real sites as blocked
  • fix: switch functional request URLs from s.to to serienstream.to
  • fix: resolve Vidmoly /v/ view URLs to vidmoly.net embed for extraction
  • fix: Emergency Change megakino vom megakino9.com(fake) to megakino.to
  • fix: show download progress for hanime via the standard ffmpeg pipeline
  • fix: silence headless chromium console output during hanime stream resolution
  • fix: download hanime AES-128 HLS via a single ffmpeg pass with progress
  • fix: stop console spam from yt-dlp delegating encrypted hanime HLS to ffmpeg
  • fix: label hanime download phase as Download instead of FFmpeg
  • fix: accept megakino and hanime in home source order validation
  • fix: pin blocked hosts via host-resolver-rules instead of forcing secure DoH in captcha chromium
  • fix: some fixes for docker users
  • fix: route captcha Chromium DNS through project DoH via --host-resolver-rules
  • fix: remove typo
  • fix: adding old aniworld folder for migration (docker)
  • fix: set project license metadata to GPL-3.0-or-later
  • refactor: rename S.TO source label to SerienStream across the frontend
  • refactor: merge debug and restart into one "System" card in general settings; drop restart from captcha and updates tabs
  • chore: add German translations for hanime and age-gate strings
  • chore: fill remaining German translations in settings page
  • chore: add German translations for captcha/browser and restart settings
  • docs: adding licensing history information
  • docs: restore verbatim GPL-3.0 LICENSE and move copyright holders to COPYRIGHT
  • style: fix some styles
  • style: adding animation to uptime menu icon
  • style: lay out UpTime monitors as full-width rows
  • style: fix issue with checkboxes in mobile mode
  • style: use standard chb-main checkboxes for source section toggles

v1.0.0

v1.0.0 2026-07-03
  • fix: switch release trigger, update checker and self-update from models to main branch