feat(metadata): add resilient match queue diagnostics (#463)

* feat(metadata): add resilient match queue diagnostics

* fix(metadata): harden match queue lifecycle

---------

Co-authored-by: Quick104 <31828688+Quick104@users.noreply.github.com>
This commit is contained in:
Suspense
2026-07-24 12:18:49 -04:00
committed by GitHub
co-authored by Quick104
parent 383973ec22
commit 22fec4ed2d
24 changed files with 3101 additions and 397 deletions
+35
View File
@@ -3038,6 +3038,8 @@ export interface LibraryMetadataMatchQueueStatus {
series_count: number;
raw_file_count: number;
total_count: number;
pending_count: number;
parked_count: number;
}
export interface LibraryMovieMatchQueueEntry {
@@ -3049,6 +3051,12 @@ export interface LibraryMovieMatchQueueEntry {
last_attempted_at?: string;
attempt_count: number;
last_error?: string;
state: "pending" | "parked";
failure_kind?: string;
failure_detail?: LibraryMetadataMatchFailureDetail;
deterministic_attempt_count: number;
matcher_revision: number;
parked_at?: string;
updated_at: string;
}
@@ -3060,9 +3068,34 @@ export interface LibrarySeriesMatchQueueEntry {
last_attempted_at?: string;
attempt_count: number;
last_error?: string;
state: "pending" | "parked";
failure_kind?: string;
failure_detail?: LibraryMetadataMatchFailureDetail;
deterministic_attempt_count: number;
matcher_revision: number;
parked_at?: string;
updated_at: string;
}
export interface LibraryMetadataMatchFailureDetail {
message?: string;
decision?: {
outcome: string;
candidate_count: number;
threshold: number;
top_candidates?: Array<{
title: string;
matched_title?: string;
year?: number;
score: number;
provider_ids?: Record<string, string>;
sources?: string[];
reasons?: string[];
}>;
};
[key: string]: unknown;
}
export interface LibraryRawMatchBacklogEntry {
media_file_id: number;
media_folder_id: number;
@@ -3076,6 +3109,8 @@ export interface LibraryRawMatchBacklogEntry {
}
export interface LibraryMetadataMatchQueueDetail extends LibraryMetadataMatchQueueStatus {
limit: number;
offset: number;
movies: LibraryMovieMatchQueueEntry[];
series: LibrarySeriesMatchQueueEntry[];
raw_files: LibraryRawMatchBacklogEntry[];