* core: use batched subscriptions
* update simplexmq
* remove comments
* clean up
* refactor
* remove todo
* revert change
* revert change
* remove comment
* add delay to the async group test
* add more delay in test
* core: communicate call invitations state between NSE and app via db
* enable tests
* delete calls, encoding
* load calls on start
* remove line
* remove table alias
Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com>
* core: import and export of chat archive
* export chat archive
* import archive, support starting chat after it is stopped
* test for maintenance mode
* test/fix archive with files
* prevent starting chat after chat database was deleted or imported
* update simplexmq
* use simplex.chat relay
* update webrtc settings
* WebRTCView to use command/response types
* compress WebRTC session descriptions, simple web UI for calls
* update webrtc ui
* use webworked in desktop browser
* use RTCRtpScriptTransform in safari
* update android type
* refactor
* add await
* terminal: show version from .cabal file
* update welcome message
* terminal: helo on message quotes
* terminal: allow replies in groups without specifying a member
* core: update version to 1.3.3
* core: change quoted messages types/protocol
* remove comments and unused field
* rename CIQuote type
* change type for quote direction to allow unknown group member, use QuotedMsg to save received chat item
* change queries of quoted items when the sending group member is known
* refactor
* fix: make ciQuote polymorphic
* rfc for message replies and chat item references
* update replies rfc
* save received/sent shared message ids, migration and types for replies
* include reply/forward into MsgContent type
* add sharedMsgId to CIMeta
* save/get shared_msg_id to/from chat items table
* parameterize CIRef by chat type
* add CIRef to ChatItem when it is read from the db
* terminal command to send message replies
* include quoted content into chat items
* quoted message direction in direct chats (TODO test)
* test for replies with quotes to group messages - own and others
* split MsgContainer from MsgContent
* make quoting usable in the terminal
* add formattedText to quotes
* rename migration
* update JSON encoding for MsgContainer
* allow quoted replies to messages from clients not supporting it/not sending msg IDs
* update rfc
* fix group replies
* add APISendMessageQuote and use it for terminal commands
* change how quoted messages are shown in groups
* terminal: make input responsible for echo to keep commands synchronous (as in mobile) and avoid echo delays
* use echo
Co-authored-by: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com>
Co-authored-by: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com>
* started chat model
* refactor processing commands and UI events
* message chat event processing
* groups: delayed delivery of messages and introductions to announced members (#217)
* combine migrations, rename fields
* show all view messages vis ChatResponse type
* serialize chat response
* update C api
* remove unused extensions, fix typos
Co-authored-by: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com>
* naming; full names on start for groups
* allow to re-add member
* save and reuse connection request
* TODO
* wording
* index
* user id
* revert to listToMaybe . map fromOnly
* add to test
* fix null conversion
* Update src/Simplex/Chat.hs
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
* Update src/Simplex/Chat.hs
* fix
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
* update for ConectionMode parameters
* update with CONF notification and different ConnectionRequest types
* high level flow for contact requests, add x.con to chat protocol
* store functions for user contact links and contact requests
* contact links work
* subscribe to user contact link connection
* subscribe to user contact address: messages
* send rejectContact to the agents when rejected in chat
* user contact link (address) test
* Update src/Simplex/Chat/View.hs
* Update tests/ChatTests.hs
* user address help, fix tests
* delete connection requests when contact link deleted
Co-authored-by: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com>
* add sender/recipient info to file types
* send file to group (WIP)
* send file to group, test
* show file status when sending file to group
* notification when cancelled sending to group, remove chunks when file complete or canceleld
* schema for sending files
* send file "invitation"
* receive file "invitation"
* send/receive file flow (with stubs)
* update simplexmq
* send and receive the file (WIP - only the first chunk)
* sending and receiving file works (but it is slow)
* use correct terminal output for file sending/receiving
* improve file transfer, support cancellation
* command to show file transfer status and progress
* file transfer tests
* resume file transfer on restart (WIP)
* stabilize test of recipient cancelling file transfer
* trying to improve file transfer on restart
* update SMP block size and file chunk size
* acquire agent lock before chat lock to test whether it avoids deadlock
* fix resuming sending file on client restart
* manual message ACK (prevents losing messages between agent and chat client and stabilizes resuming file reception after restart)
* do NOT send file chunk after receiving it before it is appended to the file
* update file chunk size for SMP block size 8192 (set in smpDefaultConfig)
* save received files to ~/Downloads folder by default; create empty file when file is accepted
* keep file handle used to create empty file
* check message integrity
* fix trying to resume sending file when it was not yet accepted
* fix subscribing to pending connections on start
* update simplexmq (fixes smp-server syntax parser)
* TMVar lock to avoid subscriber and client processing in parallel, fix the test
* run SMP server as part of the test
* stabilize tests
* update simplexmq
* test: stabilize getting invitation from terminal
* remove unused import
* simplify test
* remove group member
* leave group, fix remove member, tests for leave group/remove member
* delete group with test
* prevent contact deletion error when it is a group member
* support inviting the group member who left or was removed
* use small retry interval in the tests
* test multiline outputs
* chat commands to list members and to quit chat
* merge profiles using probe
* merge contacts connected to the same user based on successful profile probe
* delete display name after merging contacts
* probe: rename "existing" contacts to "matching"
* add category and local display name to group members, extend member status
* additional chat commands, serialization
* parse all chat messages
* draft group protocol implementation
* group protocol: connect new member to existing members (TODO fix race condition with contact connection)
* send/receive group messages (race condition still there - the 3rd member cannot send either group or direct messages to the 2nd member - CONN SIMPLEX)
* send x.grp.mem.info and x.ok in SMP confirmation
* fix host user adding new member, update simplexmq to fix sqlite concurrency, remove logs, make # optional in chat commands
* more precise view messages about members joining and connecting
* track connection status; only send messages to active members (TODO change to current members); group name autocomplete after joining the group
* track via which group the contact was added; show only one message when a contact fully connected; group tests
* test sending messages to the new direct contacts created via the group
* update simplexmq to include .cabal file
* remove unused import
* create group after invitation
* add group invitation to db, show sent and received group invitations
* test creating group and sending invitation
* establish group connections (WIP)
* connect user to the inviter, notification, member classification
* test adding same contact, add display_names table and functions
* rename display_name -> full_name
* use shared namespace for usernames, contact names and group names
* create group
* add user as member, store methods to get group and to create group member
* add group member and send member invitation
* fix ci: use simplexmq from github
* chat protocol: create SMP agent connection when inviting member
* update protocol, started group invitation receiving