Two incremental-path fixes.
-
readPublicationsandreadDocumentswere called withoutrequiredDids, so canaries were treated as ordinary repositories: no first-wave read, ordinary six-attempt budget, no canary policy. Pass the canary set through both calls. -
Subscription and recommend reads fail en masse on PDS hosts behind bot protection (403 "Just a moment...", 503, fetch failed). On an incremental run the changed set is small, so those edge failures alone tripped the 10% failure-rate gate. Only publication and document failures now count toward the incremental rate; edge failures stay in state and are retried next run.
npx vitest run scripts/panoptiblog passes 176 tests and prek passes.