# Changelog of Shopify TrustWILL (Trustoo) Reviews Scraper API (`lurkapi/shopify-trustwill-reviews-scraper-api`) Actor

- **URL**: https://apify.com/lurkapi/shopify-trustwill-reviews-scraper-api/changelog.md
- **Full Actor documentation**: https://apify.com/lurkapi/shopify-trustwill-reviews-scraper-api.md

## Changelog

### Unreleased

- Scaffolded the TrustWILL and Trustoo Shopify reviews Actor.
- Added store-wide and direct-product review flows.
- Added filtering, sorting, output controls, language enrichment, media archiving, billing hooks, and resume-safe delivery state.
- Retained enabled product metadata and complete rating histograms on review rows.
- Retried temporary invalid-JSON success responses from public Shopify endpoints.
- Preserved unfiltered rating summaries during multi-rating review fan-out.
- Made short-review language detection conservative while recognizing clear English and Spanish samples.
- Normalized regional language filters such as `en-US` and `pt-BR` to their base language.
- Improved English detection for medium-length reviews that statistical detection mislabeled.
- Kept rating summaries unfiltered when content or media filters are sent to the review API.
- Populated direct-review currency from public Shopify storefront metadata.
- Added a default-on review-title output field so parsed titles and title-only keyword matches remain visible.
- Reconciled counts, histograms, and averages from unique rows after complete unfiltered review scans.
- Removed a remaining false French classification from clearly English review text.
- Preserved known product metadata and rating histograms on explanatory output rows.
- Kept missing and invalid review dates in stable source order at the end of oldest-first results.
- Corrected the product-description control to reflect attributed review-row output.
- Expanded two-letter and regional language normalization across the supported detector languages.
- Retried temporary HTTP 200 browser-challenge pages before parsing storefront HTML.
- Attributed redirected Shopify aliases to their final canonical storefront domain and URLs while preserving the submitted input URL.
- Simplified store inputs to always return reviews and decoded HTML entities in review titles and text.
- Preserved non-product landing-page paths and routed embedded TrustWILL product widgets to their exact product review feed.
- Added hedged storefront retries with prompt loser cancellation, sticky winning proxy sessions, and body-read/JSON parsing inside one bounded retry budget.
- Rejected persistent browser challenges, avoided retrying definitive 404 responses, and prevented handle-only landing pages from returning mislabeled store-wide reviews.
- Preserved global sort order when two or more rating filters are selected instead of letting the first rating bucket fill the result limit.
- Reconciled one-page rating summaries from every fetched review even when the output limit is smaller than the page.
- Migrated the deployable repository from `sandbox/` to the required `apify-actor/` root while preserving Git history.
- Normalized empty array and object fields to `null` for cleaner spreadsheet exports.
- Retried media uploads with fresh streams and reported per-file archive failures with stable error codes.
- Removed the retired product-catalog and sitemap implementation.
- Updated the proxy configuration option and build-log-stealth Docker entry point.
- Hydrated full product metadata when landing-page inputs redirect to canonical Shopify product URLs.
- Added a secondary short-text translation fallback when the primary public translation response is blocked.
- Prevented partial translation success by assembling bounded fallback chunks and rejecting incomplete enrichments.
- Rejected unsupported three-letter translation targets instead of silently returning untranslated rows.
- Corrected the TrustWILL newest-sort parameter so capped runs start with the actual newest reviews.
- Bounded review-media body streams with an abortable total deadline and a stable timeout failure code.
- Kept globally sorted full-scan results correct beyond 50,000 source reviews with bounded top-result memory.
