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

refactor(panoptiblog): share one publication parser and standing model #587

targeting main from claude/pano-standing
Closed opened by and assigned to affine-nimcha.test.pds.did.bot
targeting main from claude/pano-standing

Unify the Panoptiblog row parser, page link, formatters and stale/movement rules behind one panoptiblogStanding() value. The dataset now supplies totals.rankedPublications, previousGeneratedAt, and an optional previousRank; the shared model carries rank, field size, movement, snapshot date and stale state.

No UI changes in this slice. The Page card and Trending render exactly as before, but from one parser and one set of helpers. Tests cover standing rank/field/movement/stale cases and the stricter malformed-row rules.

🤖 Generated with Claude Code

Commits 1

refactor(panoptiblog): share one publication parser and standing model