Members list incomplete #85
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
I looked last week and there were at least dozens of users in the meta.spaces.coracle.social General room. But today I am only seeing three:

Interestingly the list does not include myself or some of the recent posters in the room.
This is weird, I'm seeing the full member list. Is it still abbreviated or has it recovered? The likely culprit here is that we're building the member list in two ways: using the full member list, and falling back to join/leave events.
I just checked again, I still see the same three members. Yes maybe I only have a few recent joins and leaves or something.
I can't replicate this, what happens if you log out and back in? I imagine it's probably a syncing thing, might be fixed in the most recent version.
@mplorentz
Logging out and logging back in gives the same result, and I can also reproduce this across app.flotilla.social, shipwreck.scuttle.works, and a local dev server. I can do some digging since you can't reproduce.
Hello @hodlbod I can take a look at this. The dual path (full member list vs join/leave events) seems like it could cause inconsistencies depending on sync state — I’ll try to reproduce it locally and trace how the list is being populated.
Sounds good, I've considered dropping RELAY_ADD_MEMBER and RELAY_REMOVE_MEMBER events too, it doesn't really do any good except as a fallback for relays with a missing member list, which would be due either to a poor implementation or the members list being too large. But if the members list is absent, we can more reliably show that to the user — i.e., "This space doesn't provide a relay list." We do need to calculate the user's membership in that case though. Let's do something like this:
deriveSpaceMembersentirely and work with the relay's membership list directly. If missing, hide UI elements or show an error state about the missing list.deriveUserSpaceMembershipStatusto directly fetch add/remove member and list events, moving the logic for event replay into that function.Great! I'll start working on the same.
@hodlbod PR #191 is ready for review - implements all 3 point you mentioned.