* 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: fix opening chats on new unread items (after sent or viewed items)
* fix test
* sqlite schema and query plan change
* fix postgresql, update schema
* stabilize tests
---------
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
* fix: jump to quoted message in search and content filter
When tapping a quoted message during search or content filter,
scrollToItem bailed out silently instead of navigating to the message.
Load around the target without search/filter params using
openAroundItemId, which closes search/filter and positions at the
target.
Fixes the overly broad guard added in 219381f9 (#5315).
* remove logs
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
* directory: reflect search/filter state in URL hash
Show current view in the URL fragment so links can be shared
and browser Back/Forward navigates between views:
#active — active groups
#new — recently added
#q=… — search query
Button clicks push history entries; typing replaces state
to avoid flooding the history stack.
* refactor
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
During an active call, the content filter button appeared before the
call timer and end call button in the toolbar. Move the content filter
button after chat-type specific buttons so call controls always appear
first.