# Changelog of SiteVerdict — Web Change Feed (any page to RSS, Atom, JSON) (`siteverdict/siteverdict-web-change-feed`) Actor

- **URL**: https://apify.com/siteverdict/siteverdict-web-change-feed/changelog.md
- **Full Actor documentation**: https://apify.com/siteverdict/siteverdict-web-change-feed.md

## Changelog

### 1.1.0 — 2026-11-02 (not yet deployed)

- Billing: never charges past the run's maximum total charge. Change and AI-summary events are only charged when they fit (P0; via the shared `src/lib/budget.ts` helper). A detected change that does not fit is deferred to the next run (nothing charged, baseline not moved) instead of being billed past the max or given away; cheaper pages that still fit keep being checked. AI summaries that do not fit are skipped without calling the user's LLM.
- Reliability: a migrated/restarted run resumes at the next unfinished page (progress in the default key-value store), feed entries are saved as each page finishes, and finished pages are never re-checked or re-charged.
- Accuracy: long pages (over 5,000 lines) are compared on the same first 5,000 lines that are stored; previously a small edit reported every line past 5,000 as added.
- Contact: the User-Agent and README now use hello@webrevenuescan.com.
- README: honest noise-filter description (what is and is not ignored), maximum-charge behaviour and limits.

### 1.0.0 — 2026-10-11

- First release.
- Section mode (CSS selector, or automatic main content via Readability) with line-level diffs that ignore moved lines and use a minimum change size. List mode (`itemSelector`) publishes new, updated and removed items keyed by link.
- Noise control:
  - default ignore selectors (navigation, footer, cookie banners)
  - custom selectors, regex ignore patterns and an ignore-numbers option
- Output feeds: RSS 2.0 (with `content:encoded`), Atom 1.0 and JSON Feed 1.1, stored in a named key-value store with stable URLs. A rolling window of entries is de-duplicated by stable id.
- Polite fetching:
  - robots.txt per origin, including redirect targets, with RFC 9309 handling of server errors
  - at most 1 request per second per host and conditional requests (ETag / Last-Modified)
  - bot-protection detection (never bypassed) and an SSRF guard
- Slack/HTTPS webhook alerts and optional AI one-line summaries on the user's own LLM key.
- Pay-per-event: `page-checked`, `change-detected` and `ai-change-summary`.
