# Changelog of SiteVerdict — Website Change & Uptime Monitor (`siteverdict/siteverdict-change-uptime-monitor`) Actor

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

## Changelog

### Unreleased (prepared 2026-10-15, NOT pushed) — Private-network (SSRF) protection

- Monitored URLs, sitemap URLs, robots.txt and every redirect hop are checked against private, loopback, link-local, cloud-metadata and internal addresses in every encoding (decimal/octal/hex IPv4, IPv4-mapped/NAT64/6to4 IPv6, unicode dots, single-label names); names are resolved by a DNS-pinned lookup that refuses private answers and connects to exactly the address it checked (no rebinding window).
- A refused monitor produces an uncharged row (`status: error`, `statusReason: "refused: private-network protection; not charged"`) and never touches the baseline; a redirect that lands on a private address is an uncharged error, not downtime.
- Browser mode: Chromium sends every request (navigations, redirects, meta refresh, JS navigations, sub-resources) through a local checking proxy; blocked requests are counted in `RUN_SUMMARY.privateNetworkBlocked`.
- Webhook and Slack URLs are validated the same way before any alert is sent; webhook redirects are never followed.
- TLS probes use the same pinned lookup.
- No change to pricing, output fields (two additive fields: `refused` count and `privateNetworkBlocked` in RUN_SUMMARY) or the input schema.

### 1.0.0 — 2026-10-11

First release.

- Uptime checks: HTTP status, response time and TTFB, DNS resolution, full redirect chain, TLS expiry, issuer and trust, plus confirmation retries before a URL is reported down.
- Content change detection for the whole page, a CSS selector region or an XPath region.
- Normalised text with a line-based unified diff.
- Built-in and custom ignore patterns, plus element exclusion. Ignore patterns apply retroactively.
- Price tracking, structured list extraction (text or attribute), and keyword appear/disappear alerts.
- SEO-critical changes: title, meta description, canonical, H1, lang, final URL, meta robots and X-Robots-Tag. noindex appearing is flagged as critical.
- robots.txt rule changes, and sitemap URLs added or removed (indexes and .gz supported).
- Browser mode (Playwright Chromium) with screenshot pixel diff, threshold, masks and diff image.
- State in a named key-value store per project, with change history (last N) per monitor.
- Alerts by webhook (JSON) and Slack incoming webhook, plus a per-run e-mail digest via apify/send-mail.
- Pay per event: `url-checked`, `url-checked-browser` and `change-alert`. The run respects the max total charge, and blocked, robots-disallowed and error results are never charged.
- Honest user agent and robots.txt respected by default. Bot protection is reported as `blocked` and never bypassed.
