RSS Feed lastGuid rotation handling (#584) #590

Merged
Vylpes merged 2 commits from cursor/584-rss-feed-lastguid-rotation into feature/epic-528-rss-feeds 2026-10-12 12:17:15 +01:00
Member

Summary

Stops RssFeedHelper.GetNewItems from treating every feed item as new when the stored lastGuid has rotated off the feed (retention/expiry).

When lastGuid is set but not found, at most 10 newest items are returned (oldest-first). The cap is an optional third argument so timer/commands can reuse it. First-poll behaviour (lastGuid missing/empty → []) is unchanged.

Changes

  • src/helpers/RssFeedHelper.ts — detect missing lastGuid after scan; apply configurable cap (default 10)
  • tests/helpers/RssFeedHelper.test.ts — cover default cap overflow, sub-cap feeds, custom cap; keep match/empty cases

Verification

  • yarn build PASS
  • yarn test PASS (5 suites / 72 tests)

Ticket: #584

Base is feature/epic-528-rss-feeds (same as #583 / #530) because RssFeedHelper lives on the epic branch, not yet on release/3.4.0.

## Summary Stops `RssFeedHelper.GetNewItems` from treating every feed item as new when the stored `lastGuid` has rotated off the feed (retention/expiry). When `lastGuid` is set but not found, at most **10** newest items are returned (oldest-first). The cap is an optional third argument so timer/commands can reuse it. First-poll behaviour (`lastGuid` missing/empty → `[]`) is unchanged. ## Changes - `src/helpers/RssFeedHelper.ts` — detect missing `lastGuid` after scan; apply configurable cap (default 10) - `tests/helpers/RssFeedHelper.test.ts` — cover default cap overflow, sub-cap feeds, custom cap; keep match/empty cases ## Verification - `yarn build` PASS - `yarn test` PASS (5 suites / 72 tests) Ticket: #584 Base is `feature/epic-528-rss-feeds` (same as #583 / #530) because `RssFeedHelper` lives on the epic branch, not yet on `release/3.4.0`.
Vylpes merged commit ee47097432 into feature/epic-528-rss-feeds 2026-10-12 12:17:15 +01:00
Vylpes deleted branch cursor/584-rss-feed-lastguid-rotation 2026-10-12 12:17:16 +01:00
Sign in to join this conversation.
No description provided.