Releases: fliks-app/fliks
Releases · fliks-app/fliks
Release list
v4.0.0
4.0.0 (2026-09-06)
⚠ BREAKING CHANGES
- media: Fliks no longer deletes the
.cache/directories left in your library folders. Versions before this one cached extracted embedded subtitles in<media folder>/.cache/subs/; that cache now lives in the managed images volume, and nothing reads or writes the copies inside your library any more. They are inert and safe to keep, but no rescan will ever remove them: to reclaim the space, delete them yourself, e.g.find /path/to/library -type d -name .cache -prune -exec rm -rf {} +. - readme: the volume holding artwork, sprites, extracted subtitles and uploaded avatars is now
/app/data(fliks_data) instead of/app/images. Existing installs need no change:FLIKS_IMAGES_DIRstill works and a volume mounted at/app/imagesis detected and kept, logged once at boot. New installs and the example Compose use the new path. To move onto it, copy the volume before removing the old one — the uploaded avatars cannot be re-fetched. Recipe in README > Hosting notes > "The data volume was renamed". - custom-formats: plugins declaring
pluginApi: 0are no longer loaded. The acquisition contract'swantno longer carriesminRankExclusive/maxRankInclusive; core reports the window as RANK_NOT_AN_UPGRADE / RANK_ABOVE_CUTOFF instead. Republish atpluginApi: 1.
Features
- a11y: focus the active option when an overlay opens (166acca)
- cast-overlay: offer the next episode on the cast and remote controls (#1214) (efda5b5)
- cast: leave a Chromecast from the picker, and only one destination at a time (#1217) (e1bb570)
- data-table: add row selection with batch proxy actions (#1192) (51f3e51)
- data-table: let a table page report on its whole list (#1193) (3fda3c1)
- data-table: move the acting row actions into a per-row menu (#1186) (ca2596d)
- desktop: render the mac player through a CAMetalLayer (#1248) (83ec100), closes #605
- home: show a cached-layout skeleton while the sections load (9f30abe)
- horizontal-scroller: hold the rail offset across a return (#1202) (e2ae16e)
- hw-decode: cover nvidia, windows and macos for cropdetect and thumbnails (#1229) (4c736e9), closes #1127 #1128 #1129
- imports: read nfo fields and sibling artwork for unidentified titles (#1265) (e8581c0)
- imports: surface the orphan batch in the activity table (#1231) (aa1576d), closes #1131
- libraries: add unidentified titles from the orphan scan instead of skipping them (#1264) (f669a23)
- libraries: link movie files that sit directly under the library root (#1269) (1394316)
- media-card: add a like heart beside the actions button (#1271) (6d4d757)
- media-card: expose like / unlike in the card context menu (#1272) (c536552)
- media-card: move the actions trigger to the bottom-right corner (#1235) (fda3128)
- media-detail: surface unidentified titles and let admins filter them (#1267) (790237f)
- navigation: cache the detail page and revalidate cached pages in one hook (#1181) (7228902)
- player: add a display option to sort track pickers by language (#1204) (a9e9f69)
- player: animate the close on the platforms without view transitions (#1182) (38067a5)
- player: animate the player opening and closing (#1173) (11d9610)
- player: drop the eco-by-default setting and clarify the quality menu (#1177) (214b2f3)
- player: make the seek OSD chapter-aware and let a scrub accumulate (83688c3)
- player: raise a seek-only OSD on an arrow-key scrub (3d73a86)
- player: step Back through menu panels and lift cues with the bar (3b10b39)
- plugins: gate unsigned installs on a setting, not an env var (#1183) (0baecb2)
- post-import: build sprites and markers when new files land (#1219) (8b46207)
- provider-list: one toolbar the bulk actions take over (#1189) (00036d4)
- provider-list: select rows and act on them together (#1187) (0939a35)
- remote: mirror an opened detail page to the controlled device (#1273) (21eed32)
- remote: play on and control another device (#1161) (efd9efe)
- schema-form: a multiselect field type, and the polish it needed (#1191) (978a9bc)
- streaming: direct play HDR on desktop clients that tonemap locally (#1251) (67ddd8a)
- streaming: keep HDR through a forced transcode for clients that tonemap locally (#1253) (da1565b)
- streaming: let clients that crop at their own output keep the copy path (#1256) (6ca9e7b), closes #1255
- streaming: serve an i-frame rendition for tizen trick play (#1167) (e3d0c65)
- streaming: surface client-side HDR tone-mapping in the stats and admin views (#1252) (27ce3f0)
- tizen: direct play MKV a...
v3.7.0
3.7.0 (2026-08-30)
Features
- downloads: spin the badge while a release is being searched for (#1151) (c9ff716)
- plugins: give a confirmation toggle a hint line (#1148) (a41a014)
- plugins: let a table row action address its own row (#1136) (47a31e6)
- plugins: let a table row open its media and explain itself (#1142) (b0f49ed)
- releases: link a release title to the tracker's own page (#1149) (c1e0700)
- releases: list only the qualities the profile allows (#1139) (8f3a02f)
- releases: stop offering releases better than the profile allows (#1134) (d46968e)
Bug Fixes
- media-detail: stop dimming every episode of an unmonitored series (#1141) (835dd74)
- plugins: translate a plugin message that names one of its own keys (#1143) (4d02394)
- quality-profiles: make the profile editor readable (#1140) (af4bc85)
- releases: keep the tracker page through a manual grab (#1144) (2075878)
- sse: an event with no downloads is not an event saying there are none (#1147) (288313c)
- streaming: stop the subtitle-guard spec from typing its subject as never (#1137) (0f11d27)
v3.6.0
v3.5.0
3.5.0 (2026-08-28)
Features
- account: add spoiler protection for unwatched episodes (#1108) (e22a4eb)
- acquisition: hand the episode title down with the target (#1103) (6f6bb78)
- media-detail: polish the season episode row (#1107) (ff1b444)
- plugins: let an admin waive the compatibility check and pick a version (#1104) (b38f48a)
- series: keep the specials season instead of dropping it (#1100) (4aded79)
- specials: place a special file in season 0 instead of on a real episode (#1102) (a9b0aa4)
- subtitles: bleed the table to the modal edges on a phone (#1118) (45ebadf)
Bug Fixes
- auto-approval: type the rule criteria and rebuild the editor (#1092) (5c8a747)
- bottom-sheet: keep the host out of an enclosing modal's grid (#1117) (5ff45ae)
- card-actions: pad and bold the actions panel header (#1116) (bc81dff)
- downloads: show download progress to everyone who can see the media (#1112) (4bcf7e3)
- home: don't morph an unrelated poster when opening a recent request (#1114) (b41e024)
- import: read a new title through the provider its library prefers (#1101) (f5d7964)
- media-card: hide the metadata actions on a card with no library row (#1094) (8460f65)
- media-card: place artwork behind a placeholder and drop the cold-start bridge wait (#1120) (83b601c)
- media-detail: close the highlighted card border and keep the current season in the row (#1119) (133d305)
- media-detail: stop the resume bar flashing on a series page (#1113) (56dc906)
- media-info: always show the subtitle picker without the origin hint (#1106) (a466d07)
- metadata-search: report why a provider search failed instead of a bare 500 (#1098) (f0e83b1)
- migrations: drop the criteria column default that fails the drift check (#1095) (6379940)
- release-scoring: refuse a sequel, another year, or a multi-film pack (#1105) (7c6e764)
- release-search: stop an indexer tab spinning after the search answered (#1097) (ad0232a)
- release-sort: rank a season pack above loose episodes at equal resolution (#1096) (8c443ac)
- series-refresh: converge a season on one provider instead of mixing two (#1099) (a29fac3)
- spoilers: mask the season synopsis too (#1109) (64a05df)
- spoilers: mask the synopsis of an unwatched movie (#1110) (d587035)
- subtitles: scroll the modal action row instead of wrapping it (#1115) (46378b1)
v3.4.1
3.4.1 (2026-08-27)
Bug Fixes
- card-actions: swap submenus in place on the sheet instead of stacking (#1086) (370cad8)
- ci: fall back to the newest mpv winbuild when the pin is gone (#1080) (770b9bc)
- identify: finish the job — relink the files, refresh off the request, bust the image cache (#1085) (83e81f0)
- identify: make re-identification work on a TVDB library (#1083) (50d7546)
- media-menu: stop doubling Download and Edit subtitles on an episode (#1082) (01ca716)
- releases: let the table reach the modal edges on a narrow screen (#1091) (258e5f0)
- releases: stop the mobile row overflowing sideways (#1089) (60541d6)
v3.4.0
3.4.0 (2026-08-27)
⚠ BREAKING CHANGES
- plugin-ui: one list, one dispatcher, one resolver for media menus
- profiles: a fresh install starts with no quality profile, so auto-grab reports unprofiled until an admin creates one. Existing rows are left untouched - no migration deletes them.
Features
- media-detail: identify a media from its actions menu (dd35ae6)
- media-menu: group the actions into submenus, with Like and Download (ad05331)
- media-menu: open the tracking and identify dialogs in place (216d756)
- media: re-point a media at another work (c9bf9d6)
- plugin-ui: add a surface predicate to when (ae60f51)
- profiles: stop seeding a default quality and language profile (3115375)
- requests: act on a pending request from the title preview (8c9dc82)
- subtitles: report why a provider connection test failed (5995e7e)
Bug Fixes
- auto-grab: accept any language when no language profile is set (f0ee821)
- db: clear the entity drift and enforce the CI check (#1070) (f034abe), closes #1057
- focus-ring: keep the ring visible in three more scrollers (41486f0)
- focus-ring: keep the ring visible inside scroll containers (bdd00a9)
- media-menu: keep the page-owned dialogs off a card, refresh in place (704edef)
- media-menu: side flyout, card routing and the two live toggles (3eb4229)
- provider-list: center the editor modal header (ac6419c)
- requests: hide the import button while a request is pending, and unify the labels (1ca873e)
- scheduler: walk the subtitle passes in batches instead of all at once (236c84d)
- subtitles: stop the missing-subtitles list from hanging the server (f3c75f5)
Performance Improvements
Miscellaneous Chores
Code Refactoring
- plugin-ui: one list, one dispatcher, one resolver for media menus (c0ea0e2)
v3.3.0
v3.2.1
3.2.1 (2026-08-26)
Bug Fixes
- acquisition: offer a packed season its episodes, and say why a row was skipped (#1053) (cfe1c8c)
- acquisition: stop dropping every series candidate, and unbound the sweep's deadline (#1055) (b6fe715)
- release-scoring: season packs, resolution upgrades, coverage, and remove delay profiles (#1056) (1a3a5a2)
v3.2.0
3.2.0 (2026-08-26)
Features
- media-detail: show the file import date in the file info panel (#1039) (d111ab8)
- plugin-catalogue: state the version running instead of listing every version offered (#1048) (fca84a7)
- provider-list: show the cooldown a row is in, and thin the actions cell (#1047) (c830dc6)
- release-picker: fill the modal as indexers answer, with a tab per indexer (#1040) (c4b3fe8)
- secrets: let a client erase a stored credential with an explicit null (#1032) (e523ed0)
Bug Fixes
- media-detail: track grab-best per target so several can run at once (#1036) (dc4902e)
- notifications: derive one event vocabulary instead of three that disagree (#1034) (610365c)
- plugin-ui: re-merge plugin translations whenever the registry reloads (#1037) (1b956c3)
- plugins: only offer a catalog version core could verify (#1050) (f23283b)
- plugins: refresh stale catalog sources at boot, not only at 3am (#1038) (7aa2dee)
- plugins: stop showing an install error twice (#1049) (f2d40af)
- release-picker: give an empty search its own centred state (#1042) (46b1fad)
- release-picker: keep each indexer tab on one line, and move progress into the strip (#1041) (0a16b35)
- release-picker: stop the release table nesting a second vertical scrollbar (#1046) (e3dc21b)
- release-picker: tell apart a tab still searching, one that failed, and one with no hits (#1043) (1bb2f59)
- release-scoring: honour the requested episode and season scope (#1035) (0909c07)