# Changelog of Upwork Jobs Search Scraper (`jobsapi/upwork-jobs-search-scraper`) Actor

- **URL**: https://apify.com/jobsapi/upwork-jobs-search-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/jobsapi/upwork-jobs-search-scraper.md

## Changelog

### 2.1.0

- Separate Apify process status (`SUCCEEDED`/`FAILED`) from dataset result status (`SKIPPED`/`FAILED`) and access classification (`SKIPPED`/`DEFERRED`).
- Treat a handled source barrier as a successful platform run with a skipped dataset; preserve fatal non-block failures through the Actor failure lifecycle.
- Add offline mocked coverage for both lifecycle paths. No Upwork requests or Cloud operations were performed.

### 2.0.2

- Remove custom request identity headers and classify source access barriers as `SKIPPED` while ordinary HTTP and transport failures remain `DEFERRED`.
- Preserve one-attempt request receipts, diagnostics, and summary status; stop after the first response and never emit unverified records.
- Validate the barrier policy with offline mocked tests. No Upwork Actor run is performed while Chrome shows a source security challenge.

### 2.0.1

- Count and diagnose transport failures, and include runtime duration in blocked summaries.
- Tighten public search and detail URL validation and add regression coverage.
- Expose run summary and diagnostics, strengthen dormant dataset constraints, and ensure the lockfile/latest build tag are deployed.
- Clarify that the current Actor is an evidence-producing access probe, not a working extraction path.

### 2.0.0

- Replaced browser, fingerprint, proxy, and external-index fallback behavior with bounded native public HTTPS probes.
- Added explicit search, single, and multiple inputs plus KVS-only run summaries and diagnostics.
- Upwork security challenges now fail honestly with zero dataset rows; no access-control bypass or fabricated fallback record is used.
