feat: persist failure journal and bounded retries (F11)

This commit is contained in:
Rawman Grey 2026-10-30 10:22:29 +03:00
parent ec3e0c16e0
commit 871182d6d5
15 changed files with 2769 additions and 23 deletions

View file

@ -35,6 +35,69 @@ export interface CompletedRecord {
ts: number;
}
export type FailureEventType = 'failed' | 'retry' | 'recovered';
export type FailureStatus = 'failed' | 'recovered' | 'retry';
export interface FailureEvent {
type: FailureEventType;
ts: number;
file_id: string;
preset_key: string;
format: string | null;
attempt: number;
next_retry_at?: number | null;
error?: string;
ms?: number;
}
export interface FailureRecord {
file_id: string;
preset_key: string;
format: string | null;
attempts: number;
status: FailureStatus;
first_failed_at: number;
last_failed_at: number;
next_retry_at: number | null;
error: string | null;
ms: number | null;
}
export interface FailureListQuery {
status?: FailureStatus | null;
limit: number;
offset: number;
}
export interface FailureListResult {
records: FailureRecord[];
total: number;
limit: number;
offset: number;
}
export interface FailureFileMeta {
filename_download?: string | null;
type?: string | null;
folder?: string | null;
}
export interface FailureEnrichedRecord extends FailureRecord {
file: {
filename_download: string | null;
type: string | null;
folder: string | null;
};
first_failed_at_iso: string | null;
first_failed_at_human: string;
last_failed_at_iso: string | null;
last_failed_at_human: string;
next_retry_at_iso: string | null;
next_retry_at_human: string | null;
ms_human: string | null;
}
export interface RunState {
running: boolean;
startedAt: number | null;