Feat: Kit-activated user scanners — essential articles + HotCat reach (T433621, MR 3/4)
Third stacked T433621 MR, on !160 (merged). Ships the two per-user reach tiles: essential articles added (mainspace creations by kit-activated first-time creators) and articles categorized with HotCat (by users whose first HotCat use came via the kit).
The shared activation predicate is the heart: whether a user had done this kind of work before their kit anchor is a historical fact — computed once (bounded probes), cached forever in scan_state, probe failures retried but never cached, verdicts immutable thereafter. Anchor = first essential-task contact, fallback first_seen_at.
mw-fetch refactor: fetchPaged ({rows, complete} | null) with fetchAllContinue as its strict wrapper — the HotCat history read needed "cap-hit" as an ANSWER (conservatively not kit-first) distinct from network failure, and fetchOnePage serves the uclimit=1 probes. The strict null-on-any-failure contract for cursor-advancing scans is unchanged.
Documented accepted limits: deleted contributions invisible to usercontribs; redirect creations count (no flag on usercontribs); HotCat matched by the token (survives summary localization; a wiki localizing the tool name itself under-counts).
Verified: fixture smokes covering prior-work rejections, negative/positive verdict caching, probe-failure retry, verdict immutability against changed fixtures, localized-summary matching, history-cap semantics, first-edit timestamps, cross-pass idempotency; read-side smoke; build clean.
Closes T433621