Presence¶
Presence is being somewhere with other people right now. It is not history and it is not a message left for later. It is who is here at this moment.
Why presence matters¶
Most online communication is asynchronous. You send, they read later, they reply, and you read later still. That works for many things, but it is not being together. Kunuleco also supports the other kind, where you can see who else is here, you notice when someone arrives, and what you say reaches the people present as you say it.
Two kinds of here¶
In a place on your node. When you are in a place, you are present there. who lists
the people in your current place and everyone signed in on your node.
In a presence. A presence is a named gathering that one node hosts and people on other
nodes join. Every node has a lobby. You can make your own with create ~presence <name>.
Someone on another node joins it with join <host> <presence>, for example
join mira#7K2QX9 officers, and leaves with leave <presence>.
The door on a presence¶
A presence you make with create ~presence has a door, and only you, its owner, can change
it. It is open by default, which means anyone who knows its name may join.
door officers show its door and how many people are invited
door officers invite only people you invite may join
door officers open anyone who knows its name may join
door officers invite mira#7K2QX9 invite a person
door officers uninvite mira#7K2QX9
An invite is stored against the identity a connection proved, not against a typed name. You can invite someone by the name their connection proved, by the exact name of an account on your node, or by their reference. A person you did not invite is told that the host refused the join, because the presence is invite-only and its owner has not invited them. The lobby is always open.
When someone joins, the host records only the name their connection proved, and a join under any other name is refused. On your side of a presence you joined, your node accepts that presence's messages only from its host.
Presence is not permission¶
A door decides who may be present. It grants nothing else. Someone in your presence or your place cannot open a capsule there unless you have granted it to them, and granting capsule access is a separate decision. See Trust and standing.
How it travels¶
The host keeps the member list. When someone speaks, the host passes the message to each member on another node over a connection it already has to them. It tries the LAN session first, then the member's stored connection, then Tor, then Veilid. If none of those works, the person who spoke is told that the message was not sent. The full order is in Reference: Transports.
The member list is kept in memory, not written to disk. When a member's connection closes, the host takes them off the list and the others see the updated membership, so nothing of their presence is left behind.
Related¶
- Places and Halls: where you are.
- Connections: how the nodes reach each other.
- Trust and standing: why presence is separate from access.