# Changelog of Google Maps Reviews Scraper & Sentiment Analyzer (`datascraperes/google-maps-review-analyzer`) Actor

- **URL**: https://apify.com/datascraperes/google-maps-review-analyzer/changelog.md
- **Full Actor documentation**: https://apify.com/datascraperes/google-maps-review-analyzer.md

## Changelog

### Unreleased

- Removed internal collection transport diagnostics (`source`, `pages`, `stopReason`, and transport `warnings`) from customer Dataset items while retaining them for development probes.
- Reduced the Store auto-test prefill from 25 to 5 reviews, synchronized it with the Actor-level example input, and added release checks for a successful non-empty Dataset within five minutes.
- Added direct HTTP business-summary enrichment for long Google Maps URLs that expose an internal hexadecimal identifier instead of a `ChIJ` Place ID, including rating, total review count, and rating distribution when Google returns the complete payload.
- Added up to six bounded canonical-URL metadata attempts, matching the proven reference workflow when Google first returns only a light business summary. They run only after the sequential review cursor chain finishes.
- Replaced the overlapping `url` and `urls` inputs with one required `urls` field that accepts either one business or a batch of up to 10 businesses.
- Added strict pre-run validation for HTTPS Google Maps business URLs, duplicate entries, unknown fields, language and country codes, and boolean options.
- Reworked the public input guidance to explain single-business and batch usage without a legacy mode or mutually conflicting fields.
- Added pay-per-event billing at exactly $0.001 per successfully analyzed and delivered review, with no per-business fee or other positive event charge.
- Added fail-closed pricing validation, pre-collection spending-limit enforcement, and exact reconciliation between collected, analyzed, delivered, and charged review counts.
- Added billing contract tests, a machine-readable target pricing configuration, and local/remote validation tooling.
- Pipelined CPU sentiment inference behind the strictly sequential review cursor chain, so the next HTTP page can be requested while the previous page is classified without adding concurrent Google requests or changing review order.
- Aligned review collection with the proven requests-only Google Maps session flow, disabled inherited network configuration, restored the exact RPC payload, and requested the native 10-row review page before truncating locally.
- Added a three-attempt, jittered recovery that rebuilds the direct HTTP cookie session after a Google restriction frame without changing the network route.
- Added regression tests for the direct transport, RPC payload, headers, and page-size contract.
- Raised the minimum selectable memory to 2048 MB after the two-business 1024 MB canary peaked at 985,604,096 bytes, leaving insufficient production headroom.
- Preserved the pinned tokenizer and model configuration artifacts directly and made the bundled FP32 runtime checkpoint explicit, avoiding tokenizer reserialization and a false Mistral-regex warning without changing sentiment labels or the Dataset contract.
- Expanded the local model probe with per-call inference, parameter, artifact-size, and observed-memory measurements.

### 0.4.0

- Added the canonical `urls` array for analyzing up to 10 businesses in one run.
- Added one Dataset item per unique business URL, pushed after each business completes.
- Reused one lazy sentiment-model instance sequentially across all businesses and continued after per-business collection errors.
- Switched the runtime to the CPU-only PyTorch wheel and raised the configured Actor memory ceiling to 2048 MB after a Linux 1024 MB canary reached the container limit.

### 0.3.0

- Removed the public sentiment-mode selector.
- Streamed review pages into bounded model batches and avoided retaining raw rows by default.
- Removed the duplicate Maps warm-up request from the production collection path.

### 0.2.0

- Replaced the topic and keyword prototype with basic three-class sentiment analysis.
- Added one pinned open-source multilingual model flow with bounded rating fallback for textless or unavailable-model rows.
- Added per-review sentiment values, confidence, aggregation, model fallback warnings, and validation coverage.

### 0.1.0

- Initial HTTP-only Google Maps business URL review analysis Actor.
- Added the initial deterministic review analysis prototype.
- Added URL resolution, consent handling over direct HTTPS, bounded retries, and partial-result statuses.
