This commit is contained in:
spaced4ndy
2025-10-22 20:56:40 +04:00
parent b847c0e5b0
commit 48463379c0
2 changed files with 19 additions and 13 deletions
+18 -4
View File
@@ -79,10 +79,6 @@ Notes:
- Chat relay should reject contact requests to its relay link until chat relay confirms it is attached to the group link data. Can be based on `GroupRelayOwnStatus`, see below.
- Owner public key for signing group actions and messages can be stored as part of group short link data (`GroupShortLinkData`).
- Relays public keys can be stored as part of relay info in link data (`ChatRelayInfo`), sent to owner in `x.grp.relay.acpt`.
- Recovery.
- For owner:
@@ -316,3 +312,21 @@ Notes:
- We can prohibit to remove last relay without adding new one.
- Relays can synchronize history.
- Can be considered after MVP.
## TODO list
- Chat commands for creating group with relays.
- Protocol events processing.
- Recovery for both owner and relay when adding relay to group.
- Agent `prepareConnectionToJoin` api to return link that will be created.
- Asynchronous version of agent `setConnShortLink` api, correlation in chat.
- Agent to support adding relays to link (it has stub `relays :: [ConnShortLink 'CMContact]`).
- New connection entity for secondary member-in-relayed-group connection - priority/messages connections.
- Differentiate connection usage by priority in chat logic (receiving messages vs sending requests to relay).
- Finalize model - statuses, schema.
- UI for relay management (user level, similar to list of servers).
- UI for creating group with relays.
- UI for managing relays in group.
- Relay status updates events on adding relays for UI integration.
- Relay removal.
- Relay periodic checks for relay link presence, auto-removal on absence.
+1 -9
View File
@@ -1222,16 +1222,8 @@ data ContactShortLinkData = ContactShortLinkData
}
deriving (Show)
-- TODO [chat relays] owner's public key for signing group actions and messages
data GroupShortLinkData = GroupShortLinkData
{ groupProfile :: GroupProfile,
chatRelays :: [ChatRelayInfo]
}
deriving (Show)
-- TODO [chat relays] relays public keys
data ChatRelayInfo = ChatRelayInfo
{ relayLink :: ConnLinkContact
{ groupProfile :: GroupProfile
}
deriving (Show)