async fn purge_orphans(client: &Client) -> Result<(u64, i64), Error>
读取配置并删除过期孤儿素材,返回(删除行数, 释放字节数)。
逐项删文件(容忍单项失败:NotFound 静默,其他错误仅告警,DB 行照删—— 残留文件由重建索引的反向语义兜底),最后批量删 DB 行并失效派生缓存。