# Changelog of Scholarly Correction Monitor (`flintglade/scholarly-correction-monitor`) Actor

- **URL**: https://apify.com/flintglade/scholarly-correction-monitor/changelog.md
- **Full Actor documentation**: https://apify.com/flintglade/scholarly-correction-monitor.md

## Changelog

All notable changes to this Actor are documented here. Format loosely follows
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/).

### 0.1.0 - Initial release candidate

- DOI watchlist input (1-500 DOIs or `doi.org` URLs), with `baselineMode`, `stateNamespace`,
  `resetBaseline`, `maxConcurrency`, and `requestTimeoutSeconds` controls.
- Every watched DOI is checked against two Crossref sources: a direct work lookup for bounded
  bibliographic facts, and Crossref's update-discovery endpoint
  (`GET /v1/works?filter=updates:{doi}`) as the sole, authoritative source of deposited
  corrections/retractions/expressions of concern/withdrawals/other updates. See
  [PRODUCT-SPEC.md](PRODUCT-SPEC.md) for why both are required.
- Deterministic classification (fixed precedence: retraction > withdrawal > expression of concern
  > correction > other update), canonical SHA-256 hashing, and baseline diffing that separates
  > status changes from bibliographic-metadata changes.
- Pay-per-event billing: `doi-result` at $0.003 per successfully fetched or explicitly
  not-found DOI, with graceful, non-charging shutdown once the run's spending limit is reached.
- Namespaced, per-DOI baseline persistence in a named key-value store prevents overlapping subset
  runs from clobbering unrelated DOI state; the run summary and current-watchlist snapshot live in
  the run's default key-value store. No abstracts, authors, or raw Crossref payloads are stored.
- Update-discovery responses now fail closed without charging or baseline advancement when a
  notice does not normalize to the watched DOI, or pagination ends before `total-results` is
  satisfied.
