# Changelog of Hacker News Historical Archive Scraper — Old Stories by Date (`logiover/hacker-news-historical-archive-scraper`) Actor

- **URL**: https://apify.com/logiover/hacker-news-historical-archive-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/logiover/hacker-news-historical-archive-scraper.md

## Changelog

### 2026-09-23

- Fleet-wide quality audit. Verified end to end against live data and re-checked the input schema, the output columns and the run configuration.
- Output verified on a live run: 14 columns returned, 85.7% of cells populated.
- Run reliability reviewed: 100.0% of public runs succeeded in the last 30 days.
- Input schema, output schema and pricing configuration reviewed.
- Noted that 2 column(s) came back empty in this sample (`text`, `parentId`); these are under review.

### 2026-09-01

- Fleet-wide health check. Verified against this Actor's real run history: 30-day success rate, output row counts, per-field fill rates, and peak memory against the configured memory limit.
- Reviewed for the failure patterns that have cost this fleet runs — unguarded proxy setup, retry loops that can outlast the run's own time budget, and full-page HTML parsing that can exhaust a small container.
- No change to input, output fields or scraping logic.

### 2026-08-11

- Maintenance release: refreshed the build and dependencies.
- Re-verified live execution, non-empty structured output and dataset field/type integrity.
- Reviewed reliability (retries, pagination) and output quality as part of a full-fleet QA pass.

### 2026-08-01

- Completed the August 2026 full health check: verified empty/programmatic default, Console UI default, and two source-informed alternative inputs on Apify.
- Confirmed successful live execution, non-empty structured output, dataset-field/type integrity, and logical sample quality within the 5-minute quality window.
- Replaced the field-level output schema with a canonical `results` dataset link so run results open correctly in the Apify Console.
- Removed mandatory input fields (startDate, endDate); empty input now reaches the Actor's documented broad/default mode.
- Declared 14 dataset fields from typed live cloud samples so the output contract is no longer an empty placeholder.
- Declared 14 nullable dataset fields from typed live cloud samples so the output contract is no longer an empty placeholder or brittle to sparse modes.

### 2026-07-22

- 🚀 Initial release.
- Bulk-exports the complete historical Hacker News corpus — stories, comments, Ask/Show HN, polls, jobs and front-page — between any two dates in chronological order, via the keyless Algolia HN Search API (`search_by_date`). No API key, no login, no cookies.
- **Time-window pagination** engine slides the query window backward through time using the oldest timestamp of each 1,000-row batch, beating Algolia's ~1,000-results-per-query cap and returning hundreds of thousands of rows across a wide date range. Verified on live data that a multi-day range returns well over 1,000 unique rows.
- Filters: content type, inclusive UTC date window, optional keyword, author allow-list, minimum points and minimum comments.
- Output: 14 flat fields per row (id, type, title, url, author, points, comment count, HTML-stripped text, ISO + Unix timestamps, story/parent IDs, HN permalink, joined tags). De-duplicated by item ID.
- Datacenter Apify Proxy by default with retry, exponential backoff and fresh-IP rotation on 429/5xx/timeout. Graceful empty exit; loud fail only on a total zero-row fetch failure.
