Bring script headers onto the template and close safeguard gaps
Headers claimed protections the code never had, and several destructive paths had no guard against a collapsed config value.
This commit is contained in:
@@ -52,6 +52,56 @@
|
||||
# output. Only ambiguous (overlapping-album) pairs produce a notification.
|
||||
#
|
||||
# ==============================================================================================
|
||||
# OPERATIONAL SAFEGUARDS
|
||||
# ==============================================================================================
|
||||
#
|
||||
# Root Enforcement
|
||||
# Required by the container interaction and state writes.
|
||||
#
|
||||
# Lock Acquisition
|
||||
# acquire_lock prevents overlapping runs racing on the same artist IDs.
|
||||
#
|
||||
# Host Detection
|
||||
# detect_hosts() aliases LIDARR_URL / LIDARR_API_KEY.
|
||||
#
|
||||
# jq Dependency Check
|
||||
# Fails fast if jq is missing — duplicate detection and every file-count read
|
||||
# depend on it, and an absent jq would evaluate counts to empty and make every
|
||||
# artist look like a zero-file phantom.
|
||||
#
|
||||
# API Reachability + Version Gate
|
||||
# check_api then check_arr_version against LIDARR_VERSION_MAJOR before any read.
|
||||
#
|
||||
# Empty Library Abort
|
||||
# A response of 0 artists aborts. An empty list is indistinguishable from
|
||||
# "no duplicates" and must never be read as a clean result.
|
||||
#
|
||||
# Tracked-Count Floor
|
||||
# check_tracked_count_floor against the baseline shared with lidarr_cleanup.sh.
|
||||
# A library-wide desync — mid full-rescan, for example — makes trackFileCount read
|
||||
# far below reality for many artists at once. Confirmed 2026-07-16: without this,
|
||||
# both sides of a genuinely-real duplicate (ROMES) read as 0-file phantoms and the
|
||||
# wrong one would have been deleted. Deliberately reuses lidarr_cleanup.sh's own
|
||||
# baseline so every script depending on tracked counts shares one answer to "is
|
||||
# Lidarr's data trustworthy right now" rather than forming a separate opinion.
|
||||
#
|
||||
# Files Never Deleted
|
||||
# Removal passes deleteFiles=false. Only the phantom Lidarr entry is dropped;
|
||||
# nothing on disk is touched, so a wrong call costs a re-add, not media.
|
||||
#
|
||||
# Phantom-Only Deletion
|
||||
# Only the zero-file side of a duplicate pair is ever removed. If both sides hold
|
||||
# files, or neither does unambiguously, the pair is flagged for manual review
|
||||
# instead — the script never picks a winner between two real artists.
|
||||
#
|
||||
# Manual Review Reporting
|
||||
# Flagged pairs are named in the summary and notification so an ambiguous
|
||||
# duplicate surfaces as a decision to make rather than disappearing silently.
|
||||
#
|
||||
# Dry Run Support
|
||||
# --dry-run reports every deletion and exclusion and performs none.
|
||||
#
|
||||
# ==============================================================================================
|
||||
# CONFIGURATION
|
||||
# ==============================================================================================
|
||||
#
|
||||
|
||||
Reference in New Issue
Block a user