# Change Log ## Unreleased ### Feat - Polish collection cards to read more like video cards (hover treatment, tighter title handling, and favorite-collection indicators), link collection names from the manage table directly to their collection pages, and replace the mobile authors shortcut with the real authors list with a header backdrop (#365) ### Style - Replace the high-saturation cyan/red UI palette with a calmer teal-led color scheme and a mode-aware secondary purple (softer violet in light mode, stronger contrast in dark), updating favorite-page gradient accents, the browser theme color, and the web manifest without changing logo assets (#366) ## v1.10.16 (2026-07-13) ### Feat - Add a per-subscription yt-dlp config override: each subscription can declare its own yt-dlp options (e.g. `--format bestaudio` for an audio-only channel) that apply to all its downloads across every platform; empty inherits the global config, and the override merges over it (subscription wins per-key, network/proxy inherited). Trust-gated to `container`, same as the global config. Closes #345 (#362) - Unify the collection modal into a single input with autocomplete tokens and Enter-to-submit for the highlighted option, and move the favorite hero badge onto the thumbnail (#364) ### Fix - Apply per-subscription overrides to discovery probes, recognize yt-dlp audio aliases, tighten audio-only detection, prefer exact subscription matches, thread Twitch overrides into VOD discovery, honor exact audio overrides in the playlist watcher, normalize network aliases, carry auth into discovery, and honor Bilibili audio overrides; treat `bestaudio` overrides as audio-only, propagate inferred audio-only mode to Bilibili and backfill, redact ytdlp overrides from read-only responses, and drop a stray breakpoint from the ytdlp config migration (#362) ## v1.10.15 (2026-07-12) ### Feat - Implement button loading states across actions (#360) ### Fix - Enforce unique collection names and invalidate favorite collections on duplicate merge (#361) ## v1.10.14 (2026-07-12) ### Feat - Add an All Tags page (`/tags`) with usage-ranked tags, expandable strip, sorting, pagination, and filtered video grid; enhance Home/mobile tag sidebars with top-20 ranking and links to All Tags (#356) - Add a subtitle-only live translation mode that keeps original audio audible, shows translated subtitles, and skips translated speech playback (#358) ### Chore - Replace the third-party `sloc.xyz` Lines of Code badge with a self-hosted shields endpoint refreshed by CI on `gh-pages` (#359) ### Docs - Backfill the CHANGELOG for v1.10.8–v1.10.13 and previously unreleased PRs ## v1.10.13 (2026-07-11) ### Feat - Add an All Authors page (`/authors`), a `/collections` deep link for the Collections tab, and streamline sidebar Authors/Collections sections to top-20 by video count with conditional Show all links (36f103ed) ### Fix - Keep the Home sidebar in normal flow as a sticky, self-scrolling flex item so long lists no longer overlap the footer (36f103ed) - Keep empty and duplicate-first-video collections reachable in the sidebar, prevent All Authors cards from overflowing on narrow phones, and treat `/collections` as a home route for mobile tag controls (36f103ed) ## v1.10.12 (2026-07-11) ### Feat - Add owner-scoped collection and author favorites with SQLite persistence, favorites APIs, React Query hooks, `/favorites` UI with hero/rails, and Top Rated labeling for 5-star videos (f0986bff) - Add immediate audio-only downloads (direct audio action beside video download), yt-dlp/Bilibili audio extraction with configurable output format, and an audio player redesign with queue and persisted playback state (24be789a) ### Fix - Polish Favorites mobile swipe/transitions, responsive headers, and recover safely when favorites tables predate their Drizzle migration (059225bf) - Rework the Favorites hero (content-driven height, continue-watching lead-ins, description wrapping) and reset scroll on route and search-query changes (912b4867) ## v1.10.11 (2026-07-09) ### Feat - Add an opt-in preferred final video container setting (`auto` / `MP4` / `WebM` / `MKV`) applied to yt-dlp and Bilibili downloads (116610cd) ### Fix - Apply the default codec preference alongside user format sorts instead of silently ignoring it when only a sort is set (1b83200e) - Flush video progress from the actual media element on interval/pagehide/hide/unmount, and normalize author avatar reuse by stable author keys (54e04161) ## v1.10.10 (2026-07-05) ### Fix - Keep filename-template playlist downloads in their rendered folder layout, preserve consistent playlist source names across download entry points, relocate media-server companion files during legacy moves, and sweep MyTube-generated orphan companion files during rebuild (1c263e94) ### Changed - Under non-legacy filename naming (custom template or preset), adding or removing a video to/from a collection no longer moves the underlying files; collection membership is now purely logical and the filename template alone controls the on-disk folder structure. Legacy naming is unchanged. To organize files per collection under template naming, include `{{ source_collection_name }}` in the template. ### Docs - Clarify that `images-small/` is an internal downscaled preview cache and can be excluded from media-server libraries. ## v1.10.9 (2026-07-04) ### Fix - Self-heal a missing visitor `users` table on startup so installs with an out-of-sync Drizzle journal no longer fail after shared-password migration (4c38012b) ## v1.10.8 (2026-07-04) ### Feat - Add named visitor user management with SQLite-backed visitor accounts, admin-only CRUD APIs, immediate session revocation on disable/delete/password change, and username+password visitor login; automatically migrate the legacy shared visitor password to a `visitor` account (f7419301) - Redesign the Up Next recommender with continuation/series heuristics, backend recommendation signals, and feedback metrics (59fe0e90) - Flatten homepage video cards, tighten content padding, and show author avatars on cards (b07314b5) - Redesign the Up Next sidebar with flatter cards, larger thumbnails, and three-line titles (6efd9cf7) ### Fix - Improve Safari WebM seek performance with direct `currentTime` seeking and adaptive preload (5fd72ace) - Normalize subtitle `srclang` values and map legacy `unknown` languages to BCP 47 `und` (ade17e9a) ### Deprecated - Deprecate the shared visitor password login endpoint (`POST /api/settings/verify-visitor-password`) and the visitor branch of the combined password endpoint (`POST /api/settings/verify-password`). Use `POST /api/settings/verify-user-login` for visitor logins. ### Docs - Document visitor account management, automatic shared-password migration, and the new visitor-user API surface. ## v1.10.7 (2026-07-02) ### Feat - Add opt-in limit/offset support on `GET /videos` and model search-result types (30b826b6) - Route subscription downloads through the download queue (7a540099) - Add opt-in download-history retention (214e827f) ### Fix - Carry the collision counter into the yt-dlp legacy cleanup stem (953f9412) - Settle download tasks removed by clearing the queue (ff02303b) - Make MissAV downloads survive navigation timeouts, disable IPv6 in containers, and skip queued title prefetch (2822d827, c0ced354) ### Perf - Stabilize empty-array fallbacks feeding memoized frontend context values (e160b843) - Index download history/RSS filter columns, slim `GET /videos`, and answer 304 responses via list revisions (906905c0, 75b1210a) - Run due subscription checks with bounded concurrency (0d98f581) - Make continuous-download task-cancellation cleanup fully offline (432e5f0b) ### Refactor - Extract filename-template shared modules, job-polling hooks, and sibling JSX sections (746122ce, 8b6d8138) - Extract yt-dlp download path planning into a unit-tested planner (206ed4ef) - Retire any-annotations in hotspot files (73a8f021) ### Build - Pin cloudflared with checksum verification and prune the pot-provider copy step (f468d3de) ### Docs - Clarify host-network Docker Compose sysctl limits (3cd27958) ### Chore - Route production `console.*` calls through the structured logger (c373be6c) ## v1.10.6 (2026-07-01) ### Fix - Validate API keys before CSRF bypass, sanitize visitor statistics ingestion, harden advisory follow-up paths, preserve bounded visitor telemetry, and derive visitor session IDs only from verified identity (b2000d8b, d65913a9, 60424529, 079f2db9, 5cfbc221) ## v1.10.5 (2026-06-30) ### Feat - Suggest trying another browser when Safari does not support a video format (f0e3c7b4) - Honor `prefers-reduced-motion` and replace broad `transition: all` usage (8291955f) ### Fix - Add accessible names to icon-only buttons and truncate long Up Next author names (d9c2e56b, fe19238d) - Merge duplicate search clear buttons into one `SearchInput` control (db4451c0) - Sync player-added tags into the global tags directory, keep settings cache fresh, normalize tag saves, and serialize server flag sync (774856a9, 50d0f2c7, 2844843f) - Clear the stale continuous-download pause signal on resume (76d3aec7) - Restore synchronous English translation fallback (9d992d1c) - Converge translation-function types and clear remaining frontend type errors (95feb65a, a707b9c7) ### Perf - Implement optimization-report findings across database queries, React, filesystem handling, and error handling (454dcc08) - Finish lower-priority optimization-report items and any-annotation debt (8588bce5) ### Refactor - Split large TMDB, yt-dlp, subscription, video, MissAV, storage, backup, security, and Bilibili modules into focused files (483d07c2, 4f351dfa, 36184970, 63d45cff, bdaca0d5, 75405c4c, 27ec116f, 28ae77b8, 0f5685c9, aec83e95, 8adb0cab) - Extract shared dialog headers and converge remaining inline modal headers (4ee7c52e, bf4248d5) - Extract god-file modules and split settings controller, download manager, subscription service, and yt-dlp downloader follow-up hotspots (01e33f61, 363321ed) ### Test - Update header and modal tests for DialogHeader and i18n menu changes (ba43af62) ### Docs - Add a Lines of Code badge to the README (0d843c46) ### Ci - Type-check the frontend in CI to prevent type regressions (b5b6c24b) ## v1.10.4 (2026-06-26) ### Fix - Harden request handling by capping body size, completing the SSRF block-list, making Cloudflare tunnel config admin-only, and using HTTPS-aware session cookies (9f9176d0, 7e14ec3e, 9e47042b) - Harden player progress seeking/saving and use the fixed progress keepalive endpoint (65567b37, 7a4a7670) - Improve Bilibili author-folder cleanup, risk-control retry recovery, stderr preservation, cancellation propagation, staging cleanup, risk hints, and failure redaction (8ed0bae6, e3e3c47d, 44c06f02, d6155d03, 60893a1e, 7545faba, b76abf0b, 4c3022d1, 98439dc5) ### Docs - Clarify Bilibili redaction and subfolder-cleanup assumptions (54ab0985) ### Revert - Revert the deprecated `styleMedia` warning suppression (70769eea, f4db91d2) ## v1.10.3 (2026-06-25) ### Fix - Gate static and cloud media routes behind authentication when login is enabled, enforce visitor visibility per-file as defense-in-depth (GHSA-rwwf-29mq-5j43, GHSA-hcm6-w6x8-6jhr), and include thumbnail, subtitle, and download-status visibility checks (7cc7c6a7, 456d0989, f9ae048c, b631778e, 905cecc0, 6cb2080a, dc254c50) ### Note - When login is enabled, RSS feed media URLs carry an `?rss=` query parameter so feed readers (which send no session cookie) can still load cover art. This token is the feed's existing secret and introduces no new exposure, but it will now appear in reverse-proxy/access logs that record query strings. ## v1.10.2 (2026-06-23) ### Feat - Add live audio translation with control-bar trigger, capture worklet routing through player volume, pause/rate handling, privacy-aware availability, interruption flushing, and readiness guards (1b1e31a3, 3288d27e, c5ad8f5b, cecc7b7e, 0a440722, 553bbe18, 13c62caf, ce14edb6, 2c6ab71f, 2e75030d, 23e7bf30, 9788df7f, cfb477c2, 4ef77fd8, 4537ce60) ### Fix - Remove author names from log messages and fix clear-text logger/warn sinks (0e7ab69c, 66a7ed73, fa4f11e0) - Patch Dependabot undici and brace-expansion vulnerabilities (b001dc0a, d38a7311) - Fix MissAV 403 downloads with yt-dlp browser impersonation gated on curl-cffi availability (bdf31533, 50d30cd0) - Fix live-translation WebSocket proxying and surface HTTPS/reverse-proxy hints (eaeb330e, 823c97e7, b9f288bf) ### Chore - Bump yt-dlp, yt-dlp-ejs, and curl-cffi in lockstep for MissAV Cloudflare impersonation (9e05907c, a19ab8bf, 0a41e321) ### Docs - Document why live translation transcription configs stay at the Gemini setup level (f20af85c) ## v1.10.1 (2026-06-16) ### Fix - Patch six Dependabot security alerts, including the multer 2.2.0 upgrade (d5c13d89, 0368bf32) ## v1.10.0 (2026-06-16) ### Feat - Inline subscription metadata in history items (50be37f1) - Implement the issue #295 media organization redesign, including author/collection origin tracking, exclusive collection moves, legacy origin backfill, author-folder cleanup, subtitle placement, retry restoration, and multipart playlist handling (b5e92dc4, 75fad836, d217eb5a, 6d645d7d, 70449f08, 55ed68ff, 175d2a95, 3ad341c6, 8db3e9b0, fe4f5a8c, 1555e30e, ef884774, 959627ca, 5adef61a, 429524e7, 0413d3f2, b2807d3f, 729fb491, 87fdc1f5, 96846a2a, db32c560, b4519b70) - Add the preferred Bilibili video resolution setting and Download settings UI (7cd67976, ce7e586e) - Move filename-template reference data to the frontend with full i18n, add the catalog API and three-scenario preview, reconstruct `source_custom_name`, and collapse identical preview scenario tabs (2a142884, 9066a58b, 06dcb287) - Consolidate Interface & Display and Video Playback into Basic Settings (441aa643) ### Fix - Reduce desktop header search prominence when inactive (ab3a6c96) - Align Node support with Vite requirements and update setup docs (a87cbe9c, 7d682d13) - Patch Dependabot esbuild alerts (e9c61f60) - Localize filename-template warnings (aa08b2fe) - Redact PII in logs and fix CodeQL clear-text logging alerts (c7a3917e) ### Test - Assert Bilibili collection source options and multipart first-part playlist source options (e538e9ae, 33636fcb) - Update SettingsPage tests for the merged Basic Settings tab (557ee0ba) ### Docs - Enhance README demo sections and Chinese README feature/demo links (4a8a6054, a02eb5ba) ### Chore - Update Lighthouse performance badge publishing through GitHub Pages (645192c1, 603d7597, 573544b3) - Bump shell-quote and concurrently (713ef968) ## v1.9.33 (2026-06-06) ### Fix - Improve frontend color token contrast and light-mode elevation (cf5a18f5) ### Refactor - Centralize frontend color tokens for consistent theming (995f4231) ### Test - Remove broken localStorage cleanup in AuthContext tests (462dff57) ## v1.9.32 (2026-06-05) ### Feat - Add innertube context option and default components (bceda933) - Update download history retry and status display (17d07366) ## v1.9.31 (2026-06-05) ### Fix - Fix Bilibili default codec selection (84a1536f) - Fix cookie upload for empty Netscape values (f5e7479c) - Upgrade react-router for dependabot alerts (d5d457b7) ### Chore - Update Lighthouse performance badge (0537445e) ## v1.9.30 (2026-06-03) ### Fix - Enforce UTF-8 byte limits for filename template paths (6558b1ba) - Keep filename stem when byte truncation hits multibyte chars (766c45a1) - Fix request param normalization for backend typecheck (d68e08b8) - Regenerate backend lockfile for @emnapi peer dependencies (9e527086) - Upgrade vitest to 4.1+ for UI server security advisory (d0254bd0) - Place Node version check under backend/scripts for Docker (5ca73923) - Support Node 26 install path (51f258b1) ### Test - Fix invalid filename template fixture types (0ce81d5d) - Fix Vitest 4 mock typings in backend controller tests (b0da54e4) - Stabilize statistics rate-limit quota test (e9b4914e) ### Docs - Document Node.js 20–26 requirement in README (df028c08) ### Chore - Pin vitest and coverage-v8 to ^4.1.8 (b4d5dac1) ## v1.9.29 (2026-05-31) ### Feat - Add Windows yt-dlp Scripts lookup (8e048734) ### Fix - Harden yt-dlp candidate path checks (8f29c918) - Prioritize updated yt-dlp path entries (2aa3fb6d) - Use safe path resolution for yt-dlp scans (972b337d) - Address Codacy yt-dlp findings (70befeca) - Guard yt-dlp auto-install retries (c6dea734) - Handle yt-dlp upgrade fallback safely (f4909c8c) - Satisfy CodeQL path guards (be25175f) - Fix Telegram text download queueing (4c644c0e) ## v1.9.28 (2026-05-29) ### Feat - Add media server export sidecar management (d3ce988f) ### Fix - Fix MissAV Puppeteer navigation and Cloudflare handling (4d51fb39) - Fix MissAV Cloudflare timeout handling (847a5dac) - Fix media export path safety and CI mocks (86e85693) - Use safe path helpers in media export planner (a56107cf) - Translate thumbnail redownload strings (044b5dae) ### Refactor - Remove hard-link helper from media export sync (bf0450b5) ### Test - Fix MissAV fallback path test mock (1c9af321) - Fix MissAV test isolation and Codacy warning (7521ea0a) ### Docs - Add workflow information to README files (eed3990c) - Document Telegram bot polling limitation (06400f0e) ### Chore - Update Lighthouse performance badge (3d3c4f95, e0ba1f2a, 3607b95f, 99e6a61b) - chore(deps): bump axios from 1.15.2 to 1.16.0 in /backend and /frontend (631366b7, 9f3c201f) - chore(deps): bump axios in /backend/bgutil-ytdlp-pot-provider/server (5aad3887) ## v1.9.27 (2026-05-25) ### Feat - Add thumbnail refresh and redownload actions (9f185daa) - Track thumbnail redownload state per video (dabc28bd) - Add Telegram link download polling (74716c31) - Allow secure browser-origin passkey settings (2ff1bcce) ### Fix - Harden passkey-only settings updates (5ec481e3) - Tighten passkey secure-origin validation (05068e35) - Tighten loopback hostname validation (93ae4d62) - Remove proxy shortcuts from passkey origin checks (c98f1301) - Fix secure socket typing in settings controller (3b096fc4) ### Chore - chore(deps): bump qs and express in /backend (3bd6d92c) - chore(deps): bump qs in /backend/bgutil-ytdlp-pot-provider/server (8df46bfc) ## v1.9.26 (2026-05-20) ### Fix - Adjust wheel volume direction by platform (6c390c5c) - Improve header search paste fallback (01c921dc) ### Chore - chore(deps): bump ws from 8.19.0 to 8.20.1 in /backend (d1f1c448) - chore(deps): bump ws in /backend/bgutil-ytdlp-pot-provider/server (0331acb1) ## v1.9.24 (2026-05-20) ### Feat - Add JAVXX download support (3bc9cb1a) - Improve video recommendations (ddc2521d) - Persist home sort selection (6f9e45c1) ### Fix - Fix 123AV download routing and titles (c0cf2934) - Improve fullscreen player controls (1e137f0d) - Address Codacy yt-dlp findings (21b16685) - Reject failing yt-dlp candidates (6a03c229) - Improve download playback and thumbnail fallbacks (c78ec69d) - Fix YouTube merge fallback container handling (3ec5f5ad) - Fix storage cleanup for video and collection deletion (edef186e) - Fix yt-dlp path probe timeout (79d107ff) - Fix storage path stat safety (8c958da7) - Fix recommendation hook dependencies (650159bb) - Avoid Codacy storage key false positive (79de25d4) - Bound download cancellation cleanup time (7bc2fcde) ### Refactor - Clean up download cancellation logging (a23b5ca2) - Simplify recommendation memo dependencies (cc70d469) ### Test - Fix controller test helper mocks (e7497c68) ## v1.9.23 (2026-05-13) ### Fix - fix code scanning csrf detection (65ad269f) - fix code scanning csrf: mount globally instead of on /api (6cc1d61e) - Fix CodeQL CSRF middleware detection (21bde943) - Fix hook upload validation for notification curl scripts (37cae1e0) ### Docs - Mention the mytube-android native Android client in the README and backfill CHANGELOG through v1.9.22 (b43200d1) ## v1.9.22 (2026-05-12) ### Feat - Implement statistics feature and related workspace updates (be8a7259) - Improve statistics dashboard UX (339f803b) - Allow API key access to system version endpoint (72c640fb) ### Fix - Fix statistics CI regressions and security findings (6ff69c56) - Fix Codacy statistics findings (0d8ef027) - Fix frontend test failures from statistics hook additions (20eab286) - Fix statistics collector test build typing (2bc24937) - Fix Dependabot alerts in bgutil pot provider server (00b64b14) ### Refactor - Reduce statistics complexity hotspots (14985218) ### Test - Add statistics service test coverage to reduce coverage delta (0b1a888d) - Add statistics query and export coverage tests (702b4fa9) - Add statistics rollups coverage tests (e4260d73) ## v1.9.21 (2026-05-08) ### Feat - feat: Add configurable download filename templates (#234) (2625d97d) - feat: Allow rename existing files to match any saved pattern (incl. legacy) (719d56c6) - Improve filename template rename behavior (b6a5ef90) - feat: Add Telegram notification for subscription downloads (9731da51) - Add subscription retention cleanup (78d21802) - Add retention help and cleanup limit (d9c360db) ### Fix - Fix filename template source options and yt-dlp resolution (63eda10b) - Fix filename template edge cases and test regressions (c9d9f596) - fix(security): Address 4 high-severity CodeQL alerts on PR #237 (95a1140e) - fix(security): Replace dynamic RegExp in stripLegacyFilenameSuffix (feb4cfec) - fix(security): Use a regex literal instead of a non-literal RegExp constructor (921634d2) - fix: Make legacy preset round-trip safe (issue234 §24) (a0a5fe02) - fix: Resolve last Codacy prototype-pollution finding (77f5992b) - fix: Address 18 Codacy findings on PR #237 (49f4bade) - Fix retention cleanup pagination (f6df7501) - Fix Codacy retention cleanup findings (65a4156f) - Fix Codacy subscription page callbacks (37f4c8f9) - Fix remaining Codacy JSX callbacks (2d11df86) ### Refactor - refactor: Replace nosemgrep suppressions with resolveSafeChildPath (8f8d7e7e) ### Test - test: Boost filenameTemplate coverage to address Codacy delta (937ed476) - test: Cover subscription Telegram edge cases (25a310de) ### Chore - chore(deps): bump basic-ftp from 5.3.0 to 5.3.1 in /backend (7c972110) - chore(deps): bump axios in /backend/bgutil-ytdlp-pot-provider/server (96e57684) - chore(deps): bump ip-address and express-rate-limit in /backend (310c526c) - Suppress intentional Codacy security wrappers (c5d389eb) - Clear remaining Codacy baseline findings (31a43228) - Use Codacy ESLint9 config analysis (f95c7d26) - Restore Codacy analyzer baseline, then revert (cdfcf01e, b1bd063e) - Stabilize Codacy JSX callback handling (26cc10f3, c41087c5, 2e668c84, 22d572ed, 05e94683, f4f30d48, 0452d954) ## v1.9.20 (2026-04-27) ### Fix - fix: backend/package.json to reduce vulnerabilities (d3f8bd83) - fix: frontend/package.json & frontend/package-lock.json to reduce vulnerabilities (96ed119e) - Fix Docker npm ci lockfile mismatch (0b6b7e34) ## v1.9.19 (2026-04-27) ### Fix - fix: normalize cookies before yt-dlp (4ef7a251) - fix: validate cookie host suffix boundaries (a3a6742c) - fix: include CSRF token and credentials in cloud sync request (#228) (c518742d) - fix: eliminate user-controlled URL parameter from fetchWithCsrf (93752647) ### Refactor - refactor: harden fetchWithCsrf with path validation and Request API (aa78db5a) ## v1.9.18 (2026-04-25) ### Chore - chore(deps): bump postcss from 8.5.6 to 8.5.10 in /backend (5f670d3e) - chore(deps): address npm security alerts (471d0816) ## v1.9.17 (2026-04-24) ### Feat - feat: add RSS feed support (5c6bd214) - feat: Add function to copy text to clipboard (9eea096e) ### Fix - fix: harden RSS feed access (2e28c503) - fix: improve RSS feed item display (d34cb47b) - fix: ensure RSS token table on startup (2df17f3f) - fix: address RSS CodeQL alerts (d50fe67e) - fix: resolve RSS Codacy findings (0fe47a6f) - fix: clear remaining RSS Codacy issues (b0b915c5) - fix: address RSS Codacy findings (0fcfcf53) ## v1.9.16 (2026-04-21) ### Fix - fix: preserve TMDB and extension compatibility (ab88a2d6) - Restore compatibility for legacy auth and deployment flows (30d69a97) - fix: resolve new codacy issues (9d6b1c3f) - fix: resolve codacy issues and test regressions (0d6afabc) - fix: address Codacy security findings (5a5e93e6) ## v1.9.15 (2026-04-20) ### Feat - feat: Add MikMok short-form video web client description (f0735ead) ### Fix - Refine API key route gating and update changelog (72230bf0) - Restrict API key library endpoints (3e000568) - Harden asset delivery and yt-dlp compatibility (ae2badf0) ### Chore - chore: add single-container test image release script (aa882d2a) - chore: reorganize repo layout and deployment stacks (2177d3ee) - chore(deps): bump basic-ftp from 5.2.2 to 5.3.0 in /backend (6bcdea78) - chore(deps): bump basic-ftp in /backend/bgutil-ytdlp-pot-provider/server (3c383287) - chore(deps): bump follow-redirects (087d683b) - chore(deps): bump follow-redirects from 1.15.11 to 1.16.0 in /backend (ff171cec) - chore(deps): bump follow-redirects from 1.15.11 to 1.16.0 in /frontend (5005f94f) ## v1.9.14 (2026-04-11) ### Refactor - refactor: Update import statement for YoutubeSessionDataCaches (4690ad60) ## v1.9.13 (2026-04-11) ### Fix - fix: stabilize youtube yt-dlp extractor args (2d39d6b7) ### Chore - chore(deps): bump basic-ftp from 5.2.1 to 5.2.2 in /backend (9d823851) - chore(deps): bump basic-ftp in /backend/bgutil-ytdlp-pot-provider/server (2476daf6) ## v1.9.12 (2026-04-10) ### Fix - fix: bump axios in bgutil-ytdlp-pot-provider (70a1f3db) ## v1.9.11 (2026-04-10) ### Feat - feat: Update test scripts for backend and frontend (daf6a290) ### Fix - fix: sync backend lockfile for axios upgrade (7cc1ce06) - fix: frontend/package.json & frontend/package-lock.json to reduce vulnerabilities (56cb4ab5) - fix: backend/package.json to reduce vulnerabilities (a1a8b899) ## v1.9.10 (2026-04-10) ### Fix - fix: avoid codacy path resolve warning (3f309dad) - fix: tolerate invalid bgutil provider env path (20ad4e94) - fix: remove codacy suppression from provider detection (abfd80fc) - fix: constrain bgutil provider env path (d124f4de) - fix: use trusted path helpers for provider detection (77a4874b) - fix: auto-detect bundled bgutil provider script (d22d1cf3) ### Chore - chore: suppress trusted provider path false positive (a1322a72) - chore(deps): bump basic-ftp in /backend/bgutil-ytdlp-pot-provider/server (0088f2ba) - chore(deps): bump basic-ftp from 5.2.0 to 5.2.1 in /backend (bdf71ac5) - chore(deps): bump drizzle-orm from 0.45.1 to 0.45.2 in /backend (249f33b8) ## v1.9.9 (2026-04-07) ### Fix - fix: replace nosemgrep comments with safe wrappers from security.ts (d4bb9a5b) - fix: resolve EACCES permission denied on Docker bind mounts after v1.9.0 upgrade (5585aa80) ### Chore - chore(deps-dev): bump vite from 6.4.1 to 6.4.2 in /frontend (3b13464f) - chore(deps): bump vite from 7.2.4 to 7.3.2 in /backend (3838bf26) ## v1.9.8 (2026-04-04) ### Fix - Fix Codacy object injection warning (69d963e2) - Fix compatibility regressions in hooks and passkeys (c88038fc) - fix: address latest Codacy findings (9e4a1890) - fix: address more Codacy findings and review issues (9dc4e619) - fix: address remaining Codacy issues (5287af98) - fix: resolve remaining Codacy findings (d5366071) - fix: address more Codacy findings (e737573e) - fix: address additional Codacy findings (cfb263b3) ### Test - test: fix backend storage and cloud scanner regressions (450b70c9) - test: Add security mocks and update cookieService tests (d2958b21) ### Chore - chore: address Codacy findings and reporting (51ff5626) ## v1.9.7 (2026-04-04) ### Fix - fix: resolve codacy lint findings (7dbb546b) - fix: avoid codacy eslint rule crashes (b1a42f42) - Fix settings error localization handling (c6c233f4) ### Test - test: improve frontend coverage (b422ddcb) - test: expand settings mutations coverage (19d44089) ### Chore - chore: trigger codacy reanalysis (6df1f023) ## v1.9.6 (2026-04-02) ### Fix - Fix CSRF token rotation after auth changes (74b2540e) - Fix Codacy object injection false positive (7cf07636) - Address review feedback on path safety cleanup (f9c17df5) - Fix Codacy script lint regressions (5db7bd3f) - Harden upload paths and fix controller tests (9c7d7ad8) - Reduce more Codacy script and thumbnail findings (b39fc805) - Reduce more Codacy thumbnail path findings (9b562644) - Reduce more Codacy path safety findings (64273502) - Reduce Codacy path safety findings (ebecbcfd) ### Chore - Exclude validated scripts from Codacy opengrep (663d9369) - Tune Codacy exclusions for PR analysis (57c032f2) ## v1.9.5 (2026-04-02) ### Fix - fix: add explicit startsWith guard in statImagePath for Codacy (8a09a6e5) - fix: use path.normalize as Codacy-recognized sanitizer in statImagePath (9eb778f0) - fix: break taint-tracking chain in statImagePath for Codacy (e6210097) - Generate scan thumbnails from internal paths (d65fcb23) - Use internal temp thumbnail paths during scans (738f6cdc) - Make thumbnail stat revalidation explicit (388a15af) - Resolve Codacy path traversal findings (e6d1e627) - Address review feedback and harden TMDB/settings flows (6ca476b2) - fix: package.json & package-lock.json to reduce vulnerabilities (cad1e339) ### Refactor - Drop scan thumbnail stat helper to satisfy Codacy (25909dcf) - Suppress safe image path helper FS access (3fa9980d) - Route scan image IO through security helpers (07160ffa) ### Test - Fix UUID typing in scan controller tests (b59cd205) - Update scan controller test security mocks (2a56af68) - Fix pipeline test mock and TMDB credential hashing (c4acde63) ### Chore - chore(deps): bump lodash from 4.17.23 to 4.18.1 (c530267d) ## v1.9.4 (2026-04-02) ### Feat - feat: Implement admin trust model and deployment security docs (c83d8181) ### Fix - Avoid client-side timeout for scan requests (e9b5244b) ## v1.9.3 (2026-03-31) ### Fix - fix frontend types and settings details (4629fa17) ### Docs - docs: Delete admin trust level feature document (8a7d99b6) ## v1.9.2 (2026-03-31) ### Feat - Implement admin trust model and deployment security docs (dc2cc639) ### Fix - Harden hook risk scanning and docs (d174d11c) ### Refactor - Replace dynamic hook risk regex construction (62989194) ### Test - Update telegram controller test for error response (fc30142a) ## v1.9.1 (2026-03-31) ### Fix - Apply Codacy hardening fixes (f62da10b) - Harden storage path operations (fcb4831c) - Address Codacy path traversal findings (04a03109) - Fix stale backend test expectations (f2310ebb) - Fix randomInt test typing (7e6c6e01) ### Refactor - Tighten storage path validation (39994466) ## v1.9.0 (2026-03-30) ### Feat - Add Twitch subscription support (89fa16d9) - Add subscription interval editing (e7a290c4) - Update subscription check timestamp display (48841818) ### Fix - Fix backend tests for Twitch support (f6150e92) ### Refactor - Improve mobile subscription interval editing (4aa540fc) - refactor: standardize frontend date display format (ea1c45b2) - refactor: Update picomatch and diff versions (9ab0d213) ### Chore - chore(deps): bump path-to-regexp from 0.1.12 to 0.1.13 in /backend (fb6b54d9) - chore(deps): bump path-to-regexp in /backend/bgutil-ytdlp-pot-provider (48ba31d0) - chore(deps): bump picomatch from 4.0.3 to 4.0.4 in /frontend (f798942c) - chore(deps): bump picomatch in /backend/bgutil-ytdlp-pot-provider/server (f60f305a) ## v1.8.74 (2026-03-26) ### Refactor - refactor: Update picomatch and diff versions (2930b6fa) ## v1.8.73 (2026-03-25) ### Refactor - refactor: Update ThemeContext and useStickyButton logic (2e5e3d08) ## v1.8.72 (2026-03-25) ### Fix - Harden auth password recovery flows (4d89b146) - Harden admin auth and remove public reset endpoint (dd7b4a61) - Refine auth recovery and limiter updates (752bc7f0) ## v1.8.71 (2026-03-24) ### Fix - Fix passkey registration authorization (d6c1275a) ## v1.8.70 (2026-03-23) ### Refactor - refactor: Remove unnecessary endpoint path for CSRF protection (39831773) ## v1.8.69 (2026-03-23) ### Fix - fix: Add CSRF middleware to protect against cross-site request forgery (5842debe) - fix: Prevent authorization bypass via query parameter injection (b7bf9b79) ## v1.8.68 (2026-03-23) ### Refactor - refactor: Update settingsController tests and safe payload logic (796ca186) ## v1.8.67 (2026-03-23) ### Feat - feat: Add lazy loading with retry functionality (5ae4fe4d) ### Chore - chore(deps-dev): bump flatted from 3.3.3 to 3.4.2 in /frontend (aa52d69c) ## v1.8.66 (2026-03-18) ### Feat - feat: Add lastPlayedAt to VideoContext and sync history cache (0c161264) ### Refactor - refactor: Improve startTime application logic (01484ead) - refactor: Improve startTime handling in useVideoPlayer (c994061d) ## v1.8.65 (2026-03-17) ### Fix - fix: harden upload path handling (40349504) ## v1.8.64 (2026-03-16) ### Refactor - refactor: Optimize stored upload filename handling (96b9e086) ## v1.8.63 (2026-03-16) ### Refactor - refactor: Update imports and add security measures (262db76c) ## v1.8.62 (2026-03-16) ### Chore - Remove pngjs dependency from file type test (c5c7df48) ## v1.8.61 (2026-03-16) ### Fix - Fix test suite after thumbnail mirror refactor (c51dec50) ### Refactor - Refactor thumbnails to use images-small mirrors (c7f05f23) ## v1.8.60 (2026-03-16) ### Feat - Allow uploads when login protection is disabled (1e0f03ea) ## v1.8.59 (2026-03-16) ### Fix - Clarify upload count and size limits (c870171a) ## v1.8.58 (2026-03-16) ### Feat - Add secure batch uploads and sync locale keys (ad9a13b9) ## v1.8.57 (2026-03-13) ### Fix - fix security alerts and static asset routing (9bfa1ef9) ### Chore - chore(deps): bump undici from 7.18.2 to 7.24.1 in /backend (41fb1771) ## v1.8.56 (2026-03-13) ### Fix - Improve Lighthouse mobile loading path (0a970cb9) ### Test - test: improve frontend coverage and stabilize tests (db77e2c6) ### Docs - Add desktop Lighthouse score badge (df8be34c) ## v1.8.55 (2026-03-13) ### Chore - chore: sort translations (c3bd7c09) ## v1.8.54 (2026-03-12) ### Feat - feat: Implement function to validate uploaded image content (46cb1ab2) ## v1.8.53 (2026-03-12) ### Refactor - refactor: Update fromFile to fromBuffer in file-type index (cce16877) ## v1.8.52 (2026-03-12) ### Fix - Improve file path validation and localize video load errors (7f9073e8) ## v1.8.51 (2026-03-12) ### Build - build: Disable provenance attestations in Docker Buildx (1f6b9c34) ## v1.8.50 (2026-03-12) ### Feat - feat: Add file path validation to prevent access outside allowed roots (03401a06) ## v1.8.49 (2026-03-12) ### Fix - fix: protect local media during mount cleanup (f1898e2f) ### Build - build: reduce qemu work in multi-arch images (9e295647) ## 1.8.48 (2026-03-12) ### Feat - Implement database merge workflow (9e19823) ## v1.8.47 (2026-03-11) ### Refactor - refactor: Add vendor folder for backend dependencies (a1580db) ### Chore - chore: Add "peer" property to package-lock.json (aa6af9e) ## v1.8.46 (2026-03-08) ### Feat - feat(backend): add deno runtime fallback for yt-dlp (cf6aee9) ## v1.8.45 (2026-03-08) ### Feat - feat: Add GHCR image build workflow (19daa39) ### Chore - chore(deps): bump express-rate-limit from 8.2.1 to 8.2.2 in /backend (2b65a50) ## v1.8.44 (2026-03-05) ### Test - test: improve test coverage (6c9c142) ### Chore - chore(deps): bump multer from 2.1.0 to 2.1.1 in /backend (ada80b9) ## v1.8.43 (2026-03-04) ### Refactor - refactor: Improve readability by extracting asReaddirResult (e3a247d) ### Chore - chore: Update Dockerfile with environment variable exclusion (5977249) - chore: suppress false positives and tighten codacy test typing (ea9a2b1) ## v1.8.42 (2026-03-04) ### Fix - fix: recover missing merged videos and add ffmpeg postinstall helper (aba451d) - fix: harden video fallback resolution and postinstall checks (2caeb20) ## v1.8.41 (2026-03-03) ### Refactor - refactor: Update better-sqlite3 to version 12.6.2 (8977bff) ## v1.8.40 (2026-03-03) ### Feat - feat: Add multiple installation options for yt-dlp (f8a11f7) ### Fix - fix: improve yt-dlp initial installation and utils (28b9c97) - fix: harden yt-dlp availability and spawn handling (21cc961) ## v1.8.39 (2026-03-02) ### Feat - feat: Update workflow to improve coverage reporting (87e3024) ## v1.8.38 (2026-03-02) ### Feat - feat: Add new build configurations and environment variables (55ac0aa) ### Fix - fix: fix windows gen image capability issue (2744d1c) ## v1.8.37 (2026-03-02) ### Docs - docs: Update .gitignore for reports folder (c555e21) ### Revert - Revert "chore: address codacy findings and tighten scan config" (6694d2d) ## v1.8.36 (2026-03-02) ### Refactor - refactor: Improve handling of image paths and frozen lists (2329f76) ### Chore - chore: address codacy findings and tighten scan config (5e355a2) ## v1.8.35 (2026-03-02) ### Feat - feat: Add secure path sanitization function (fc5a3ef) ## v1.8.34 (2026-03-02) ### Feat - feat: Add missing columns for legacy databases (816d12c) - feat: Add useVideoProgress hook with view count logic (a22021f) ### Fix - fix: backend/package.json & backend/package-lock.json to reduce vulnerabilities (36f84e1) ### Chore - chore(deps): bump multer from 2.0.2 to 2.1.0 in /backend (ab80c48) ## v1.8.33 (2026-03-01) ### Style - style: Update ControlsOverlay styles and position (bed2fd3) ## v1.8.32 (2026-03-01) ### Feat - feat: add subscription download order (f29c1ba) ### Test - test: Update videoMetadataController.test.ts and videos.test.ts (a03a839) ## v1.8.31 (2026-02-28) ### Test - test: Prefer refreshed thumbnailUrl over local thumbnailPath (79905ea) ## v1.8.30 (2026-02-28) ### Feat - feat: Add optional API key support for MyTube downloads (c888a7c) ### Refactor - refactor: Normalize language and theme values for consistency (2d7eed0) ## v1.8.29 (2026-02-28) ### Feat - feat(i18n): translate API key authentication settings (cec21df) - Add API key auth controls and update endpoint docs (db29581) ## v1.8.28 (2026-02-28) ### Feat - feat: Add custom thumbnail upload for videos (144a40c) ## v1.8.27 (2026-02-28) ### Refactor - refactor: Update minimatch version to 3.1.5 and 9.0.9 (0d990a3) ### Test - test: Add tests for m3u8 wait behavior in downloadVideo (ff58b51) ## v1.8.26 (2026-02-28) ### Feat - feat: Add dynamic aspect ratio for mobile devices (24db007) ### Fix - fix: downloader stderr handling and enforce byte-safe filename limits (3e44bb9) ### Chore - chore(deps): bump rollup from 4.53.3 to 4.59.0 in /backend (f8db1d4) - chore(deps): bump minimatch in /frontend (e3ddd25) - chore(deps): bump rollup from 4.34.9 to 4.59.0 in /frontend (d49719f) - chore(deps): bump basic-ftp from 5.1.0 to 5.2.0 in /backend (e516763) - chore(deps): bump basic-ftp in /backend/bgutil-ytdlp-pot-provider/server (87a782a) ## v1.8.25 (2026-02-20) ### Feat - feat: Add 3x speed option to SpeedControl component (8c57315) ### Refactor - refactor: Update type casting in code for strict typing (f97d702) ## v1.8.24 (2026-02-19) ### Feat - feat: Add speed control to VideoPlayer controls (8f6d2e0) - feat: Add selectedSubtitleIndices to ControlsOverlay and SubtitleControl (c6cb3f7) ### Test - test: Add SpeedControl component tests (be5a508) - test: Update subtitle control tests and add useSubtitles tests (03ef069) ## v1.8.23 (2026-02-17) ### Feat - feat: Add Telegram notification support (67a4c95) - feat: Add Telegram notification support and improve filename handling (20368be) ### Refactor - refactor: Improve handling of deduplicating filenames (b1a7487) ## v1.8.22 (2026-02-15) ### Fix - fix: Update Telegram bot token and chat ID format validation (7c13709) ## v1.8.21 (2026-02-15) ### Feat - feat: Add Telegram notification settings and test functionality (b9d232d) ### Test - test: Add tests for telegram notifications in AdvancedSettings (9dadf04) ### Chore - chore: release v1.8.21 (902807c) ## v1.8.20 (2026-02-15) ### Feat - feat: Build multi-architecture images using buildx (4850c80) ## v1.8.19 (2026-02-15) ### Test - test: update test cases (b5fff7b) ## v1.8.18 (2026-02-15) ### Refactor - refactor: Remove redundant video addedAt field (5260659) ### Chore - chore: Remove complexity check from workflows and release script (33b0e77) - chore: Remove lizard tool configurations and baseline (75e9008) ## v1.8.17 (2026-02-15) ### Chore - chore(deps): Update package versions and add tests (dede00c) ## v1.8.16 (2026-02-15) ### Feat - feat: Add re-download functionality for videos (dcc74a1) ### Fix - fix: Increase NLOC threshold to 100 (0d9bd4d) - fix: Update Lizard_nloc-medium threshold to 100 (b41c40d) ### Refactor - refactor: Extract re-download logic into custom hook to reduce complexity (6d987ee) ### Test - test: Add re-download feature for videos with sourceUrl (0d3d696) ### Chore - chore: Update lizard complexity baseline (3e3822e) - chore: Increase lizard NLOC limit from 50 to 100 (5d436fb) - chore: Update file extensions in test files (eefd00c) - chore(deps): bump qs in /backend/bgutil-ytdlp-pot-provider/server (7b31cbf) ## v1.8.15 (2026-02-14) ### Feat - feat: Add type definitions for mock captured props (7cf0e58) - feat: Add new lizard patterns for medium thresholds (6c08015) ### Fix - fix: resolve ESLint errors in test files (9961330) - fix: upgrade react-virtuoso from 4.17.0 to 4.18.1 (2ec4810) - fix: upgrade react-router from 7.12.0 to 7.13.0 (e87750a) - fix: upgrade @tanstack/react-query from 5.90.16 to 5.90.20 (8a2aa74) - fix: upgrade framer-motion from 12.25.0 to 12.29.0 (ea4a780) ### Refactor - refactor: update types from 'any' to 'unknown' (9531049) ### Style - style: Combine multiple variable assignments in tests pages (094cadd) - style: Remove unnecessary empty patterns in lizard.yaml (11a5740) ### Test - test: add comprehensive tests for 9 frontend page components (452921a) ### Chore - chore: update lizard baseline with test file complexity issues (2e6d35f) - chore(deps): bump qs from 6.14.1 to 6.14.2 in /backend (0ef8892) ## v1.8.14 (2026-02-13) ### Refactor - refactor: Improve code readability and structure (30d981c) ### Docs - docs: Update video codec options in download settings (6665a61) ## v1.8.13 (2026-02-12) ### Refactor - refactor: Extracted functions for deleting video files and handling author avatar cleanup (8d63e80) ### Chore - chore: fix codacy issues (6aae270) ## v1.8.12 (2026-02-11) ### Test - test: Update testing library function in UploadModal test (1828fe6) ## v1.8.11 (2026-02-11) ### Chore - chore: improve codacy score (8a5a9cc) ## v1.8.10 (2026-02-11) ### Test - test: refactor createReq function for cloudRoutes tests (84a5a3d) - test: improve test coverage (5521c9f) - test: Refactor useHomePagination tests (cae485a) - test: improve test coverage (aad0c78) ## v1.8.9 (2026-02-11) ### Ci - ci: Update Codacy token handling logic (6408a82) ### Style - style: Update badges in README files (924c54c) ## v1.8.8 (2026-02-11) ### Feat - feat: Add Lizard configuration for code complexity (b9729a9) ## v1.8.7 (2026-02-11) ### Feat - feat: Add script to prepare Lizard config file (f398fb0) ## v1.8.6 (2026-02-11) ### Refactor - refactor: reduce complexity (3e89abc) ## v1.8.5 (2026-02-11) ### Feat - feat: Add VersionInfo component for displaying version info (7abe7cb) - feat: Enhance passwordController and roleBasedAuthMiddleware tests (2acdb9c) ## v1.8.4 (2026-02-11) ### Feat - feat(server): add CORS support with configurable options (cdeedfd) ## v1.8.3 (2026-02-10) ### Feat - feat: Add support for legacy plaintext password migration (4f87663) ## v1.8.2 (2026-02-10) ### Refactor - refactor: mass security refactor and fix (e2a49ad) - refactor: mass security refactor and fix (9bfac72) - refactor: mass security refactor and fix (c9b6dff) - refactor: Improve fallbackCopy function for copying text (c18b56e) ### Fix - fix: Improve SSRF protection in MissAVDownloader (a5fcc4c) - fix: backend/package.json & backend/package-lock.json to reduce vulnerabilities (7eee9f7) ### Test - test: Update test to check for stdout output instead of console (21858fd) ### Chore - chore: upgrade axios to 1.13.5 (27cab5b) ## v1.8.1 (2026-02-10) ### Feat - feat: Add tab functionality to ManagePage (dda8cf0) - feat: Add functionality to refresh all file sizes (89bed0e) - feat: Implement fast retry mode for login attempts (025a835) ### Style - style: Improve grid layout comments and structure (3ea2c68) ### Build - build(deps): bump axios from 1.13.2 to 1.13.5 in /frontend (da99e6d) ## v1.8.0 (2026-02-09) ### Refactor - refactor: mass optimize and fix (763ce6b) ## v1.7.117 (2026-02-08) ### Feat - feat: Add conditional rendering for 'Download Shorts' option (95fd044) - feat: Add optional avatar click functionality (2de3cc7) - feat: Add isFullscreen prop to VideoElement (751e92c) ## v1.7.116 (2026-02-08) ### Refactor - refactor: Update folder structure and comments in Chinese files (b0f2b02) ## v1.7.115 (2026-02-07) ### Feat - feat: Add support for downloading Shorts in subscriptions (1db3b4c) ### Fix - fix: Update placeholder text in HeaderVisitor.test.tsx (bc09c80) ### Style - style: Update code formatting and alignment (609150e) ## v1.7.114 (2026-02-07) ### Feat - feat: Add normalizeYouTubeAuthorUrl function (fb6c29f) ## v1.7.113 (2026-02-07) ### Feat - feat: Add theme setting to user preferences (5a946f8) ### Style - style: Update gridTemplateColumns value in VideoPlayer (325de32) ### Test - test: Add tests for toggling theme in Header component (61cad14) ## v1.7.112 (2026-02-06) ### Style - style: Update gridTemplateColumns value in VideoPlayer (7c5a70f) ## v1.7.111 (2026-02-06) ### Style - style: Improve tag filtering for case-insensitive display (231e281) ## v1.7.110 (2026-02-06) ### Feat - feat: Add handling for changing startTime asynchronously (902a558) - feat: Add playFromBeginning setting to video player (a628442) ### Style - style: Update video playback wording in multiple locales (e330770) ## v1.7.109 (2026-02-05) ### Refactor - refactor: Remove unused code and refactor updating video tags (2f2ee8a) ### Style - style: Update showTagsOnThumbnail initial state (31d17e7) ## v1.7.108 (2026-02-05) ### Refactor - refactor: Improve tag handling in AuthorVideos and CollectionPage (f3adb35) ## v1.7.107 (2026-02-05) ### Refactor - refactor: Remove unused code and refactor updating video tags (013f184) ## v1.7.106 (2026-02-05) ### Feat - feat: Add author & collection tags feature plan (79e522d) ### Style - style: Improve video player layout and styling (6692773) ### Docs - docs: Update API endpoints and add video subtitles upload (8b526c0) ## v1.7.105 (2026-02-04) ### Feat - feat: Add case-insensitive tag conflict validation (9061a9f) ### Revert - Revert "style: Update video element styling for better control" (a85a156) ## v1.7.104 (2026-02-04) ### Feat - feat: add upload subtitle feature (46a5a1d) ### Style - style: Update font loading comments and system font stack (65bf99a) - style: Update video element styling for better control (c1f72e9) ### Test - test: Update ts-ignore comments to ts-expect-error (cadaee6) ## v1.7.103 (2026-02-04) ### Feat - feat: Add page tag filtering functionality (369378d) ## v1.7.102 (2026-02-03) ### Feat - feat: Add author & collection tags feature plan (9d64e9f) ### Test - test: Mock useSettings hook in Home.test file (ce89ba7) ## v1.7.101 (2026-02-02) ### Style - style: Improve click handling in CinemaModeControl (ca77ae5) ## v1.7.99 (2026-02-01) ### Feat - feat: Implement startTime functionality in useVideoPlayer (025bdd3) ## v1.7.98 (2026-01-31) ### Fix - fix: 0 sec seek issue (cd70e10) - fix: resolve merge conflicts in frontend dependencies (132128a) - fix: upgrade @mui/icons-material from 7.3.5 to 7.3.7 (0fba8c7) - fix: upgrade @tanstack/react-query from 5.90.11 to 5.90.16 (c6d27a8) - fix: upgrade framer-motion from 12.23.24 to 12.25.0 (05c01e8) - fix: upgrade react-dom from 19.0.0 to 19.2.3 (b14be03) - fix: upgrade react from 19.0.0 to 19.2.3 (9e4fbc7) ## v1.7.97 (2026-01-30) ### Fix - fix(docker): migrate to debian bookworm to fix arm64 qemu crash (95f78ae) ## v1.7.96 (2026-01-30) ### Fix - fix(git): actually track provider as files (not submodule) (528dd5c) - fix(ci): use tag name as version in publish workflow (edeab82) - fix(git): re-track provider as regular files (fd071a2) - fix(git): remove invalid submodule reference (01754af) ## v1.7.95 (2026-01-30) ### Fix - fix(docker): skip provider build in docker (2c5c510) ## v1.7.94 (2026-01-30) ### Feat - feat: Add tag push trigger for publishing Docker images (fde3199) - feat: add publish workflow and update release script (3a8ec01) ## v1.7.93 (2026-01-30) ### Feat - feat: Add download button to Chrome extension (b9786ba) - feat: select preferred audio track (ac0e9eb) ### Refactor - refactor: Remove Grid layout and rearrange components (d6e2c04) - refactor: Update indentation and variable names (5e797fa) ### Test - test: Add currentTimeRef to useVideoProgress in tests (084ff7e) ### Docs - docs: Update comments for language and auth context (9d92e48) ## v1.7.92 (2026-01-29) ### Feat - feat: Add option to subscribe to all playlists in channel (f6b58de) ## v1.7.91 (2026-01-29) ### Refactor - refactor: Improve parsing and displaying subtitle language (4b1fb56) ## v1.7.90 (2026-01-28) ### Test - test: Add tests for TagsModal and Home components (636f159) - test: Add unit tests for passkey service functionality (6bc21dc) ## v1.7.89 (2026-01-27) ### Feat - feat: Add selectedTags and handleTagToggle functionality (1c412cd) - feat: Add download options for previous videos in playlists (6a7dc3f) ### Chore - chore: Upgrade dependencies and enhance lint (9637425) ## v1.7.88 (2026-01-26) ### Build - build(deps): Upgrade express from 4.22.0 to 4.22.1 (c5b4b15) ## v1.7.87 (2026-01-26) ### Test - test: Add tests for handling play/pause keyboard shortcuts (4be87ba) ## v1.7.86 (2026-01-26) ### Chore - chore: Improve Dockerfile package download speed (8e92aa6) ## v1.7.85 (2026-01-26) ### Chore - chore: enhance lint (94470e0) ## v1.7.84 (2026-01-25) ### Refactor - refactor: Improve path traversal prevention logic (ce43a03) ## v1.7.83 (2026-01-25) ### Feat - feat: Add functionality to delete tags from videos (fe6a3e4) - feat: Add functionality to rename a tag (13d8429) ### Fix - fix: Validate and rename tags in settingsController (05d87cb) ## v1.7.82 (2026-01-24) ### Feat - feat: Add availableTags filtering to VideoCardThumbnail (0ccd630) - feat: Add updates to video and videos list queries (2e83bf4) ### Refactor - refactor: Improve file scanning functions and error handling (fc276fe) ### Style - style: Update test mocks with additional properties (2622a65) ## v1.7.81 (2026-01-24) ### Feat - feat: Add bulk selection and actions in VideosTable (a691f6d) ### Refactor - refactor: Update download task title handling and storage (c9190d6) ### Style - style: Update HistoryTab UI elements (dc5caf7) ### Chore - chore: Update extension version to v1.0.2 (071c6bf) ## v1.7.80 (2026-01-23) ### Feat - feat: Update version to 1.0.2 and add alarm permission (b55a007) - feat: Add language key to storage settings (bec7337) - feat: Add getDomainFromUrl helper function (7fce91f) ### Fix - fix: Remove unnecessary userRole check in MobileMenu (8329beb) ### Refactor - refactor: Improve title fetching logic and storage functionality (52a8f2c) ### Build - build(deps): bump lodash from 4.17.21 to 4.17.23 (7db73c9) ### Test - test: Add tests for search optimization logic (d73a4b9) ## v1.7.79 (2026-01-22) ### Refactor - refactor: Implement mass assignment protection in saveSettings (9d737cb) ### Test - test: Add roleBasedSettingsMiddleware unit tests (e271775) ## v1.7.78 (2026-01-21) ### Feat - feat: Add getDomainFromUrl helper function (f8e9122) ## v1.7.77 (2026-01-21) ### Feat - feat: Add URL preprocessing function for xvideo red (953c042) ## v1.7.76 (2026-01-20) ### Feat - feat: Update readme files (e760c4f) ### Test - test: Add mock for useSettings and useSettingsMutations (5f48a68) ## v1.7.75 (2026-01-20) ### Feat - feat: Add settings hooks for global tag updates (8acc088) ## v1.7.74 (2026-01-19) ### Refactor - refactor: Update password handling in tests and middleware (2a13708) ## v1.7.73 (2026-01-19) ### Feat - feat: Add TagsModal component and functionality (2028580) ### Fix - fix: re-apply dotenv upgrade from PR #88 (b14ee6b) - fix: upgrade better-sqlite3 from 12.4.6 to 12.5.0 (fbb4aa8) - fix: upgrade fs-extra from 11.3.0 to 11.3.3 (8bf029e) - fix: upgrade puppeteer from 24.31.0 to 24.34.0 (f8543e6) - fix: upgrade drizzle-orm from 0.44.7 to 0.45.1 (c71a1c2) ## v1.7.72 (2026-01-18) ### Feat - feat: Add showTagsOnThumbnail feature (231a5f3) ## v1.7.71 (2026-01-17) ### Refactor - refactor: Improve IP extraction and validation safety (bc05745) ## v1.7.70 (2026-01-17) ### Refactor - refactor: Update collection renaming logic and UI in ManagePage (59f1cae) - refactor: Update file paths to use os and path modules (f8933c8) ## v1.7.69 (2026-01-17) ### Feat - feat: Add utility functions for safely extracting and normalizing HTTP request parameters (301e53f) ### Style - style: Remove redundant setUserAgent calls (8f29f48) ### Docs - docs: Update .gitignore for CodeQL files (07948b4) ## v1.7.68 (2026-01-17) ### Feat - feat: Add new passkeys check in login page (e6488bb) ## v1.7.67 (2026-01-17) ### Feat - feat: implement comprehensive security hardening, rate limiting, and path sanitization (973e055) ### Test - test: Update mock functions in test files (d4fe074) ## v1.7.66 (2026-01-16) ### Feat - feat: Optimize frontend for better LCP performance (1ba9f95) ## v1.7.65 (2026-01-16) ### Fix - fix: Security fix: Add authentication checks for unauthenticated users in role-based middleware (f85ae9b) ### Build - build(deps): bump qs and body-parser in /backend (d013be3) - build(deps): bump undici from 7.16.0 to 7.18.2 in /backend (947e3f2) ## v1.7.64 (2026-01-15) ### Feat - feat: Add SortControl component for sorting videos (46a8a4a) - feat: Add seeking functionality to VideoPlayer (8112d13) ## v1.7.63 (2026-01-15) ### Feat - feat: Add default sort option for videos (ceed6bd) ## v1.7.62 (2026-01-15) ### Feat - feat: Add script to wait for backend before starting frontend (b6e7369) - feat: Add option to download all previous videos in playlists (f0c8795) - feat: Add don't skip deleted video setting in HistoryItem (c83bc9e) ### Refactor - refactor: Clean channel name handling and log message for debugging (b544e75) - refactor: Update Vite config and server settings (8d255b0) ### Style - style: Update padding values in VideoPlayer component (5efe37f) ## v1.7.61 (2026-01-15) ### Refactor - refactor: Update Vite config and server settings (37da389) ## v1.7.60 (2026-01-14) ### Refactor - refactor: Update cloudflaredService with execSync and fs.existsSync (f68c05e) ## v1.7.59 (2026-01-14) ### Feat - feat: Add Cinema Mode Control component (28fa3e7) - feat: add subscribe authors playlists (a64b600) - feat: Add centralized API and backend URL helpers (44d0bcd) ## v1.7.58 (2026-01-14) ### Refactor - refactor: Update subscription choice descriptions (c7f79e9) ### Chore - chore: Update settings in videoController tests (14d3948) ## v1.7.57 (2026-01-13) ### Feat - feat: Update browser extension installation instructions (93cceb4) - feat: Add option to re-download deleted videos (15d55fd) ### Fix - fix: Update version to 1.0.1 (5343901) ## v1.7.56 (2026-01-13) ### Feat - feat: Add support for Bilibili collections/series URLs (a3f6d9e) - feat: Subscribe to playlist with download option (53d12ab) ### Style - style: Improve padding and margins for tab view on SettingsPage (9ccbf2d) ## v1.7.55 (2026-01-12) ### Feat - feat: Add retry logic and timeout handling to getCloudStorageSignedUrl (7bd6718) - feat: Add AuthorListItem memoization for performance (72bac4f) - feat: download authors avatar (3ce517a) - feat: Add Chrome extension for easier video downloading (2656648) ## v1.7.54 (2026-01-11) ### Feat - feat: create chrome extension (6df4496) ## v1.7.53 (2026-01-11) ### Style - style: Update formatting in YtDlpSettings file (9d1fadb) - style: Remove unnecessary Collapse component and update TextField properties (009ca0d) ## v1.7.52 (2026-01-10) ### Feat - feat: Add functionality to scan mount directories (0d3dd04) - feat: Add tabbed navigation to SettingsPage (aa86b72) - feat: Add TMDB integration for metadata scraping (4edfdfe) ### Refactor - refactor: Improve date handling in scanFiles function (144b1cf) ## v1.7.51 (2026-01-09) ### Feat - feat: add TMDB scrape (1722502) ### Fix - fix: frontend/package.json & frontend/package-lock.json to reduce vulnerabilities (cc2130a) ### Chore - chore: Update language translations (edd0466) ## v1.7.50 (2026-01-09) ### Feat - feat: show continous task in download history (063f21b) - feat: Add maxConcurrentDescription to DownloadSettings (406f1d0) ### Style - style: Fix code indentation and formatting issues (efd5fca) - style: Improve container usage in DownloadPage (6f9da06) ### Chore - chore: Clean up local images after building and pushing (b229fb6) ## v1.7.49 (2026-01-08) ### Feat - feat: Add sound selection for task completion (ba30dab) - feat: Add new tools and dependencies (f2edd01) ## v1.7.48 (2026-01-08) ### Feat - feat(frontend): add sorting functionality for collections table (4c26ccc) ## v1.7.47 (2026-01-08) ### Feat - feat: Add confirmation modal for downloading playlists (c9de2fa) - feat: Add function to download all channel playlists (e77c7bf) ### Refactor - refactor: Update import order in HomeHeader component (778f798) ### Style - style: Remove unnecessary comments and whitespace (6463436) ## v1.7.46 (2026-01-07) ### Chore - chore: Update video MIME types and Safari error handling (e9db8e6) ## v1.7.45 (2026-01-07) ### Style - style: Enable CSS code splitting and use esbuild for minification (20bd425) ## v1.7.44 (2026-01-07) ### Feat - feat: Enhance video duration handling (033399d) - feat: Add responsive pagination size and sibling count (b4a7282) ### Build - build: Optimize vendor bundle splitting (8ff1962) ### Test - test: update translations tests for async functions (114ee3d) ## v1.7.43 (2026-01-07) ### Feat - feat: add pre-signed URLs for cloud video and thumbnail (19f57cb) - feat: Add video prefetch optimization on hover (1e49db2) - feat: Add video prefetch functionality (5c6afda) ### Refactor - refactor: Improve code formatting for server.ts (59ac4dd) ## v1.7.42 (2026-01-06) ### Refactor - refactor: Improve formatting for server.ts and useVideoLoading.ts (c89285e) ## v1.7.41 (2026-01-06) ### Feat - feat: Add video streaming optimizations (ff3b0e3) ### Fix - fix: Update API_URL environment variable retrieval (e09550a) ### Chore - chore: Update build date in Vite config and Footer component (654285b) ## v1.7.40 (2026-01-06) ### Feat - feat: Add fallback copy function for copying link (35ec579) ## v1.7.39 (2026-01-06) ### Feat - feat: Add keyboard shortcuts for seeking left and right (cd50f0c) - feat: Add useSettings hook for dynamic website title (c82b9f0) - feat: Add functionality to copy video link with snackbar feedback (b13dd0e) ### Refactor - refactor: Remove unused 'collections' prop from VideoCard (1e41d0c) ## v1.7.38 (2026-01-06) ### Feat - feat: Add functionality to save author files and improve error logging (e6019dd) ## v1.7.37 (2026-01-06) ### Feat - feat: Add functionality to save author files to collection (023f27c) - feat: move author videos to collection (8defbc3) ### Refactor - refactor: Improve error logging in storage service functions (4ec4926) ## v1.7.36 (2026-01-05) ### Feat - feat: add pause subscription/continous task feature (ff78ddf) ### Style - style: Update resolution limits in YtDlpSettings (de3a65f) ### Chore - chore: remove unnecssary files (e6b612b) ## v1.7.35 (2026-01-05) ### Fix - fix: Update SOCKS proxy URL for remote DNS resolution (afb4e20) ## v1.7.34 (2026-01-04) ### Feat - feat: Add isVisitor check to BasicSettings and useVideoProgress (3e44960) ### Feat - feat: Add refetchOnMount option to DownloadProvider (91d53f0) ## v1.7.33 (2026-01-04) ### Feat - feat: Add support for SOCKS5 proxies in axios config (695489d) ### Refactor - refactor: Add default timeout for thumbnail downloads (494b85d) ### Chore - chore: update doc (a4eaaa3) ## v1.7.32 (2026-01-04) ### Style - style: Update cookie security settings for better usability (46c8d77) ## v1.7.31 (2026-01-04) ### Feat - feat: Implement helper for selecting best m3u8 URL (f76acfd) - feat: Add executeYtDlpJson function (98ec0b3) ### Refactor - refactor: Update axios configuration for downloading subtitles (c995eb3) ## v1.7.30 (2026-01-04) ### Test - test: Update mock SettingsPage test to include refetch (eeac567) ### Style - style: Improve comments for YtDlpSettings file (e7bdf18) ### Test - test: Add file_location test and mock settings in ytdlpVideo (a5e82b9) ## v1.7.29 (2026-01-03) ### Feat - feat: Enable visitor user with password option (ccd2729) - feat: enhance visitor mode (e18f49d) - feat: enhance visitor mode (13de853) - feat: enhance visitor mode (76d4269) - feat: Add visitor mode in LoginPage component (44b2454) ### Test - test: Add role to response in passwordController tests (a9f7864) ## v1.7.28 (2026-01-03) ### Refactor - refactor: Improve m3u8 URL selection strategy (3717296) ## v1.7.27 (2026-01-03) ### Feat - feat: Add endpoint for retrieving reset password cooldown (092a79f) - feat: Add WebAuthn error translations (9296390) ## v1.7.26 (2026-01-03) ### Feat - feat: Add script to reset password securely (1b9451b) - feat: Add allowResetPassword setting and UI components (9968268) - feat: Add password login permission handling (ce544ff) ## v1.7.25 (2026-01-02) ### Feat - feat: add passkey feature (6fdfa90) ### Refactor - refactor: Update formatUtils to use formatRelativeDownloadTime function (c9657ba) ## v1.7.24 (2026-01-01) ### Refactor - refactor: Explicitly preserve network-related options (90a2445) ## v1.7.23 (2026-01-01) ### Feat - feat: Add logic to refresh thumbnail with random timestamp (6bbb40e) - feat: Add reset password route and update dependencies (c00b552) ### Feat - feat: Add reset password route (845e184) ### Fix - fix: backend/package.json & backend/package-lock.json to reduce vulnerabilities (b0428b9) ## v1.7.22 (2025-12-30) ### Feat - feat: Add risk command scanning for hook uploads (c32fa3e) ### Refactor - refactor: Improve handling of absolute paths in security functions (351f187) ## v1.7.21 (2025-12-30) ### Feat - feat: Add hook functionality for task lifecycle (6f1a1cd) - feat: add task hooks (8ac9e99) ## v1.7.20 (2025-12-30) ### Chore - chore: Update language support to include Russian and update api document (b204fc5) ## v1.7.19 (2025-12-29) ### Test - test: improve frontend test coverage (cb808a3) - test: improve backend test coverage (3a16577) ## v1.7.18 (2025-12-29) ### Refactor - refactor: reorgnize settings page (f812fe4) ## v1.7.17 (2025-12-29) ### Feat - feat: Update version to 1.7.17 and add CollapsibleSection (e56db6d) ### Style - style: Improve formatting in DownloadsMenu component (094e628) ### Test - test: remove unnecessary text assertions (c9e15a7) ## v1.7.16 (2025-12-29) ### Feat - feat(api): Add system controller and version check endpoint (db3d917) - feat: Add pause on focus loss functionality (a664baf) ### Style - style: Update spacing to use Grid component in UpNextSidebar (21c3f4c) ## v1.7.15 (2025-12-29) ### Feat - feat: Add cloud storage redirect functionality (b52547b) ### Refactor - refactor: Remove unnecessary cache flag from Docker build commands (5422e47) ## v1.7.14 (2025-12-29) ### Style - style: update import statements in test files (01292ce) ### Test - test(useVideoHoverPreview): Add hover delay for desktop (694b4f3) - test: Add unit tests for cloud storage utils and URL validation (5b78b8a) - test: Implement Missing Tests (37a57dc) - test(SubscriptionModal): Add subscription modal tests (aaa5a46) - test: Add unit tests for new components and features (0acbcb7) - test: Add unit tests for video card utils and player utils (0e42c65) - test(useViewMode): add hook for managing view mode (80c6efd) - test: Add unit tests for various utils functions (c998780) ## v1.7.13 (2025-12-28) ### Chore - chore: Prune Docker builder cache for space optimization (3e18cc2) ### Test - test: improve test coverage (a01ec2d) ## v1.7.12 (2025-12-28) ### Fix - fix: fix task cleanup test (6d07967) ## v1.7.11 (2025-12-28) ### Feat - feat: add HomeHeader, HomeSidebar, VideoGrid components (00b192b) - feat: Add custom hooks for managing modals and mutations (128624b) ### Fix - fix: Update VideoPlayer to handle null src value (05df7e2) ### Refactor - refactor: Improve error handling in delete operation (7002387) - refactor: Remove duplicate code for getting poster thumbnail URL (630ecd2) - refactor: Reorder import statements for consistency (fb3a627) - refactor: refactor bilibiliVideo.ts (a1289d9) - refactor: refactor videoplayer page (8a00ef2) - refactor: refactor videocard (ea9ead5) ### Style - style: Improve code formatting and indentation (a4a24c0) ### Test - test: improve test coverage (a1ede96) - test: Mock database and dependencies in taskCleanup.test file (6d07967) ## v1.7.10 (2025-12-28) ### Refactor - refactor: Improve file streaming with cleanup and error handling (b76e699) ## v1.7.9 (2025-12-28) ### Fix - fix: exclude uploads directory from docker build (73b4fe0) ### Refactor - refactor: Refactor and improve code formatting (1d3f024) ### Style - style: Improve code formatting and add error retries (d0c316a) ## v1.7.8 (2025-12-27) ### Refactor - refactor: refactor collection (7f0d340) - refactor: refactor collection (286401c) - refactor: Consolidate file moving operations into file manager (56662e5) - refactor: breakdown settingsController (63ea6a1) - refactor: breakdown VideoControls (d33d3b1) ## v1.7.7 (2025-12-27) ### Feat - feat: Add functionality to clear finished tasks (604ff71) ### Refactor - refactor: breakdown continuousDownloadService (68d4b8a) ## v1.7.6 (2025-12-27) ### Feat - feat: Add poster prop to VideoControls component (3632151) ### Refactor - refactor: Update error logging in video download tracking functions (db16896) - refactor: Update yt-dlp to use Node.js runtime alternative (6d04ce4) ## v1.7.5 (2025-12-27) ### Refactor - refactor: Add centralized API client and query configuration (3d0bf34) ## v1.7.4 (2025-12-27) ### Refactor - refactor: Improve video memory management and error handling (27db579) ## v1.7.3 (2025-12-27) ### Feat - feat: Add function to configure SQLite database (0ec8478) ## v1.7.2 (2025-12-27) ### Feat - feat: Allow access CloudFlare tunnel in visitor mode (2902ba8) ## v1.7.1 (2025-12-26) ### Fix - fix: Add missing dependencies for canvas in Dockerfile (c8a199c) ## v1.7.0 (2025-12-26) ### Fix - fix: upgrade vulnerabilities; enhance security (aa8e8f0) ### Refactor - refactor: Update paths and imports in controllers (1d97659) ## v1.6.49 (2025-12-26) ### Feat - feat: Add lazy loading attribute to images (9a955fa) - feat: add youtube playlist download feature (e5fcf66) ### Refactor - refactor: Configure QueryClient with memory management settings (e03db8f) ### Docs - docs: Update localization files with new content (0553bc6) ### Test - test: Improve clipboard functionality and axios mocking (6296f0b) ## v1.6.48 (2025-12-26) ### Chore - chore: Update docker-compose files and configurations (33fa090) ### Refactor - refactor: Improve cloud thumbnail generation with retry mechanism and optimized ffmpeg parameters ## v1.6.47 (2025-12-25) ### Fix - fix: Fix API URL in frontend (1d2f9db) ### Feat - feat: Add Cloudflare Tunnel integration (431e716) - feat: Add Cloudflare Tunnel settings and service (508daae) ## v1.6.46 (2025-12-25) ### Feat - feat: Add cloud thumbnail cache functionality (85b34ec) ## v1.6.45 (2025-12-25) ### Feat - feat: Add new player utilities and update video player components (1f85b37) - feat: Add incrementView function to VideoContext (0225912) ## v1.6.44 (2025-12-25) ### Feat - feat: Add multi-architecture support and manifests creation (dec45d4) ## v1.6.43 (2025-12-24) ### Feat - feat: Add count of videos added from cloud scan (7af272a) ### Refactor - refactor: Update VideoCard and VideoActionButtons to use async/await for getVideoUrl function (853e7a5) ## v1.6.42 (2025-12-23) ### Feat - feat: Add hide video for visitor mode feature - feat: Add translations for hide video feature in all supported languages - feat: Add database migration for hidden video field ## v1.6.41 (2025-12-23) ### Feat - feat: Add "Download all previous videos" option when subscribing to authors - feat: Add continuous download tasks for downloading all previous videos from subscribed authors - feat: Add task management UI in SubscriptionsPage with progress tracking, cancel, and delete functionality - feat: Add translations for continuous download tasks in all supported languages ### Fix - fix: Fix subscription disappearing issue by adding race condition protection and verification before updates - fix: Improve subscription update logic to prevent concurrent processing and silent failures ### Refactor - refactor: Update subscription service to update lastCheck before download to prevent concurrent processing - refactor: Improve error handling and logging in subscription check process ## v1.6.40 (2025-12-23) ### Refactor - refactor: Update author URL decoding in subscriptionService (9f2dd1a) ## v1.6.39 (2025-12-23) ### Feat - feat: Add deleteVideos function in VideoContext (faf09f4) ## v1.6.38 (2025-12-23) ### Feat - feat: Implement SortControl component for sorting videos (f2cd4c8) - feat: Update deleteVideo function signature (1712a0b) ## v1.6.37 (2025-12-23) ### Refactor - refactor: Improve thumbnail uploading and path handling (3608296) ## v1.6.36 (2025-12-23) ### Refactor - refactor: Improve readability of file search function (e6a8e94) - refactor(urlSigner): Improve file search logic for getFileUrlsWithSign function (fd97f20) ## v1.6.35 (2025-12-22) ### Refactor - refactor: Improve file search logic for getFileUrlsWithSign function (e2991f9) ## v1.6.34 (2025-12-22) ### Feat - feat: Add infinite scroll and video columns settings (fefe603) ### Style - style: Update paths in comments and documentation (54537b8) ## v1.6.33 (2025-12-22) ### Style - style: Update Discord invite link in README files (6e4a4f5) ## v1.6.32 (2025-12-22) ### Chore - chore: update bgutil-ytdlp-pot-provider submodule (d59617c) ## v1.6.31 (2025-12-22) ### Feat - feat: Add security measures and URL validation (bbea5b3) ## v1.6.30 (2025-12-22) ### Feat - feat: Add support for multiple scan paths in cloud storage (31b2d05) - feat: Add function to check if file exists before upload (2816ea1) ### Refactor - refactor: Reorganize imports in cloudScanner.ts (d96c785) ## v1.6.29 (2025-12-21) ### Style - style: Improve cloud drive settings URL handling (8e6dd5c) - style: Remove unnecessary comment and white space (765b8de) ## v1.6.28 (2025-12-21) ### Feat - feat: Add two-way sync for cloud storage (bc86d48) ### Refactor - refactor: breakdown CloudStorageService (2a50d96) ## v1.6.27 (2025-12-21) ### Feat - feat: Improve error handling and logging in download process (8982c11) ### Refactor - refactor: Improve finding or creating collections in downloadVideo function (d366123) - refactor: Improve video part skipping and processing (e4a34ac) - refactor: Improve URL validation in CloudDriveSettings (b5bc532) ## v1.6.26 (2025-12-20) ### Feat - feat: Add paste functionality to search input (81d4a71) - feat: Add new features and improve styles (02e9b32) ## v1.6.25 (2025-12-20) ### Feat - feat: Add logic to check if video is new (bfc2fe8) - feat: Add support for Twitter/X URL with Safari compatibility (70c8538) ### Style - style: Improve touch screen compatibility (9823e63) ## v1.6.24 (2025-12-20) ### Feat - feat: Add functionality to format, rename, and store video files (24078d5) - feat: Add new features to improve file handling (441fd12) ## v1.6.23 (2025-12-20) ### Feat - feat: Add syncToCloud feature with progress updates (10c2fe2) - feat: Implement request coalescing for getSignedUrl (a0ba15a) ## v1.6.22 (2025-12-19) ### Feat - feat: Add mobile scroll to top button and gradient header background (b637a66) ## v1.6.21 (2025-12-18) ### Fix - fix: Only load thumbnails from cloud storage when video is in cloud storage (prevents 403 errors for local videos) ## v1.6.20 (2025-12-19) ### feat - feat: Add useCloudStorageUrl hook for cloud storage paths ### Fix - style: Fix indentation issues in settingsController and SettingsPage ## v1.6.19 (2025-12-18) ### Feat - feat: Add public URL field in settings and services (4144038) ## v1.6.18 (2025-12-18) ### Feat - feat: Add savedVisitorMode to GeneralSettings (e684118) - feat: add visitor mode (read only) (60a02e8) ### Refactor - refactor: Remove commented-out code for password verification (775d024) ## v1.6.17 (2025-12-18) ### Feat - feat: Add video deletion functionality (8719186) - feat: Add VideoKebabMenuButtons component (cf5a48a) ### Style - style: Improve VideoCard layout styling and responsiveness (dfd4310) ### Test - test: Pass delete handler to menu in VideoCard (a20964e) ## v1.6.16 (2025-12-18) ### Style - style: Make video thumbnails edge-to-edge on mobile view while maintaining vertical spacing between cards ## v1.6.15 (2025-12-18) ### Performance - perf: Store channel URL in database to avoid unnecessary yt-dlp calls when opening video player pages - perf: Update getAuthorChannelUrl endpoint to check database first before fetching from YouTube/Bilibili API ### Feat - feat: Add channelUrl field to videos table schema - feat: Extract and save channel URL during video download for YouTube and Bilibili videos ## v1.6.14 (2025-12-18) ### Fix - fix: Fix Openlist cloud storage video and thumbnail display issues by fetching sign information and building correct URLs - fix: Update frontend to support full URLs (http:// or https://) for cloud storage paths ## v1.6.13 (2025-12-18) ### Fix - fix: Add polling-based file watching to vite.config.js to prevent ENOSPC file watcher errors ### Docs - docs: Add troubleshooting section for file watcher limit (ENOSPC) errors in getting-started documentation ## v1.6.12 (2025-12-17) ### Feat - feat: Add restore from last backup database functionality (a1b2c3d) ## v1.6.11 (2025-12-17) - feat: Add translations for restore feature and OK button to all languages (e4f5g6h) ## v1.6.10 (2025-12-17) ### Feat - feat: Add cloud storage settings and connection test feature (7585e74) ## v1.6.9 (2025-12-16) ### Fix - fix: Change js-runtime from node to deno (recommended by yt-dlp) and add deno installation to Dockerfile ## v1.6.8 (2025-12-16) ### Feat - feat: Add external player options to VideoActionButtons (b57e9df) ### Refactor - refactor: Simplify handling of extractorArgs in ytdlpConfig (422701b) ### Style - style: Update button styles and add kebab menu for mobile (65b749d) - style: Update styles for VideoAuthorInfo and VideoTags (22d625b) ## v1.6.7 (2025-12-16) ### Feat - feat: Add subscribe functionality to VideoPlayer page (4624d12) - feat: Add function to get author channel URL (a7a4eae) ### Refactor - refactor: Update quotation marks to use double quotes consistently (6430605) ### Docs - docs: Update documentation (0ba6e20) ## v1.6.6 (2025-12-16) ### Fix - fix: Prevent accidental tag loss when saving settings (preserve existing tags when undefined or empty array sent) ## v1.6.5 (2025-12-16) ### Feat - fix: Add build dependencies for native modules (df8d279) ## v1.6.4 (2025-12-15) ### Feat - feat: Add functionality to reset password and handle wait time (c1d898b) - feat: Implement core video download function using yt-dlp (b4277dd) - feat: Add new header components and functionality (87f8d60) - feat: Add ActiveDownloadsTab, CustomTabPanel, HistoryItem, HistoryTab, QueueTab components (a0bb415) - feat: Added components for video title editing, rating, tags, author info, description, and metadata (abb79d4) ### Refactor - refactor: breakdown downloaders and controllers (c748651) - refactor: breakdown storageServive (3698d45) ### Style - style: Remove unused imports and variables (4fb1c1c) ### Test - test: Update video controller tests and downloader tests (748c80c) ## v1.6.3 (2025-12-15) ### Fix - fix: Fix pipeline test error ## v1.6.2 (2025-12-15) ### Fix - fix: Update version number in Footer test ## v1.6.1 (2025-12-15) ### Test - test: improve overall test coverage ## v1.6.0 (2025-12-15) ### Feat - feat: Add detailed logging for subtitle download process (ea46066) - feat: Implement getVideoInfo and downloadVideo for Bilibili (f864b90) ### Refactor - refactor: Simplify Bilibili subtitle download logic (8279e64) - refactor: Update response format for backward compatibility (e82ead6) - refactor: refactor controller (4e0dd4c) - refactor: refactor downloader (07ca438) ## v1.5.14 (2025-12-14) ### Feat - feat: Add functionality to move thumbnails to video folder (dd94d80) ## v1.5.13 (2025-12-14) ### Refactor - refactor: Update default and YouTube video formats for compatibility (0444527) ## v1.5.12 (2025-12-14) ### Refactor - refactor: Update yt-dlp installation and fix cookies usage (5aff222) ## v1.5.11 (2025-12-14) ### Refactor - refactor: Update merge output format handling (98694d5) ### Style - style: Remove unused onSave function and related logic (59a890a) ## v1.5.10 (2025-12-14) ### Feat - feat: Add discriminated union types for download errors (4df83c9) ## v1.5.9 (2025-12-14) ### Test - test: Add mock for storageService.checkVideoDownloadBySourceId (358c04b) ## v1.5.8 (2025-12-13) ### Feat - feat: Update YtDlpSettings to include onSave callback (c704e1a) - feat: Improve MissAV video ID extraction logic (4e6291d) ### Refactor - refactor: Update yt-dlp downloader script for flexibility (2d1b737) ## v1.5.7 (2025-12-12) ### Feat - feat: Add option to move subtitles to video folder (72b0e7e) ## v1.5.6 (2025-12-12) ### Feat - feat: Add proxy only for YouTube setting (98a0911) ## v1.5.5 (2025-12-12) ### Feat - feat: Implement loading more search results (9b9fdc1) - feat: Add state management for video download status (3ae277b) - feat: Add MissAVDownloader tests and extract author from URL (0f23220) ## v1.5.4 (2025-12-11) ### Feat - feat: Add showYoutubeSearch feature (0976bea) ### Refactor - refactor: Improve autosave functionality and settings comparison (da3221f) ## v1.5.3 (2025-12-10) ### Feat - feat: Add external player integration for video playback (15b3900) - feat: Add BilibiliDownloader methods for author info & video (7c40f1c) - feat: Add theme context provider for global theme management (b3a01ea) ## v1.5.2 (2025-12-10) ### Feat - feat: add yt-dlp config (db94ed0) ### Docs - docs: Update yt-dlp utils for Bilibili network settings (c52721c) ## v1.5.1 (2025-12-10) ### Test - test: Update expect calls in downloadService tests (84b36bf) ## v1.5.0 (2025-12-10) ### Feat - feat: Add yt-dlp functionality and improve code readability (4cda9d3) - feat: Add yt-dlp download functionality and helpers (b10e1f8) ### Refactor - refactor: Improve cancellation error handling and file cleanup (60f58d0) - refactor: Improve code readability and maintainability (7d17f70) - refactor: optimize download manage page (dfeec2b) - refactor: use yt-dlp instead of wrapper (9f4716f) ## v1.4.19 (2025-12-09) ### Feat - feat: Add sorting functionality for videos on Home page (ee813b3) ### Refactor - refactor: Improve code readability and structure (6b50d50) - refactor: Update translations for "downloading" and "poweredBy" (6d6dba2) ### Docs - docs: Update sorting translations (ab1c931) ## v1.4.18 (2025-12-09) ### Feat - feat: Add video description support for Bilibili and YtDlp (4d88066) ## v1.4.17 (2025-12-09) ### Feat - feat: Add functionality to format legacy filenames (2dbc47f) - feat: Add formatVideoFilename helper function (fd70120) ## v1.4.16 (2025-12-08) ### Docs - docs: Update localization messages for link copy status (7821851) ## v1.4.15 (2025-12-08) ### Feat - feat: Add itemsPerPage setting to GeneralSettings (bc520dc) - feat: Add websiteName field to settings and UI (56c7643) ## v1.4.14 (2025-12-08) ### Chore - chore: Add release notes for version 1.4.13 (b095a68) - chore(release): Update package-lock versions to 1.4.13 (e8acd13) ## v1.4.13 (2025-12-08) ### Fix - fix: fix potential issue; update docs (b1cdf12) - fix: Update package versions to 1.4.12 in lock files (f1ef1d0) ## v1.4.12 (2025-12-08) ### Fix - fix: Update backend and frontend package versions to 1.4.11 (fadfd0b) ### Test - test: Add additional test coverage for video download handling (8888b4d) ## v1.4.11 (2025-12-08) ### Feat - feat: Add previously deleted video localization (fee82d5) - feat: add delete history detect (397d003) - feat: Add downloadId parameter for progress monitoring (a265d94) ### Fix - fix: Update backend and frontend package versions to 1.4.10 (8b33392) ## v1.4.10 (2025-12-08) ### Fix - fix: Update package versions to 1.4.9 in lock files (56cd662) ### Refactor - refactor: Update MissAV download logic to include 123av (d772916) ## v1.4.9 (2025-12-08) ### Feat - feat: Improve MissAVDownloader methods and error handling (59ea919) ### Fix - fix: Update backend and frontend package versions to 1.4.7 (8dcd7ab) ### Refactor - refactor: missav use yt-dlp (386bf2b) ## v1.4.7 (2025-12-07) ### Fix - fix: Update backend and frontend package versions to 1.4.6 (45c8bb8) ### Style - style: Add ReplayIcon and improve button layout (0ae5fe0) ## v1.4.6 (2025-12-06) ### Fix - fix: Update backend and frontend package versions to 1.4.5 (be8e1e7) ### Style - style: Add zIndex to VideoCard styles (12c4dd2) ## v1.4.5 (2025-12-06) ### Fix - fix: Update GitHub Actions Workflow Status link (bf21813) - fix: Update default branch name to 'master' in workflows and badges (67d4900) - fix: Update package versions to 1.4.4 (24cb067) ### Docs - docs: Add Skeleton loading for VideoCard and UpNextSidebar (e052edb) ### Style - style: Update default branch name to 'master' in CONTRIBUTING.md and RELEASING.md (78e2f1d) ### Test - test: Fix test case count mismatch in storageService test (0644cd5) ## v1.4.4 (2025-12-05) ### Fix - fix: Update package versions to 1.4.3 (1e0680a) ### Style - style: Update favicon image URLs in HTML and SVG files (8fdc638) ## v1.4.3 (2025-12-05) ### Feat - feat: Add 'history' view mode to Home page (7c8ab4e) ### Fix - fix: Update backend and frontend package versions to 1.4.2 (0950d33) ### Style - style: Improve button styling in VideoInfo component (b9266d7) ## v1.4.2 (2025-12-05) ### Feat - feat: Add support for deleting cookies (240c3a2) ### Fix - fix: Update package versions to 1.4.1 (7b76b20) ## v1.4.1 (2025-12-05) ### Fix - fix: Update backend and frontend package versions to 1.4.0 (ecf6e86) ### Style - style: Improve UI layout in VideoCard and UpNextSidebar (5829d84) ## v1.4.0 (2025-12-05) ### Feat - feat: Add formatDuration and formatSize functions (9225c78) - feat: Add SearchPage component and route (02fc034) - feat: Add file scanning and deletion functionality (1a93b15) ### Fix - fix: Update backend and frontend package versions to 1.3.19 (8b2e41c) ### Refactor - refactor: breakdown files to components (5e97696) - refactor: Update scan confirmation messages (9569c00) ## v1.3.19 (2025-12-04) ### Feat - feat: Add autoPlayNext feature (7246d59) - feat: Add expand/collapse functionality to video title (84ccf0d) ### Fix - fix: Update backend and frontend package versions to 1.3.18 (bf4eccd) ## v1.3.18 (2025-12-04) ### Feat - feat: Add subtitle language selection in video controls (febebc5) - feat: bilibili subtitle download (8b660cd) ### Fix - fix: Update package versions to 1.3.17 (9e0a0a3) ## v1.3.17 (2025-12-04) ### Fix - fix: Update backend and frontend package versions to 1.3.16 (25502bb) ### Refactor - refactor: Update handleVideoSubmit function signature (69e0263) ### Style - style: Update Tabs component in DownloadPage (e3831fb) ## v1.3.16 (2025-12-04) ### Feat - feat: Add nodemon configuration for TypeScript files (84f0b48) ### Fix - fix: Update backend and frontend package versions to 1.3.15 (26c5ddc) ### Other - Remove duplicate Discord badge (47e8c5b) ## v1.3.15 (2025-12-03) ### Fix - fix: Update package versions to 1.3.14 (0560ce6) ### Refactor - refactor: Update runMigrations to be an async function (efa8a7e) ## v1.3.14 (2025-12-03) ### Fix - fix: Update package versions to 1.3.10 (fec1d6c) ### Style - style: Update video preview image link in README files (d6d6824) ## v1.3.10 (2025-12-02) ### Feat - feat: Add logic to organize videos into collections (e96b4e4) - feat: Add documentation for API endpoints and directory structure (eed2458) ### Fix - fix: Update package versions to 1.3.9 in lock files (63914a7) ### Docs - docs: Update deployment instructions in README (10d6933) ## v1.3.9 (2025-12-02) ### Feat - feat: Add subtitles support and rescan for existing subtitles (a6920ef) ### Fix - fix: Update backend and frontend package versions to 1.3.8 (12858c5) ## v1.3.8 (2025-12-02) ### Fix - fix: Update route path for collection in App component (0cf2947) - fix: Update backend and frontend versions to 1.3.7 (9c48b5c) ### Refactor - refactor: Update download history logic to exclude cancelled tasks (75b6f89) ## v1.3.7 (2025-12-02) ### Feat - feat: Add bgutil-ytdlp-pot-provider integration (26184ba) ### Fix - fix: Update versions to 1.3.5 and revise features (04790fd) ### Refactor - refactor: Update character set for sanitizing filename (1e5884d) ### Docs - docs: Update README with Python and yt-dlp installation instructions (5341bf8) ## v1.3.5 (2025-12-02) ### Feat - feat: subscription for youtube platfrom (6a42b65) - feat: subscription for youtube platfrom (7caa924) ### Fix - fix: Update package versions to 1.3.4 (50ae086) ## v1.3.4 (2025-12-01) ### Fix - fix: Update package-lock.json versions to 1.3.3 (1d421f7) ### Refactor - refactor: Update VideoCard to handle video playing state (b49bfc8) ## v1.3.3 (2025-12-01) ### Feat - feat: Add hover functionality to VideoCard (26fd63e) - feat: Add pagination and toggle for sidebar in Home page (f20ecd4) - feat: Add upload and scan modals on DownloadPage (7969412) - feat: Add batch download feature (c88909b) ### Fix - fix: Update package versions to 1.3.2 in lock files (618d905) ### Style - style: Update Header component UI for manageDownloads (ae8507a) ## v1.3.2 (2025-11-30) ### Feat - feat: Add Cloud Storage Service and settings for OpenList (cffe231) ### Fix - fix: Update package versions to 1.3.1 (19383ad) ## v1.3.1 (2025-11-29) ### Feat - feat: Update versions and add support for more sites (56557da) ### Refactor - refactor: Remove unnecessary youtubedl call arguments (f2b5af0) ## v1.3.0 (2025-11-28) ### Fix - fix: Update backend and frontend package versions to 1.2.5 (d1ceef9) ### Refactor - refactor: Update YouTubeDownloader to YtDlpDownloader (fc070da) ## v1.2.5 (2025-11-27) ### Fix - fix: Update package versions to 1.2.4 (bc3ab6f) ### Style - style: Improve speed calculation and add version in footer (710e85a) ## v1.2.4 (2025-11-27) ### Feat - feat: Add support for multilingual snackbar messages (6621be1) ### Fix - fix: Update package versions to 1.2.3 (10d5423) ## v1.2.3 (2025-11-27) ### Feat - feat: Add last played timestamp to video data (0009f7b) - feat: Add file size to video metadata (591e85c) ### Fix - fix: Update package versions to 1.2.2 (d9bce6d) ### Other - Add image to README-zh.md and enhance layout (610bc61) - Add image to README and enhance demo section (70defde) ## v1.2.2 (2025-11-27) ### Feat - feat: Add new features and optimizations (8c33d29) ### Fix - fix: Update package versions to 1.2.1 (3ad06c0) ## v1.2.1 (2025-11-26) ### Feat - feat: Introduce AuthProvider for authentication (f418024) - feat: refactor with Tanstack Query (350cacb) ### Fix - fix: Update package versions to 1.2.0 (1fbec80) ## v1.2.0 (2025-11-26) ### Feat - feat: Add file_size column to videos table (0f36b4b) - feat: download management page (3933db6) - feat: Add tags functionality to VideoContext and Home page (f22e103) - feat: Add background backfill for video durations (5684c02) - feat: Add view count and progress tracking for videos (ecc1787) - feat: Add functionality to refresh video thumbnail (f021fd4) ### Docs - docs: Remove legacy \_journal.json file and add videos list (cac5338) ### Style - style: Update component styles and minor refactorings (c5d9eaa) ## v1.0.1 (2025-11-25) ### Feat - feat: Add release script for versioning and tagging (9cb674d) - feat: Update Dockerfile for production deployment (46a58eb) - feat: add more languages (72aab10) - feat: Add toggle for view mode in Home page (b725a91) - feat: Add tags support to videos and implement tag management (f0568e8) - feat(frontend): enable title editing in VideoPlayer (2779595) - feat: Add option to delete legacy data from disk (b2244bc) - feat: Add Dockerignore files for backend and frontend (89a1451) - feat: migrate json file based DB to sqlite (f03bcf3) - feat: Add MissAV support and new features (e739901) - feat: add MissAV support (046ad4f) - feat: Add fullscreen functionality (6e2d648) - feat: Add collection translation for CollectionCard (fc9252e) - feat: Add AnimatedRoutes component for page transitions (1292777) - feat: add rating; UI adjustment (d25f845) - feat: Add settings functionality and settings page (c9d683e) - feat: Add Footer component (395f085) - feat: Add video upload functionality (d1285af) - feat: Add video upload functionality (0fcd886) - feat: Add functionality to fetch and display video comments (8978c52) - feat: Add pagination logic and controls for videos (0e2a0a7) - feat: Add snackbar notifications for various actions (e0b1f59) - feat: Add confirmation modals for video and collection actions (8e65f40) - feat: Add Bilibili collection handling functionality (63bce0e) - feat(Home): Add reset search button in search results (23bd6d7) - feat: Add options to delete videos with a collection (6f77ee3) - feat: Add video management functionality (390d3f4) - feat: Add active downloads indicator (1fd06af) - feat: Customize build configuration with environment variables (2c15fc8) - feat: Add Chinese translation in README and README-zh file (d01cd7f) - feat: Add Bilibili video download support and frontend build fix (6d64f5d) - feat(frontend): Add search functionality to homepage (a45babd) - feat: Add Bilibili multi-part download functionality (b09504d) - feat: Initialize status.json for tracking download status (e1c8292) - feat: Add delete collection modal (0f14404) - feat: Add server-side collection management (4ea5328) - feat: Add URL extraction and resolution functions (61d251a) ### Fix - fix: Update key event from onKeyPress to onKeyDown (12213fd) - fix: Update CMD to run compiled TypeScript code (3238718) - fix: Update frontend and backend URLs to new ports (15d71f5) ### Refactor - refactor: Improve video handling in collectionController (2b6b4e4) - refactor: Update frontend and backend URLs for Docker environment (f70f415) - refactor: Improve comments section toggling logic (32ea97c) - refactor with MUI (eb53d29) - refactor with TypeScript (11bd2f3) - refactor backend (fa0f063) - refactor: Update bilibili URL regex pattern (bbdc78d) ### Docs - docs: Update deployment instructions and Docker scripts (8985c3d) - docs: Update deployment guide with server deployment option (742447f) ### Style - style: Update branch name to 'master' in release script (a89eda8) - style: Update settings and grid sizes in frontend pages (81ec7a8) - style: Update styles for better spacing and alignment (9d78f7a) - style: Add useMediaQuery hook for responsiveness (018e0b1) - style: Update button variants to outlined in modals (b6231d2) - style: Refactor header layout for mobile and desktop (7a847ed) - style: Add responsive viewport meta tag and css rules (534044c) - style: Update VideoCard component props and logic (d97bbde) - style: Update video player page layout and styling (f9754c8) ### Test - test: remove coverage files (cc522fe) - test: create backend test cases (20ab002) ### Chore - chore: Create necessary directories and display version information (0726bba)