The view no longer keeps a set of every record URI it has ever taken in. A record is a duplicate if its account's history (the last 32 records) already holds it, and once 32 are held, a record older than all of them is refused, so a poller re-reading an old page cannot push newer records out. The oldest record by createdAt is the one dropped. A record from an account the view does not hold, such as a did:plc author, is refused, so nothing is kept that forget cannot remove.
Identities::remember appends to the log only when the document or presence changed. A repeat resolution of the same document updates last_confirmed in memory, so the log and its replay grow with changes, not with #identity events. Fixes 3mwixckgvyx2v (https://tangled.org/permadeath.com/vibescrobble.com/issues).
This touches see_scrobble and forget like https://tangled.org/permadeath.com/vibescrobble.com/pulls/103 does; whichever lands second needs a small rebase.
🤖 Generated with Claude Code