All notable changes to this actor will be documented here.
Format: YYYY-MM-DD | version | description | author
2026-07-23 | 0.1.0 | Initial build — CUIT Lookup actor (bulk-ingest AFIP padrón, two modes refresh/lookup, sharded KVS index, PPE for found records) | builder-agent
2026-07-23 | 0.1.2 | Orchestrator review fixes: check-digit 10→9 mapping (standard AFIP mod-11 — old code wrongly rejected valid CUITs), corrupt-index guard now counts records-found with ≥5 threshold (old version false-FAILED pre-monetization all-valid runs), removed unused import. Regression test added (48/48 green). Re-validated on platform (2 found + 1 not-found, exit 0) | OpenCode (orchestrator)
2026-07-24 | 0.1.4 | Refresh cost guard (pricing-review-2026-07.md #1, engineering-only — no pricing change): added minRefreshAgeHours (default 72) + forceRefresh inputs; refresh now skips download/re-ingest and exits with a skipped:true dataset row if the stored index is already fresher than the threshold, cutting a repeat-refresh from a measured $0.0538/158.5s ingest to a measured $0.00058/2.3s skip (~93x). Extracted pure shouldSkipRefresh() decision function to index-store.ts for testability. Capped cuits input array at 100,000 entries (lookup cost was already bounded by the explicit list; this just bounds the list itself). Memory: measured memMaxBytes on the real production refresh run (35HnuojqelLGJnUd2) is ~3.26GB out of the 4096MB allocation (~80% utilized) — left defaultMemoryMbytes unchanged at 4096; lowering it risks OOM on the ingest path with no validation budget to spare. Fixed a pre-existing invalid example CUIT in input_schema.json prefill (20-27841710-5 fails mod-11 check-digit; replaced with a real, valid padrón record 27-27841710-2) — the live platform exampleRunInput still has the old value pending an owner console update (blocked from direct API mutation by design). Tests: 48→61 green. Platform-validated: 2/2 runs (guard skip: exit 0, $0.00058, 2.3s; lookup regression: 1 found + 1 not-found + 1 invalid-skipped, charged correctly, exit 0, $0.00047). Pricing proposal for a future charged index-refresh event written to handoff/cuit-lookup-pricing-proposal.md (proposal only, no pricing changed). | Claude Sonnet (builder agent)2026-07-24 | 0.1.6 | Wired index-refresh PPE charge on completed (non-skipped) refreshes (safe no-op until the owner configures the event in Console — uncharged events log a warning and return chargedCount 0). Guard-skipped refreshes never charge. Also fixed the live platform exampleRunInput via API (valid CUIT 27-27841710-2 replacing invalid 20-27841710-5). 61/61 tests. | Claude Fable 5 (orchestrator)