Specify profile ordering by last post

Add indexer profileRecency index, recent-profile ordering, and backfill specs;
seed profileRecency in the recent-profile-identity fixture; mark the feature in
progress in the backlog.

By specifier.
This commit is contained in:
Chris Troutner
2026-09-20 14:12:13 -07:00
parent 915971a46c
commit 1119988009
5 changed files with 277 additions and 6 deletions
+15 -1
View File
@@ -31,7 +31,21 @@ focus is **front-end improvements** to `psf-memo-client` (the React SPA).
## In progress
- None.
- **Profile ordering by last post (2026-09-20):** `/profile/recent` should
list only profiles that have posted, ordered by their most recent qualifying
post instead of their most recent profile update. A qualifying post is a
top-level post (`0x6d02`) or a topic message (`0x6d0c`); replies (`0x6d03`)
and poll creations (`0x6d10`) do not qualify. Profiles that have never posted
are dropped. Ordering is by last post's block height descending, then seen
descending, then address ascending, considering confirmed blocks only. The
Block and Seen columns report the last post's block height and timestamp
rather than the set-profile transaction's. The indexer maintains a
`profileRecency` index (mirroring `topicRecency`) so the read never scans
`addrPostHeights` or sorts every profile; a backfill builds it from existing
data. Indexer + DB (the client renders the returned block/seen unchanged).
Specs: `psf-memo-indexer/specs/profile-recency-indexing.feature`,
`psf-memo-db/specs/recent-profile-ordering.feature`,
`psf-memo-db/specs/backfill-profile-recency.feature`.
## Recently completed