* bots: document APIGetChats command and CRApiChats response
* bots: regenerate API docs and TypeScript types
* simplex-chat-nodejs: add apiGetChats
* support bot: avoid OOM on large databases
apiListGroups / apiListContacts return every record in one response and
overflow V8's string allocation on large DBs. Replace list-then-find-by-id
patterns with apiGetChat(type, id, 0) lookups, and the one genuine scan
(refreshAllCards) with paginated apiGetChats, count=1000.
* support bot: update test assertions to match current message text
* bots: simplify PaginationByTime, expose only PTLast
* simplex-chat-nodejs: bump types and nodejs versions
* simplex-chat-nodejs: add apiCreateMemberContact and apiSendMemberContactInvitation
* simplex-chat-nodejs: add integration test for apiCreateMemberContact and apiSendMemberContactInvitation
Test creates a 3-user group with direct messages enabled, then verifies:
- apiCreateMemberContact creates a DM contact between group members
- apiSendMemberContactInvitation sends an invitation that the recipient receives
* simplex-chat-nodejs: bump @simplex-chat/types to ^0.4.0
The @simplex-chat/types package (auto-generated from Haskell types) added
a required `userChatRelay: boolean` field to the NewUser interface, but
apiCreateActiveUser was never updated to pass it, causing a TypeScript
compilation error.
Set userChatRelay to false, which preserves the pre-existing behavior
(no chat relay provisioned for the new user profile).
* core: add custom data commands, fix groups parser
- Add APISetGroupCustomData and APISetContactCustomData to ChatCommand,
with parsers (/_set custom #, /_set custom @) and processors
following the APISetChatUIThemes pattern
- Fix APIListGroups parser missing space ("/_groups" -> "/_groups ")
to align with auto-generated cmdString
- Add chatCommandsDocsData entries for APISetGroupCustomData,
APISetContactCustomData, and APISetUserAutoAcceptMemberContacts
* core: named fields for codegen, run codegen
- Use named record fields for APISetGroupCustomData,
APISetContactCustomData, APISetUserAutoAcceptMemberContacts
(required for chatCommandsDocsData field resolution)
- Fix OnOff field name to "onOff" (avoids clash with User field)
- Remove APISetUserAutoAcceptMemberContacts from undocumentedCommands
- Regenerate COMMANDS.md and commands.ts
* nodejs: add ChatApi wrappers for custom data and apiGetChat
- apiSetGroupCustomData, apiSetContactCustomData
- apiSetAutoAcceptMemberContacts
- apiGetChat (manual wrapper, APIGetChat undocumented)