* 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
* asynchronously subscribe to user connections
* send subscription status summaries to view/api
* refactor
* add help messages in summaries
* update simplexmq
* rename config field
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
* add chat items migration
* chat and chat items types
* queries draft
* ChatInfo with optional ChatItem
* schema adjustments
* flat schema and queries
* refactor ChatResponse using ChatItem types
* schema adjustments
* refactor GroupInfo to include GroupMember of the user
* remove Message
* createNewChatItem, sendDirectChatItem
* refactor to use GroupInfo in Chat type and all ChatResponses
* replace ContactName with Contact in some ChatResponse constructors
* remove Group selectors
* minor correction
* refactor
* refactor 2
* nullable created_by_msg_id
* remove normalized schema and queries
* ON DELETE CASCADE / SET NULL
* CIContent to Text
* files chat_item_id
* fix
* apply ciContentToText
* queries folder
* refactor
* moar refactor
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@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>
* initial mobile app design draft
* add proposals
* xcode project
* refactor function to send to view as parameter
* export C interface
* remove unused files
* run chat from chatInit
* split chatStart to a separate function
* replace file-embed with QQ
* add mobile views
* server using IP address
* pass dbFilePrefix as parameter to chatInit
* comment on enabling logging
* fix mobile db config
* update C API, make user non-optional in ChatController
* restore SMP server addresses
* revert the change in the tests
* flip dependency - now Controller depends on Terminal
* make ChatController independent of terminal package
* fix Main.hs
* add iOS .gitignore
* refactor Simplex.Chat.Terminal
Co-authored-by: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com>
* started chat protocol
* text message example
* events json
* same style comments
* jsonc
* num for rendering
* try to fix comment rendering
* revert num
* chat protocol: make msg params closer to types
* AppMessage type
* combine new and old simplexmq dependencies
* json parsers
* version-compatible types for connection requests
* more parsers
* remove import
* decode/encode from/to AppMessage
* make group invitation a property in params
* switch chat to the new agent
* remove "compatibility" attempt
* new JSON encoding for chat messages
* simplexmq from github
* update MsgContent name
Co-authored-by: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com>
* Add /version and /v flags
* Move version info from C Chat.Help to Chat.View
* Move version string, use it in Main startup
* use "SimpleX Chat" consistently
Co-authored-by: TheTaoOfSu <TheTaoOfSu@protonmail.com>
* 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