Skip to content

Restore missing Radarr hardlinks safely - #47

Merged
slashmad merged 1 commit into
mainfrom
fix/write-mode-root-lifecycle
Jul 29, 2026
Merged

Restore missing Radarr hardlinks safely#47
slashmad merged 1 commit into
mainfrom
fix/write-mode-root-lifecycle

Conversation

@slashmad

Copy link
Copy Markdown
Owner

No description provided.

@slashmad
slashmad merged commit 371d4dd into main Jul 29, 2026
3 checks passed
@slashmad
slashmad deleted the fix/write-mode-root-lifecycle branch July 29, 2026 11:33

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 06e0b51e62

ℹ️ 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".

Comment thread src/stowarr/engine.py
Comment on lines +2457 to +2461
if not library_files:
direct_videos = [
(path, size)
for path, size in torrent_files
if path.suffix.casefold() in VIDEO_EXTENSIONS

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Reject non-feature videos before restoring media

When a partially selected torrent has only a trailer or Sample.mkv selected, this count treats that file as the unique movie even though the Radarr history proves only the torrent-to-movie association, not the role of an individual file. The later title check also considers the torrent name, so such a plan can become ready and rescan the sample as the managed movie; reject sample/trailer/extras paths or require stronger feature-file evidence before creating the restore pair.

Useful? React with 👍 / 👎.

Comment thread src/stowarr/engine.py
Comment on lines +3011 to +3014
if row["status"] in {
"root-mismatch", "missing-library-file", "hardlink-missing",
}:
reconcile_issues.append(row)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Expose the newly promoted repair statuses in the UI

When an audit contains only missing-library-file or hardlink-missing, these rows are now promoted to safe Reconcile candidates here, but renderSync() still renders the “Plan safe fixes” button only for category repairs or root-mismatch (app.js:941). Consequently the batch safe-plan workflow cannot be launched for the two new repair types unless an unrelated eligible issue is also present, and the rows are misleadingly labeled as manual fixes.

Useful? React with 👍 / 👎.

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