RSS 轮询:#43645 之后,未更改的订阅项被报告为「已更新现有主题」

这是针对 RSS 轮询可能需要 20 分钟或更长时间才能处理一个订阅源 以及 #43645 的后续讨论,该 PR 通过将轮询作业切换到 post.previously_new_record? 来停止将未更改的项目计为已导入(poll_feed.rb#L132)。

该修复留下了状态的另一半问题:一个已经导入且未更改的项目现在会在每次轮询时被报告为“Updated the existing topic”(更新了现有主题),因为无论 TopicEmbed.import 是否修改了任何内容,它都会返回其现有的帖子,而状态逻辑是 previously_new_record? ? :imported : :updated。

我们在 2026.7.3 ESR 版本中看到了相同的标签(在该版本中是由旧检查加上 rss_polling_use_pubdate 引起的),并且通过阅读 6ba633db 处的 main 分支代码,它似乎仍然存在;我尚未运行 main 分支以确认。

复现步骤

  1. 添加一个订阅源并轮询一次,以便其项目被导入。
  2. 在订阅源未发生变化的情况下再次轮询。
  3. 打开该订阅源的“Recent polls”(最近轮询)。

实际结果: 每个项目都显示“Updated the existing topic”(更新了现有主题)。

预期结果: 未更改的项目应报告为未更改(或跳过),只有当帖子确实被修改时,才显示“Updated”(已更新)。

TopicEmbed.import 已经计算了是否有变化(topic_embed.rb#L140-L153 中的 content_changed、title_changed、tags_changed);将该结果暴露给轮询作业将使状态准确。