# Changelog of Industrial Equipment Price Monitor (`imagiever_ar/industrial-equipment-price-monitor`) Actor

- **URL**: https://apify.com/imagiever\_ar/industrial-equipment-price-monitor/changelog.md
- **Full Actor documentation**: https://apify.com/imagiever\_ar/industrial-equipment-price-monitor.md

## Changelog

### 1.6.0 — 2026-09-24

- Simplified product contract to search + normalize + deliver.
- Brand/model/category remain search filters; missing detail fields no longer reject a listing.
- Country is the only hard post-search filter and rejects only explicit conflicts.
- Added `price_text` for values such as `Consultar precio`, `Price on request`, and `Contact Seller`.
- All delivered listing records now trigger the `result` event at US$0.003; diagnostics remain free.
- Changed prefill to redundant local coverage with `sources: ["auto"]`.
- Removed anti-bot evasion/retry behavior and UNBLOCKER proxy use.
- Added PII stripping for free text/specification fields.
- Added mandatory publication-protocol tests and release checklist scaffolding.
- Renamed zero-result/invalid-input records to `record_type="run_diagnostic"` to match the publication health contract.
- Normalized G3 billing reconciliation so every delivered listing, including sparse and price-on-request records, is billed once.

#### Release hardening — 2026-09-24

- Fixed Docker build ownership for Apify's non-root `myuser` by copying project files with `--chown=myuser:myuser`.
- Added `.dockerignore` so host `node_modules` and protocol evidence are never copied into the Linux image.
- G0 local Docker build now explicitly targets `linux/amd64`, matching the Apify Playwright Chrome base image on Apple Silicon hosts.

#### Protocol harness hardening r3 — 2026-09-24

- Fixed a G2 false-positive: HTTP reachability alone can no longer produce `LOCAL_PROTOCOL_PASS`.
- G2 now runs inside the same linux/amd64 Docker image built in G0 and uses a real browser for JS-rendered default marketplaces.
- G2 requires at least one live discovered listing and one parsed normalized sample, plus per-source completeness, robots evidence, zero PII findings, bounded requests and bounded runtime.

#### QA r4.1

- Hardened G3 evidence shell scripts against nested-quote failures by replacing inline `node -e` JSON parsing with `qa/json_scalar.mjs`. No Actor runtime behavior changed.

#### Release hardening r5 — 2026-09-24

- Set Actor `defaultMemoryMbytes` to 1024 so default cloud memory matches the tested/max memory contract.
- Fixed `RUN_SUMMARY.billingSummary.chargedListings` to use `ChargingManager.getChargedEventCount('result')` instead of summing `ChargeResult.chargedCount`.
- Clarified PPE metadata: every delivered listing is the paid `result`, including listings with no numeric price; only diagnostics are free.
- Added a cloud configuration preflight that blocks G3 before a run is started if memory/timeout or effective PPE metadata are stale.
- The reconciled run `Mf3oibS47n9OwMkWG` remains evidence of a failed G3 attempt and is not counted toward the required three passing runs.
