# Changelog of Mendoza COMPR.AR Argentina - Tender Delta API (`stefano_seggio/mendoza-compras-monitor`) Actor

- **URL**: https://apify.com/stefano\_seggio/mendoza-compras-monitor/changelog.md
- **Full Actor documentation**: https://apify.com/stefano\_seggio/mendoza-compras-monitor.md

## Changelog

### 2.0.1 - 2026-09-14

#### Fixed

- **Default `maxItems` lowered from 100 to 20**: a blank/default run (as used by Apify's automated Actor quality test) was timing out at the platform's 5-minute limit. Root cause confirmed from a real timed-out run's log: page 1 completed in ~34s, then the run made no further progress for 4+ minutes before being killed. With `resolveSourceUrl` defaulting to `true` (one sequential per-row postback, ~1.5s each, see its own input description), a 100-item raw walk (10 pages) spends on the order of 150s+ just resolving permalinks, on top of per-page fetch latency against this site's real response times - comfortably over budget. 20 items (2 pages) finishes in well under a minute with the same defaults; real monitoring runs should raise `maxItems` explicitly.

### 2.0.0 - 2026-09-08

The v2 delta engine: status-change and amendment detection, replacing the v1 retrofit's "always NEW\_LISTING" limitation - see AGENTS.md "Delta engine v2" for the full technical reasoning.

#### Added

- **`STATUS_CHANGE` events**: a process whose `estado` changed since it was last seen (e.g. "Pendiente Análisis" -> "Adjudicado") is now reported as `STATUS_CHANGE` - free to detect, `estado` is already in the walked grid row.
- **`UPDATED` events**: a process whose content changed (monto, fecha, unidad ejecutora, any other field) while keeping the same estado is detected via a sha1 content fingerprint (`contentHash`).
- **`eventTypes` input**: narrows delta-mode delivery to a subset of `NEW_LISTING`/`STATUS_CHANGE`/`UPDATED`.
- **`resolveSourceUrl` input** (default true): the per-row detail postback that resolves a process-specific permalink (~1.5s/row) is now optional - disable it for a much faster large-`maxItems` run. Tracked via the new `sourceUrlResolved` output field.
- `contentHash` output field; a second dataset view ("Status changes & amendments").
- Apache-2.0 `LICENSE`, this `CHANGELOG.md`, an `npx eslint .` step in CI.

#### Changed

- **Delta state shape**: `src/state.ts` replaced the v1 bare `seenIds: string[]` with `entries: Record<numeroProceso, {estado, hash}>` - needed for both STATUS\_CHANGE and UPDATED. **Not backward compatible**: a v1-shaped state is treated as absent, not migrated - an existing scheduled task's next run re-baselines.
- Pricing: two-tier PPE (`result` $0.003 when source\_url is genuinely resolved / `result-summary` $0.001 when it falls back to the generic search page), replacing the v1 flat single-tier price.
- **Considered and explicitly rejected**: a `CLOSED` event (a previously-seen process no longer in the register), unlike sibling actors on much smaller registers (santafe, salta). At ~25,784+ total processes, only a complete census can trust "absent = closed", and that census would take thousands of sequential postbacks - hours, not seconds. Not built here; see AGENTS.md.

#### Fixed

- Production `start` script pointed at `start:dev` (`tsx`), which Apify's production image cannot run (`npm install --only=prod` strips `tsx`). Switched to the prebuilt `dist/main.js` and stopped gitignoring `dist/` so the build actually ships.
