Ctrl K
ComunidadGuías…

CHANGELOG.md

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

Archivo original ↗Preguntar a KiBot
# Changelog

## [0.1.23](https://github.com/milmil-dev/milmil/compare/v0.1.22...v0.1.23) (2026-09-15)


### Bug Fixes

* **api:** Show catalog-only bookmarks on the collection page ([#156](https://github.com/milmil-dev/milmil/issues/156)) ([5ab1f66](https://github.com/milmil-dev/milmil/commit/5ab1f66e6fa20b973184f79ee9615d7b9641685b))

## [0.1.22](https://github.com/milmil-dev/milmil/compare/v0.1.21...v0.1.22) (2026-09-15)


### Bug Fixes

* Keep Home usable when AniList is down ([40f2f4d](https://github.com/milmil-dev/milmil/commit/40f2f4d958702403ec0dd6da31449ad78666103a))
* Keep Home usable when AniList is down ([776ed06](https://github.com/milmil-dev/milmil/commit/776ed0641c961bf6f2f4b0b50ece679f54e1d675))

## [0.1.21](https://github.com/milmil-dev/milmil/compare/v0.1.20...v0.1.21) (2026-09-03)


### Features

* **android:** Add the navigation bar and the four remaining tabs ([d715730](https://github.com/milmil-dev/milmil/commit/d71573086814d0b0e77021de0e3431e6d0cf61e6))
* **android:** Pair from a QR link, end to end ([84a59d5](https://github.com/milmil-dev/milmil/commit/84a59d574e464fd2dcd0f32d3c4a547fc158c100))
* **android:** Scaffold the client and lock the cross-client contract ([86d3aa2](https://github.com/milmil-dev/milmil/commit/86d3aa228bd4122663d19f2399d731472d6207b2))
* **android:** Scan a code and land on the shelves ([ae7ad28](https://github.com/milmil-dev/milmil/commit/ae7ad28cf3a724c3da9b44bba124f3a2e0bb8bdf))
* **android:** Ship signed APK and AAB on release tags ([ae7b841](https://github.com/milmil-dev/milmil/commit/ae7b841d2e207e5ac407ddb46ffe119f703d3c62))
* Fold Discover into Home across web, macOS, and Android ([cf429e8](https://github.com/milmil-dev/milmil/commit/cf429e8433dae51eb01ca65414092d0f6e77e64a))
* Fold Discover into Home and cut polish for v0.1.21 ([57fe314](https://github.com/milmil-dev/milmil/commit/57fe314c994d9acba71564b94847ee3c6ba97d6f))
* **ios:** Add the client, sharing MilmilKit with macOS ([31408b9](https://github.com/milmil-dev/milmil/commit/31408b92a4af15d871e6b5fb5834778729747bdb))
* **macos:** Adopt a server and its token from one pairing link ([276a2a2](https://github.com/milmil-dev/milmil/commit/276a2a20bbda4d664daec0a3f9a0a7e68c137f96))
* **macos:** Build MilmilKit for iOS as well as macOS ([fc1850a](https://github.com/milmil-dev/milmil/commit/fc1850a476e94933a295062704a49ad5beb1cee2))
* **macos:** Raise the iOS floor to 26 for Liquid Glass ([429199a](https://github.com/milmil-dev/milmil/commit/429199ad05a58499ea1cd5059a0266b1d8e2e6f7))
* **web:** Hand a device a pairing code instead of a typed URL ([2bf632f](https://github.com/milmil-dev/milmil/commit/2bf632f7c12ea454c615d4467338bbefca96c159))
* **web:** Soften light-theme atmosphere and add schedule swipe ([ca7898c](https://github.com/milmil-dev/milmil/commit/ca7898c61179dcb81b8d373268c433abb2f2c045))


### Bug Fixes

* **android:** Reach a self-hosted server, and find today's shelf ([217dd2d](https://github.com/milmil-dev/milmil/commit/217dd2dbe3f367901ab94104469b6e30894992d3))
* **android:** Track the Gradle wrapper jar ([f5e6cce](https://github.com/milmil-dev/milmil/commit/f5e6ccee6701ef1bbda44bc0472c5b3c1860ec75))
* **api:** Allow X-Milmil-Locale on CORS preflight ([7c0ae1f](https://github.com/milmil-dev/milmil/commit/7c0ae1f0b669e9656246e32f38964dc54a58b5e0))
* **macos:** Restore the SwiftyOpenCC pin MilmilPlayer resolves to ([3a0fbb9](https://github.com/milmil-dev/milmil/commit/3a0fbb95ef68469f48882f235f95399ea034a8a7))
* Point the docs links at a site that exists ([db727c0](https://github.com/milmil-dev/milmil/commit/db727c0a545098c540c0d2ea44af27180aa7f410))
* Satisfy bot report lint and pin the notification e2e bell ([9462cc3](https://github.com/milmil-dev/milmil/commit/9462cc3de6aca279d5928e2c61fa7f5a7e7c9448))
* **web:** Keep spaces in a paired device's name ([ddb1748](https://github.com/milmil-dev/milmil/commit/ddb17488bd883a0876c2ba428eb8e24915c1fc16))
* **web:** Revalidate the shell and service worker ([2fad358](https://github.com/milmil-dev/milmil/commit/2fad3586b0dfe4933076aa6a0191cc87d00f1490))

## [0.1.20](https://github.com/milmil-dev/milmil/compare/v0.1.19...v0.1.20) (2026-08-27)


### Features

* **api:** Answer discover and hot tags in the client's own language ([a58cab5](https://github.com/milmil-dev/milmil/commit/a58cab55c35593f54e3d40d1ea779963b0636092))
* **api:** Expose the media file path in playable episodes ([20b0805](https://github.com/milmil-dev/milmil/commit/20b0805d2772ff8634414c122d1c25262b6e1667))
* **api:** Fall back to Bilibili and Jikan for episode air times ([e5d3a22](https://github.com/milmil-dev/milmil/commit/e5d3a22e3dfd6535a7d3e5d25e9622241262d8f0))
* **api:** Give every user an avatar ([457ecee](https://github.com/milmil-dev/milmil/commit/457eceef2f2895b66cb447c5019d7f75cedd5b92))
* **api:** Manage every background service from one settings page ([67dafda](https://github.com/milmil-dev/milmil/commit/67dafdab7bd4a6319c6c3ff7627e37fe59f2462b))
* **api:** Match dandanplay in batches and follow its developer terms ([ce56d67](https://github.com/milmil-dev/milmil/commit/ce56d6785331fabbeb8fd07a98ef3dc93a16d5f7))
* **api:** Number a franchise's seasons and cours ([438fdfd](https://github.com/milmil-dev/milmil/commit/438fdfd9f4288e528c434d15bb1af8c4af0629b5))
* **api:** Report how much a library pulled in this month ([f3b8dc5](https://github.com/milmil-dev/milmil/commit/f3b8dc5742e63cb65d39533c634b1088f5ed11dd))
* **api:** Serve a manifest for keeping a series offline ([3575942](https://github.com/milmil-dev/milmil/commit/3575942c175bc247cb1500757019333b02084b18))
* **brand:** Generate every icon and lockup from one master mark ([e5840b9](https://github.com/milmil-dev/milmil/commit/e5840b9645047c271aa57c794ba980867b9105e1))
* **macos:** Adaptive light theme, glass styles, new brand assets and page polish ([cd775e1](https://github.com/milmil-dev/milmil/commit/cd775e11ea8c9b616cf411f724f73e0d828a80b4))
* **macos:** Add a debug self-snapshot mode and fix the login glow ([9e401cf](https://github.com/milmil-dev/milmil/commit/9e401cf8ccaf6119886346163299259b672d1ee4))
* **macos:** Add InjectionIII hot reload for Debug builds ([eec7c71](https://github.com/milmil-dev/milmil/commit/eec7c71e43160dd9bf1a58c2c56504d315272889))
* **macos:** Add Integrations, Notifications and Account settings tabs ([ee38af8](https://github.com/milmil-dev/milmil/commit/ee38af84137be7b2f46c922f21aca9452a6154d5))
* **macos:** Add realtime events and shared preferences to MilmilKit ([0f67c25](https://github.com/milmil-dev/milmil/commit/0f67c2547aef8037bd1ff3eb1893be8364443ec8))
* **macos:** Add schedule, discover, search, collection, history, notifications and anime detail ([6dd010d](https://github.com/milmil-dev/milmil/commit/6dd010dd55c2b5f3c10e101271fc128fb29dd2e8))
* **macos:** Add the app icon ([bcdc9f8](https://github.com/milmil-dev/milmil/commit/bcdc9f807e3fc59896da7e1da942934ff400c498))
* **macos:** Add the browse API surface to MilmilAPI ([a5f66d5](https://github.com/milmil-dev/milmil/commit/a5f66d59529cb16b22be6d4dfbfdebd4bf80345e))
* **macos:** Add the danmaku core (parsers, pipeline, lane scheduler) ([fd71b1d](https://github.com/milmil-dev/milmil/commit/fd71b1d6b004762a72bf6f1bd724325599d48065))
* **macos:** Add the Downloads page ([f5163c4](https://github.com/milmil-dev/milmil/commit/f5163c499b35c964addf6b4e09000d34ba06bad3))
* **macos:** Add the Libraries management page ([e8cdc04](https://github.com/milmil-dev/milmil/commit/e8cdc0465b1471a6df45ffa81b9bd802dd8b442d))
* **macos:** Add the main shell, backdrop, shelves and the Home page ([bcb1eaa](https://github.com/milmil-dev/milmil/commit/bcb1eaa37bc21dc535e7171513b8d238748212e9))
* **macos:** Add the mpv player window (Phase 2 core) ([2eef89f](https://github.com/milmil-dev/milmil/commit/2eef89fc089ff8f92475cb3fd406225e00b3e30b))
* **macos:** Add the Services settings tab ([9be58d3](https://github.com/milmil-dev/milmil/commit/9be58d3d55f9cc855aa365891ec19eb9e01eeab6))
* **macos:** Add the Settings scene ([c01257d](https://github.com/milmil-dev/milmil/commit/c01257d6e044ec37b7be3fb2e02c3b5f65352b76))
* **macos:** Add Xcode previews for every onboarding and shell screen ([a3c14c8](https://github.com/milmil-dev/milmil/commit/a3c14c83b76b4902c5627ea9e49631839f20599c))
* **macos:** Choose the playback source from the player controls ([fc78a46](https://github.com/milmil-dev/milmil/commit/fc78a46757933e771f67b62d15486859663a3c51))
* **macos:** Find torrents and manage RSS subscriptions from the Downloads page ([360a561](https://github.com/milmil-dev/milmil/commit/360a56105671ff3a451d823f66e700202b83b55b))
* **macos:** Hide comments that spoil later episodes ([d52b4c6](https://github.com/milmil-dev/milmil/commit/d52b4c64b09fd4a79589beb88ea27d1698a3c6a0))
* **macos:** Install the client from Homebrew ([d221498](https://github.com/milmil-dev/milmil/commit/d221498e0281cfff99c556f5cbd3b1842f90f02d))
* **macos:** Keep a series on this Mac and play it offline ([b6745fc](https://github.com/milmil-dev/milmil/commit/b6745fc6f1d4f1e65374a73ec023ab76983a1e69))
* **macos:** Learn skipped intros, remember per-series playback, sleep timer ([dda40bf](https://github.com/milmil-dev/milmil/commit/dda40bfd4812e47cbd0818249d997aad6a30c8d0))
* **macos:** Load the login poster wall from trending covers ([da72cb4](https://github.com/milmil-dev/milmil/commit/da72cb4d47f7477c7fc2cac2edade133fe2bfb79))
* **macos:** Localize the app into en, ja, ko, zh-Hans and zh-HK ([c746131](https://github.com/milmil-dev/milmil/commit/c74613160ea3d4eb18c2cb22a2cd33c478c566b4))
* **macos:** Manage remote sources, duplicates, missing episodes, renames and audit undo ([a04168b](https://github.com/milmil-dev/milmil/commit/a04168b7195274ba78741c1b67c05251e2decdbe))
* **macos:** Mirror the web detail hero and fix the banner on pushed pages ([3d60f20](https://github.com/milmil-dev/milmil/commit/3d60f202284d64371e6ad20e0d74982ce5c28e86))
* **macos:** Mirror web's discover and search, in the app's own language ([260f6ef](https://github.com/milmil-dev/milmil/commit/260f6efe52451331f96f7f93ac376156cce2ed83))
* **macos:** Paint a revisited page from cache, with skeletons and Quick Look ([da24317](https://github.com/milmil-dev/milmil/commit/da24317350afe36a987cd13b3c8afa974e4c48c6))
* **macos:** Play from local mounts, URL scheme, torrent drops, clipboard screenshots ([21a1ac5](https://github.com/milmil-dev/milmil/commit/21a1ac55fba5bbf52754cce6b600b9a819f1bb9d))
* **macos:** Play inside the app with a watch page, pop-out stays optional ([9a0ebf5](https://github.com/milmil-dev/milmil/commit/9a0ebf5a523328882dacb1836be3b1d3f43bc2cd))
* **macos:** Play trailers and pasted URLs in-app through yt-dlp ([0bb4d5b](https://github.com/milmil-dev/milmil/commit/0bb4d5b086b71b66e524e1e56cab79561ca7f638))
* **macos:** Reach the rest of the system — Spotlight, Shortcuts, reminders ([d716219](https://github.com/milmil-dev/milmil/commit/d71621954031f3f2b13aefc2a7f1b70c4b92e8e4))
* **macos:** Render danmaku natively with compose, list, sources and settings ([b0463ac](https://github.com/milmil-dev/milmil/commit/b0463ac0661f4bd5faa500105febc5e58064ea7c))
* **macos:** Scaffold the native client with API client and login flow ([95a85e1](https://github.com/milmil-dev/milmil/commit/95a85e129098ee761c6e3fdbd16b61c9b1b84bd1))
* **macos:** Show and change the user's avatar ([185c70b](https://github.com/milmil-dev/milmil/commit/185c70b6ba028213d8dfd0f55d78863271bc1bc8))
* **macos:** Show Now Playing and download progress in the menu bar ([c072504](https://github.com/milmil-dev/milmil/commit/c072504cfb8c7ef9fb6c3fe8cd9a1006ccb2aebe))
* **macos:** Upscale with bundled Anime4K shader presets ([a0aa50e](https://github.com/milmil-dev/milmil/commit/a0aa50e15324af048d4978feb7017f71ae9ca710))
* Native macOS client, offline downloads, service management and user avatars ([#128](https://github.com/milmil-dev/milmil/issues/128)) ([6db511c](https://github.com/milmil-dev/milmil/commit/6db511cf9aee38f1c0dc8343ecafba19c5a6cb80))
* **web:** Add a light theme behind an adaptive ink token ([76d1383](https://github.com/milmil-dev/milmil/commit/76d1383fba57e106e6eff5157d879f64aa3cec2b))
* **web:** Add the Services settings tab ([7bc7cfb](https://github.com/milmil-dev/milmil/commit/7bc7cfb80b9f7929256b06db68f687d273decdb9))
* **web:** Credit the danmaku source where its comments are shown ([fef5e0a](https://github.com/milmil-dev/milmil/commit/fef5e0a9b586382b88cdfd38120d88a09ccd3dc4))
* **web:** Group a franchise by season and localize discover ([b296266](https://github.com/milmil-dev/milmil/commit/b2962665195f10566f028788d046a13831399103))
* **web:** Open a series in the macOS app from the detail page ([c6603d9](https://github.com/milmil-dev/milmil/commit/c6603d9cf92792c2a15f121fb8999a4f64db77ea))
* **web:** Replace loading spinners with content-shaped skeletons ([d7f5849](https://github.com/milmil-dev/milmil/commit/d7f5849b08f66bbf34cb4be786a226ffa7a8025f))
* **web:** Show a library's downloads for the month ([e5acea6](https://github.com/milmil-dev/milmil/commit/e5acea64ec4f1b66716f910b50f5117a9b34d041))
* **web:** Show and change a user's avatar ([371651d](https://github.com/milmil-dev/milmil/commit/371651d711b4a931f3ef2908cd784ba0526705cf))


### Bug Fixes

* **api:** Anchor a season's expected run to its first episode ([cdce34d](https://github.com/milmil-dev/milmil/commit/cdce34ddc7c4a53be68e087d705c2c1f9d06a54f))
* **api:** Confine a served file to the directory it was asked from ([f9767f0](https://github.com/milmil-dev/milmil/commit/f9767f0fb2d64a8cba0e9908a20d49a5ab33a644))
* **api:** Delete torrent data when a download is removed with files ([ac82736](https://github.com/milmil-dev/milmil/commit/ac82736f3a67c0115ecc968c881d68713f2e3240))
* **api:** Enrich a download notification before it is stored ([5c8825e](https://github.com/milmil-dev/milmil/commit/5c8825e62845d4358f260559068cb3d6585c967b))
* **api:** Find local series by their Latin-script title ([4384ef1](https://github.com/milmil-dev/milmil/commit/4384ef1a12bc4c024fb15ef74190dd0df262fdec))
* **api:** Get past Bilibili's risk control when searching for danmaku ([45800ce](https://github.com/milmil-dev/milmil/commit/45800cedd4d3d2f02bd3364725ab7a362432217f))
* **api:** Keep a sprite-sheet render alive when the player disconnects ([2dd9784](https://github.com/milmil-dev/milmil/commit/2dd97840b6bdf821a5ec8ca9c0931959813e2107))
* **api:** Keep values taken from request input out of the logs ([f2a0f39](https://github.com/milmil-dev/milmil/commit/f2a0f3938e2b27407aa89c6ded0c7866d9be7993))
* **api:** Map client sort values onto Bangumi's tag search ([90d2810](https://github.com/milmil-dev/milmil/commit/90d281049f7b42113c5b13c85eb868eee532675a))
* **api:** Match RSS rule filters case-insensitively ([26b20dd](https://github.com/milmil-dev/milmil/commit/26b20ddd60ecfca2229edfaa2c8399aab13e2eee))
* **api:** Refuse route parameters that can climb out of their directory ([86c25e8](https://github.com/milmil-dev/milmil/commit/86c25e8dad8705ae09ba6a9b71fc53dbc22a2e4b))
* **api:** Renumber the title_original migration out of main's way ([cacd31a](https://github.com/milmil-dev/milmil/commit/cacd31aba7f5955a6a6034d7d7c6e840c5332464))
* **api:** Resolve the library save dir on manual RSS fetch ([bcb7db2](https://github.com/milmil-dev/milmil/commit/bcb7db26b897dec9e9c426d35c8bfc73cad0eb81))
* **api:** Serve local files through os.Root so traversal cannot escape ([4c9c3d7](https://github.com/milmil-dev/milmil/commit/4c9c3d7209dfa395eeec12e0fde20f8a1c9d4181))
* **api:** Stop an avatar source_url from reaching the host's own network ([8f69b34](https://github.com/milmil-dev/milmil/commit/8f69b349720ea6ae4ec67519b6cebf248e6fab64))
* **macos:** Address the first audit round (API, libmpv, player lifecycle) ([087696c](https://github.com/milmil-dev/milmil/commit/087696c7145f8d78139417bea38a3d56d4861645))
* **macos:** Address the second audit round (EOF, progress guard, GL context, danmaku timing) ([caff6fe](https://github.com/milmil-dev/milmil/commit/caff6fe0264c00fee6644e20e3b1afa9456aafb2))
* **macos:** Decode rule-triggered download rows ([ec77eb5](https://github.com/milmil-dev/milmil/commit/ec77eb5a79ebfd900db08d8b401dac1ced085688))
* **macos:** Encode screenshots here, not through libavcodec ([f354cd8](https://github.com/milmil-dev/milmil/commit/f354cd873d5848326da2102a84ea178ce4d415fa))
* **macos:** Keep deep links in the existing window with one back button ([928cf9c](https://github.com/milmil-dev/milmil/commit/928cf9c543007516f0260c016b653f793a9b212f))
* **macos:** Keep the image cache in ~/Library/Caches instead of the working directory ([5e9a223](https://github.com/milmil-dev/milmil/commit/5e9a22398c7bf58e22cee4f76d9b98a983495873))
* **macos:** Keep the login poster wall's perspective off the login card ([4b4b63e](https://github.com/milmil-dev/milmil/commit/4b4b63eb4c2c66d86c2cc60606f4067502ba4f02))
* **macos:** Present every rendered frame and recover after display sleep ([d65812c](https://github.com/milmil-dev/milmil/commit/d65812c0b4ebbbd785519f183a463421251a1274))
* **macos:** Report the real version in the app bundle ([2761272](https://github.com/milmil-dev/milmil/commit/27612722a68812f3c2fac3d7fe1262250593c617))
* **macos:** Stop the server URL placeholder rendering as a link ([170e36b](https://github.com/milmil-dev/milmil/commit/170e36b4dd864070c344eabcdaa6f5f9617fb163))
* **macos:** Time-box the local-file rung and dump player state headlessly ([11e9383](https://github.com/milmil-dev/milmil/commit/11e9383f9b97210b629eccc74129fe0d1649a63f))
* Stop web hooks staging phantom root src files in linked worktrees ([c01c5d2](https://github.com/milmil-dev/milmil/commit/c01c5d25f1cf0c49a4bc896a690abdb1626236ba))
* **web:** Drop a fallback the guard above it already ruled out ([fce24cc](https://github.com/milmil-dev/milmil/commit/fce24ccc2a8e1b6d9aa3b589e64780c49aae69f4))
* **web:** Strip tags to a fixed point and check a link's scheme ([fdd403e](https://github.com/milmil-dev/milmil/commit/fdd403e7f39556dc049ea495c11eef90601e6c1b))

## [0.1.19](https://github.com/milmil-dev/milmil/compare/v0.1.18...v0.1.19) (2026-08-23)


### Features

* **sync:** tell a rewatch apart from a first watch ([#120](https://github.com/milmil-dev/milmil/issues/120)) ([36d388b](https://github.com/milmil-dev/milmil/commit/36d388b4109c43f4063709fb33c412aec4ca2847))

## [0.1.18](https://github.com/milmil-dev/milmil/compare/v0.1.17...v0.1.18) (2026-08-23)


### Bug Fixes

* **api:** authenticate WebSocket upgrades and enforce every CI gate ([#110](https://github.com/milmil-dev/milmil/issues/110)) ([3e0e93c](https://github.com/milmil-dev/milmil/commit/3e0e93c183f682f45605b2242d381323c96a5982))
* **sync:** report a finished series as completed, not repeating ([#117](https://github.com/milmil-dev/milmil/issues/117)) ([68b8d23](https://github.com/milmil-dev/milmil/commit/68b8d23b7b695581c7d77c6102d2dd5d6f0fcd13))
* **web:** give the e2e suite its own port ([#115](https://github.com/milmil-dev/milmil/issues/115)) ([5a841f8](https://github.com/milmil-dev/milmil/commit/5a841f864767ca352ab5b33d9c7bc551561b5b02))

## [0.1.17](https://github.com/milmil-dev/milmil/compare/v0.1.16...v0.1.17) (2026-08-21)


### Features

* **docs-site:** add sitemap, robots, llms.txt, OG images and markdown negotiation ([80ffbf4](https://github.com/milmil-dev/milmil/commit/80ffbf4a44a7ce9dc65d2206a6029d271a250506))
* **docs-site:** migrate i18n from Lingui to next-intl ([450f72c](https://github.com/milmil-dev/milmil/commit/450f72c50d2ecbf53fc016b9821cdd42a4079f6a))
* **docs-site:** upgrade to Next 16.3 and Fumadocs 16.14, generate API reference from the canonical spec ([61f1d2b](https://github.com/milmil-dev/milmil/commit/61f1d2bb1dead3d47e0cd5f8e8246aec313b4797))


### Bug Fixes

* **docs-site:** drop unused response binding in root-redirect e2e test ([ef6b02b](https://github.com/milmil-dev/milmil/commit/ef6b02b1427a526b54331d5efdeef25e0a06e53e))

## [0.1.16](https://github.com/milmil-dev/milmil/compare/v0.1.15...v0.1.16) (2026-08-13)


### Features

* **api:** upgrade Echo framework from v4 to v5 ([b4b14c5](https://github.com/milmil-dev/milmil/commit/b4b14c5f22ca4a57ea36e22263b3523adea1435c))
* **web:** migrate frontend to Vite+ unified toolchain ([7c0b9c6](https://github.com/milmil-dev/milmil/commit/7c0b9c6f97c5abe50ad0a77da676cd717926c380))


### Bug Fixes

* **web:** resolve all TypeScript errors and enforce check:all in CI ([a286502](https://github.com/milmil-dev/milmil/commit/a286502fdf0b79547116e766dc7e767ae1f86879))

## [0.1.15](https://github.com/milmil-dev/milmil/compare/v0.1.14...v0.1.15) (2026-05-14)


### Bug Fixes

* **web:** pin @lingui/format-po to 5.9.5 to match runtime macro hashes ([#88](https://github.com/milmil-dev/milmil/issues/88)) ([1a14841](https://github.com/milmil-dev/milmil/commit/1a1484192614c9eeeb3caad166d4dd0328d9ace2))

## [0.1.14](https://github.com/milmil-dev/milmil/compare/v0.1.13...v0.1.14) (2026-05-13)


### Features

* refresh metadata button on anime detail page ([#85](https://github.com/milmil-dev/milmil/issues/85)) ([2181fb8](https://github.com/milmil-dev/milmil/commit/2181fb808522c236dee4355935f7fa6a82b1d0a8))

## [0.1.13](https://github.com/milmil-dev/milmil/compare/v0.1.12...v0.1.13) (2026-05-07)


### Features

* TMDB localization, security hardening, and UI polish ([#77](https://github.com/milmil-dev/milmil/issues/77)) ([2ba1443](https://github.com/milmil-dev/milmil/commit/2ba14438db7eb736cea13ae838994965f04e84cc))

## [0.1.12](https://github.com/milmil-dev/milmil/compare/v0.1.11...v0.1.12) (2026-05-02)


### Features

* **web:** improve mobile settings, schedule, and login UI ([7a4112f](https://github.com/milmil-dev/milmil/commit/7a4112f792d15b1e445115700dc189d9133ffbc6))


### Bug Fixes

* **calendar:** fall back to stale cache then AniList when Bangumi 502s ([964d0d0](https://github.com/milmil-dev/milmil/commit/964d0d07eaa20824f33fa1e9a968a4c497424e44))
* **calendar:** fall back to stale cache then AniList when Bangumi 502s ([#68](https://github.com/milmil-dev/milmil/issues/68)) ([65d2929](https://github.com/milmil-dev/milmil/commit/65d29296cd3928c217c3622ba87a43fa880ebd46))
* **web:** correct about page GitHub link ([ace2a54](https://github.com/milmil-dev/milmil/commit/ace2a54dd64c62976a6578806ca1fe56d5f57383))

## [0.1.11](https://github.com/milmil-dev/milmil/compare/v0.1.10...v0.1.11) (2026-04-30)


### Features

* add container password reset ([#66](https://github.com/milmil-dev/milmil/issues/66)) ([4758c8d](https://github.com/milmil-dev/milmil/commit/4758c8d7ec89944083b5adb2ea900bd06522a775))


### Bug Fixes

* **compose:** alias api service as milmil-api so default stack works ([#65](https://github.com/milmil-dev/milmil/issues/65)) ([fbb4809](https://github.com/milmil-dev/milmil/commit/fbb4809b5e03b61d03c2ea4abd932ecc10e7d418))
* **update-check:** address post-merge review findings from [#56](https://github.com/milmil-dev/milmil/issues/56) ([#62](https://github.com/milmil-dev/milmil/issues/62)) ([3328a05](https://github.com/milmil-dev/milmil/commit/3328a05a67c794c3e95c08b0f8fc035355ca986d))

## [0.1.10](https://github.com/milmil-dev/milmil/compare/v0.1.9...v0.1.10) (2026-04-30)


### Features

* **web:** user-resizable columns on library media files table ([#63](https://github.com/milmil-dev/milmil/issues/63)) ([867037b](https://github.com/milmil-dev/milmil/commit/867037bca2ca979518a1714b8f996b5341572afa))

## [0.1.9](https://github.com/milmil-dev/milmil/compare/v0.1.8...v0.1.9) (2026-04-30)


### Bug Fixes

* **web:** default VITE_API_URL to '' so prod builds use relative URLs ([#58](https://github.com/milmil-dev/milmil/issues/58)) ([40e1434](https://github.com/milmil-dev/milmil/commit/40e14347f4fddf32460a41b5a66fb5a4a93cbfc3))

## [0.1.8](https://github.com/milmil-dev/milmil/compare/v0.1.7...v0.1.8) (2026-04-30)


### Features

* auto update-check (notification-only) with WS push ([#56](https://github.com/milmil-dev/milmil/issues/56)) ([899feb5](https://github.com/milmil-dev/milmil/commit/899feb571646fd883a586f662c7f3c0b4e434aa2))

## [0.1.7](https://github.com/milmil-dev/milmil/compare/v0.1.6...v0.1.7) (2026-04-29)


### Features

* **web:** first-run setup wizard (admin → library → integrations) ([#52](https://github.com/milmil-dev/milmil/issues/52)) ([92b0f0d](https://github.com/milmil-dev/milmil/commit/92b0f0db6e02574a84bfb8be570ee6b3f6dc3c02))

## [0.1.6](https://github.com/milmil-dev/milmil/compare/v0.1.5...v0.1.6) (2026-04-29)


### Bug Fixes

* stamp release version into binary + sync web/api version sources ([#50](https://github.com/milmil-dev/milmil/issues/50)) ([22831c2](https://github.com/milmil-dev/milmil/commit/22831c2be68fa135235de95d0248974036c76845))

## [0.1.5](https://github.com/milmil-dev/milmil/compare/v0.1.4...v0.1.5) (2026-04-29)


### Bug Fixes

* **web:** defer milmil-api DNS resolution so nginx survives missing upstream ([#48](https://github.com/milmil-dev/milmil/issues/48)) ([caa35ad](https://github.com/milmil-dev/milmil/commit/caa35adff48c0e40afcebf03e7df9f3e3417e1ae))

## [0.1.4](https://github.com/milmil-dev/milmil/compare/v0.1.3...v0.1.4) (2026-04-29)


### Bug Fixes

* **ci:** bump aquasecurity/trivy-action to v0.36.0 ([#43](https://github.com/milmil-dev/milmil/issues/43)) ([70eac70](https://github.com/milmil-dev/milmil/commit/70eac702f1bbeb5fb009001c5ce7b9a71f110997))
* **dependabot:** drop redundant '(deps)' from commit-message prefix ([#41](https://github.com/milmil-dev/milmil/issues/41)) ([e5de715](https://github.com/milmil-dev/milmil/commit/e5de7156f6f50534635cc1918de4dc9c92571d08))

## [0.1.3](https://github.com/milmil-dev/milmil/compare/v0.1.2...v0.1.3) (2026-04-29)


### Features

* milmil CLI v0.1 + audit log + agent automation surface ([#40](https://github.com/milmil-dev/milmil/issues/40)) ([2c98a85](https://github.com/milmil-dev/milmil/commit/2c98a853d826a0e5492cc103fab64aaaeb920eb2))

## [0.1.2](https://github.com/milmil-dev/milmil/compare/v0.1.1...v0.1.2) (2026-04-21)


### Miscellaneous Chores

* release 0.1.2 ([965e5c8](https://github.com/milmil-dev/milmil/commit/965e5c8fed2bd86950e4d9de3beea5b15a7de394))

## [0.1.1](https://github.com/milmil-dev/milmil/compare/v0.1.0...v0.1.1) (2026-04-21)


### Features

* add anime grid view to library page + fix library_id backfill ([6d73a47](https://github.com/milmil-dev/milmil/commit/6d73a475d63a422f4a1847c2e0a8126ecd964d12))
* add delete anime from library with confirmation ([774977a](https://github.com/milmil-dev/milmil/commit/774977a171f7366797cc455cf6fccab5b49e0213))
* add make kill to release dev server ports ([bb2f9df](https://github.com/milmil-dev/milmil/commit/bb2f9dfdd43c775a4444e6fc3642370e9cf27f19))
* add week start day setting and various improvements ([7dc3978](https://github.com/milmil-dev/milmil/commit/7dc39788bb56624f1df60841120b9fa97d47367f))
* **anidb:** add HTTP downloader for manami, anime-lists, titles ([fb3b172](https://github.com/milmil-dev/milmil/commit/fb3b172b6806d588370682b096bb657a9bfdd659))
* **anidb:** add idset and dual-source mapping (manami + anime-lists) ([6d47414](https://github.com/milmil-dev/milmil/commit/6d47414898f330eb2209a8470094d44cc840a54b))
* **anidb:** add service with rate-limited refresh and disk hydration ([e62007c](https://github.com/milmil-dev/milmil/commit/e62007c033b7c41b2b556726d30a2271c7b5823c))
* **anidb:** add title index with ngram-prefiltered fuzzy search ([d9ff244](https://github.com/milmil-dev/milmil/commit/d9ff244ae3f3c2f9542221ba98f804ac5c9565d4))
* **anilist:** add rate limiter and GetMediaRelations method ([f928512](https://github.com/milmil-dev/milmil/commit/f928512b8b1acb654ddb6105bb2356a0d85065c0))
* **anime:** expose anidb_id in playable episodes envelope ([ad74acb](https://github.com/milmil-dev/milmil/commit/ad74acb8d854450270de33b3ca3aebceb1391c81))
* **api-tokens:** add api_tokens table migration ([a07960c](https://github.com/milmil-dev/milmil/commit/a07960c66cf8bd60c8ae0059e576007f9b93fcc0))
* **api-tokens:** add device_name to login flow for mobile apps ([77630c2](https://github.com/milmil-dev/milmil/commit/77630c2187994bf3d5a3f722e6b56b79c56d3469))
* **api-tokens:** add sqlc queries for api_tokens ([7d6c0ee](https://github.com/milmil-dev/milmil/commit/7d6c0ee79020e9b7582237f121aa569cf86c1d21))
* **api-tokens:** add token generation and hashing ([308fe8b](https://github.com/milmil-dev/milmil/commit/308fe8b2dc85ae02f19e4505781eeb7f12c5eb83))
* **api-tokens:** add token management UI in Account settings ([51bece5](https://github.com/milmil-dev/milmil/commit/51bece538fdd2f1c817e8b1ce85d4d7862200cef))
* **api-tokens:** show QR code on token creation for mobile scanning ([e4448e4](https://github.com/milmil-dev/milmil/commit/e4448e413728e85cdb747ee6194a6cd6d8019e75))
* **api-tokens:** update middleware to support API token auth ([b1cdb4c](https://github.com/milmil-dev/milmil/commit/b1cdb4ca429176a18446adfc082c59bb49115f82))
* **api,web:** add per-anime sync-flags PATCH and toggle ([ddebe09](https://github.com/milmil-dev/milmil/commit/ddebe09767fefeccdc777eb883fa1aa1aad53cc5))
* **api:** add /sync/status endpoint ([a5761d4](https://github.com/milmil-dev/milmil/commit/a5761d4ab32e11f07fcb58be880690c8086cee09))
* **api:** add anime-missing and library-missing-summary endpoints ([9a9d35c](https://github.com/milmil-dev/milmil/commit/9a9d35c11aacbb666a6fb608a7bda5e81747b603))
* **api:** add bulk match and unmatch endpoints for media files ([608b136](https://github.com/milmil-dev/milmil/commit/608b1363549c0c6b08cd8af3c19519c68e031788))
* **api:** add delete/batch-delete/clear-all progress endpoints ([c2867d9](https://github.com/milmil-dev/milmil/commit/c2867d9ae4f949e3c6d6957f4eacaf221c4c5f90))
* **api:** add duplicates endpoints ([c43508c](https://github.com/milmil-dev/milmil/commit/c43508c149c0ac83d2293cad790bb0964c27952d))
* **api:** add GET /anime/:id/franchise endpoint ([772dc5c](https://github.com/milmil-dev/milmil/commit/772dc5c2099b60505c72fa1468085486229d22e9))
* **api:** add GET /api/v1/progress/history endpoint ([ed38b90](https://github.com/milmil-dev/milmil/commit/ed38b903d4523d2c52fc4e888b332b3c75c31c7b))
* **api:** add missing-episode search/download/auto-rule endpoints ([df74b7b](https://github.com/milmil-dev/milmil/commit/df74b7b8a5ad5c62c1d09020eda523591b287cfd))
* **api:** add pull-now and pull-enabled endpoints ([31154fc](https://github.com/milmil-dev/milmil/commit/31154fc3a5c16e96ebeeb8f1b0b5b2a3fb857226))
* **api:** add rename preview/apply/undo/history endpoints ([3abcbf8](https://github.com/milmil-dev/milmil/commit/3abcbf801ca7bcad43daba25f5f7f5eaf8235e31))
* **api:** add server-side sorting to media files endpoint ([eec1f73](https://github.com/milmil-dev/milmil/commit/eec1f732b54b0ea56cc61ddcac656eb1ad4fda92))
* **api:** add sqlc queries for watch history page ([f038ae0](https://github.com/milmil-dev/milmil/commit/f038ae0049b03316b5a52243e8de5baaaf6d6580))
* **api:** add Trakt device-code OAuth handlers ([acfdfdd](https://github.com/milmil-dev/milmil/commit/acfdfddd046527c3bb07953a4038ca77f9e38aa1))
* **api:** expose rename_template and rename_auto in library response ([0c43e90](https://github.com/milmil-dev/milmil/commit/0c43e90eaab907baabbc0de82705e36cd53c05ec))
* **api:** include Trakt in sync provider status list ([ed6cf9f](https://github.com/milmil-dev/milmil/commit/ed6cf9fabb3c58ab3164ca5e625ccc87de5eef09))
* **api:** support al- prefix in anime detail handler ([c28a623](https://github.com/milmil-dev/milmil/commit/c28a623acc08fb89abad03572e7ba4dfe23b5a38))
* **auth:** add weak password blocklist and env-based admin provisioning ([9bdf731](https://github.com/milmil-dev/milmil/commit/9bdf7317ec0419629ce19a81bfe3413851279a86))
* **bot:** /schedule shows day picker buttons with dates first ([7f8b15f](https://github.com/milmil-dev/milmil/commit/7f8b15f5767b6630a0e4f1aa57f8b376430d5b89))
* **bot:** add /recent, /watching, /stats, /rules, /trending commands ([d516d16](https://github.com/milmil-dev/milmil/commit/d516d16d50e32c6b782d646ac5b031bb01714af9))
* **bot:** add /today command — today's airing anime with watching filter ([b34a131](https://github.com/milmil-dev/milmil/commit/b34a13167734314b6913b95fc767d23be2c3a0ef))
* **bot:** add 9 command handlers ([ad5fcba](https://github.com/milmil-dev/milmil/commit/ad5fcba97e70a98c753c8db637e5636c22b3f472))
* **bot:** add anime airing reminder notifications ([295d1d5](https://github.com/milmil-dev/milmil/commit/295d1d52a0fdeb3eb7ccc0933ad5b20c4d42a54f))
* **bot:** add bot commands settings UI ([f798d8f](https://github.com/milmil-dev/milmil/commit/f798d8fddf14839c6834b5b1161f0dee0abc4032))
* **bot:** add bot language selector and move webhook URL to advanced ([5bff513](https://github.com/milmil-dev/milmil/commit/5bff513f41405b69c7b9d2d023f52f8721826e1d))
* **bot:** add BotResponse types and command router ([fe30aa4](https://github.com/milmil-dev/milmil/commit/fe30aa4465ce18d14f0c8fca5c2de6064972a3d8))
* **bot:** add command services container ([a15778a](https://github.com/milmil-dev/milmil/commit/a15778ae6a7475a1e02e55824b8f63c0dba9ce45))
* **bot:** add Discord adapter with slash commands and components ([acb8541](https://github.com/milmil-dev/milmil/commit/acb8541d25e52efd062a25f2284b48833bfe3b62))
* **bot:** add menu navigation, /id, scheduled reports, login alerts ([6b71486](https://github.com/milmil-dev/milmil/commit/6b71486790dbf98e11a6c3fe27adfabf3a505d91))
* **bot:** add test bot button with token verification ([c907e5a](https://github.com/milmil-dev/milmil/commit/c907e5a0ddd593ecc626d2d00541b48242362b81))
* **bot:** inline test buttons, add /library and /scan commands ([fb98deb](https://github.com/milmil-dev/milmil/commit/fb98deb60ce9efce66ab89db91f2ae8c9d4bb8ac))
* **bot:** show subscription status on anime detail page ([6ed6712](https://github.com/milmil-dev/milmil/commit/6ed6712f1e2a664e811125b8cdbf24c7db11fd5f))
* **bot:** wire bot engine and enrich notifications ([2b156be](https://github.com/milmil-dev/milmil/commit/2b156be532a0a1e1da373f27e218424bbeb455b5))
* **completeness:** add BuildReport and BuildLibrarySummary analyzers ([42d1b0e](https://github.com/milmil-dev/milmil/commit/42d1b0ee56611be0009cf2c9b4410b49da757bb1))
* **completeness:** add Report type ([7a0c261](https://github.com/milmil-dev/milmil/commit/7a0c261817885c63b3e600d775d4c96ad597f3ce))
* **config:** wire DandanPlay fallback client with configurable proxy URL ([22fabc9](https://github.com/milmil-dev/milmil/commit/22fabc96c492b263a9f4cb6f28d59c93cb580889))
* **dandanplay:** add fallback client with proxy support ([84cfd3d](https://github.com/milmil-dev/milmil/commit/84cfd3dca980c63b5839d2a67582927862e9ba5e))
* **danmaku:** add Chinese simplified↔traditional conversion + fixes ([0b7a6ff](https://github.com/milmil-dev/milmil/commit/0b7a6ff754da3ce2ea61d4684fc6901f6a2421d5))
* **danmaku:** add DanmakuSourceTab sidebar component ([3edb261](https://github.com/milmil-dev/milmil/commit/3edb261027c6203f3725b3f2dfbcce15ad5c78a4))
* **danmaku:** add external danmaku search/import HTTP endpoints ([b990340](https://github.com/milmil-dev/milmil/commit/b990340ee9f2ffbff12f7c3744ab5b94552e9587))
* **danmaku:** add font color picker + change font size to slider ([4cd3754](https://github.com/milmil-dev/milmil/commit/4cd3754836372c0bb8e8b239d4fd7eeaef66c1b3))
* **danmaku:** add frontend API client for external danmaku ([5c07417](https://github.com/milmil-dev/milmil/commit/5c07417cf3b0de5988453e838b9cbf314dabe773))
* **danmaku:** add i18n strings for external danmaku search ([240175c](https://github.com/milmil-dev/milmil/commit/240175cf76482c0613815cd755fc6fb5f6ed59fb))
* **danmaku:** add keyword block system for danmaku filtering ([3bb5588](https://github.com/milmil-dev/milmil/commit/3bb5588d9c9bf55bddf32855fd6ccecdebd99379))
* **danmaku:** add multi-page support and fix thumbnails ([f3d03da](https://github.com/milmil-dev/milmil/commit/f3d03da75f5b0bf05a816baae9145e714ce7ee08))
* **danmaku:** add permanent local save option for imported danmaku ([8de4360](https://github.com/milmil-dev/milmil/commit/8de4360de70c5c1a430e0a33a0298fc0ecc81f36))
* **danmaku:** add pluggable Source interface and Bilibili implementation ([87c5583](https://github.com/milmil-dev/milmil/commit/87c558394a6d1c5b244382f1d070c2542d65bbbc))
* **danmaku:** enhanced display settings (area, filter, stroke, bold) ([f0b814a](https://github.com/milmil-dev/milmil/commit/f0b814a3a06a4f02f2ae404a745bd67240b46610))
* **danmaku:** move block keywords to modal dialog ([788e658](https://github.com/milmil-dev/milmil/commit/788e6584f7ad74b3bba1bc42528b3ee957381d5f))
* **danmaku:** switch from canvas to DOM rendering ([e61ffa8](https://github.com/milmil-dev/milmil/commit/e61ffa82039528404838bdcd61bec44fae1bb670))
* **danmaku:** use episodeId for stable cache key + move settings to player panel ([2379e43](https://github.com/milmil-dev/milmil/commit/2379e431eecfae64f70cab233bc791dde66276f6))
* **danmaku:** wire external danmaku tab into sidebar and merge with player ([a4fb4d9](https://github.com/milmil-dev/milmil/commit/a4fb4d94f8a2924a31b14f63ce9d421c5778d36f))
* **db,store:** add preferred_media_file_id and duplicate queries ([c65becd](https://github.com/milmil-dev/milmil/commit/c65becd8f5930ce94484cefbcd2ecb48690a5144))
* **db,store:** add rename_template, rename_history, and path queries ([9fa18c1](https://github.com/milmil-dev/milmil/commit/9fa18c174675e153219f6ee3fcffc65b717e646d))
* **db,store:** add sync_outbox, anime sync flags, and helper queries ([b93bfef](https://github.com/milmil-dev/milmil/commit/b93bfef88aea2e242a6563d88068856f5cc50290))
* **db,store:** add trakt_show_id, sync_provider_state, and queries ([e9d561e](https://github.com/milmil-dev/milmil/commit/e9d561e542390077facd6d71fd966b0cd2dfb095))
* **db:** add anidb_id to anime table ([a5b95c3](https://github.com/milmil-dev/milmil/commit/a5b95c30decc88d146a7dbee7df5df5de5d5a9c1))
* **docs-site:** add fumadocs nav bar to landing page ([49d4884](https://github.com/milmil-dev/milmil/commit/49d488469cadd226945e8054c1fdb2ef21d47e4e))
* **docs:** sync doc site with main app — rebrand, features, i18n, UX fixes ([331d7f4](https://github.com/milmil-dev/milmil/commit/331d7f4410a92ac0a0d95f3b9c55420e19389545))
* **downloads:** add AnimeCoverBlock with placeholder fallback ([684b85c](https://github.com/milmil-dev/milmil/commit/684b85c65405c9b52df1b904f52fdd646fb59df2))
* **downloads:** add AnimeDownloadCard shell + AnimeEpisodeList ([42b322e](https://github.com/milmil-dev/milmil/commit/42b322ef696f549c6b26df06ecaf0780fe86de53))
* **downloads:** add AnimeDownloadCardSkeleton and wire into loading states ([77ba2fa](https://github.com/milmil-dev/milmil/commit/77ba2fa4b6f845d5042ddc5f3ab0f609efcb73ee))
* **downloads:** add AnimeGroupHeader with mode-driven stat line ([0d35533](https://github.com/milmil-dev/milmil/commit/0d355335f8de52205a616c373b80e643c6ab22f2))
* **downloads:** add CardMenu dropdown for card actions ([9a50311](https://github.com/milmil-dev/milmil/commit/9a503118b643bb112dc3e2a17adc1d592f0a52b5))
* **downloads:** add deriveCardMode helper for merged view ([07b2ec5](https://github.com/milmil-dev/milmil/commit/07b2ec581514af098d5b423c95d85e0c718b9c1e))
* **downloads:** add deriveEpsForExpand + sort comparators ([62232b1](https://github.com/milmil-dev/milmil/commit/62232b1ac481cdbbee39f6734fac65f8290e4d6d))
* **downloads:** add downloads-ui-store for expand state ([0cbb679](https://github.com/milmil-dev/milmil/commit/0cbb679d94f85ed71d53937cbbda2a99e5508366))
* **downloads:** add EpisodeRowActive with pause/resume/delete ([886f053](https://github.com/milmil-dev/milmil/commit/886f0535266108e67e3a0f6ac59a58f485294e31))
* **downloads:** add EpisodeRowComplete with play/delete ([10fd7a6](https://github.com/milmil-dev/milmil/commit/10fd7a67f7e76e12dd506e3c98a7e3a75d71e8b1))
* **downloads:** add EpisodeRowPending and EpisodeRowMisc ([60187ca](https://github.com/milmil-dev/milmil/commit/60187caec8d1b97d32ab6b2bb4f0c428937bc73e))
* **downloads:** add LibraryTab merged view ([35bacca](https://github.com/milmil-dev/milmil/commit/35bacca1abbb471446c7bd6f3d700de00fc9ae08))
* **downloads:** add MiscDownloadsSection for rule-less downloads ([cc1ce97](https://github.com/milmil-dev/milmil/commit/cc1ce975869c83ffd29a0900aec891e418acc200))
* **downloads:** add useAnimeCover hook ([8d71617](https://github.com/milmil-dev/milmil/commit/8d716179b328f0f17006e9bb497fa2a4c1d7b9b6))
* **downloads:** cover + title navigate to anime detail on click ([5aca22d](https://github.com/milmil-dev/milmil/commit/5aca22d922ab5c020c7b3418a26997508cb34690))
* **downloads:** migrate CompletedTab to AnimeDownloadCard ([62d8663](https://github.com/milmil-dev/milmil/commit/62d86633c01dac61d8774546d761ad8787ec139d))
* **downloads:** migrate DownloadingTab to AnimeDownloadCard ([0397af7](https://github.com/milmil-dev/milmil/commit/0397af78dad2a469bba458e965c7bceb5698ce39))
* **downloads:** migrate SubscribedTab to AnimeDownloadCard ([e1e348b](https://github.com/milmil-dev/milmil/commit/e1e348b668c49ca6b358292d59521c390ee2e050))
* **downloads:** plumb pause/resume/delete/play handlers on episode rows ([dbc4e1f](https://github.com/milmil-dev/milmil/commit/dbc4e1ffa5fd960ac5cfd7f2f05af731e8c2893e))
* **downloads:** virtualize episode list when >30 items ([eea0d38](https://github.com/milmil-dev/milmil/commit/eea0d3872aebccaa787f5f1e4293528f548f6b95))
* **duplicates:** add AutoRank job ([9abcf46](https://github.com/milmil-dev/milmil/commit/9abcf4684cff0a1d89ccc44b22abe1a5bd27f4bf))
* **duplicates:** add DeleteMediaFile + DeleteLibraryNonPreferred ([df44d06](https://github.com/milmil-dev/milmil/commit/df44d06526e315697a3a1bef608910295fa1d7a6))
* **duplicates:** add Detector (anime + library) ([b2e3447](https://github.com/milmil-dev/milmil/commit/b2e34470df0448698e4427e3d711816b7d696470))
* **duplicates:** add Rank pure function ([53f8571](https://github.com/milmil-dev/milmil/commit/53f85719c61392e431abce12de26fc4e48bf41e6))
* **fileparse:** extract resolution from filename ([5b40472](https://github.com/milmil-dev/milmil/commit/5b404720ee0ce9c9e37ea4b554e89604dc295de3))
* **fileparse:** extract year from bracketed/parenthesized tags ([caea478](https://github.com/milmil-dev/milmil/commit/caea478fc50ac03ca223b5b07f030a6943636086))
* **i18n:** add side stories section translations ([13df82c](https://github.com/milmil-dev/milmil/commit/13df82c75964521762d5f306d821bf7a2753b9dc))
* **i18n:** batch translate all missing keys for zh-TW/zh-CN/zh-HK/ja/ko ([3d27f63](https://github.com/milmil-dev/milmil/commit/3d27f635970b0d806dd862f6d4f4a32072125641))
* **i18n:** rewrite all zh-HK docs in Hong Kong Cantonese style ([45616cd](https://github.com/milmil-dev/milmil/commit/45616cd18340ce1f4f0eeabdf84b605a11080c5e))
* **jellyfin:** add all Jellyfin JSON response types ([95e42bf](https://github.com/milmil-dev/milmil/commit/95e42bf669ea93e48869e206b69d716d422bcce0))
* **jellyfin:** add bidirectional watch progress sync and playback reporting ([49360f9](https://github.com/milmil-dev/milmil/commit/49360f900f2c91e69c8af528fc8b7884c7ad9c7d))
* **jellyfin:** add image proxy with 7-day disk cache ([5e89706](https://github.com/milmil-dev/milmil/commit/5e8970680b32b2087fa6ee8d4170556df4b9ec05))
* **jellyfin:** add stateless ID mapping (base64url type:id encoding) ([2cfe8ce](https://github.com/milmil-dev/milmil/commit/2cfe8ce1f3aba459b95206b98fab7cee9755ddbc))
* **jellyfin:** add stream, subtitle, and playback info handlers ([fe262a8](https://github.com/milmil-dev/milmil/commit/fe262a89f4d2c02b0c170b10e026ceea00d0cb42))
* **jellyfin:** add system info and authentication handlers ([142d9bd](https://github.com/milmil-dev/milmil/commit/142d9bddd3b39618bd036d77a4f8a4ac4d859fad))
* **jellyfin:** add UDP LAN discovery server (port 7359) ([a6fa988](https://github.com/milmil-dev/milmil/commit/a6fa988a63ee7b48122e42cf224bc0f8f7d2fddb))
* **jellyfin:** add users, library, items, and episodes handlers ([5c84eef](https://github.com/milmil-dev/milmil/commit/5c84eef8518fdfcbcfc5ee33f9a1152fe56834f4))
* **jellyfin:** add X-Emby-Authorization middleware with structured logging ([11c3b65](https://github.com/milmil-dev/milmil/commit/11c3b6561360d17db0224acf1bc6f8818f83af46))
* **jellyfin:** implement Resume, NextUp, and MediaSegments with real data ([d4724ff](https://github.com/milmil-dev/milmil/commit/d4724ff6d9e773a9348e331cba17ee53b1941088))
* **jellyfin:** register all routes and wire up in main router ([6237bfd](https://github.com/milmil-dev/milmil/commit/6237bfd1e7607b3a29a17091c7b27245494453bf))
* **jellyfin:** start LAN discovery server on startup ([252aa6e](https://github.com/milmil-dev/milmil/commit/252aa6e48477773506ce4e1bd5824b398defcc4e))
* **libraries:** add FolderPickerDialog component ([220fd08](https://github.com/milmil-dev/milmil/commit/220fd08507a37e51de9ea0b302d3df23485206a8))
* **libraries:** add refresh button to folder picker dialog ([a652e6c](https://github.com/milmil-dev/milmil/commit/a652e6c8527a0768ee09fa6b05863b139b12016f))
* **libraries:** unified folder picker in add-library wizard + b2 header ([32445f5](https://github.com/milmil-dev/milmil/commit/32445f528844b40d0ae358b90b3e2262e64fb9de))
* **libraries:** wire folder picker into LibraryForm path input ([0d1330f](https://github.com/milmil-dev/milmil/commit/0d1330f8e4df4039ab392ba1972d52820b47d69e))
* **library:** run duplicates AutoRank after scan completes ([2a6f27c](https://github.com/milmil-dev/milmil/commit/2a6f27c78d3c2928c636bd817cc9730d28134204))
* **login:** tilted poster-wall backdrop using trending covers ([b2324b9](https://github.com/milmil-dev/milmil/commit/b2324b9df7ccd844964e24f02784e6fa105998e6))
* **matcher,worker,server:** wire anidb service into scheduler and matcher ([4277d6d](https://github.com/milmil-dev/milmil/commit/4277d6db062309ad7f4222287c79e6840482b4e1))
* **matcher:** add Pass 4 anidb-title fallback with rerun to bangumi/tmdb ([516b2a5](https://github.com/milmil-dev/milmil/commit/516b2a5d489ad9fa278a6ae19ec4b62be51c7e24))
* **metadata:** add FranchiseEntry and FranchiseResult types ([9ec07d9](https://github.com/milmil-dev/milmil/commit/9ec07d911526effac89b8612d58c360529f34357))
* **metadata:** add GetAnimeDetailByAniList for AniList-only detail pages ([7020d14](https://github.com/milmil-dev/milmil/commit/7020d14ec31bac35e0af06019166398b80add853))
* **metadata:** implement franchise BFS traversal with caching ([7d56e9b](https://github.com/milmil-dev/milmil/commit/7d56e9b1b100fbd6b950ab903d23d8b6792473f7))
* **notification:** add daily digest and fix airing reminder ([211e7e9](https://github.com/milmil-dev/milmil/commit/211e7e95700fb4476e43c38680ee56bd18709108))
* **notifications:** add setup guide link in settings header ([3eb0af2](https://github.com/milmil-dev/milmil/commit/3eb0af227667cf0eba7c532faa712158b6d74c57))
* **oauth:** replace inline sync with outbox enqueue, import on connect, disconnect cleanup ([681afb2](https://github.com/milmil-dev/milmil/commit/681afb25a066d5cc1886dad92d01b8a9c962f992))
* **player:** add danmaku WebWorker with density throttling ([5dc6e55](https://github.com/milmil-dev/milmil/commit/5dc6e55e1f5aa7b87363c5a0ea22423b35024804))
* **player:** add MemoryMonitor utility for mobile stability ([a416205](https://github.com/milmil-dev/milmil/commit/a4162058c7e5179317440aaefb187a855086eb7f))
* **player:** add NetworkMonitor utility for adaptive buffering ([31533da](https://github.com/milmil-dev/milmil/commit/31533da1bea26cfd1213634cc1095fb04633afe9))
* **player:** add timeline thumbnail preview via FFmpeg sprite sheet ([5f28e93](https://github.com/milmil-dev/milmil/commit/5f28e9305c700edcb28781273871cf015ca84dae))
* **player:** integrate WebWorker, adaptive buffering, and memory monitoring ([bc06c4c](https://github.com/milmil-dev/milmil/commit/bc06c4c39bb374d74d5d2489e00dcf079780f01a))
* **preferences:** add danmakuDensity and bufferMode fields to preferences store ([4b410c3](https://github.com/milmil-dev/milmil/commit/4b410c36e01af1fe9226851017b5cfdd8cb1530b))
* **progress:** enqueue sync ops synchronously after watch progress update ([bde4720](https://github.com/milmil-dev/milmil/commit/bde4720cd656a13aff0cf116af205557b93e9dde))
* **renamer:** add Apply with history + DB path update ([2331cf9](https://github.com/milmil-dev/milmil/commit/2331cf964344368c4d2ecc7292329c837fd03ca1))
* **renamer:** add ClampToLibraryRoot ([567e715](https://github.com/milmil-dev/milmil/commit/567e71593f44e7bbe02273603f2d456ddd0adc0b))
* **renamer:** add Plan per-file render + classify ([93a99da](https://github.com/milmil-dev/milmil/commit/93a99dac89976f08910db351d048e993eca287d6))
* **renamer:** add UndoBatch ([e10c5a5](https://github.com/milmil-dev/milmil/commit/e10c5a5620c0ff035a63d2965373b1910b132ddd))
* **renamer:** add variables and template compile/execute with funcmap ([829d3e4](https://github.com/milmil-dev/milmil/commit/829d3e4af5b38d5d72b4ff7a9436ac5355bde3bd))
* **resolver:** auto-rename on finalize when library.rename_auto=1 ([1e73822](https://github.com/milmil-dev/milmil/commit/1e73822021d8b6c13e117ef448a03d759be32565))
* **resolver:** enrich anime cross-site IDs via anidb mapping ([1b2292c](https://github.com/milmil-dev/milmil/commit/1b2292c272074f34a8182fc15b6625695462cbc1))
* **schedule, history:** unify timeline rail design with connected weekday spine ([d331231](https://github.com/milmil-dev/milmil/commit/d3312315e16bac955a7f91ac0169b5d23e66dbf7))
* **schedule:** add continuous spine with scroll-linked flowing light in All tab ([051ade1](https://github.com/milmil-dev/milmil/commit/051ade1e8b2b9e3c1b89142f15bdf9f4e338abb8))
* **search:** add CJK variant generator for Traditional/Simplified Chinese ([4e987f5](https://github.com/milmil-dev/milmil/commit/4e987f5d9d4b255b6b53f70f1d3d10e777b6a3b8))
* **search:** integrate CJK variant search into discover API ([e7cb0d8](https://github.com/milmil-dev/milmil/commit/e7cb0d8bb6da0ee279fdb871dee2a21251df6fe8))
* **searchmissing:** add Aggregator with parallel provider fanout ([21f1288](https://github.com/milmil-dev/milmil/commit/21f1288dac774456f0f61bfa9bfe8171ab0a1673))
* **searchmissing:** add Dedupe by info_hash with title+size fallback ([22fce20](https://github.com/milmil-dev/milmil/commit/22fce20bd765c45ee0fc764eb1f5cc5533fdbf1c))
* **searchmissing:** add Rank with seeders-first tiebreak ([a51ae4e](https://github.com/milmil-dev/milmil/commit/a51ae4e895df597073bc87981aa61b1209c332e9))
* **server:** construct and register Trakt provider in sync service ([cdf9820](https://github.com/milmil-dev/milmil/commit/cdf9820a9a39c6af6c8d9ba580107624becd0137))
* **sessions:** add Account tabs, Sessions tab, and enhanced token display ([d41a10f](https://github.com/milmil-dev/milmil/commit/d41a10f9e2adba95cb83dc1d79f42e887e26227f))
* **sessions:** add current session and revoke-others endpoints ([eb1cd29](https://github.com/milmil-dev/milmil/commit/eb1cd29e9e459c1d13b9d9deae8b09fae7480226))
* **sessions:** add last_ip and last_user_agent to api_tokens ([a78f0e0](https://github.com/milmil-dev/milmil/commit/a78f0e0e49c4ce5a6138d2d6ad142f943472484d))
* **sessions:** add user agent parser for device labels ([4a968fb](https://github.com/milmil-dev/milmil/commit/4a968fbe3e42909e25b6abd60134709fffe13313))
* **sessions:** login always issues API token with device name from UA ([062351f](https://github.com/milmil-dev/milmil/commit/062351f941daeab5d9a65ac3cb25a7ea22c88e8c))
* **sessions:** remove JWT from main API, add activity tracking to middleware ([4d23bae](https://github.com/milmil-dev/milmil/commit/4d23bae066b62da452dfd7564c05a5debd058782))
* **sessions:** update sqlc queries for activity tracking ([74ba46a](https://github.com/milmil-dev/milmil/commit/74ba46ac2609d91de77032764e05bca83d3dd01f))
* **settings:** add buffer mode and danmaku density controls ([ba499e5](https://github.com/milmil-dev/milmil/commit/ba499e53dc55b39ff1b4e750a88cf9ded1d4051f))
* **settings:** sync active tab to URL search params ([7f7f957](https://github.com/milmil-dev/milmil/commit/7f7f957dc65619e3f86711714fbe87cb3b4ab931))
* **storage:** add Delete method to Provider interface ([fb50177](https://github.com/milmil-dev/milmil/commit/fb501778e4dd0c8b6874249fdd1d23ff4fe2d35c))
* **storage:** add Rename and MkdirAll to Provider ([edd3b51](https://github.com/milmil-dev/milmil/commit/edd3b51f86aae822c5864e5a04a719f4d24825a6))
* **store:** add anidb lookup and multi-ID update queries ([bd5ac06](https://github.com/milmil-dev/milmil/commit/bd5ac069ce826f4dea2cfc681d5e9775d4048309))
* **store:** add completeness aggregation queries ([62396c3](https://github.com/milmil-dev/milmil/commit/62396c3e0db8c4356e721753b0655b4431168f51))
* **sync:** add AniList provider adapter ([5f0f69c](https://github.com/milmil-dev/milmil/commit/5f0f69c4a8a8d611b1e27545261de49aeed93adb))
* **sync:** add AniList RefreshToken + wrap 401 with ErrNeedsReauth ([01cb7d3](https://github.com/milmil-dev/milmil/commit/01cb7d30a049296e5dd1f4ccdfe4107f8a78b760))
* **sync:** add Bangumi provider adapter ([8e0902f](https://github.com/milmil-dev/milmil/commit/8e0902f170889dea266a06c590a150bc182f02b0))
* **sync:** add Bangumi RefreshToken + wrap 401 with ErrNeedsReauth ([18bd800](https://github.com/milmil-dev/milmil/commit/18bd80008758d304f0530e648f80c9cc0c5be2dc))
* **sync:** add core types and Provider interface ([360aac7](https://github.com/milmil-dev/milmil/commit/360aac7aae6aa151d8724c98268b8b509f9f367c))
* **sync:** add one-shot import flow ([218bd57](https://github.com/milmil-dev/milmil/commit/218bd579121c35c6c0f1a9ed04bdce21ec338bae))
* **sync:** add ProviderTrakt, ErrNeedsResolve, Trakt external ID ([214b6da](https://github.com/milmil-dev/milmil/commit/214b6da21f03a42e9f3c37bef0e3458f450595b4))
* **sync:** add PullFromProvider with max-wins conflict resolution ([35ebb03](https://github.com/milmil-dev/milmil/commit/35ebb03b8d4fc56ae6909b3cc2cf1072133848a2))
* **sync:** add RefreshToken to Provider interface + ErrNeedsReauth sentinel ([ab0ac94](https://github.com/milmil-dev/milmil/commit/ab0ac94d7dffc046a2a7dca300852af77a42f58b))
* **sync:** add service facade (OnProgressUpdate, FlushUser, Disconnect) ([e4a97c7](https://github.com/milmil-dev/milmil/commit/e4a97c7ebc530d847c2b3ec38a45494479461fec))
* **sync:** add settings-backed TokenStore with tests ([1dbf91e](https://github.com/milmil-dev/milmil/commit/1dbf91e48f143722b976e2ecddcccb71ef60ef84))
* **sync:** add status derivation with override precedence ([806a441](https://github.com/milmil-dev/milmil/commit/806a4417a50a5e35ceb255830d58f042b32962da))
* **sync:** add TokenStore interface ([5bff414](https://github.com/milmil-dev/milmil/commit/5bff4146064f6a8f89e7955004ee19f2ce93ef4a))
* **sync:** add Trakt provider adapter with device code flow ([7085307](https://github.com/milmil-dev/milmil/commit/7085307a4a62fe843b80fb705086225cdea6870c))
* **sync:** add transactional outbox queue with coalescing and backoff ([9c7f3a8](https://github.com/milmil-dev/milmil/commit/9c7f3a8d1f3de2c4acd3176a51dedab38098321f))
* **sync:** add worker drain with rate-limit grouping and overlap mutex ([4096225](https://github.com/milmil-dev/milmil/commit/4096225c86711c8ba8f3ac90de5d43433f398a30))
* **sync:** resolve Trakt remote entries to local anime via tmdb ([e4d8ca4](https://github.com/milmil-dev/milmil/commit/e4d8ca44f4c517cd2cf436cbaadd00a1ccddc6c0))
* **sync:** resolve trakt_show_id from tmdb on first push ([62abe2c](https://github.com/milmil-dev/milmil/commit/62abe2c86f55ea1cee83532cdcef2270f0505153))
* **ui:** add airing reminder minutes selector in Telegram bot settings ([5b1126b](https://github.com/milmil-dev/milmil/commit/5b1126b59ccc3b4b8238240073c9b686a4276886))
* **ui:** auto-save notification settings with 800ms debounce ([a3d78f4](https://github.com/milmil-dev/milmil/commit/a3d78f413c72f337d7ba5bbb0a0f2e052d3facfb))
* **watch:** add YouTube-style theater mode toggle ([31a319c](https://github.com/milmil-dev/milmil/commit/31a319cf9a5ea83996368e59efd49c9bbe306249))
* **watch:** cap player size (default 960px, theater 1600px) ([1357e66](https://github.com/milmil-dev/milmil/commit/1357e66b9e43a9cadb772cbabf68dad7aa05b7fe))
* **watch:** cap watch-page left column width to 960px ([f12ac24](https://github.com/milmil-dev/milmil/commit/f12ac24d2de3498e5cf875b0a56b01b256be804d))
* **watch:** login-style poster wall for player loading state ([e5d88ea](https://github.com/milmil-dev/milmil/commit/e5d88ea82f411995a1b6800781a956aa70047ee3))
* **watch:** make whole page a single 2-column layout ([52678f3](https://github.com/milmil-dev/milmil/commit/52678f357f0f173a8c252414449a7f8be6d89d0d))
* **watch:** persist subtitle/audio language + polish settings UI ([3ad2b4a](https://github.com/milmil-dev/milmil/commit/3ad2b4a472cb469eda17c007c8208453ef3546a7))
* **watch:** tilted poster-wall backdrop for player loading state ([06014cf](https://github.com/milmil-dev/milmil/commit/06014cf4a77c18d2019f5970619f69fc7e59aaad))
* **watch:** widen episode sidebar 400px → 480px (+20%) ([d6f8563](https://github.com/milmil-dev/milmil/commit/d6f8563319dfec1dfd9cfb7de711c070952ddaea))
* **watch:** widen episode sidebar from 280px to 400px ([106e282](https://github.com/milmil-dev/milmil/commit/106e2828420b67068b7563ac17b4d99ae88ae2eb))
* **web:** add /history route and HistoryPage ([52bab80](https://github.com/milmil-dev/milmil/commit/52bab80c6925cef539d473d2d294a2de7e1c928d))
* **web:** add completeness API client ([e98f3de](https://github.com/milmil-dev/milmil/commit/e98f3de3c4e6d66896fb9e7b9729729d156b76ba))
* **web:** add date-bucket helper for history page ([583bd54](https://github.com/milmil-dev/milmil/commit/583bd5409ccdaee0422f09bbdd6c95ebaca29ae3))
* **web:** add duplicates API client ([b34fb56](https://github.com/milmil-dev/milmil/commit/b34fb56cec4f6109c667f139dc47557513d1e01f))
* **web:** add DuplicatesPanel on anime detail page ([adc0b38](https://github.com/milmil-dev/milmil/commit/adc0b386d90006db8743d3def23c261afed03fc2))
* **web:** add EpisodeStatusCard component ([63b47ca](https://github.com/milmil-dev/milmil/commit/63b47ca8cc5bbd39af965381af3f0b06254b3b5f))
* **web:** add franchise API types and query function ([e99666f](https://github.com/milmil-dev/milmil/commit/e99666ff6318ef3422ceb50d4e2d3c146431a9c8))
* **web:** add history API client and query keys ([e789a61](https://github.com/milmil-dev/milmil/commit/e789a61b3b73fd96a4a87e659ea809c111415c86))
* **web:** add history filter bar and batch bar ([3ad33fb](https://github.com/milmil-dev/milmil/commit/3ad33fb53e56fad8179eeb89b1a920e7f5e08ea1))
* **web:** add history skeleton, empty state, timeline rail, confirm dialog ([229c6fd](https://github.com/milmil-dev/milmil/commit/229c6fdd3104a7009dde1588e6542f3355ff9ed8))
* **web:** add HistoryCard component with tests ([b61a0c5](https://github.com/milmil-dev/milmil/commit/b61a0c50e91ae516eb6613a0faf653f7d0ecc1c9))
* **web:** add HistoryGrid with infinite-scroll sentinel ([6af9123](https://github.com/milmil-dev/milmil/commit/6af9123698542d03022fa308588b4ae2f3267b74))
* **web:** add LibraryDuplicatesPage with bulk cleanup ([fd9c7bc](https://github.com/milmil-dev/milmil/commit/fd9c7bc69dea9a3a45e8d457f5c37d127a1e72a4))
* **web:** add missing episode search API client ([02e84d8](https://github.com/milmil-dev/milmil/commit/02e84d8b44b537b4570f2add1cad0636544ce728))
* **web:** add missing-episode badge and Incomplete filter on library page ([2427bb7](https://github.com/milmil-dev/milmil/commit/2427bb7bc4568d7b723971436a7e388d08205b1b))
* **web:** add MissingSearchModal component ([e23c9fe](https://github.com/milmil-dev/milmil/commit/e23c9fe2dc183f96c0b78f5795ee276df80a0364))
* **web:** add rename API client ([6d19785](https://github.com/milmil-dev/milmil/commit/6d19785678ef95ff48dd3706c6c11e9a46a3d5cd))
* **web:** add rename preview and history pages ([3bfceb3](https://github.com/milmil-dev/milmil/commit/3bfceb3498e4af2f4c4430f4953127581e178e7b))
* **web:** add RenameConfigEditor embedded in library settings ([dc91cc2](https://github.com/milmil-dev/milmil/commit/dc91cc2fc5217248dbb56d65db97b21c2a1969d3))
* **web:** add row selection and floating bulk action bar ([3ff96ab](https://github.com/milmil-dev/milmil/commit/3ff96ab3730d22f12604d3b9a2bd009707737892))
* **web:** add search-per-episode + auto-download actions to status card ([d2a39e3](https://github.com/milmil-dev/milmil/commit/d2a39e3d31df7c302bb98e5f15706f5907a9c3c8))
* **web:** add sorting state, API params, and sortable column headers ([44b0af3](https://github.com/milmil-dev/milmil/commit/44b0af32c71f71ca0628379edb722f0b80d55483))
* **web:** add sync API client and integrations panel status UI ([23c05a6](https://github.com/milmil-dev/milmil/commit/23c05a6c17f76749a2472ec1da545d7d637076dc))
* **web:** replace season tabs and relations rail with franchise data ([23a3079](https://github.com/milmil-dev/milmil/commit/23a30792429e54a2eeb8d8942a5375ef4401bbea))
* **web:** show AniDB external link on anime detail page ([52dc5bb](https://github.com/milmil-dev/milmil/commit/52dc5bb0664e0d21ed75d5bca465d8a491ae97a4))
* **web:** show EpisodeStatusCard on anime detail page ([30a6ea1](https://github.com/milmil-dev/milmil/commit/30a6ea1d8b0915dd9d20bf5ccef266c18462268b))
* **web:** show toast and invalidate sync status on sync:needs_reauth ws event ([562e5fc](https://github.com/milmil-dev/milmil/commit/562e5fcf0fd012e97085b5c5959643b0ae168c72))
* **website:** documentation overhaul with rich components and new sections ([24c1f4e](https://github.com/milmil-dev/milmil/commit/24c1f4e0065e352214410c16cd60cd2ef69a1c28))
* **web:** support AniList-only anime detail pages with al- prefix ([b14fc41](https://github.com/milmil-dev/milmil/commit/b14fc414fe1ceed193bfbb4affb99276834a9495))
* **web:** support string IDs in detail API for al- prefix ([6073796](https://github.com/milmil-dev/milmil/commit/6073796c24dc3cf9c977916794ac4081a302ef3a))
* **web:** Trakt device code UI + pull-now + pull-enabled + ws pull toast ([2b9bf4c](https://github.com/milmil-dev/milmil/commit/2b9bf4cdad623d236b9d0d29b32259807777ad9a))
* **web:** wire /history into sidebar and Home continue-watching link ([d3294f7](https://github.com/milmil-dev/milmil/commit/d3294f7d6ff18377f31180a5854f7f830f76b566))
* **worker,server:** wire sync service into scheduler and main ([48ba905](https://github.com/milmil-dev/milmil/commit/48ba905cf291a1804192dfb9e2c66972c915cb52))
* **worker:** register 30-minute sync_pull job ([3a13ef3](https://github.com/milmil-dev/milmil/commit/3a13ef3ff8dbc8bae993fa44535f085d126bf805))


### Bug Fixes

* add GetMediaRelations mock + EpisodeStatusCard TS strict fix ([8b87c0d](https://github.com/milmil-dev/milmil/commit/8b87c0df8f75355f05cfa3188150abbab3884902))
* **api-tokens:** add confirmation dialog before revoking token ([897fcd9](https://github.com/milmil-dev/milmil/commit/897fcd9c09b3348361f7ea230160007f1ba81f53))
* **api-tokens:** use background context for async update, add input validation ([ca5d09b](https://github.com/milmil-dev/milmil/commit/ca5d09b74bc67ac55160a7999f5bfe359b8d442c))
* **api:** log all requests at info level instead of debug ([c8de6b1](https://github.com/milmil-dev/milmil/commit/c8de6b116dd3bec9351150eeddaba20f847fd410))
* **api:** log response body in debug mode for all requests ([9134c7a](https://github.com/milmil-dev/milmil/commit/9134c7ad7162579ea3defc2bf0bb887957de081e))
* **api:** return empty array (not null) for empty media files list ([c8d9f5b](https://github.com/milmil-dev/milmil/commit/c8d9f5bcf4c1821ce5928ccc8036a303018adf6e))
* **auth:** auto-clear legacy JWT tokens from localStorage ([c52c315](https://github.com/milmil-dev/milmil/commit/c52c31538c1c8adb1eae7f7429be0bfba6c25daa))
* **auth:** recognize mlml_ API tokens as non-expiring in frontend ([722fd5f](https://github.com/milmil-dev/milmil/commit/722fd5f6a23e8efd953f19cb18f79502a2b960cf))
* **bot:** add numbered prefixes to list item buttons in Telegram ([0c2c84d](https://github.com/milmil-dev/milmil/commit/0c2c84dc5a311cf99e7dfbcc82b7be95692d7003))
* **bot:** guard against null allowed_chat_ids and allowed_guild_ids ([592e947](https://github.com/milmil-dev/milmil/commit/592e947f8bf9292cb359cc0ceacfc827ac2fef47))
* **bot:** match abbreviated weekday names from Bangumi calendar ([9c868ad](https://github.com/milmil-dev/milmil/commit/9c868adf3c2d3a99771fd97b4fc6fc7c8d79753e))
* **bot:** rename Subscribe to 追番 across all bot commands ([a9c98d7](https://github.com/milmil-dev/milmil/commit/a9c98d75c27a84ecff9567a441b1d607209339c9))
* **bot:** restore Watching button in menu, add subscribe buttons to /today ([bd88111](https://github.com/milmil-dev/milmil/commit/bd8811170fdd9bf81883fbb4f9efd3b1e4cb5c1f))
* **bot:** sanitize UTF-8 in Telegram messages ([4751d05](https://github.com/milmil-dev/milmil/commit/4751d0504a7c6da3eaf46e805250e55f82238d21))
* **brand:** swap sidebar/splash logo to PNG mark for visual consistency ([35c701c](https://github.com/milmil-dev/milmil/commit/35c701cf99e0a64edefca0f7ffa47620716c4e0a))
* **brand:** use transparent-bg PNGs for sidebar / splash / favicon ([2d5d400](https://github.com/milmil-dev/milmil/commit/2d5d400cabd9e3ac301f5efd8d1e4ef2595cfef1))
* change button press scale from global to opt-in ([729dee7](https://github.com/milmil-dev/milmil/commit/729dee7765de80b9d304112f3bc63bdd3435eb85))
* codebase hygiene — error logging, race condition, security, state dedup ([852b79a](https://github.com/milmil-dev/milmil/commit/852b79ae1f58453f4c6fa130fb91f8de74cde26f))
* **daily-digest:** persist sent date to DB to survive restarts ([02e8bd6](https://github.com/milmil-dev/milmil/commit/02e8bd601097b7b1295d45be91f4441bcb4a28c2))
* **daily-digest:** run on startup for catch-up, restore debug log levels ([7e11cd8](https://github.com/milmil-dev/milmil/commit/7e11cd838c51dddd08e89f9a646cfc1cee8a59fe))
* **danmaku:** add missing i18n, font family selector, fix popover overflow ([4eb9f11](https://github.com/milmil-dev/milmil/commit/4eb9f11afd92aea510af129e999bf7b14f07ec18))
* **danmaku:** center-align block keywords button text ([7b2301b](https://github.com/milmil-dev/milmil/commit/7b2301bc6a6e0c23436f402601ec53e37c0df022))
* **danmaku:** decompress gzip/deflate Bilibili danmaku responses ([5363fcf](https://github.com/milmil-dev/milmil/commit/5363fcfd07c3c6de193ae04d16978ad1aafe8f60))
* **danmaku:** fix anime title prop and remove conflicting .js locale files ([d098fe8](https://github.com/milmil-dev/milmil/commit/d098fe800e609284b4c74f02093c5873526da3df))
* **danmaku:** fix Bilibili 412 anti-bot by acquiring buvid3 session ([af181c9](https://github.com/milmil-dev/milmil/commit/af181c93a5f007eca1e1ea497da1f7d17a9b222f))
* **danmaku:** fix broken thumbnails and add CJK translations ([e1a7cde](https://github.com/milmil-dev/milmil/commit/e1a7cde828fb5ef7ece2fea2b1e22e8368b41466))
* **danmaku:** fix stack overflow from recursive setHeaders call ([688f6f2](https://github.com/milmil-dev/milmil/commit/688f6f26bfe33a1cd4be4f48c4a0799da610b5a1))
* **danmaku:** handle bare '&' in Bilibili danmaku XML ([042ee68](https://github.com/milmil-dev/milmil/commit/042ee682d5e627596b09c231906850d1a1f59d54))
* **danmaku:** make list height follow player height ([a3d8903](https://github.com/milmil-dev/milmil/commit/a3d89030f917d25001b13f3291679885ce21d867))
* **danmaku:** read all settings from store directly, not from pre-baked styles ([f621c14](https://github.com/milmil-dev/milmil/commit/f621c14bc61d9996b26c055113d09488f4bb67a2))
* **danmaku:** remove fixed-width container causing right padding on ON/OFF text ([354c4ca](https://github.com/milmil-dev/milmil/commit/354c4cad554a09dbbc0221b419be31427e604240))
* **danmaku:** remove scale animation from settings popover to prevent shrink on click ([892735a](https://github.com/milmil-dev/milmil/commit/892735aa90331f594a166ca8c9a7ab6f4873f3eb))
* **danmaku:** use addEventListener instead of conditional onmessage for Worker entry ([d1a0706](https://github.com/milmil-dev/milmil/commit/d1a07064fe3c6a5ec787f41fc2640a52b31bb196))
* **danmaku:** use switch for on/off toggle + click-outside to close popup ([5c652ba](https://github.com/milmil-dev/milmil/commit/5c652ba3ce58556310a0889f209a75f233b1e267))
* **danmaku:** use white/opacity for toggle button instead of blue ([e021d2b](https://github.com/milmil-dev/milmil/commit/e021d2b9dbcf06b1debad63c57950449e9d98070))
* disable button press scale effect inside settings panels ([3451c1a](https://github.com/milmil-dev/milmil/commit/3451c1a3f8f8ad9044fd46cbd3ed5c704275481e))
* **docs-site:** add English translations for landing page ([19ffe90](https://github.com/milmil-dev/milmil/commit/19ffe90ef13b4200517be9d47cd674054dc05df1))
* **docs-site:** fix English translations and rename zh-HK to 粵語 ([14a0f3d](https://github.com/milmil-dev/milmil/commit/14a0f3d7b5085c52d1391c01640f305576cc95ab))
* **docs-site:** fix i18n default language, TypeTable, and architecture doc ([b33e050](https://github.com/milmil-dev/milmil/commit/b33e050ac903cda26386ff72e614dcc74d87363b))
* **docs-site:** preserve locale in nav bar home link ([1e21bdc](https://github.com/milmil-dev/milmil/commit/1e21bdc88c7c0e942530f1196351d1c2ffd635e6))
* **docs-site:** translate nav bar links per locale ([afba16b](https://github.com/milmil-dev/milmil/commit/afba16bd841b95cae7805d9a8c99f3e96b6e751f))
* **downloads:** a11y for cover placeholder + safer nullish fallback ([0a60e11](https://github.com/milmil-dev/milmil/commit/0a60e11445a8cc245fb4641645898a79d9bb005a))
* **downloads:** add 6th grid column to EpisodeRowActive to prevent percent/actions overlap ([0116346](https://github.com/milmil-dev/milmil/commit/01163465d2004fe9804bc12f5cc62800ed210e24))
* **downloads:** add Done button and keyboard shortcuts for RSS URL edit ([c14fc91](https://github.com/milmil-dev/milmil/commit/c14fc9150e2de145882e183c3671b026f5f2d274))
* **downloads:** clamp remaining bytes to zero in toActiveProps ETA calc ([223d5f8](https://github.com/milmil-dev/milmil/commit/223d5f80db6ff56b3924d5aa69b78faf85f66502))
* **downloads:** drop green glow on progress bar and halo on live dot ([07e7679](https://github.com/milmil-dev/milmil/commit/07e76793a5a0f4bac29959f50551e6d45c8e2ca0))
* **downloads:** flip card to completed mode when any ep is complete ([9b68eb2](https://github.com/milmil-dev/milmil/commit/9b68eb2f199743904e4f726d182b608e583cac9b))
* **downloads:** group Add URL button with Built-in badge in page header ([bdd183a](https://github.com/milmil-dev/milmil/commit/bdd183a8e675836d27a8d3d0fbab4c867e44956f))
* **downloads:** guard deriveNextFetch against NaN from invalid feed data ([6c31a44](https://github.com/milmil-dev/milmil/commit/6c31a44a64e7476df57c483a28f27ff8eb8c2a89))
* **downloads:** localize img.error test; root-anchor downloads/ gitignore ([a446092](https://github.com/milmil-dev/milmil/commit/a446092705338dc9f5ea7626ef3c1c80f5db3fe1))
* **downloads:** move card actions to top, percent to bottom ([e8b7d36](https://github.com/milmil-dev/milmil/commit/e8b7d3603a2e57e644787d61db9bf21e54752c79))
* **downloads:** restore dotted Lingui key for openAnime menu item ([dfd5c2a](https://github.com/milmil-dev/milmil/commit/dfd5c2a1edf737eb38f5e487c88322c4d3ca0d0b))
* **downloads:** restore RuleEditorModal entry on subscribed cards ([c877376](https://github.com/milmil-dev/milmil/commit/c877376d440313bee52bc394b2cbb08941f4ce9f))
* **downloads:** RSS URL defaults to read-only link with edit button ([332e0fd](https://github.com/milmil-dev/milmil/commit/332e0fd72f68c56bd7c3061f45e83173e56e788c))
* **downloads:** show full RSS URL with break-all instead of truncate ([83b91db](https://github.com/milmil-dev/milmil/commit/83b91db39a4e475048124355a7e2c422c40114c8))
* **downloads:** use textarea for RSS URL editing (shows full URL) ([18ca98e](https://github.com/milmil-dev/milmil/commit/18ca98eb8223a09502d556d87d7a09bea15c2246))
* ensure CTRL+C kills air and bun dev in make dev ([60eeb1f](https://github.com/milmil-dev/milmil/commit/60eeb1ffd4ce3204cc864d382bcaaa2dac30bfc3))
* **i18n:** add English and zh-CN translations for bulk match/unmatch UI ([bbc8e48](https://github.com/milmil-dev/milmil/commit/bbc8e485dad1a1244bd8c139a26ca24873d0c8f5))
* **i18n:** rewrite zh-HK landing translations in Hong Kong Cantonese style ([ad619e5](https://github.com/milmil-dev/milmil/commit/ad619e530f49d1453f3b8e9d89b70daceb7701cf))
* **i18n:** translate all subtitle settings panel labels ([d6d3023](https://github.com/milmil-dev/milmil/commit/d6d302315c1168fbbaece537230451a3f8f28536))
* **i18n:** translate danmaku ON/OFF button (開/關) ([60f2ad0](https://github.com/milmil-dev/milmil/commit/60f2ad002b7bfb2a3e708f939ef3176d3157218a))
* **i18n:** translate Episode status card and No file badge ([c6eaafa](https://github.com/milmil-dev/milmil/commit/c6eaafa861e79ea0342fc3ea617506fd10177586))
* **i18n:** use i18n locale for date formatting in API tokens card ([0d8512c](https://github.com/milmil-dev/milmil/commit/0d8512cc9e4b3ca74c9a84f73713316dd9c76cb3))
* **i18n:** use localized relative time strings for sessions ([24ede3a](https://github.com/milmil-dev/milmil/commit/24ede3a13b54cb4514e431790793adb3da6fc480))
* **jellyfin:** add missing fields to Series items for Infuse compatibility ([c2f528a](https://github.com/milmil-dev/milmil/commit/c2f528ab8e78b3ff1dc0f361a80645e6876b72ab))
* **jellyfin:** fallback to h264+aac when codec cannot be detected ([f78f6ce](https://github.com/milmil-dev/milmil/commit/f78f6cebaf867c5b869736c422178fd53fdff58b))
* **jellyfin:** fix Infuse 'no playable items' by adding ChildCount to seasons ([8761685](https://github.com/milmil-dev/milmil/commit/87616858ae6b0c34b07261677a71c85803011a92))
* **jellyfin:** fix Infuse compatibility issues found during testing ([dc1144d](https://github.com/milmil-dev/milmil/commit/dc1144dd48c9289d936ef0c706d8df8f81565f6f))
* **jellyfin:** match Jellyfin response format for Infuse compatibility ([98d0340](https://github.com/milmil-dev/milmil/commit/98d034018ff288b7a0fd5db1b4107cc98f49ed4c))
* **jellyfin:** return 404 instead of 501 for unknown endpoints ([aa2a1e6](https://github.com/milmil-dev/milmil/commit/aa2a1e6ddc536fcbd60356a18bf3119f067c6e29))
* **jellyfin:** return 501 for unimplemented endpoints ([86c921a](https://github.com/milmil-dev/milmil/commit/86c921aee6a5e8a93a78f45c153bf8bd6b69510b))
* **jellyfin:** switch ID encoding from base64url to hex ([e05e639](https://github.com/milmil-dev/milmil/commit/e05e63983dd29ff78d3b781a079d848d70c258d5))
* **jellyfin:** use MD5 hash for 32-char GUID-format item IDs ([3e452de](https://github.com/milmil-dev/milmil/commit/3e452de2efadf8b1a5911443b7311b35164cfa1e))
* **jellyfin:** use no-dash GUID format for ServerId ([ab88686](https://github.com/milmil-dev/milmil/commit/ab88686930bbce85436003c9b4e21557c593a751))
* **library:** restyle scan progress banner and add missing translations ([d2d8fd7](https://github.com/milmil-dev/milmil/commit/d2d8fd7fb5816a4c2ed68a3c730ceeb238e13321))
* **metadata:** only accept exact title matches in ResolveBangumiID ([4cc0c95](https://github.com/milmil-dev/milmil/commit/4cc0c95dbb822ebadb35d1b3af098e4bc50c968a))
* **metadata:** prefer exact title match in ResolveBangumiID ([638bef7](https://github.com/milmil-dev/milmil/commit/638bef7c8b8a32eabe3412041d349815538f94ae))
* **metadata:** resolve bangumi IDs for franchise entries on cache miss ([3d2cc51](https://github.com/milmil-dev/milmil/commit/3d2cc514d8ebde92722b752bca4dedd77149b3cc))
* **notifications:** fall back to Accept-Language for test message language ([43380a1](https://github.com/milmil-dev/milmil/commit/43380a1a639e648ff897009784cd21c12998a892))
* **notifications:** test notification follows bot language setting ([d691afe](https://github.com/milmil-dev/milmil/commit/d691afec563b59e84b041154ca5feda6abf3ae05))
* **notifications:** use functional setLocal to prevent state overwrites ([869d9fa](https://github.com/milmil-dev/milmil/commit/869d9faa0492f143815c8658e60056ba2fdeeb7e))
* **player:** apply HLS buffer config to underlying HLS.js engine ([9b8245f](https://github.com/milmil-dev/milmil/commit/9b8245fa3916fcf6eb4c9a67a9751497e2e8d8fb))
* **player:** fullscreen now includes danmaku and subtitle overlays ([616d8fd](https://github.com/milmil-dev/milmil/commit/616d8fdff08f520400bc79289a0147ac85774ec3))
* reduce air kill_delay from 10s to 2s ([e3c50b3](https://github.com/milmil-dev/milmil/commit/e3c50b34c81d0eadbc38ef66ef6333d918b4a38e))
* remove api/data symlink and add to gitignore ([64b1d66](https://github.com/milmil-dev/milmil/commit/64b1d66e5fd20b84c3e7632b8b86461e4e7e5e4e))
* remove press scale entirely — background color change is the correct feedback pattern ([8c30405](https://github.com/milmil-dev/milmil/commit/8c304056aaac5618714103ba4c659b178b8f1aa3))
* **resolver:** seed valid watch_status and score in existing-anime fixture ([ffff6ae](https://github.com/milmil-dev/milmil/commit/ffff6aef10246629b580a2f10c7d0b3b03582b46))
* resume card links use bangumi_id instead of internal UUID ([91a743b](https://github.com/milmil-dev/milmil/commit/91a743b0afd14e39722a461a0f0a29b7808707da))
* **router:** add Suspense boundary around Outlet ([ba4b634](https://github.com/milmil-dev/milmil/commit/ba4b634bbbacdc09aff3d2844f40dcbbecadf3e4))
* **rss:** treat empty filter regex as match-nothing ([cd1e900](https://github.com/milmil-dev/milmil/commit/cd1e900c114febd4be45cf0072eac32a00cf0375))
* **sessions:** guard sendLoginNotification against nil notifier ([e884f38](https://github.com/milmil-dev/milmil/commit/e884f380f2c0d5eef26167e9693656f4c81992b6))
* **storage:** require share name when building smb rclone remote ([1b2e6f5](https://github.com/milmil-dev/milmil/commit/1b2e6f595b1e67fcdcce227258b93fe3ef1d46bc))
* **subtitle:** auto-select subtitle based on app language ([3c979e2](https://github.com/milmil-dev/milmil/commit/3c979e2710910ed89cec84c07acefc9b35d70504))
* **subtitle:** prefer exact locale variant over wrong variant ([f2857c2](https://github.com/milmil-dev/milmil/commit/f2857c23b0c1641a39c7f81cda73893f5acdea7c))
* **subtitle:** stop infinite retry loop when subtitle file is missing ([e31cd7b](https://github.com/milmil-dev/milmil/commit/e31cd7bca51daaaadc35f0695f2ae9326a5b83d7))
* **thumbnails:** serve sprite.jpg without auth and fix route paths ([539a9ae](https://github.com/milmil-dev/milmil/commit/539a9aef6d6e549eb94051c28e3b171831761671))
* **torrent:** filter anacrolix logs to error-only ([c0e2383](https://github.com/milmil-dev/milmil/commit/c0e2383a071d508ff8a7f41ee4c525dc5aa51dd4))
* **torrent:** use server-side search for acg.rip provider ([2edd83d](https://github.com/milmil-dev/milmil/commit/2edd83da9dbc65ff10e458e5ef3312c3549056c9))
* **ui:** handle server unreachable gracefully instead of white screen ([3795ce0](https://github.com/milmil-dev/milmil/commit/3795ce0015f15b18a7015d70c0a0bf209dd79ddb))
* **ui:** increase continue card size natively instead of CSS scale ([2838cc7](https://github.com/milmil-dev/milmil/commit/2838cc72e2b1228e260695b1e967a0f562bf457b))
* **ui:** increase ResumeCard size 20% on both pages, translate remaining ([a947201](https://github.com/milmil-dev/milmil/commit/a94720109bd7447ed4274559605fe812f668d748))
* **ui:** position continue card absolute inside hero section ([d747012](https://github.com/milmil-dev/milmil/commit/d74701272e6a55eed544efe82774b2f0035a460e))
* **ui:** prevent password managers from blocking paste on PasswordInput ([4bb0f3c](https://github.com/milmil-dev/milmil/commit/4bb0f3c178a8848a39ab2060e0b001ffa776a4c0))
* **ui:** redesign continue watching bar on anime detail page ([25d9b61](https://github.com/milmil-dev/milmil/commit/25d9b61229233f78c2511a10bc5dc09e875beef4))
* **ui:** remove banner top gap, compile i18n with 追番 translations ([5126795](https://github.com/milmil-dev/milmil/commit/5126795f5afe3b7be7a8be891d1689ebc9196570))
* **ui:** replace continue bar with floating card matching HeroBanner style ([e09d336](https://github.com/milmil-dev/milmil/commit/e09d3360517b3c945880331d02da5de76ecec357))
* **ui:** scale continue card to 120% ([9c3c890](https://github.com/milmil-dev/milmil/commit/9c3c8902ce5ee17e7c3e10e2b07b9e2ddfbeed17))
* **ui:** use realistic chat ID placeholder format ([55f3595](https://github.com/milmil-dev/milmil/commit/55f3595bb42a08e99c0b0f7e387dee2de23ee870))
* **ui:** use TanStack Router errorComponent pattern with i18n ([cab7394](https://github.com/milmil-dev/milmil/commit/cab7394cf8781ec06d15fbc70202b9757b70ca33))
* **video:** render pre-play backdrop between video and controls ([665fa7c](https://github.com/milmil-dev/milmil/commit/665fa7c354754619d7bbef159a38380c45b39388))
* **watch:** cap outer page container at 1400px instead of per-column ([3d2a877](https://github.com/milmil-dev/milmil/commit/3d2a877f50a29755c2f722462abc2d059940e6ef))
* **watch:** increase resume overlay offset to bottom-16 (64px) ([d69d90a](https://github.com/milmil-dev/milmil/commit/d69d90ab94ab9c92b0ba48c19c77d5d4d9084308))
* **watch:** move resume overlay higher (bottom-20, 80px) ([cab8ed2](https://github.com/milmil-dev/milmil/commit/cab8ed2991d8aafe9b2233d62f5a567bface31f3))
* **watch:** position resume overlay above control bar ([c932b3b](https://github.com/milmil-dev/milmil/commit/c932b3b0700a01073416cab97127dfa761be1c33))
* **watch:** poster wall now replaces the single-cover backdrop in VideoPlayer ([b2b6a99](https://github.com/milmil-dev/milmil/commit/b2b6a9990440910d6191ac57f9339f4a272e80b8))
* **watch:** show player shell with faux controls during loading state ([831893f](https://github.com/milmil-dev/milmil/commit/831893fcb63d55c5354266674882aaedaf9c6db9))
* **watch:** tone down poster wall backdrop — whisper, not shout ([f5b6085](https://github.com/milmil-dev/milmil/commit/f5b60859e8d161930d669aa56cfc6e8570f0e51e))
* **web:** add ColumnMeta type augmentation for width property ([31c42e3](https://github.com/milmil-dev/milmil/commit/31c42e30d211ebca7b643b366b5d3080e0193137))
* **web:** render non-clickable card for side stories without bangumi ID ([09f155b](https://github.com/milmil-dev/milmil/commit/09f155b3ab3ff721e3f3d2efc5e0fbfa1af2c500))
* **worker:** add library reconciliation to heal orphan downloads ([fd50557](https://github.com/milmil-dev/milmil/commit/fd50557cc476cde7ca7b69bef8567bcb851f5d48))


### Performance Improvements

* **danmaku:** add GPU acceleration hints for smoother DOM rendering ([9432ed2](https://github.com/milmil-dev/milmil/commit/9432ed2c40b84d111e95ddce4e4a563412b0b02d))


### Reverts

* player loading tiled poster wall — doesn't work for single anime ([8f22676](https://github.com/milmil-dev/milmil/commit/8f22676d59535a07954b4e303b5cd35515f863c6))