If somebody reposts a note that was a reply to something your spam filter filtered out, you cannot see it in thread view.
The thread view will find the parent but won't be able to render down to the note in question because the spam node will be ripped out.
This isn't a big deal if the spam is actually spam, but when people are aggressive in spam filtering often times it is just someone that none of your followed people follow.
For me I couldn't see this in thread view:
nostr:nevent1qqsd6n5j5fmf2tyalz6slu3ytyaypg7kf26pxqq2efy5vtjqkww46ygpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs8c894c
Because this note was filtered:
nostr:nevent1qqszh3c8jh0cqlf5q06myfleqlc6pqq4wte0mgvr4lysx58wfd2dllqppemhxue69uhkummn9ekx7mp0qyfhwumn8ghj7mmxve3ksctfdch8qatz9uq32amnwvaz7tmjv4kxz7fwv3sk6atn9e5k7tc6kz6vq
Also I notice that filtering is happening EVERY FRAME because the UI is calling GLOBALS.db().get_replies() which is calling the filter. That is not very efficient.
Putting the spam into the dismissed list GLOBALS.dismissed.blocking_write().push(event.id) doesn't work because dismissed is not consulted for threads. Even if it were, it would stop the rendering.
If somebody reposts a note that was a reply to something your spam filter filtered out, you cannot see it in thread view.
The thread view will find the parent but won't be able to render down to the note in question because the spam node will be ripped out.
This isn't a big deal if the spam is actually spam, but when people are aggressive in spam filtering often times it is just someone that none of your followed people follow.
For me I couldn't see this in thread view: nostr:nevent1qqsd6n5j5fmf2tyalz6slu3ytyaypg7kf26pxqq2efy5vtjqkww46ygpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs8c894c
Because this note was filtered: nostr:nevent1qqszh3c8jh0cqlf5q06myfleqlc6pqq4wte0mgvr4lysx58wfd2dllqppemhxue69uhkummn9ekx7mp0qyfhwumn8ghj7mmxve3ksctfdch8qatz9uq32amnwvaz7tmjv4kxz7fwv3sk6atn9e5k7tc6kz6vq
Also I notice that filtering is happening EVERY FRAME because the UI is calling
GLOBALS.db().get_replies()
which is calling the filter. That is not very efficient.Putting the spam into the dismissed list
GLOBALS.dismissed.blocking_write().push(event.id)
doesn't work because dismissed is not consulted for threads. Even if it were, it would stop the rendering.I'm really not sure how to fix.