# Changelog of Website Uptime & Status Checker (`ninhothedev/website-uptime-monitor`) Actor

- **URL**: https://apify.com/ninhothedev/website-uptime-monitor/changelog.md
- **Full Actor documentation**: https://apify.com/ninhothedev/website-uptime-monitor.md

## Unreleased quality update

- Retain all existing output fields; add `error_type` and a linked JSON/CSV output view.
- Correct TLS semantics: unknown on DNS/timeout/plain HTTP, false only on certificate validation failure.
- Replace whole-body GET plus fallback retry with one bounded header-only GET observation. DNS and redirects share its deadline. No JavaScript renderer is added.
- Normalize/deduplicate URLs, validate options early, keep the global limit and existing option defaults. Require explicit API `urls`; Console prefill is one URL. Output URL normalization now adds `/` for empty paths and removes fragments/default ports.
- Limit each concurrent wave to remaining chargeable rows and save measurements immediately. Retain synthetic dataset billing without manual duplicate charges. Skip already-delivered URLs on resurrection.
- Restrict requests/redirects to public addresses and pin validated DNS answers. Unsupported targets get uncharged key-value diagnostics.
- Pin the runtime dependency graph and upgrade Apify SDK to 4.0.2 for current synthetic-event budget support. Add the missing local CLI entry point.
- Document actual startup/result prices, costs at common scales, measurement limitations and integration behavior.

### Compatibility notes

HTTP 4xx/5xx remain valid down measurements. Input mode `check`, timeout default 15, global cap default 200/max 2000 and all original dataset field names remain. Invalid numeric coercions, private endpoints and URL credentials are now rejected explicitly. `ssl_valid` changes are correctness fixes; consumers must allow null. Query strings and path case remain unchanged. A resurrected run reuses delivered snapshots; a new run refreshes them.

### Release validation

Run `python -m pytest -q`, `apify validate-schema`, and the documented local `apify run` demo. Independent QA and an isolated cloud build/run are required before production promotion. Local checks cannot certify cloud runtime, SDK billing enforcement or a statistical 99% reliability target.
