Releases: helmerzNL/DiscVault
Release list
DiscVault v26.7.2
DiscVault v26.7.2
DiscVault v26.7.2 promotes the complete beta train since v26.6.9. This release
lifts the library out of its 200-movie ceiling and lets you export the whole
collection to CSV, XLSX, or PDF, makes duplicate handling deliberate and
reviewable, and sharpens the Import Center around barcode scans and direct
TMDb/IMDb lookups.
Highlights
- Export your library. A new Export action in the list-view toolbar
downloads every film matching the active filters as CSV, XLSX, or PDF, with
the same columns you see on screen plus a barcode column. - No more 200-movie ceiling. The collection endpoint pages through the
library instead of truncating it, and the list view renders incrementally, so
large collections stay complete and responsive. - Deliberate deduplication. Admin dedup gained a guided merge wizard with
passkey step-up authentication and canonical reports, and no longer executes
merges unless it is explicitly enabled.
Library export
- The library list view offers an Export action that produces CSV, XLSX, or PDF
from the current view. The export covers every film matching the active
filters and search, not just the rows rendered on screen, and each column can
be included or left out.
(#417,
873dc13) - Columns mirror the list view — title, year, format, director, actors, studio,
content rating, tags, and watch activity — with barcode available as an
extra column. CSV uses a semicolon delimiter and a UTF-8 byte-order mark so it
opens cleanly in Excel, XLSX ships a bold frozen header row with auto-filter,
and PDF renders as A4 landscape with the header repeated on every page.
(#417,
873dc13) - Export requests now always carry a JSON content type. A bridge that discarded
the caller's request headers made the server read an empty payload and report
that there was nothing to export, even when the view had rows.
(#418,
0a04da3)
Library at scale
- The collection endpoint pages through the library instead of stopping at 200
movies, the list view grows its rendered window as you scroll, and the
"x of y movies" counter reflects the real collection size.
(#416,
936c8c5)
Duplicate detection and admin dedup
- Admin dedup provides a step-by-step merge wizard that requires passkey
step-up authentication before a merge is applied.
(#379,
b172879) - Duplicate reports are canonical and reproducible, and dedup execution is
disabled by default so a merge is always a conscious action.
(#394,
355ad5e;
#393,
c9595ee) - Merging preserves the identity of individual physical copies, so separate
discs of the same title are no longer collapsed into one another.
(#395,
2470236) - Removed (tombstoned) movies are excluded from duplicate signals and from
library queries, so deleted titles stop resurfacing as duplicates.
(#380,
df9dee4;
#376,
27a3605) - The dedup ladder, title normalization, and barcode-null conflict handling are
aligned between the sync contract and the server.
(#370,
c07964e,
97d0e93;
#378,
0ece8b5)
Import Center and scanned titles
- The Add menu is reorganized into a clearer Import Center.
(#406,
3f41c73) - Single Search accepts TMDb and IMDb IDs directly, keeps the Add movie button
available after a lookup, and carries the resolved title into the import
payload so imports no longer land without a title.
(#381,
74443ad;
#382,
9a7bdc9;
#383,
4fa3c28;
#384,
2fe8193;
#385,
6dc6982) - Scanned titles are cleaned with a wider edition and cut vocabulary, recognize
generic<qualifier> Editionand<qualifier> Cutpatterns, strip localized
title fragments, and promote the detected edition into the structured edition
field instead of leaving it in the title.
(#387,
ec10f6a;
#392,
0ef3986,
b5f4ad4,
98e1c65)
Discover and wishlist
- Discover gained category pills and a clear call to action when no TMDb key is
configured.
(#401,
309aaac) - Wishlisted movies are marked on Discover, and adding a title you already own
or already wishlisted is blocked instead of creating a duplicate.
(#404,
792baa0)
Price monitoring
- Price monitoring for bol.com and Amazon extracts prices correctly again.
(#405,
8e9c01a) - Blu-ray provider failures fail closed rather than surfacing as broken price
data, and the local Blu-ray provider has been retired.
(#363,
f310128;
#369,
5f56b7d)
MovieVault
- The MovieVault v2 endpoint is fixed in configuration and no longer editable
from the UI, which prevents instances from being pointed at an unverified
host.
(#388,
99d8297,
2411e73) - Release-detail responses tolerate optional approved poster fields, signed
recovery identity is preserved, TMDb enrichment requires an exact identity
match, and hits without external identifiers are accepted instead of being
discarded.
(#403,
ddc871c;
#400,
7b20ee1;
#375,
ec2bed2;
#372,
ec18efc) - Identity fixtures are kept upstream-authoritative and their coverage is
enforced by tests, so client and server identity contracts cannot drift apart
unnoticed.
(#396,
a1aef4d,
[dfc6c1a](https://github.com/he...
DiscVault v26.6.27
DiscVault v26.6.27 — promoted from release/v26-beta to main.
This release bundles everything shipped since v26.6.9: two new admin/import features plus a broad round of import, sync-dedup and login hardening.
✨ Features
- Admin dedup-merge wizard with passkey step-up authentication — merge duplicate movies safely from the admin UI (#379).
- TMDB ID & IMDB ID search in Single Search / import center — look up a title directly by its TMDB or IMDB id, with an Add movie button on the results (#381).
- Reorganized backup & audit administration and digital sources & metadata sections for a clearer admin experience.
🐛 Fixes
Movie import (TMDB / IMDB)
- Surface TMDB/IMDB preview candidates so Add Movie always has a title — fixes the "No movie title was found for this import" error (#385).
- Pass the resolved lookup title through the import payload (#383/#384).
- Prevent TMDB/IMDB add-movie title misses (#382).
- Show the Add movie button after a TMDB/IMDB search (#381).
- Require exact TMDb enrichment identity (#373).
- Accept MovieVault hits without external IDs (#371).
- Retire the local Blu-ray provider and harden Blu-ray provider failures (#368, #260).
Sync & deduplication
- Correct barcode-null conflict logic in
sync_dedup_merge(#378). - Exclude tombstoned movies from duplicate signals and from all library queries (#380).
- Harden the sync-dedup ladder and align title-normalization parity.
Login & misc
- Show login fields by default and preserve legacy login-form state.
- Localize backup validation status.
📦 Scope notes
- The MovieVault_v2 plugin (1.1.0) is unchanged — identical on beta and main.
- No production database migrations or data mutations are part of this release.
Full changelog: v26.6.9...v26.6.27
DiscVault v26.6.9
DiscVault v26.6.9
DiscVault v26.6.9 promotes the complete beta train since v26.5.0. This release
strengthens local password onboarding and MFA alongside passkeys, turns the
administration area into a set of focused and accessible workspaces, and adds a
privacy-bounded MovieVault fallback for unresolved release details.
Highlights
- Clearer authentication on every deployment. Passkeys are offered only
when the configured relying-party host and HTTPS origin match the browser,
while safely detected local installations retain a guided Legacy
Authentication path for password onboarding, TOTP, and recovery. - Focused administration workflows. Users, groups, roles, operations, and
plugins now use responsive subtabs, keyboard navigation, clearer status
feedback, and task-oriented views. - Safer MovieVault release-detail fallback. DiscVault can resolve missing
release, technical, barcode, and box-set details through a bounded
server-side bridge without forwarding account, collection, or client
identity.
Authentication and account security
- Passkey onboarding, login, and management now require a valid configured
relying party and matching HTTPS origin. DiscVault explains invalid host or
origin configuration while preserving the existinglocalhostdevelopment
exception.
(#328,
e353602;
#331,
2e1a753) - First-owner setup supports password-only onboarding on verified loopback or
private-network addresses when no valid relying party is configured. The
owner remains pending until recovery codes are acknowledged, and concurrent
bootstrap attempts are rejected.
(#331,
2e1a753) - Account settings now provide current-password-protected TOTP enrollment and
recovery-code confirmation. MFA challenges accept authenticator codes only;
recovery remains a separate action from the initial sign-in screen.
(#333,
83d7e50;
#335,
1d97389;
#338,
32701d3) - Local onboarding and sign-in use simpler method-neutral guidance and no
longer show redundant passkey or password-risk prompts when the safe local
password path applies.
(#334,
05fc39b;
#335,
1d97389)
Administration and roles
- Users and Groups are separated into Settings / Create, Users, and Groups
views. Roles provide dedicated Overview, Roles, Permissions, and Simulator
views while preserving Basic and Advanced RBAC behavior.
(#326,
dd16b38) - Custom-role editing now follows a Details, Permissions, and Review & Save
wizard. System roles use the same workflow in read-only mode, permission
groups are accessible accordions, and immutable role keys are generated with
collision-safe suffixes.
(#327,
5154ff2;
#330,
f476f33) - The top-level Admin area uses responsive icon navigation with permission
filtering, tab-panel semantics, arrow-key control, and a mobile scroller that
keeps the active section visible.
(#332,
ef199d9) - Operations is organized into collection health, duplicate detection, feature
readiness, policy, and activity sections with live status indicators.
Plugins is organized into Overview, Installed, Packages, and Activity with
compact type, status, and search filters.
(#341,
992c3a6;
#342,
a9d1ac7) - Admin subtabs now share the Preferences-style layout, active accent color,
and narrow-screen behavior across Users, Roles, Operations, and Plugins.
(#343,
0bbcbea)
MovieVault release details
- The MovieVault v2 context includes a bounded anonymous
release-technical-1POST/poll bridge for unresolved release, technical,
barcode, and box-set data. PWA, Android, and iOS barcode clients reuse the
same server-side result path. - Redirects, oversized or unknown responses, and invalid provider contracts
fail closed. Polling is capped, and requests do not forward authentication,
cookies, instance identity, contribution credentials, collection context,
client IP, or browser headers.
(#337,
f59ff60;
#340,
b874db1)
Upgrade notes
- WebAuthn deployments should use the public HTTPS origin and matching
RP_ID/RP_ORIGIN. Opening DiscVault through a different hostname or IP
intentionally disables passkey actions. - Existing Legacy Authentication users can continue signing in with passwords.
Recovery codes are entered from the dedicated recovery action rather than
the authenticator-code challenge. - The MovieVault fallback remains local-first and is used only when the
matching MovieVault integration requests unresolved release details. - No new database migration is required for this release.
- User-facing changes include complete translations across all 29 supported
locales.
Full changelog: v26.5.0...v26.6.9
DiscVault v26.5.0
DiscVault v26.5.0
DiscVault v26.5.0 promotes the complete beta train since v26.4.70. This
release delivers a redesigned Profile, administration, and Library management
experience; reliable first-connect synchronization; and substantial security
hardening across plugins, runtime secrets, external HTTP providers, and local
media.
Highlights
- A clearer management experience. Profile navigation, Account,
Preferences, Notifications, Groups, Structure, Security, API & MCP, About,
Admin Access, and Users & Groups now use responsive dashboards, focused
cards, accessible tabs, and complete locale coverage. - Reliable first-connect synchronization. Server-side idempotency,
persistent record identifiers, identity matching, tombstones, reconciliation,
and guarded deduplication tooling prevent duplicate movie creation without
merging distinct physical editions. - Stronger security boundaries. Executable plugin writes require an
interactive owner or admin, runtime secrets are explicit, user-controlled
HTTP requests are DNS-pinned and bounded, and protected local media now
enforces authentication and ownership. - Focused Library actions. Advanced filters and bulk-selection controls are
reorganized into task-oriented cards with accessible responsive behavior.
Profile and administration
- Profile navigation now uses a responsive MDI icon rail with a saved desktop
display preference, while Account presents an identity-first dashboard.
(#310,
c5fad1c) - Preferences are grouped into focused Appearance, Library, Collectors, and
Loans System cards, with canonical MDI icons throughout the Profile area.
(#311,
e548a53;
#313,
a0d5138) - Notification settings now show browser permission, current-device state,
notification categories, and connected devices in a responsive dashboard.
(#316,
de4ac34) - Groups now use responsive management cards with clearer roles, metrics,
invitations, member actions, library scope, inline renaming, and delete
eligibility.
(#319,
6e63e80) - Structure, Security, API & MCP, and About have been refreshed as accessible,
responsive utility dashboards.
(#320,
3f0eecf) - Admin Access and Users & Groups now use dedicated cards for registration,
invitations, passkeys, legacy authentication, users, roles, and group
management.
(#321,
f88fd90)
Library workflow
- Advanced Library filters and bulk-selection controls are grouped into
task-focused cards. Desktop groups remain open, while mobile layouts use
accessible accordions without changing existing filter, permission, or bulk
action behavior.
(#323,
0817f81)
Synchronization reliability
- Sync creates are now idempotent through a strict identity ladder using
persistent client IDs, normalized barcodes, and TMDb plus physical-edition
identity. DVD and 4K UHD copies remain distinct. - Deleted movies and containers use tombstones with anti-resurrection rules,
while the new reconciliation endpoint safely adopts existing records during
first connect. - The deduplication merge utility is dry-run by default, preserves the
strongest user-data record, and requires explicit approval before execution.
(#315,
98ea40c;
#322,
81a6c5d)
Security and deployment
- Executable plugin import, update, rollback, and auto-update operations now
require an interactive owner or admin session. API tokens cannot write
executable plugins, and failed replacements restore the previous plugin.
(#308,
c7dca6c) JWT_SECRETis now mandatory for API and worker startup. Deterministic secret
fallbacks derived fromDATABASE_URLhave been removed.
(#309,
b14c956)- Wishlist price URLs and bundled Amazon, bol.com, Arrow, Zavvi, Keepa, and
PriceAPI traffic now use DNS-pinned, deadline- and size-bounded public HTTP
transports. Private, loopback, link-local, rebound, mixed-DNS, and redirect
targets are rejected without leaking credentials or request bodies.
(#312,
2eb1173,
f573906;
#314,
1370e0a) - Local movie, container, person, avatar, wishlist, and MovieVault media now
requires authentication and valid ownership or sharing access. Protected
media is network-only in the service worker, preventing cross-account cache
replay.
(#317,
35aa44f)
Upgrade notes
- Keep the existing
JWT_SECRETvalue when upgrading. Missing or blank values
now stop API and worker startup; changing the secret invalidates existing
sessions and may require reconnecting MovieVault. - Database migration 045 runs automatically and adds persistent sync record
identifiers and deletion tombstones. - Protected media caches are purged during service-worker activation and are
no longer stored for offline cross-session reuse. sync_dedup_merge.pyremains dry-run by default. Review its report and take
an appropriate backup before considering--execute.- User-facing changes include complete translations across all 29 supported
locales.
Full changelog: v26.4.70...v26.5.0
DiscVault v26.4.70
DiscVault v26.4.70
This release promotes the complete beta feature train from DiscVault 26.4.54
to 26.4.70. It introduces a redesigned Library and movie detail experience,
optional password and TOTP authentication, secure MovieVault poster
distribution, reversible artwork hiding, and more flexible Member Group and
container management.
Highlights
- Modern responsive Library. The Library is now a sortable table with
responsive desktop and compact layouts, richer metadata columns, persistent
watched and Watchlist filters, and improved director fallbacks.
(#288,
#289,
#290) - iOS-inspired movie details. Movie pages now use a full-bleed mobile hero,
streamlined management controls, redesigned personal-list actions, dated
rewatch logging, searchable colour-coded tags, and responsive cast, crew,
artwork, and video galleries.
(#281,
#282,
#284) - Optional Legacy authentication. Administrators can enable Argon2id
username/password authentication with TOTP, temporary passwords, unified
single-use recovery codes, per-user passkey policy, Owner bootstrap, and
expanded Users & Roles management.
(#297,
#298,
#302) - MovieVault distribution 3 and 4. DiscVault adds strict,
checksum-verified local-index synchronization, exact box-set editions, richer
release metadata, and secure background caching of MovieVault posters.
(#287,
#295,
#301) - Member Groups and owned containers. Group-shared movies now expose their
containing box sets and vaults. Group owners can rename eligible groups,
remove empty groups, and convert owned box sets into vaults or vaults into
box sets without losing container data.
(#305)
Movie details, artwork, and metadata
- Personal Lists now provide dedicated Log rewatch and Watchlist
actions, quick date choices, a native date picker, and a searchable tag
picker. - Cast and crew use responsive portrait cards with age-at-release information,
while media galleries use localized More controls and accessible artwork
actions. - Hidden posters and backdrops can be reviewed, restored, or permanently
deleted. Hidden artwork remains excluded from primary-artwork selection and
metadata refreshes, and its state is retained in backups.
(#304) - Country flags and age classifications now appear consistently in the movie
header. Metadata refreshes update unlocked ratings while preserving manually
locked values.
(#291,
#292) - Audio and subtitle editing fields have been expanded for multi-line values.
(#294) - Metadata comparison and artwork diagnostics are now restricted to Debug
mode. (#283)
MovieVault and privacy
- Distribution 3 introduces atomic full generations, transactional deltas,
strict digest validation, nullable studio/distributor/runtime metadata, and
ordered exact-edition box sets. - Distribution 4 adds secure poster metadata and bounded background caching.
Downloads are validated for media type, size, checksum, and decoded image
dimensions before activation. - Cached MovieVault posters are served only through authenticated local
DiscVault URLs with private cache semantics; MovieVault origins and
credentials are never exposed to clients. - Failed poster replacements retain the previous valid image and report an
explicit degraded, pending, or error state. - Person profiles and filmographies now come exclusively from TMDb. Stored
MovieVault-derived person data is migrated or rebuilt where appropriate.
(#296)
Member Groups and container ownership
- Members can discover the box sets and vaults that contain movies shared with
their Member Groups. - Member Group owners can rename groups and delete a group once no other
members remain. - Containers now have durable ownership across creation, synchronization,
import, background workers, backup, and restore. - Authorized owners can convert a box set into a vault, or a vault into a box
set, from the existing editor while preserving movies, ordering, artwork,
metadata, identifiers, barcode, location, cover, public identity, and
collection references.
Additional improvements
- Accessibility, keyboard focus restoration, compact layouts, and responsive
controls have been improved throughout the Library and movie-detail
interfaces. - New and changed user-facing flows include complete translations across all
29 supported locales. - Backup and restore coverage now includes Legacy authentication, hidden
artwork, and container ownership.
Upgrade notes
- MovieVault distribution 4 remains inactive until the installed
movievault_v2plugin explicitly advertises distribution-4 compatibility. - Enabling Legacy authentication requires the corresponding deployment and
environment configuration; existing passkey authentication remains
supported. - Database migrations run automatically during the normal upgrade process.
DiscVault v26.4.33
Highlights
This release promotes the latest release/v26-beta train to main, headlined by wishlist price deal alerts — a plugin-based price-provider framework that monitors shop prices for wishlist items and surfaces price trends and deals. It also ships a fluidly responsive Library grid, mobile poster-carousel groundwork, and localization across every supported locale. Promoted via #251; release notes promoted via #253.
New features
- Wishlist price deal alerts: plugin-based price providers for wishlist shops. (#239)
- Admin price-provider registry tab for managing providers. (#241)
- Zavvi and Arrow price-provider plugins (plus bundled Keepa and PriceAPI). (#244)
- Enhanced wishlist price-monitor cards. (#246)
- Wishlist provider dropdown with shop-URL autodetect. (#250)
- Mobile 3-poster carousel groundwork. (#243)
- Library poster grid is now fluidly responsive, mirroring Discover. (#248)
- Expanded localization coverage across all supported locales.
Fixes
- Manual price sweeps now run immediately and refresh notifications. (#246)
- Wishlist shop add is idempotent for duplicate URLs. (#245)
- Price-sweep audit events use the background-job UUID for correct correlation. (#245)
- Newly bundled default plugins are installed after initialization. (#242)
- Always show the price-trend selector when trend data exists. (#246)
Notes
DiscVault v26.4.19
Highlights
This release promotes the latest release/v26-beta changes to main, including Discover improvements, About/Profile UI refinements, and targeted fixes.
New features
- Added a new TMDb Discover flow with cached detail views for faster repeat navigation. (#219)
- Refreshed the Profile About page presentation. (#220)
- Improved Discover detail pages with better person linking and richer streaming metadata. (#221)
- Moved the notifications bell from the main navigation to the Profile header for cleaner nav structure. (#223)
- Improved Amazon price extraction reliability with gzip decompression and multi-selector fallback logic. (#225)
Fixes
- Restored About page logo assets to resolve missing-branding issues. (#222)
- Restored Discover person backflow behavior and localized cast labels. (#224)
- Reduced TMDB logo size for better visual balance on the About page. (#226, promoted to
mainvia #228) - Fixed duplicate Discover wishlist entries by TMDB ID. (#227)
v26.4.0
DiscVault v26.4.0 promotes the accumulated beta feature set to production.
🏷️ Wishlist price & deal alerts
- Price & deal alerts for wishlist items, with a notification toggle and a debug price-check button
- Multi-shop price tracking with history and selector-based shop price extraction
- Price-alert UI, plugin hook, and a scheduled price-sweep job with live counters
- Wishlist price trend statistics
- Immediate shop-fetch feedback and an action-sheet menu (replacing the long-press reveal)
📚 Library, selection & tags
- Chip-style Tags tab, library MDI list toggle, and refresh on view switch
- Bulk-assign tags in the library select panel with persistent selection
- Select-panel behaviour fixes: hide on toggle off, long-press to select, and keep the last bulk result
📱 iOS
- Complete iOS mobile flow with recovery code and iOS contract support
🎬 Metadata
- Sync cast/crew people on metadata refresh, including MovieVault person tmdbIds (#202)
🛠️ Infrastructure & artwork
- Bind mount for the Next Postgres data volume in the deploy compose file
- Cap artwork dimensions before JPEG re-encode to prevent upload 502s
Full changelog: v26.3.1...v26.4.0
v26.3.0
26.3.0 — Location deep links, Box-set Wizard, and UX cleanup
This release delivers a broader DiscVault Next feature set focused on faster location workflows, cleaner navigation, and improved collection editing ergonomics.
What's new
-
Box-set Wizard (new).
Added the new Box-set Wizard flow to streamline creating and managing box-set structures with a guided, step-by-step experience. -
Location feature upgrades (more specific).
Location handling now includes a dedicated location detail page flow, plus a QR deep-link bridge so location QR scans open the exact intended destination in the Next app. -
Location QR quality and control polish.
QR rendering was improved to square PNG output, and related location page controls were refined for better reliability and consistency. -
Filtering and select cleanup with icon-first controls.
Filtering/select interactions were cleaned up by replacing text-heavy action labels with clearer icon-based controls where appropriate, improving scanability and reducing UI noise. -
Profile action menu cleanup.
Statistics actions are now kept in the Profile action scope to keep top-level navigation cleaner and more predictable. -
Expanded localization coverage.
Translation coverage was extended and aligned across supported locales for the new location, QR, and UI cleanup flows.
Notable stability fixes
- Removed a duplicate QR URL declaration that could cause a blank page.
- Added a regression guard for an app shell JavaScript syntax issue.
DiscVault v26.2.71
DiscVault v26.2.71
Promotes the current beta line to the stable v26 / latest channel via #128.
New
- Loans / borrow requests within groups: members can request to borrow another member's disc, with an admin Loans System toggle to enable or disable the feature.
- Batch import check-off workflow: scan a stack of discs and check them off one by one, with the first/next candidate auto-opening after a bulk check.
- Per-method tabs on the import page for a clearer separation of import sources.
- App version in the sidebar footer: the footer now shows the running app version next to the build SHA, so it's easy to see which version is deployed.
Improvements
- Fix: borrow requests no longer fail on group discs with a NULL owner; "Ask to borrow" now shows correctly for other members' discs.
- "Use selected match" relabel plus a "Go to Library" button in the batch scan flow.
- Removed the stale "not found" status text from the Import nav item.
- Localized batch-import strings ("Use selected match" / "Go to Library") across all locales.
Full changelog: v26.2.62...v26.2.71
Released from the promotion of release/v26-beta -> release/v26 (#128).