Merge branch 'master' into f/directory-search

Co-authored-by: Claude <noreply@anthropic.com>

# Conflicts:
#	apps/simplex-directory-service/src/Directory/Events.hs
#	apps/simplex-directory-service/src/Directory/Service.hs
#	src/Simplex/Chat/Core.hs
#	src/Simplex/Chat/Library/Internal.hs
#	tests/Bots/DirectoryTests.hs
This commit is contained in:
spaced4ndy
2026-10-12 17:34:32 +00:00
996 changed files with 48336 additions and 3431 deletions
+9 -1
View File
@@ -81,6 +81,14 @@ chatCommandsDocsData =
("APIDeleteMyAddress", [], "Delete bot address.", ["CRUserContactLinkDeleted", "CRChatCmdError"], [], Just UNBackground, "/_delete_address " <> Param "userId"),
("APIShowMyAddress", [], "Get bot address and settings.", ["CRUserContactLink", "CRChatCmdError"], [], Nothing, "/_show_address " <> Param "userId"),
("APISetProfileAddress", [], "Add address to bot profile.", ["CRUserProfileUpdated", "CRUserProfileNoChange", "CRChatCmdError"], [], Just UNInteractive, "/_profile_address " <> Param "userId" <> " " <> OnOff "enable"),
( "APISetUserDomain",
[],
"Set or remove SimpleX name of bot address. The name must be registered with the address short link.",
["CRUserProfileUpdated", "CRUserProfileNoChange", "CRChatCmdError"],
[TD "CESimplexDomainNotReady" "The name does not resolve to the address short link"],
Just UNInteractive,
"/_set domain " <> Param "userId" <> Optional "" (" " <> Param "$0") "simplexDomain"
),
("APISetAddressSettings", [], "Set bot address settings.", ["CRUserContactLinkUpdated", "CRChatCmdError"], [], Just UNInteractive, "/_address_settings " <> Param "userId" <> OnOffParam "pq_ratchet" "pqRatchet" Nothing <> " " <> Json "settings")
]
),
@@ -111,6 +119,7 @@ chatCommandsDocsData =
( "Group commands",
"Commands to manage and moderate groups. These commands can be used with business chats as well - they are groups. E.g., a common scenario would be to add human agents to business chat with the customer who connected via business address.",
[ ("APIAddMember", [], "Add contact to group. Requires bot to have Admin role.", ["CRSentGroupInvitation", "CRChatCmdError"], [], Just UNInteractive, "/_add #" <> Param "groupId" <> " " <> Param "contactId" <> " " <> Param "memberRole"),
("APIAddMemberViaGroup", [], "Add member of another group to group. Requires bot to have Admin role in the group, and direct messages allowed for its role in another group.", ["CRSentGroupInvitationViaGroup", "CRChatCmdError"], [TD "CEPeerChatVRangeIncompatible" "Member's client version is older than required"], Just UNInteractive, "/_add #" <> Param "groupId" <> " #" <> Param "viaGroupId" <> " " <> Param "groupMemberId" <> " " <> Param "memberRole"),
("APIJoinGroup", ["enableNtfs"], "Join group.", ["CRUserAcceptedGroupSent", "CRChatCmdError"], [], Just UNInteractive, "/_join #" <> Param "groupId"),
("APIAcceptMember", [], "Accept group member. Requires Admin role.", ["CRMemberAccepted", "CRChatCmdError"], [TD "CEGroupMemberNotActive" "Member is not connected yet"], Just UNBackground, "/_accept member #" <> Param "groupId" <> " " <> Param "groupMemberId" <> " " <> Param "memberRole"),
("APIMembersRole", [], "Set members role. Requires Admin role.", ["CRMembersRoleUser", "CRChatCmdError"], [], Just UNBackground, "/_member role #" <> Param "groupId" <> " " <> Join ',' "groupMemberIds" <> " " <> Param "memberRole"),
@@ -439,7 +448,6 @@ undocumentedCommands =
"APISetServerOperators",
"APISetUserContactReceipts",
"APISetUserGroupReceipts",
"APISetUserDomain",
"APISetUserServers",
"APISetUserUIThemes",
"APIStandaloneFileInfo",
+1
View File
@@ -85,6 +85,7 @@ chatEventsDocsData =
"Bots may use these events to manage users' groups and business address groups.\n\n\
\*Please note*: programming groups is more complex than programming direct connections",
[ ("CEvtReceivedGroupInvitation", ""),
("CEvtReceivedGroupInvitationViaGroup", "Received group invitation from member of another group."),
("CEvtUserJoinedGroup", "Bot user joined group. Received when connection via group link completes."),
("CEvtGroupUpdated", "Group profile or preferences updated."),
("CEvtJoinedGroupMember", "Another member joined group."),
+1
View File
@@ -92,6 +92,7 @@ chatResponsesDocsData =
("CRRemoteCtrlConnecting", "Remote controller is connecting."),
("CRSentConfirmation", "Confirmation sent to one-time invitation"),
("CRSentGroupInvitation", "Group invitation sent"),
("CRSentGroupInvitationViaGroup", "Group invitation sent to member of another group"),
("CRSentInvitation", "Invitation sent to contact address"),
("CRSentInvitationToContact", "Invitation sent to contact (when connecting via SimpleX name to a known contact address)."),
("CRServiceReplyAccepted", "Service reply accepted for delivery. `connectionId` correlates the reply delivery event."),
+1 -1
View File
@@ -298,7 +298,7 @@ chatTypesDocsData =
(sti @GroupLink, STRecord, "", [], "", ""),
(sti @GroupLinkOwner, STRecord, "", [], "", ""),
(sti @GroupLinkPlan, STUnion, "GLP", [], "", ""),
(sti @GroupMember, STRecord, "", [], "", ""),
(removeField "memberBadgeProof" $ sti @GroupMember, STRecord, "", [], "", ""),
(sti @GroupMemberAdmission, STRecord, "", [], "", ""),
(sti @GroupMemberCategory, STEnum' (dropPfxSfx "GC" "Member"), "", [], "", ""),
(sti @GroupMemberRef, STRecord, "", [], "", ""),