# Changelog of SaaS Pricing Page & Changelog Monitor (`stellar_ballet_0bu/saas-pricing-page-monitor`) Actor

- **URL**: https://apify.com/stellar\_ballet\_0bu/saas-pricing-page-monitor/changelog.md
- **Full Actor documentation**: https://apify.com/stellar\_ballet\_0bu/saas-pricing-page-monitor.md

## Changelog

All notable changes to **SaaS Pricing Page & Changelog Monitor** are documented here.

### 0.2.0 — 2026-07-07

- **New: changelog / release-notes page monitor** (additive input `changelogPages`). The Actor now extracts structured release entries from public SaaS changelog pages and emits stateful deltas (`new_entry`, `removed_entry`, `title_change`, `body_change`, `version_change`, `category_change`, `date_change`) with the same severity/event taxonomy as pricing rows.
- New heuristic parser `src/changelog.js` handles three common patterns: `<article>`-block pages (Vercel/Notion), date-anchored sections (Stripe), and GitHub-style `version (date)` headings. Pages that yield no parseable entries emit a `no_entries_extracted` row so the user knows the page was checked.
- New input fields: `changelogPages` (string\[]), `previousChangelogItems` (array). Backward-compatible: existing pricing-only runs work unchanged.
- New output fields on changelog rows: `changelogPage`, `title`, `releaseDate`, `version`, `body`, `category`, `url`, `entryKey`. SUMMARY record now includes a `changelog` block with per-page and per-event counts.
- New SEO keywords and categories: `changelog`, `release notes`, `product updates`, `release monitor`, `changelog monitor`, `rss`, `competitor monitoring`. Title updated to "SaaS Pricing Page & Changelog Monitor".
- New test suite: `test/changelog.test.mjs` (23 cases covering GitHub/Stripe/Notion/nav/empty/dedupe). Existing delta + pricing tests still pass.
- `package.json` bumped to `0.2.0`; `.actor/actor.json` version bumped to `0.2`.

### 0.1.7 — 2026-07-07

- Added "Run it from Claude / Cursor / VS Code via MCP" section to README with copy-paste `claude_desktop_config.json` snippet and a realistic prompt example.
- Bumped source `package.json` version to match live Apify build tag (closes source/live drift).
- No code changes; no impact on schema, output, or Pay Per Event pricing.

### 0.1.0 — 2026-07-07

- Initial public release.
- Public HTML fetcher with per-request timeout and configurable user-agent.
- Heuristic plan-block extractor: heading-based block split, then per-block detection of `planName`, `price`, `currency`, `billingPeriod`, `cta`, `badge`, `featuresCount`.
- Stateful diff: `new_plan`, `removed_plan`, `price_change`, `currency_change`, `billing_period_change`, `cta_change`, `badge_change`, `plan_renamed`.
- `event_severity` per row: `high` for price/currency/rename, `medium` for plan/badge/billing, `low` for CTA.
- Pay Per Event billing: `apify-actor-start $0.0005` (one-time), `delta_result $0.002` (per emitted delta).
- Optional `persistState` via named key-value store.
- Test suite: `test/delta.test.mjs` and `test/pricing.test.mjs`.
