# Changelog of Reddit Scraper & Monitor (`suslabs/reddit-scraper-monitor`) Actor

- **URL**: https://apify.com/suslabs/reddit-scraper-monitor/changelog.md
- **Full Actor documentation**: https://apify.com/suslabs/reddit-scraper-monitor.md

## Changelog

### 0.2 development — 22 October 2026

Private upgrade for Claude review. Existing public Actor was not modified.

- Output schemaVersion becomes 2.0; existing content fields remain stable.
- Monitor datasets can include source-health, status and alert-delivery rows, but only when something needs attention: a stale or failing source, or an alert that failed or expired. Filter type before counting content.
- Thread Markdown adds a thread-document beside billed post/comment components. This closes the old free embedded-comment path; item counts include components.
- Add named alert retry/replay, signatures, source freshness/catch-up, presets, discovery and deterministic analysis.
- Stored feed endpoints exist in code but Standby is not enabled on the public Actor in this release.
- Persisted baseline schema remains backward-readable; new source/outbox/feed records are additive.
- Requested large jobs are chunked; inspect RETRY_INPUTS and reattach secret values.
- Persistent user tracking remains excluded.

#### Review fixes (Claude, 22 October 2026)

- A failure while saving the feed record or queuing alerts no longer leaves already-charged rows undelivered or a monitor stuck; both are now best effort and reported in ERRORS.
- If a charge fails partway through a batch, the items already charged in that batch are still delivered. The 150-second charge window now starts per item.
- Saved monitor tasks with a `users` list keep working (the list was always ignored by monitors); user profile URLs are skipped with a warning.
- Monitors and searches that have their own queries or URLs no longer also watch the r/SaaS and r/startups example when `subreddits` is omitted. Existing monitors migrate automatically.
- Search monitors return to the newest results after a catch-up instead of paging deeper each run. A continuation that makes no progress for three runs is dropped and reported as a gap.
- Filtered monitors record how far they have scanned, so later runs stop there instead of paging back to the backfill cutoff every run.
- Stale-source status rows and alerts are sent once per stale episode, not every run; a never-checked source counts as stale only after `staleSourceHours`.
- Expired alerts no longer block new sends; a full alert backlog drops new alerts with an error instead of failing the run.
- Slack alerts escape Reddit text so posts cannot trigger channel mentions. The webhook Authorization header goes only to the generic webhook.
- Community search results are billed as `search-hit` and are read from the search page itself (name, description, weekly visitors, subreddit ID); quarantined communities are skipped and NSFW ones only appear with includeNSFW. Use community mode with subreddits for rules and creation dates.
- URL-file imports refuse compressed responses and have a 60-second total time limit. Retry inputs never include `destination`.
