merge: fix/b-download

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
This commit is contained in:
rootandClaude Opus 5.5 committed 2026-10-03 21:23:04 +08:00
commit 15d7f2ec2f
10 files changed
+566 -18

No files matched your search

@@ -0,0 +1,25 @@
import type { Kysely } from "kysely";
import { execDdl } from "../src/migration-helpers.ts";
// 下载调度卡死修复(docs/plan/system-review.md ③):
// - missing_since / missing_count:qB 列表与按 hash 查都查不到时先记缺席,连续多轮才判 removed,中途出现即清零
// - generation:同一 (实例, hash) 的 removed 行被再次提交 / 接管而复活时 +1,完成事件幂等键随之换代,
// 复活后的完成仍能触发整理
// biome-ignore lint/suspicious/noExplicitAny: 迁移不依赖应用表类型
export async function up(db: Kysely<any>): Promise<void> {
await execDdl(
db,
`alter table download_task add column if not exists missing_since timestamptz;
alter table download_task add column if not exists missing_count integer not null default 0;
alter table download_task add column if not exists generation integer not null default 0;`,
);
}
// biome-ignore lint/suspicious/noExplicitAny: 同上
export async function down(db: Kysely<any>): Promise<void> {
await execDdl(
db,
`alter table download_task drop column if exists missing_since;
alter table download_task drop column if exists missing_count;
alter table download_task drop column if exists generation;`,
);
}
+3
View File
@@ -719,6 +719,9 @@ export interface DownloadTaskTable {
updated_at: GeneratedTimestamptz;
media_entity_id: string | null;
import_plan_id: string | null;
missing_since: Timestamptz | null;
missing_count: Generated<number>;
generation: Generated<number>;
}
export interface DownloaderInstanceTable {