# Changelog of Product Hunt Scraper (`fetch_cat/product-hunt-scraper`) Actor

- **URL**: https://apify.com/fetch\_cat/product-hunt-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/fetch\_cat/product-hunt-scraper.md

## Changelog

### 0.1.25 — 2026-08-01

- Replaced the newly blocked text-rendering archive route with structured Hunted.Space history and product fallbacks, preserving exact daily ranks and honest source URLs without requiring a Product Hunt token.
- Kept unsupported individual reviews and built-with data as uncharged per-row warnings while preserving base rows and available review totals.
- Increased the shutdown reserve from 25 to 30 seconds so discovery, enrichment, and dataset persistence have more time to checkpoint before the platform timeout.
- Preserved both undiscovered explicit URLs and discovered-but-unsaved rows in cutoff and failure checkpoints.
- Added parser fixtures, cache-boundary tests, transient HTTP classification tests, and injected save-before-charge lifecycle tests.
- Recorded the full 13-failure public chronology while keeping six private customer runs correctly classified as unknown.
- Quarantined the unpublished VPS patch that removed reliability tests and charged enrichments before dataset persistence.

### 0.1.23 — 2026-07-15

- Deferred optional enrichment charge events until after the matching base product row is saved.

- Applied the run work-budget reserve to outbound website metadata requests.

- Added a runtime work-admission deadline and durable `RUN_CHECKPOINT` records so large URL and enrichment runs stop cleanly before the platform timeout.

- Isolated explicit product URL discovery in bounded batches; one unavailable URL now produces a partial run instead of discarding successful URLs.

- Made optional cache reads and writes non-fatal after a dataset row has been saved.

- Added `FAILED` and `PARTIAL` run summaries with discovery, enrichment, cache, cutoff, remaining-work, and error diagnostics.

- Moved the start charge after date, URL, budget, and proxy validation.

- Rejects impossible calendar dates instead of allowing JavaScript to normalize them into another month.

- Updated the README to match the live product URL format and emitted dataset fields.

### 0.1.17 — 2026-07-14

- Restored daily, weekly, monthly, and yearly leaderboard discovery plus topic, category, date, and product-URL inputs.
- Added optional launch details, comments, reviews, launch history, built-with data, website metadata, and richer output schemas.
- Added retries for transient source errors and isolated optional enrichment failures per product.
- Added a previous-published-day fallback when today's leaderboard is not finalized and no explicit date was requested.
- Made dynamic daily topic/category tasks search recent published days for the newest visible label match.
- Fixed swallowed exceptions and misleading successful zero-result runs.
- Validated Product Hunt URLs and dates before requests start.
- Coupled base-row storage and PPE charging, added `RUN_SUMMARY`, and corrected README field names and pricing tables.

### 0.1.16 — 2026-07-12

- Published a feed-only compatibility build.

### 0.1.15 — 2026-07-10

- Added archived leaderboard discovery and optional enrichment inputs.

### 0.1.0

- Initial recent-launch feed release.
