# Changelog of Global Health Stats Scraper - COVID, Vaccines & Epidemiology (`logiover/global-health-stats-scraper`) Actor

- **URL**: https://apify.com/logiover/global-health-stats-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/logiover/global-health-stats-scraper.md

## Changelog

### 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.

### 2026-07-18

- Maintenance & reliability pass — re-verified end-to-end against live data via the Apify API; confirmed the Actor completes successfully and returns non-empty, well-formed results within the 5-minute quality window on its default input.
- Refreshed build so the latest version is current; no change to inputs, output fields or scraping logic.

### 2026-07-12

- **Numeric output is now real numbers.** All count/rate fields (`cases`, `todayCases`, `deaths`, `todayDeaths`, `recovered`, `active`, `critical`, `tests`, `population`, `casesPerMillion`, `deathsPerMillion`, `testsPerMillion`, `vaccinated`, `vaccinatedPerHundred`) are emitted as numbers instead of strings, so the dataset's `number` formatting, sorting, and aggregation work correctly. Text fields (country, state, dates, ISO codes) stay strings.
- **All inputs optional** (`required: []`). Empty input `{}` returns current COVID-19 stats for every country.
- **Proxy defaults to Apify AUTO** (`useApifyProxy: true`) instead of a dead datacenter group, with a fresh IP per attempt and a direct-connection fallback on the final retry (source is a keyless public API).
- **Added a ~4-minute time budget** with batched pushes for the large historical/vaccine time-series modes, so long runs finish gracefully as success.
- Added a `fields` JSON-schema (title + description per field) and surfaced the `state` column in the dataset view.
- Unknown `mode` now falls back to `countries` instead of erroring; top-level errors are logged rather than hard-thrown.
