751 views
owned this note
# p2-chat 1st WG notes
## Participants
- CatAClock
- cyrneko / alexia
- Flori Ava Star
- mei
- Lyx
- Charlotte
- Nora of the E
- Person Meetup
- Noah
- sunz
- lumi
- Woof Woof Grrrrrr
- Sqaaakoi
- Speykious
_Presenting: mei, flori_
_Notetaking: CatAClock_
## Agenda
## Discussion Prompt
- Agree on what we want to build / What is in scope:
- Types of community, e.g. huge discord server, DMs & GCs.
- Privacy vs simplicity tradeoff (E2EE strength)
- Read reciepts, chat history, presence/user status, mutual servers/friends.
- Read the existing spec together
- Come up with some candidates for what to specify next, and understand the problem space
## Discussion
- [name=flori] starting the discussion on what is in scope
- [name=alexia] things like stages, event planning, etc. - more exotic ones, we should eventually survey which ones are improtant to implement later on.
- [name=lyx] how big a community do we want to support?
+ [name=alexia] very big communities are in scope, we just dont know how to do it yet
but we dont want to infinitely scale
- [name=flori] wants to have something that can support small communities of people interacting with each other. Massive Discord groups are in scope, but the main focus should be small groups
- [name=Charlotte] asks if voice chat is in scope; part of the messaging app they are making
- [name=alexia] Voice chatting is big enough to be it's on feature, but it can also be extended from polyproto-chat.
- [name=Charlotte] for example: if both servers have the Voice Chat spec, you can ring someone else on another server.
- [name=flori] We have "extension" support, as in a server advertises what it supports. If a client recognizes that a server doesn't have Voice Chat, then the client can take that information and do something with it.
- [name=mei] recommends sticking with chat first, before going into Voice Chat
- Everyone got disconnected: meet.proton.me has a limited free tier. Only 60 minutes a chat.
- Everyone reconnected
- [name=flori] recommends heavily that every message should be E2EE.
- [name=alexia] follows up with an interesting point: for Signal, it limits groups to 1,000 people because after that it doesn't scale well. What about servers with 10,000+ people?
- [name=speykious] recommends their [E2EE Design Plan](https://github.com/orgs/fluxerapp/discussions/972). For E2EE with every message, it losses it's appeal the more people are within a group chat. In the future, there are experiments with something else for E2EE, but that isn't currently in the present.
- [name=Charlotte] suggests that maybe there should be an option to turn off E2EE for public spaces to help scale beyond the previously theorized limits of E2EE.
- Public chats shouldn't be encrypted. Some communities are centered around being public.
- [name=alexia] We shouldn't have a button to turn off encryption, but also unsure about public chats. Maybe these parameters should be chosen at the start (as in if chats should be private or public)
- [name=flori] If you want to use E2EE, design it from the beginning. It's easier to make it unencrypted later rather than leaving something unencrypted to begin and make security later.
- [name=alexia] Currently, we have no IP address privacy. Should we have something to proxy through a server so that way people can have that privacy?
- [name=flori] It should be in scope. What good is E2EE if you reveal who you are with your IP (v4 or v6) address? We should at least look into it.
- [name=alexia] We could use a TURN server for something like this.
- [name=flori] believes it's important to have something isn't connected to a "governing body", proxies would facilitate this.
- [name=flori] We should have read recipts and chat history.
- [name=Charlotte] For read recipts, would turning it off also not allow you to receive them, like Signal?
- [name=flori] This seems like an implementation concern.
- [name=alexia] asks what should be the MVP items for the release? what we do in 1 year is different than what we can do in 10 years
- [name=mei] This discussion is about what we should specify, not making a roadmap for what we are creating. That would come in the future.
- [name=Charlotte & Lyx] Do we store the messages? If so, how?
- [name=flori] Talking about Direct Messages, if we look at that we can answer a lot of questions. This is because a DM is the simplest form of communication.
- [name=Charlotte] If we are talking about DMs, we should generalize it to "Group Chat", so we can make it easier on us for expanding communications.
- [name=alexia] This should be talked about when writing the spec.
- Spec reading. Opened [the specification](https://polyproto.org/docs/protocols/chat)
## Spec reading
_Presenting: flori_
https://polyproto.org/docs/protocols/chat
- The core spec defines how servers interact with each other
- There are also extensions, which allow you to expand capabilities by providing a path
- for example, /.p2/chat/v1 would be polyproto chat specification
- the specification includes terminology used within and how things should work.
- right now, it has how text should work, how "spaces" (think Discord server) work, how channels work (currently looks like a wrapper for messages), and permissions.
- [name=Speykious] Should Polyproto be able to interact with Discord?
- [name=flori] We shouldn't really have it interact with Discord. Instead, the implementer should decide if it works with Discord.
- [name=Charlotte] How should display names for channels work? Also we shouldn't go and support Fluxer because of their relationship with Gen AI.
- [name=flori] Good point. We are running out of time, but do note we are NOT a fan of Gen AI. We have a clear stance against it.
- [name=Charlotte] to clarify, we shouldn't bend the protocol to fit Fluxer
- multiple people agreed.
- [name=lumi] Are we using WebSockets?
- [name=flori] yeah. and HTTP. That's what we are developing the specification *for*
- What if someone wants to use something different?
- [name=flori] this sounds like an implementation question, but...
- [name=flori] The reason why we chose specific parts (like using JSON) is not because we like them, but because they are widely used.
## Wrapping up
- [name=Charlotte] Where should we meet next time?
- [name=mei] We are probably going to have more of these meetings in the future to discuss and write spec.
### feelings and thoughts
- [name=Lyx] Feels a bit overwhelmed. Especially when it comes to the more technical aspects. During this session, it was fine. In the future, maybe specialized areas. Would conribute to FrontEnd.
- [name=Charlotte] This session was fine. Only problem is that the meeting ended. Maybe host on a different platform to avoid that 60 minute timer. Doesn't know what to contribute to.
- [name=mei] We do have a "Good First Issues" [website](https://issues.polyphony.chat/). You can also go to the Zulip and ask questions there.
- [name=Speykious] Good first session. Only problem is disconnection. Also didn't expect plurality support with Polyproto. Would contribute to Polyproto, but doesn't know what.
- [name=flori] plurality support is planned for polyproto-core, so no matter what there is plurality support.
- (in chat) [name=sunz] we'd like it if next time we could go over ways we can help out as someone who's just getting into the project, maybe mentorship or smt
- [name=noah] Good first session, but how will people interact with the notes?
+ [name=mei] we will publish it on codeberg
+ [name=flori] it will also be published on fedi, matrix, zulip etc.
- [name=cataclock] Feeling good, a bit tired from notetaking for a while. Would like to find a different meeting software. As for contributing, they usually focus on frontend but have been trying to diversify into backend. Interested in developing against a published spec.
- [name=lumi] Good first session. Will participate in future meetings. Will not contribute much yet because they are working on other things
- [name=mei] Glad that the session didn't go wrong in the usual ways. Going with everyone about not using meet.proton.me and switching to something else. Contributing to the spec mainly, but wants to balance life on the weekends.
- [name=Charlotte] (chat) I would also want to participate in future meetings btw
- Everyone got disconnected. Again.
- everyone who hasn't left yet reconnected.
- [name=mewi] meowing session?
- many people responded with meowing.
- [name=lumi] Do we have a meowing feature in Polyproto?
- [name=flori] we should :3 (sarcastically).
## Follow-up items
- [name=alexia] Currently, we have no IP address privacy. Should we have something to proxy through a server so that way people can have that privacy?
- E2EE UI for showing/hiding when a small chat grows to a very large size where it is probably unfeasible
## Meeting ended 10:59 PST
Hey cataclock are you on zulip? ~mei
Will make an account over there ~Cat
Ok then yeah, you can find me there if you want to chat about anything or want to notetake again (in a shorter meeting, hopefully)
Understood ~Cat
Cheers :3
:3 ~Cat