feat(settings): storage budgets and retention in settings UI, tmdbMaxSize default 5000 (INT-3)

- Automation section gets storage budget, retention and cache TTL cards bound to settings.storage
- Metadata section drops deprecated cache.tmdbTtlHours / cache.emptyResultTtlSec / identity.poolArchiveDays inputs
- cache.tmdbMaxSize default 256 -> 5000; migration 0051 bumps stored values still at the old default

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
rootandClaude Opus 5.5 committed 2026-09-29 17:46:36 +08:00
1 parent 0a8bfbb63e
commit fe05138c9c
7 files changed
+119 -31

No files matched your search

@@ -0,0 +1,23 @@
import type { Kysely } from "kysely";
import { execDdl } from "../src/migration-helpers.ts";
// INT-3:cache.tmdbMaxSize 缺省 256 → 5000(CACHE-2 把 TTL 拉长到天级后,256 条先被挤掉)。
// settings 表里整段存 cache 对象,已保存过设置的库仍是旧缺省 256:只改仍等于旧缺省的值,用户改过的不动。
// biome-ignore lint/suspicious/noExplicitAny: 迁移不依赖应用表类型
export async function up(db: Kysely<any>): Promise<void> {
await execDdl(
db,
`update settings set value = jsonb_set(value, '{tmdbMaxSize}', '5000'::jsonb), updated_at = now()
where key = 'cache' and value->'tmdbMaxSize' = '256'::jsonb;`,
);
}
// biome-ignore lint/suspicious/noExplicitAny: 同上
export async function down(db: Kysely<any>): Promise<void> {
await execDdl(
db,
`update settings set value = jsonb_set(value, '{tmdbMaxSize}', '256'::jsonb), updated_at = now()
where key = 'cache' and value->'tmdbMaxSize' = '5000'::jsonb;`,
);
}