Run one source end to end. The window and budget are checked first
(normalizeSyncWindow): a bad one rejects with OpenKaValidationError before
any request, and is not recorded as a source error.
A source's politeness floor (Source.minHostIntervalMs) is applied to the
engine before discovery, with engine.raiseMinHostInterval: it raises the
engine's interval and never lowers it, and it stays raised on that engine.
The run holds the corpus lock (Store.lock): while another sync, a reindex or
a review mark writes to the same corpus, it rejects with CorpusLockedError
before any request.
Run one source end to end. The window and budget are checked first (
normalizeSyncWindow): a bad one rejects withOpenKaValidationErrorbefore any request, and is not recorded as a source error.A source's politeness floor (
Source.minHostIntervalMs) is applied to the engine before discovery, withengine.raiseMinHostInterval: it raises the engine's interval and never lowers it, and it stays raised on that engine.The run holds the corpus lock (
Store.lock): while another sync, a reindex or a review mark writes to the same corpus, it rejects withCorpusLockedErrorbefore any request.