Browser extension: detect and subscribe to standard.site publications on ATProto substandard.blog

fix(panoptiblog): close reliability gaps #575

Merged permadeath.com
targeting main from claude/pano-reliability
Merged opened by and assigned to permadeath.com
targeting main from claude/pano-reliability

Today’s live data is internally consistent and looks accurate: ranks are unique and ordered, totals reconcile, all 16 canaries are present with margin, the top-100 rows match all.json, and the four share-card samples checked are correct. It came from the pre-incremental image, however: totals.crawl has no mode/changedRepositories/fullAt, and the objects were uploaded after the incremental commits landed. The scheduled task is still running the last deployed image; the first incremental run is still ahead.

This change archives lookup.json and the --from data.json under history/, deletes share pages for publications that leave the ranking (with the task role’s new s3:DeleteObject permission), refuses to tag an image from a dirty tree, and only treats a Jetstream replay gap as retention loss when the saved cursor is stale enough for the difference not to be an ordinary lull. Failed reads still block their share pages from being deleted.

npx vitest run scripts/panoptiblog passes 151 tests, npm run check and tofu fmt -check pass. Terraform must be applied for the delete permission. The remaining findings are lower risk and left for a later pass: multi-file publishing is not atomic, the run deadline does not cover the upload tail, OG/share failures are logged but not alarmed, and overlapping tasks can race on the state object.

🤖 Generated with Claude Code

Commits 0