- Apr 29, 2026
- Date parsed from source:Apr 29, 2026
- First seen by Releasebot:Apr 29, 2026
v.testing.20260429.1: fix: route poster warming through poster-cache proxy
aiometadata fixes warm requests to use poster-cache and proper upstream paths, resolving nginx 400 errors.
The warmer was bypassing the poster-cache for all http URLs and sending relative paths that nginx couldn't resolve (400 errors).
Now all warm requests go through poster-cache with proper upstream paths.
Original source - Apr 28, 2026
- Date parsed from source:Apr 28, 2026
- First seen by Releasebot:Apr 29, 2026
v.testing.20260428.1: fix: short-circuit MDBList requests when quota exhausted
aiometadata speeds up request handling by failing fast when MDBList allocation is exhausted, cutting cache warmer delays.
When the response headers report remaining=0, fail subsequent requests fast instead of running through the full 5-retry exponential backoff.
Prevents the cache warmer from spending 1-2 minutes per catalog when the user has used up their MDBList allocation.
Original source All of your release notes in one feed
Join Releasebot and get updates from cedya77 and hundreds of other software products.
- Apr 27, 2026
- Date parsed from source:Apr 27, 2026
- First seen by Releasebot:Apr 29, 2026
v.testing.20260427.4: fix: warm poster proxy URLs with fallback params to match live requests
aiometadata fixes poster cache warming so warmed images match live /poster requests and hit nginx cache properly.
The warmer was fetching raw RPDB/TopPoster URLs directly, but live requests go through /poster/:type/:id with ?fallback=&lang=&key= or ?fallback=&url= query params. Different URL = different nginx cache key, so warmed posters were never cache hits for real requests.
Original source - Apr 27, 2026
- Date parsed from source:Apr 27, 2026
- First seen by Releasebot:Apr 28, 2026
v.testing.20260427.5: fix: move active user tracking to response phase where req.params exists
aiometadata fixes trackResponse so req.params.userUUID is available after route matching, resolving undefined tracking.
trackRequest runs in middleware before route matching, so req.params is empty and userUUID is always undefined. Moved to trackResponse which fires after the route handler, where req.params.userUUID is populated.
Original source - Apr 27, 2026
- Date parsed from source:Apr 27, 2026
- First seen by Releasebot:Apr 28, 2026
v.testing.20260427.3: fix: eliminate OOM from OAuth handlers loading all configs into memory
aiometadata fixes OAuth callback memory blowups by replacing full config loads with targeted user queries, cutting huge allocations and OOM risk. It also moves active-user stats into SQL and improves active user tracking behind reverse proxies.
getAllUsers() loaded every user's full config blob (~130KB each) into a
JS array during Trakt/Simkl OAuth callbacks. With 30k+ configs this
allocated ~3.8GB of strings per call, causing instant OOM.Add getUsersByOAuthTokenIds() that queries matching configs via
json_extract (SQLite) / JSONB operators (Postgres) insteadReplace both getAllUsers() loops in OAuth handlers with targeted query
Rewrite getAllUsersWithStats() to compute has_api_keys and is_active
in SQL without loading config_data blobsFix active user tracking to use userUUID from request params instead
Original source
of IP+browser heuristic that collapsed behind reverse proxies - Apr 27, 2026
- Date parsed from source:Apr 27, 2026
- First seen by Releasebot:Apr 27, 2026
v.testing.20260427.2: Merge pull request #462 from 0xConstant1/heap-endpoint
aiometadata adds a heap snapshot endpoint for testing.
perf: add heap snapshot endpoint for testing
Original source - Apr 27, 2026
- Date parsed from source:Apr 27, 2026
- First seen by Releasebot:Apr 27, 2026
v.testing.20260427.1
aiometadata adds warm custom poster pattern URLs during comprehensive catalog work
feat: warm custom poster pattern URLs during comprehensive catalog wa…
Original source - Apr 25, 2026
- Date parsed from source:Apr 25, 2026
- First seen by Releasebot:Apr 26, 2026
v.testing.20260425.2
aiometadata adds META_CONCURRENCY env to cap getMeta fan-out.
feat: add META_CONCURRENCY env to cap getMeta fan-out and HEAP_LOG_IN…
Original source - Apr 25, 2026
- Date parsed from source:Apr 25, 2026
- First seen by Releasebot:Apr 26, 2026
v.testing.20260425.1
aiometadata adds an original language fallback toggle that skips region-mismatched posters.
original lang fallback toggle skips region-mismatched posters instead…
Original source - Apr 22, 2026
- Date parsed from source:Apr 22, 2026
- First seen by Releasebot:Apr 23, 2026
v.testing.20260422.2
aiometadata updates MAX_CATALOGS to count enabled catalogs only.
update MAX_CATALOGS to count enabled catalogs only
Original source - Apr 22, 2026
- Date parsed from source:Apr 22, 2026
- First seen by Releasebot:Apr 22, 2026
v.testing.20260422.1
aiometadata fixes pagination logic for page-based catalogs using Math.ceil.
fix: pagination logic by using Math.ceil for page-based catalogs
Original source - Apr 21, 2026
- Date parsed from source:Apr 21, 2026
- First seen by Releasebot:Apr 21, 2026
v.testing.20260421.2: perf: remove unbounded requestTimestamps array in pmdb utils
aiometadata fixes a memory leak and updates getMemoryStats to use rateLimitStates.size.
Fixes a memory leak where every request added a timestamp to an array that was never cleared.
Updates getMemoryStats to return rateLimitStates.size instead.
Original source - Apr 20, 2026
- Date parsed from source:Apr 20, 2026
- First seen by Releasebot:Apr 20, 2026
v.testing.20260420.1
aiometadata binds fanart client and scraped IMDb caches with LRU.
bound fanart client and scraped-imdb caches with LRU
Original source - Apr 18, 2026
- Date parsed from source:Apr 18, 2026
- First seen by Releasebot:Apr 18, 2026
v.testing.20260418.3: polish mobile layout for integration modals and login popups
aiometadata improves mobile layouts and form wrapping across dialogs, integrations, catalogs, and login popups.
dialog
switch DialogContent from grid to flex-col + min-w-0 children so cards don't overflow
button
drop whitespace-nowrap, use min-h-* so labels wrap instead of escaping the button
integrations (MDBList/Trakt/Simkl/Custom/PMDB/TMDB/AniList/Letterboxd/StreamingTop10)
stack Input+Button pairs on mobile, flex-wrap badge rows, break-words on long list names, shrink-0 on fixed controls
CatalogsSettings
break-words + min-w-0 on catalog name row, flex-wrap badge row
Header/Dashboard login popups
wrap inputs in a , add name/autoComplete hints for password-manager detection
Original source - Apr 18, 2026
- Date parsed from source:Apr 18, 2026
- First seen by Releasebot:Apr 18, 2026
v.testing.20260418.2: fix(mobile): polish mobile UI across settings, modals, and bulk actions
aiometadata fixes several mobile UI issues, improving dialogs, tooltips, settings navigation, search layout, streaming filters, and integration modals. The update adds better stacking, viewport-safe portals, and fuller-width actions for a cleaner touch experience.
BulkActionBar
portal to document.body on mobile to escape motion.div transform containing block so fixed-bottom actually pins to viewport
SettingsLayout
add prev/next section navigation pills at the bottom of each mobile section
Dialog
stack footer buttons in DOM order with gap (was flex-col-reverse touching); reserve pr-8 in DialogHeader for the absolute X close button
Tooltip
portal content + collisionPadding so tooltips escape dialog overflow clipping; cap width to viewport
SearchSettings
stack search catalog row into two rows on mobile so names no longer get crushed by trailing action buttons
StreamingTop10
service/country selects stack on mobile instead of two cramped columns
Integration modals (Trakt/Simkl/MDBList/PMDB/AniList)
full-width footer buttons on mobile; MDBList/PMDB footer no longer uses nested non-responsive button groups
Original source