Fix unsupported filesystem identity handling and harden move recovery - #819
Open
therobbiedavis wants to merge 7 commits into
Open
Fix unsupported filesystem identity handling and harden move recovery#819therobbiedavis wants to merge 7 commits into
therobbiedavis wants to merge 7 commits into
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ac211dba8e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
therobbiedavis
force-pushed
the
815-harden-filesystem-identity-and-move-recovery
branch
from
August 14, 2026 10:32
e58cceb to
24a0284
Compare
therobbiedavis
force-pushed
the
815-harden-filesystem-identity-and-move-recovery
branch
from
August 14, 2026 11:47
7e28453 to
0573c33
Compare
This was referenced Aug 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR is a follow-up to #717 and addresses filesystem safety issues found during final validation.
The most visible fix is for systems where the filesystem cannot provide the information Listenarr normally uses to safely identify a file or folder, including the older Linux kernel scenario reported in #815. Instead of allowing that condition to stop Listenarr, affected storage is treated as limited: reading and scanning can continue, while moves and deletions stay disabled when Listenarr cannot prove they are safe.
This also fixes #820 by making configured root case semantics authoritative throughout manual import instead of re-probing managed source, destination, and companion paths with Auto.
Fixes #815.
Fixes #820.
Changes
Added
Changed
IdentityUnsupportedscan-only capability where safe pinned reads are available.PinnedPathOnlyauthority and cannot perform destructive reconciliation or metadata writes.canScanFilesysteminstead of assuming scans require mutation support.Fixed
IdentityUnsupported, stopping the host on kernels < 4.11 #815 unsupported filesystem identity escaping as an unhandled exception on older Linux kernels.Removed
Testing
Current-head Windows, Linux, frontend, Docker, and adversarial-review validation is complete.
An image built directly from the exact pushed commit passed Docker Desktop acceptance against the same enrolled physical test storage:
destination_physical_identity_unavailable.Exact Docker image ID:
sha256:40b05e9751ca174375be9ccd84e479dc8c48ed1962141509ad0d174be0bf62cc.The unchanged current head completed two independently framed full-PR adversarial reviews with zero confirmed findings.
7b769fa937d091b5ed49677e0da796f0a1813f8b5034249e006134c8cd1a60b6367f7c998795ae10627e112d8dc5779dfb509899d333e373c0ef89e4c1224cd9ab24e9aa06f94b38Notes
This is follow-up hardening for filesystem and move work introduced in #717.
Older move jobs are not silently granted filesystem permissions they did not originally record. If Listenarr cannot prove an older job is safe to continue, it requires attention instead.
Storage that cannot provide the filesystem information required for crash-safe moves and deletions is not treated as broken. Reading and scanning remain available when they can be performed safely.
No temporary or marker files are introduced into library folders.
The #815 Synology/older-kernel scenario is covered by deterministic unsupported-identity tests and native Linux validation. An actual Synology host running kernel 4.4.302 was not available for direct testing.