Repository navigation
Releases: ppxb/miyabi
Releases · ppxb/miyabi
Release list
Release v0.2.1
0.2.1 - 2026-10-08
🚀 Features
- Add automatic magnet failover and per-task cancellation - (880b281)
🐛 Bug Fixes
- (auth) Bound login records and reserve concurrent attempts - (97c7166)
- (drive) Coalesce account checks and clear rejected credentials - (582fdcf)
- (library) Isolate local file identities and index movie ordering - (e8495b7)
- (monitor) Drain due subscriptions and notify waiting updates - (e3225c3)
- (pan) Avoid API throttling for metadata downloads - (deb7bf8)
- (scrape) Bound directory cache and reclaim expired entries - (fb3edd5)
- (tasks) Coalesce refreshes and preserve newer cached state - (197bac4)
- (web) Prevent directory listing and cache hashed assets - (646ba3c)
- Prevent stale task responses from overwriting toast status - (e63430f)
- Redact sensitive URLs from API logs - (f5ba90f)
- Decouple cache cleanup from statistics refresh - (c9d8406)
- Normalize settings operation error messages - (5d86aa8)
- Preserve word boundaries in settings descriptions - (4d0703c)
- Show loading state when retrying category filters - (83028d9)
- Align movie detail skeletons with content layout - (746dc90)
- Clarify subscription states and action labels - (7fae7fd)
- Require resolved configuration for media exports - (1bd7104)
- Remove delayed settings focus and stabilize auth listener - (04f8a9d)
- Bound GFriends index downloads and cache reads - (24b29ad)
📖 Documentation
- Refresh audit findings for v0.2.0 - (44b2822)
⚡ Performance
- (javdb) Replace route polling with deadline-based scheduling - (37e856c)
- (settings) Reuse fresh queries on remount - (17d3199)
- (strm) Cache signed stream URLs and coalesce concurrent lookups - (8a10dea)
- (subtitle) Bound language detection to 15000 runes - (f7c006e)
- (tasks) Prefer SSE snapshots during manual reconnect - (0779117)
🚜 Refactor
Release v0.2.0
0.2.0 - 2026-10-02
🚀 Features
- (image) Generate face-aware posters and refresh cached exports - (e2234df)
- (library) Add full rebuild with fresh metadata and artwork - (fb93b21)
- (metadata) Add HEYZO official source and public previews - (1889814)
- Add library card actions for rescraping and code correction - (d5aa379)
- Reuse scrape tasks, update exports incrementally, and add pause controls - (ba2aea5)
- Add durable scrape retries and separate library worker pools - (cefda7e)
- Prioritize FANZA scraping with JavDB fallback - (7c4b846)
- Add AVBase-first multi-source scraping pipeline - (597488c)
📝 Other Changes
- Improve artwork selection and add saved library details - (05764cc)
🐛 Bug Fixes
- (database) Preserve legacy viewed history order during migration - (a45a9a5)
- (emby) Avoid full library scans after incremental updates - (32be16c)
- (emby) Repair invalid actor avatars and prevent raw CDN image downloads - (90b0a10)
- (netx) Notify only when the effective proxy changes - (91bd7ee)
- (scan) Publish notifications after commit and clean audit leftovers - (a9f2632)
- (scraping) Simplify errors and preserve rebuild failure status - (71a9dd6)
- (ui) Remove toast close button tooltip - (2b9e9d8)
- (ui) Remove library action tooltips - (7ad829d)
- (web) Stabilize subscription cards and detail dialog context - (55d19cb)
- Simplify code correction dialog and restore scan icon - (02b5b08)
- Clarify library sync actions and status labels - (ba10354)
- Use FC2 original artwork and restore purple library badge - (c5d3286)
- Prioritize JavDB metadata and preserve previews across rescans - (30b751a)
- Keep batch scraping progress stable across movie stages - (224af02)
- Resolve date-based movie codes and keep JavDB fallback always enabled - (689bdd5)
- Resolve library movie dialogs by catalogue number - (9699bf2)
- Persist and retry Emby media notifications - (5f7a851)
📖 Documentation
- Clarify scraping responsibilities and performance requirements - (d66c7be)
- Define multi-source scraping architecture - (129c06d)
- Prune verified audit items 112-125 - (9cbbbcc)
- Prune verified audit items and refresh remaining checklist - (a305cd6)
⚡ Performance
- (database) Index cover task parent lookups - (055b27f)
- (scan) Move reconciliation exports outside write transactions - (b79934a)
- (scan) Batch local imports and shorten write transactions - (1769c06)
- (scan) Index equivalent movie codes for batch matching - (769098a)
- (scrape) Narrow artwork lock to checkpoint publication - (88c5f95)
- (tasks) Separate worker wakeups from UI notifications - (ce993de)
- (tasks) Separate worker wakeups from UI notifications - (832d2dc)
- (tasks) Index workflow lookups and share task snapshots - (b32163e)
- Batch preview gestures and serve dedicated thumbnails - (f84c30e)
🚜 Refactor
- (api) Remove redundant auth and rate limiter nil checks - (d44f616)
- (api) Remove unused offline history, local scan and logout endpoints - (61b3419)
- (catalogue) Simplify guards and share cached magnet lookups - (7a8d35c)
- (catalogue) Separate movie metadata from local state queries - (7304591)
- (catalogue) Simplify JavDB client configuration - (633157d)
- (codeid) Unify prefix fallbacks and preserve catalogue identity - (a995217)
- (config) Centralize normalization and log level parsing - (aaa44b2)
- (domain) Remove unused tags and unify scan payload references - (fb14341)
- (drive) Reuse credential snapshots for source validation - (bbed192)
- (drive) Unify token refresh and retry flow - (dba73ef)
- (drive) Remove unused session APIs and narrow helper visibility - (e18acf5)
- (gfriends) Narrow internal APIs and log cache write failures - (a8ee991)
- (javbus) Simplify context checks and redundant parsing branches - (c580284)
- (javdb) Use typed route data and preserve bootstrap fallback - (64482d4)
- (javdb) Remove redundant magnet fallback and sorting - (438f339)
- (library) Unify source scopes and local account identifiers - (fc5b374)
- (library) Unify source scopes and local account identifiers - (7959e96)
- (library) Remove unused APIs and simplify internal state - (cbf2cc3)
- (magnet) Remove redundant normalization and repeated inference - (f24361b)
- (maintenance) Consolidate database size cancellation checks - (b1e6bc8)
- (monitor) Remove unused subscription zone and error status - (b17fdce)
- (netx) Simplify safe download checks and timeout handling - (3614ff7)
- (offline) Remove redundant projection hash validation - (c13b03f)
- (offline) Simplify polling guards and subscription pagination - (ad723de)
- (pan) Remove redundant fallbacks and simplify login status handling - ([5eabfa9](https://git...
Release v0.1.3
0.1.3 - 2026-09-29
🚀 Features
- (codeid,javdb) Implement multi-tier candidate resolution for catalogue scraping - (00c813f)
- (javbus) Enable adaptive reachability probing and remove manual switch - (72f9fb3)
- (subscriptions) Decouple subscription targets cache and add paginatio - (51818c0)
📝 Other Changes
- Update AGENTS.md - (96c6bf3)
- Update AGENTS.md - (d2a116c)
- Update README.md - (ffea805)
- Update AGENTS.md - (526ef50)
- Remove REFACTOR and AUDIT - (0d3db75)
🐛 Bug Fixes
- (api) Abort library local scan handler when JSON binding fails - (991138a)
- (catalogue) Ignore route persistence errors in cached JavDB queries - (edd3470)
- (codeid) Add FC2- provider search query variant for FC2-PPV candidates - (3b58fb7)
- (domain) Mask unexpected and internal error details in public message - (7074f5c)
- (drive) Bind account cache to credential version - (d9b133f)
- (emby) Remove unused receiver from translatePath and fix escape check - (9c38b30)
- (emby) Use atomic single-flight and negative cache for actor avatars - (3a36df5)
- (emby) Resolve absolute media paths and trigger library refresh on update - (f79e501)
- (export) Sanitize EmbyMovieDir with nfo.FileStem to prevent illegal paths - (6d65005)
- (javbus) Strip unsupported pb unit from magnet size regex - (54211f6)
- (magnet) Distinguish skipped sources and bypass cache on partial failures - (349e1ac)
- (monitor) Return normalized config upon subscription settings update - (431a334)
- (monitor) Mark actor cursor initialized to avoid dropping debut works - (fd06c32)
- (monitor) Eliminate recursive calls on subscription constraint error - (9916221)
- (monitor) Resume subscription batch from processed count on restart - (5691485)
- (netx) Explicitly set transport.Proxy to nil in newTransport - (b034764)
- (netx) Permit local proxy connections in safe transport dialer - (1778d57)
- (netx,app) Make proxy updates atomic and synchronize database persistence - (b7a2b91)
- (pan) Restrict retry policy for non-idempotent requests and remove unused upload logic - (de87784)
- (scan) Normalize local NFO code with fallback and handle ignored errors - (0150471)
- (scan) Clean up local Emby movie directory and notify Emby on movie deletion - (28dd654)
- (scrape) Sort multi-part videos naturally and consolidate Emby export - (f26863a)
- (strm) Only fallback to play URL when direct download is unavailable - (9fdc7bb)
- (strm) Unify user-agent across download, play, and probe requests - (1171f30)
- (strm) Regenerate STRM files on rewrite to support token rotation - (985577f)
- (strm) Support empty user-agent downstream relay and override media content-type - (3e499ad)
- (strm) Bind 115 raw download url to player user-agent and default public_url - (851a6c1)
- (subtitle) Delete orphan pending subtitle records during export - (a1feba6)
- (tasks) Handle JavDB rate limits and retry failed workflow items - (574d600)
- (tasks) Retry Claim and Finish on transient database errors - (7722fd3)
- (web) Prevent duplicate beacon POST and clear pending in browse history - (8ab436c)
- (web) Rename clear cache button to clarify only unused cache is removed - (a885c55)
- (web) Track pan login qr auto-refresh by session id - (6d55da1)
- (web) Handle 401 unauthorized on SSE terminal closure - (5f2f14c)
- (web) Use placeholderData for movie state cache and prevent premature ingestion - (b3ccfaa)
- (web) Only clear auth token and dispatch unauthorized event on UNAUTHORIZED error code - (abcce48)
- Prevent Emby settings flicker with optimistic updates - (531bfa6)
- Separate throttle waits from I/O timeouts and reload uncached recommendations - (fd8e915)
- Centralize 115 retry-after backoff and recheck deadlines - (5111f35)
- Preserve scan callbacks and reject invalid GFriends indexes - (49f0228)
- Avoid blocking GFriends lookups and retry failed index refreshes - (f7d15e2)
- Rewrite STRM on directory changes and retry incomplete magnet lookups - (c533e85)
- Centralize API error handling and account state refresh - (d965493)
- Persist discovery and subscription browsing state in URL - (7a1fd29)
- Unify error classification and return 429 for login rate limits - (6d27657)
- Unify web JWT authentication through HttpOnly cookies - (40b03ca)
- Automatically queue scans for the configured Emby directory - (38e3d10)
- Resolve audit regressions in exports, scans, playback, and subscriptions - (5e45f6a)
- fix(scan): persist scanID across checkpoints to prevent resume deletion - (6dd6aa5)
📖 Documentation
- (audit) Mark lockfile synchronization checklist item as resolved - (197a67c)
- Prune resolved audit items and refresh remaining recommendations - (ef65c7f)
- Add full-stack code audit checklist - (d814237)
- Add categorized frontend and backend code audit - (dbe781b)
⚡ Performance
- Avoid refreshing browse history after every view - ([1...
Release v0.1.2
0.1.2 - 2026-09-24
🚀 Features
- (auth) Protect backend API with modern JWT authentication - (16f5354)
- (emby) Add automatic GFriends actress avatar synchronization - (fd05c3e)
📝 Other Changes
- Update README.md - (fe9a59a)
🐛 Bug Fixes
- (security) Disable trusted proxies by default and enforce idle timeout - (ad2873a)
⚙️ Miscellaneous Tasks
- Bump version to 0.1.2 - (9ed0e08)
Release v0.1.1
0.1.1 - 2026-09-24
🚀 Features
- (emby) Add Emby integration with debounced batch notifications and unified settings UI - (0331b3a)
- (library) Export local NFO and artwork for already-scraped movies during scan reconciliation - (31bb8c2)
- (playback) Add STRM 302 relay endpoints and Emby configuration - (0fb5d13)
- Add local STRM library export, 302 relay, local scan, and 115 scan pacing - (e8d9eae)
📝 Other Changes
🐛 Bug Fixes
- (javdb) Limit response body size to prevent OOM - (9ab423d)
- (library) Export poster and NFO before STRM to ensure Emby realtime sync - (32d3ae7)
📖 Documentation
- Update README with Docker compose template and Emby environment variables - (31c51ef)
- Add technical specification for local STRM library export and Emby integration - (9fa1eb5)
- Revise refactor plan with frontend review and UI principles - (f79765b)
🚜 Refactor
- (api) Standardize subtitle VTT error handling and query binding - (5ab1a46)
- (logging) Unify slog usage, standardize key names, and hook ent sql logging - (bb739d4)
- (settings) Unify action buttons and toast feedback for network and emby - (936c289)
- Deduplicate shared logic, fix subtitle default invariant, and unify query defaults - (9269bc3)
⚙️ Miscellaneous Tasks
- Modify section description - (4fefafd)
Release v0.1.0
0.1.0 - 2026-09-23
🚀 Features
- (javdb) Enhance ResolveMovieID with format equivalence and padding tolerance - (1515e1f)
- (magnet) Implement JavBus source and multi-provider aggregation - (217e28b)
- (settings) Require active proxy for JavBus and enable optimistic toggle - (61fbcba)
- (subscription) Refactor monitor into subscription system with preference picker - (e0de46b)
- (subscription,settings) Decouple JavBus config, revamp subscription UI, and fix review issues - (7e74c61)
- (subtitle) Implement automated subtitle engine and player integration - (ad55cd1)
📝 Other Changes
- Update README.md - (b66028b)
- Remove unused file - (440874c)
- Update REFACTOR.md - (5be98cf)
- Update REFACTOR_PLAN.md - (321fec7)
🐛 Bug Fixes
- (pagination) Hide the bar on a single page and label the ellipsis - (09e1b6f)
- (pan,scrape) Enforce retry rate limits, bounded subtitle queue, and directory caching - (b85114a)
- (player) Eliminate subtitle jitter and jumping by using transform-based avoidanc - (e35a3df)
- (subtitle) Resolve M9 review findings and harden subtitle pipelin - (47b7d4c)
- (web) Control proxy toggle locally and defer backend sync until save - (0ab6e86)
- (web) Render magnet URI as non-clickable content-fitting text - (5fd2e51)
📖 Documentation
- (plan) Refine M6 magnet aggregation strategy, skipping rationale, and badge presentation - (f454bd7)
🚜 Refactor
- (api,config,pan,javdb) Complete milestone M5 and backend cleanup - (fe6cc25)
- (app) Complete M4 with app composition root and remove internal/service - (9b4d21f)
- (arch) Untangle domain dependencies, eliminate aliases, and enforce package isolation - (f522535)
- (catalogue) Extract internal/catalogue package and decouple local state - (118c8a7)
- (codeid,drive) Add IsEquivalent tolerance matching and unify DirectoryPath - (498bc3c)
- (config) Strip unused runtime env vars and fix transcode error regression - (c1d75eb)
- (drive) Close out B3 with rollback-safe mounts and restored concurrency tests - (9ba78b9)
- (library) Extract library and library/scan with single-NFO tolerance matching - (b105941)
- (offline) Extract internal/offline package, merge periodic runner, and fix viewed upsert collision - (3408cfc)
- (playback,maintenance,monitor) Extract packages, migrate subscription schema, and remove worker - (ccf1750)
- (scrape) Extract library/scrape package and decouple from library service - (a128ff6)
- (subscription) Align batch actions with history page and streamline settings - (f06275e)
- refactor(player): unify subtitle button with shadcn Button, standardize candidate styling and add scroll-fade - (4ccb385)
- Optimize large 115 library scan resilience and complete M8 frontend cleanups - (8da0c34)
🎨 Styling
- (player) Remove border and ring from subtitle settings dropdown - (f1a5be4)
🧪 Testing
- test(app): add e2e pipeline test for 115 file deletion reconciliation - (c7bd284)
⚙️ Miscellaneous Tasks
- (release) Bump version to 0.1.0 - (4be28bc)
Release v0.0.5
0.0.5 - 2026-09-21
🚀 Features
- (browse) Unify badge styling and add batched viewed movie history tracking - (23c58cc)
- (library) Add compact page jump to pagination and remove total movie count - (562f49d)
- (library) Add bidirectional tolerance matching for ID and NFO validation - (5e93516)
- (movie-detail) Add full-screen preview viewer with wheel zoom - (bccf062)
📝 Other Changes
Added a tip about using AI for project deployment. - (afea9ce)
- Update README.md - (c2834dd)
- Add GNU GPL v3 license
Added the GNU General Public License version 3 to the project. - (5da1362)
- Update README.md - (8e6b92a)
🐛 Bug Fixes
- (docker) Remove USER directive to avoid volume mount permission issues - (650af73)
📖 Documentation
- (plan) Add Workstream E for subtitle scraping and playback integration - (b1c2014)
- (refactor) Update plan to adopt atomic domain migration without aliases - (09c18a0)
🚜 Refactor
- (domain) Extract domain models and unify domain error handling - (7b077b3)
- (drive) Extract internal/drive package with session access gate - (326f63e)
- (history) Isolate viewed movies tracking and rewrite merge logic - (d3d74da)
- (network) Implement dynamic proxy management with settings UI - (676d68a)
- (netx) Centralize client creation and streamline proxy handling - (8454e5a)
- (pagination) Narrow page window to 3 slots and restore shadcn link semantics - (1b64d52)
- (pagination) Standardize ListPagination using shadcn ui components - (58622d6)
- (proxy,domain) Refine error model, channel safety, and upstream handling - (ddcf80c)
- (tasks) Decouple queue from domain rules and clean up task wrappers - (fa9bab9)
- (tasks) Extract internal/tasks package and decouple task engine via handler registry - (2613122)
- Delete audit markdown - (badcfa5)
🧪 Testing
- test: add end-to-end pipeline, golden response and middleware coverage - (bb8da6b)
⚙️ Miscellaneous Tasks
Release v0.0.4
0.0.4 - 2026-09-18
🚀 Features
- (monitor) Watch upcoming movies and auto-add magnets to 115 - (5122080)
🐛 Bug Fixes
- (javdb) Tolerate duplicate movie IDs during resolution - (573b895)
- (pan) Keep a scan across poll timeouts and bound 115 login retries - (098fe0e)
- (pan) Keep a 115 login alive across uninformative polls - (ebdb19f)
- (pan) Treat a status-less 115 login poll as still waiting - (84e7998)
- (player) Decouple playback startup from watch recording - (93e2940)
⚙️ Miscellaneous Tasks
Release v0.0.3
0.0.3 - 2026-09-12
🚀 Features
- (discover) Add common filter select to category browsing - (c9e1321)
- (library) Add local hover details and 20-item pagination - (f126574)
- (settings) Add data usage stats and unused image cache cleanup - (fa999af)
🐛 Bug Fixes
- (discover) Remove background refresh indicator - (abac80e)
- (discover) Prevent flicker when switching filters - (6cb34d3)
- (image) Register WebP decoder and add artwork regression tests - (838cd9a)
- (player) Allow closing mobile player by tapping backdrop - (e490398)
- (player) Avoid blocking playback on library refresh - (ba8c24d)
- Video cover download cache - (1c60f09)
⚙️ Miscellaneous Tasks
- Bump web version to 0.0.3 - (3a02be9)
Release v0.0.2
0.0.2 - 2026-09-11
🚀 Features
- Add 3x playback on long press and unify player tooltips - (b8618eb)
- Add watch history and playback resume with unified card styling - (0068d93)
- Refine library badges and watch tracking with backend optimizations - (9328375)
📝 Other Changes
🐛 Bug Fixes
- (player) Restore player focus after timeline clicks and drags - (feb694e)
- (player) Align keyboard volume feedback with speed indicator - (0c45e8b)
- Tolerate invalid optional JavDB metadata - (9d7ba47)
- Correct 115 download progress sync and task state recovery - (2f612e1)
- Correct media identification and auto-scan mounted directories - (893f038)
- Synchronize library status across movie views - (c8ad2ce)
- Prevent 115 background requests from blocking playback - (a1fbc52)
- Preserve pagination skeletons and simplify Docker deployment - (e93a74d)
⚡ Performance
- Optimize recommendation loading and detail request scheduling - (717f304)
- Optimize library scans and database queries - (b0f9652)
🚜 Refactor
- Unify UI styles, remove custom ARIA, and streamline frontend tooling - (f19b11a)
- Simplify configuration and remove dev:all - (1f15bdb)