github stevezau/media_preview_generator 4.0.1
Post v4 Launch Fixes

5 hours ago

🐛 Fixes

Settings drift (issue #238)

  • thumbnail_interval no longer drifts between Settings, Servers, and per-server overrides. End-to-end fix: schema migration heals existing drift on upgrade, read fallback covers older configs, and Save now
    propagates the value to every server entry.
  • Unified default to 10s across UI, defaults, migrations, and tests.

Job queue & retry chains

  • Cascade-delete retry children when a parent job is removed — fixes orphaned retry rows that survived parent cleanup (#239).
  • KPI filter now matches the queue so the dashboard count and visible rows agree.
  • Per-outcome file-results cap — the filter now sees all failures instead of being silently truncated to a global cap.
  • Webhook delay clamped and notify failures swallowed in _persist so a single notifier hiccup can't kill the persist path.
  • "Chain exhausted" log now fires on retry exhaustion (was misleadingly logging "completed successfully").

Dashboard

  • Per-row webhook countdown with Fire-now / Retry-now icons on each pending row.
  • Pending-webhooks banner shrunk to a chip in the Job Queue header.
  • 1 Hz ticker kicks in for webhook-only queues so countdowns tick when no jobs are running.
  • Restore prior worker count when re-enabling a GPU (was resetting to 1).
  • Disabled GPUs are greyed out instead of carrying a confusing badge.

Setup Health

  • Silence the header badge + tab glyph when every Recommended check is dismissed.
  • Silence non-blocking checks, hide non-video libraries, and end the What's-new loop on dev builds.
  • health_dismissals preserved across server Save (#237) — dismissals no longer reappear after editing a server.

Orchestrator / FFmpeg / Plex

  • GPU→CPU fallback now honored on full-scan paths, not just per-item.
  • Tied MediaParts hash now picked correctly instead of an unrelated head entry.
  • FFmpeg progress reader tolerates non-UTF-8 bytes instead of crashing on garbled console output.
  • Retry-wait log names actually-pending servers instead of all configured ones.

Path mappings

  • Windows backslashes converted in path mappings (#236) so Sonarr/Radarr from Windows hosts route correctly.

Docs

  • /api/jobs/{id}/retry-now and /api/jobs/{id}/fire-webhook-now endpoints documented in reference.md.

Don't miss a new media_preview_generator release

NewReleases is sending notifications on new releases.