MediaChips v1.0.0
[1.0.0] - 2026-07-07
First stable release of the Vue 3 rewrite.
Added
- LowDB migration wizard — auto-detects legacy
dbs.jsonon startup and opens the migration dialog - Onboarding wizard — first-launch setup guide with resumable progress stored in
config.json - Tag page layouts — switchable designs per tag category (profile, grid, and more)
- Metadata field pinning — drag-and-drop boards for assigning and reordering pinned fields
- Windows system tray — optional minimize-to-tray on close (Settings → General)
- Windows Window menu — Minimize, Zoom, and Full Screen in the system menu bar
- FTS search — full-text search for tags and media with lazy ML model loading
- Video codec backfill — maintenance task for videos missing ffprobe metadata
- Copy to clipboard — tag names and file paths from the tag page header
- E2E test suite — expanded from smoke tests to 16 scenarios (API auth, health, backups, navigation)
- Coverage thresholds in CI to prevent test coverage regression
Changed
- Vue 3 rewrite — first stable release on the
masterbranch - Machine-level settings — global options (zoom, LAN access, transcode, tray) moved from the database to
config.json - License registration — stored in
config.jsoninstead of the database - Backend — migrated to ESM imports; Drizzle ORM with performance indexes for duplicates and filters
- Startup performance — deferred heavy modules, lazy-loaded home widgets, trimmed packaged logs, smaller installers
- Library browsing — server-side tag pagination, grid thumb prefetch, stabilized infinite scroll
- Watched folders — faster imports, improved scan reliability, menu badge refresh after adding files
- Tag list loading —
find_duplicatesno longer forces the legacy JS filter path for tag pages - API error responses — task controllers return structured
{ message }instead of raw error objects - Production logging — removed debug console output from Electron bootstrap and server startup
- Bundle loading — country flags and material icon data load lazily in separate chunks
Fixed
- Production builds — tags and media lists empty in packaged installers (server imported from excluded
src/) - Global search — filtering for non-ASCII media and tag names; hover preview aspect ratio
- Tag and media editing — FTS sync on save; dialogs stay open until pinned meta save completes
- Database switching — home widgets refresh after activation
- Drag-and-drop overlay — confined to main content area; respects app chrome offsets
- PageTag — API failures now show notifications and an error alert instead of failing silently
- DialogMigration — restore backup errors are surfaced to the user
- Timeline and player — hover preview positioning; frame images for scrub preview
- Tag previews —
unavailable.pngfallback when thumb files are missing - Filter panel — dropdown positioning and overlay z-index
- Windows — folder drag-and-drop via
webUtils.getPathForFile; Task API routes in packaged builds - Media insert — normalized SQLite bind values for
better-sqlite3