Closed will-hanlen closed 2 months ago
From #11:
_"but we probably want to move to a different architecture:
aggregator publisher subscriber."_
I've split the logic between a publisher and a subscriber shrub. This feels cleaner on the backend side, but there's a lot of code re-use on the rendering side.
Next steps are to fix a synching bug with the subscriber dependencies and add UI elements for creating a new DM and adding people to a DM.
(Does "DM" imply only two people? These are multi-party now.)
our.bowl issue is fixed, but still need to rework all the con files to use an updated here.bowl which also includes the our
chat
chat
maintains intermediate state while negotiating the existence of DMs and groupchats
~zod
invites ~nec
to a group chat and ~nec
needs to accept, chat
is responsible for knowing whether or not ~nec has accepted the invite@p
, groups are given custom names~nec/chat/~zod/theirs
<> ~zod/chat/~nec/ours
, ~zod/chat/~nec/theirs
<> ~nec/chat/~zod/ours
%chat
and %chat-link
examples, but renamed so that the negotiator can be called chat
DM and groupchat UIs should have iMessage-style chat bubbles (on the right-hand side if it's your message and left-hand side if it's somebody else's)
lib/messages.hoon
.loader
in correct spotcon/messenger.hoon
Testing
negotiator shrub which sets up mutual DM subscriptions and hub-and-spoke groupchats.
future milestone: users can accept or reject DM and groupchat joins.
stretch goal: pull in Circles to populate options for who to start DMs/groupchats with