Skip to content

Fix stale TV listings after deleting files and restarting VuIO - #56

Open
vyrti wants to merge 1 commit into
mainfrom
fix/missing-files-tv
Open

vyrti wants to merge 1 commit into
mainfrom
fix/missing-files-tv

Conversation

@vyrti

@vyrti vyrti commented Oct 10, 2026

Copy link
Copy Markdown
Contributor

TVs can retain deleted files even after VuIO restarts: the HTTP listener serves the cached library while startup scanning runs, but completing that scan did not invalidate Browse responses or publish a ContentDirectory change. The revision also restarted at 1 every time.

Seed the revision per boot and publish a change after startup media and playlist scanning. This clears responses cached before cleanup and tells subscribed TVs to refresh. Startup regression coverage exercises both scan_on_startup settings.

Also handle missing paths in generic watcher events and run missing-file reconciliation every five minutes independently of full discovery, including when full rescans are disabled. Preserve the live cleanup setting, offline-library grace, unreadable files, and HTTP(S) radio streams. Regression coverage includes deleted folders, Browse totals and revisions, disabled cleanup, radio URLs, and permission failures.

Missing-file recovery now probes indexed paths every five minutes. It uses paged fingerprints and performs existence checks; full directory walks and metadata parsing retain their existing cadence.

Validation:

  • Default-feature core unit tests and Samsung Browse, UPnP eventing, path-normalization, and regression integration suites: 685 passed, 1 existing ignored test.
  • Core unit tests without default features: 407 passed.
  • CI formatting command and git diff --check passed.
  • CI Clippy command across the four shipping crates, all targets and all features, with warnings denied.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant