feat: unified social identity layer (local + federated interop) #12
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?
Currently local users and federated remote actors are handled through completely separate code paths. Every social feature (following, watchlists, goals, activity feed) has to be implemented twice — once for local users, once for remote actors. This makes collaborative features like shared watchlists (#11) harder to build.
Problem:
UserId(local) and remote actor URL (federated) are different types with no common abstractionProposal:
Introduce a
SocialIdentityabstraction in the domain layer that unifies local users and remote actors:Social features would operate on
SocialIdentityinstead of branching on local/remote. The resolution layer maps aSocialIdentityto the right repository (local DB vs AP fetch).Benefits:
Scope:
This is foundational infrastructure, not a user-facing feature. Best done before #11 so collaborative features build on top of it.
Open questions: