Luma 缓存失效策略#
Luma 的产品版本与内容缓存版本相互独立。发布普通界面、交互或平台更新时,不应修改任何缓存版本。
缓存层级#
| 层级 | 持久化内容 | 失效条件 |
|---|---|---|
| Feed 原文 | RSS / Atom / JSON Feed 自带正文 | 上游正文内容哈希真的改变 |
| 阅读正文 | 从原站抽取并清洗后的 HTML | 抽取器版本改变后后台重新抓取成功,且正文哈希改变 |
| 翻译 | 指定语言的结构化双语段落 | 翻译管线版本、目标语言或正文哈希改变 |
| AI 摘要 | 指定语言的生成摘要 | 摘要管线版本、目标语言或正文哈希改变 |
| 手工摘要 | 用户编辑并保存的摘要 | 仅由用户删除或覆盖;不随抽取器、模型或应用版本失效 |
版本约束#
缓存版本统一定义在 apps/api/src/services/cache-policy.ts。只允许在对应持久化格式或算法输出已经不兼容时单独调整一个版本值。
- 只修改 UI:不调整缓存版本。
- 只修改翻译提示词或结构:只调整
translation。 - 只修改摘要提示词或结构:只调整
summary。 - 只修改正文抽取与清洗规则:只调整
articleExtraction。 - 修改应用版本号、修复手势或增加设置项:不调整缓存版本。
正文重新抓取失败时,旧的正文与派生缓存继续保留,任务进入退避重试,不把失败当作数据损坏。