Looks cute - internally it sounds like XMPP rosters if we imagine all mail messages/attachments are pulled too.
Some issues at a glance
- no display names is a good thing - but then "name is retrieved from their public profile" does not sound very good
- ascii for local usernames will probably annoy a lot of people, maybe we should just remove the letters and just issue people numbers (i'm not being sarcastic)
- disallowing IP addresses in the remote part by definition sounds unnecessary
I think there are some gaps on the notification side of things - the agent not being able to verify them (and maybe dropping) or conversely accepting notifications that it should not.
What really puts me off here is the unnecessary use of HTTP .e.g discovery moves from DNS to well known file (webfinger?). Not sure what the benefit is, but ok. And the use of a novel authentication scheme makes me nervous.
It was a nice read and I agree with the point that making this pull based helps. But I wish it did not try to invent so much in one go