Evgeny Poberezkin
291df6e9d0
core: logging of chat events ( #4216 )
...
* core: update simplexmq (persist server errors)
* fix
* same config
* logging
* logging 2
* log
* log 2
* finally
* catch better
* more logs
* logs
* fix
* more logging, context from PROHIBITED
* warning
* more logs
* logs3
* logs4
* logs in simplexmq
* log locks from simplemq
* log queue size
* log sendMessagesB in simplexmq
* update simplexmq
* logs5
* logs6
* logs7
* logs8
* logs8
* logs9
* logs10
* log11
* log12
* fix test
* more logs
* logging
* clean up
* refactor
* simplify
* tags
* log level
* remove network errors from the log
* rename
2024-05-24 21:09:21 +01:00
spaced4ndy
d2d450d1d7
core: check known relays before file reception, support user approval of unknown relays ( #4043 )
...
* core: check known relays before file reception, support user approval of unknown relays
* comment
* reset on not approved agent error
* add privacyAskToApproveRelays to AppSettings
* filter distinct servers
* update simplexmq
* remember user_approved_relays
* refactor
* rename
* update simplexmq
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-05-20 17:23:29 +04:00
spaced4ndy
49e09ca449
core: contact disabled event ( #4194 )
2024-05-16 17:08:13 +04:00
Evgeny Poberezkin
29db2b4e9b
core: command to show duplicate message count ( #4172 )
...
* core: command to show duplicate message count
* update
* updated
* update
* update
* simplexmq
2024-05-13 19:55:57 +01:00
Evgeny Poberezkin
84d7a77a9f
core: update simplexmq (better subscription management) ( #4131 )
...
* core: update simplexmq (better subscription management)
* ui: update settings
* update simplexmq
* simplexmq
* simplexmq
* test output
* delay
* disable test
2024-05-13 08:04:12 +01:00
Evgeny Poberezkin
bc5af35a3e
core: wallpapers api ( #4110 )
...
* core: wallpapers api
* optional colors
* update
* api
* update
* whitespace
* typo
* test, fix
* fix color parsing
* separate UI and Theme color schemes
* update
* enable test
* multiple themes, one per color scheme
* theme overrides as a separate type
* rename
---------
Co-authored-by: Avently <7953703+avently@users.noreply.github.com >
2024-05-08 15:36:20 +01:00
spaced4ndy
7567791866
core: enable PQ encryption for contacts ( #4049 )
...
* wip
* migration
* remove migration
* remove flag wip
* Revert "remove migration"
This reverts commit 9e64663f9d .
* wip
* remove vrange parameterization
* tests mostly pass
* more tests pass
* enable for upgraded contacts
* remove migration
* core: test large messages (#4061 )
* update simplexmq, fix tests
* test test
* another test
* enable tests
* empty
* empty
2024-04-22 17:46:48 +01:00
spaced4ndy
648884044f
core: prohibit forwarding file if it's not found ( #4047 )
2024-04-19 11:31:44 +04:00
Evgeny Poberezkin
a5db36469d
core: api to forward messages ( #3968 )
...
* wip
* wip
* test
* mute
* tests
* simplify (only bool flag)
* re-encrypt file
* tests
* more tests (wip)
* fix relative paths, refactor
* more tests
* more locks
* fix, tests
* more tests
* rework (revert from bool to ids)
* update schema
* more tests
* add to info
* ForwardedMsg container
* Revert "ForwardedMsg container"
This reverts commit bb57f12151 .
* parser
* more tests
* rework api
* more locks
* test
* move
* remove from
* view
* prohibit editing
* item info view
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2024-04-09 16:02:59 +04:00
Evgeny Poberezkin
18efc28d16
core: additional group preferences: prohibit SimpleX links, restrict some features to specific roles ( #3964 )
...
* core: additional group preferences: prohibit SimpleX links, restrict some features to specific roles
* add role to group preference items, tests
2024-04-04 20:41:56 +01:00
spaced4ndy
069395c2a0
core: entity locks ( #3962 )
...
* core: entity locks
* more locks
* update sha256map
* add delay
* clean up
* empty
* fix tests
* empty
* empty
* more delays
* empty
* comment delays
* Revert "comment delays"
This reverts commit 4245b545fb .
* Revert "Revert "comment delays""
This reverts commit f803386945 .
* take lock in the beginning of processing loop
* empty
* empty
* remove lock
* rework file locks
* empty
* fix
* empty
* add connection locks
* empty
* fix test
* empty
* remove commented delays
* add to debug locks
* update
* refactor
* refactor
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-04-04 19:24:42 +01:00
Evgeny Poberezkin
86fe28f1ed
core: chat hooks allowing to extend or customize chat core ( #3953 )
...
* core: chat hooks allowing to extend or customize chat core
* update
* json
* custom response
* user in db queries
2024-03-29 18:30:17 +00:00
Alexander Bondarenko
4a404f14d9
core: add error message to CRSndFileError ( #3894 )
...
* core: add error message to CRSndFileError
* show snd errors
2024-03-12 14:19:40 +00:00
Evgeny Poberezkin
60a73a539e
core: add agreed connection version field ( #3881 )
...
* core: add agreed connection version field
* fix
* progress
* use pqSupport and version to decide compression in messages
* pass version to encodeConnInfoPQ
* update pq enable/disable api
* remove TestConfig
* update nix dependencies
* update texts
* corrections
* create e2ee info items when connection switches from off to on first time
* corrections
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
* comment
* increase test timeout
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2024-03-10 11:31:14 +00:00
spaced4ndy
191d833947
core (pq): tests ( #3882 )
...
* core (pq): tests
* rename
* move
* test allow
* mute test output
* pq combinators
* refactor
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-03-08 23:09:12 +00:00
Evgeny Poberezkin
b86b5578de
Merge branch 'master' into pq
2024-03-08 13:47:10 +00:00
Evgeny Poberezkin
435ea9a453
core: api to pass additional information with standalone file URI ( #3873 )
...
* xftp: redirect for descriptions with more than one chunk
* handle errors
* core: api to pass additional information with standalone file URI
* cleanup
* test info with large file
* Apply suggestions from code review
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
* remove db-mediated client data
* refactor
* fix
---------
Co-authored-by: Alexander Bondarenko <486682+dpwiz@users.noreply.github.com >
2024-03-08 13:38:48 +00:00
Evgeny Poberezkin
1f93d91af5
core: simplify feature versions ( #3879 )
...
* core: simplify feature versions
* update version agreement
* fix
* remove EmptyCase
2024-03-08 13:36:09 +00:00
spaced4ndy
bc2b135880
core (pq): update types ( #3872 )
...
* core (pq): update types
* imports
* encode / max msg size types
* integrate new types
* update types/pq support
* tests compile
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-03-07 17:39:09 +04:00
spaced4ndy
61a3eb32ee
core (pq): global flag only affects new connections; api to allow PQ in old contacts ( #3869 )
2024-03-06 19:06:01 +04:00
spaced4ndy
eebf014ff7
core (pq): integrate agent api, create e2ee info items ( #3859 )
2024-03-05 20:27:00 +04:00
spaced4ndy
2155060ad0
core: groundwork for post-quantum encryption support ( #3845 )
2024-03-03 17:51:42 +04:00
Evgeny Poberezkin
e37654772f
core: api to save/get app settings to migrate them as part of the database ( #3824 )
...
* rfc: migrate app settings as part of export/import/migration
* export/import app settings
* test, fix
* chat: store app settings in db (#3834 )
* chat: store app settings in db
* add combining with app-defaults
* commit schema
* test with tweaked settings
* remove unused error
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
* remove app settings from export/import
* test, more settings
---------
Co-authored-by: Alexander Bondarenko <486682+dpwiz@users.noreply.github.com >
2024-02-24 15:00:16 +00:00
Alexander Bondarenko
daf67c0456
core: add direct xftp upload/download commands ( #3781 )
...
* chat: add direct xftp upload/download commands
* adapt to FileDescriptionURI record
* bump simplexmq
* add description uploading
* filter URIs by size
* cleanup
* add file meta to events
* remove focus
* auto-redirect when no URI fits
* send "upload complete" event with the original file id
* remove description upload command
* add index
* refactor
* update simplexmq
* Apply suggestions from code review
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
* fix /fc command for non-chat uploads
* fix
* rename (tests fail)
* num recipients
* update messages
* split "file complete" events for chats and standalone
* restore xftpSndFileRedirect
* remove unused store error
* add send/cancel test
* untangle standalone views
* fix confused id
* fix /fc and /fs
* resolve comments
* misc fixes
* bump simplexmq
* fix build
* handle redirect errors independently
* fix missing file status in tests
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-02-19 10:21:32 +00:00
spaced4ndy
e39544dd24
core: return ntf server in APIGetNtfToken ( #3797 )
2024-02-12 21:21:20 +04:00
spaced4ndy
16f53490c5
core: block member for all ( #3689 )
...
* core: silence member wip
* change approach
* more types
* remove comment
* bool in protocol msg
* flag in items, event
* send event, process
* apply moderation
* remove comment
* filter for forward, view
* tests
* rename
* separate response, check already blocked
* add test
* fix terminal api
* add comment
* don't send profile update
* corrections
* refactor
* rework - flag blocked by admin
* blocked in intro
* fix test
* cant block unblock self
* muted view, create unknown member
* blocked by admin in members list
* create with maybe null
* protocol changes
* align code with protocol
* revert terminal api
* restrict block api for admins
* stabilize test
* rename
* update protocol/types
* refactor
* refactor2
* stabilize test
* member field
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-01-19 17:57:04 +04:00
Alexander Bondarenko
236daf4391
controller: add GetAgentWorkers/GetAgentWorkerDetails debug commands ( #3681 )
...
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2024-01-17 17:37:29 +00:00
Evgeny Poberezkin
868acd18d6
core: support deleting the last profile (always create user record in agent when user is created) ( #3654 )
...
* core: only skip creating agent user when app is first started
* firstTime
* prompt
* fix test
* if
* simplexmq
* ci timeout
* skip test
* add test timeout
* log test times
* simplexmq
* timeout
* simplexmq without new batching
* Revert "simplexmq without new batching"
This reverts commit 9879bcb57c .
* without new batching again
* with builder, without sized builder
* lazy bytestring, same batching logic
* fewer chunks
* remove lazy
* optimize batching in simplexmq
2024-01-17 15:20:13 +00:00
spaced4ndy
f4f8501eb8
core: members profile update, create profile update chat items ( #3644 )
2024-01-15 19:56:11 +04:00
Alexander Bondarenko
bc8a6f4833
core: add notes chat type ( #3568 )
...
* Add chat type "self"
* rename to Notes
* cover more things
* remove quote, tweak sql
* resolve comments
* constrain ACIQDirection to exclude CTLocal
* add CILocalRcv handling
* plug in migrations and tests
* cover more API, implement new folders
* working create/send/tail
* remove interaction with messages
* add note deletion (api-only)
* add folder deletion
* add getLocalChatItemIdByText
* add APICreateChatItem and files
* add protocol check for getFileTransfer protocol
* replace FTLocal with createLocalFile
* add chat previews
* add folder clear
* add reactions
* add read/unread
* add note updates
* resolve some comments
* remove local reactions
* remove folder names, deletion, add autocreate
* add file deletion check
* add preview pagination test
* add per-item file deletion check
* pull mkChatItem out of createLocal to prevent ci record updates
* use - as notes name
* bump migration ts
* update schema
* resolve comments
* add chat pagination test
* use chat queries from Direct instead
* evict note folders from createUserRecord
* switch to - for note folder chat type prefix and use empty name
* fix getLocalChatXxx
* add explicit createCCNoteFolder for tests
* use overloadedstrings for single-line queries
* add suggested chat list tests
* add notes chat to a user-creating test
* throw correct error for missing file
* remove unique check from schema
* add UndecidableInstances for ghc8.10
* switch to * for chat type sigil
* add file safety test
* add drop index
* remove indentation
* remove repeated folder
* remove redundant filter query, NoteFolderName
* don't attempt to cancel local files when deleting chat item
* rename function
* fix comment
* rename
* fix merge
* fix typo
* remove editable limit
* restore comment
* remove local file cancel
* Revert "remove editable limit"
This reverts commit 65df55caf8 .
* refactor
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2024-01-11 17:01:44 +00:00
spaced4ndy
bfe5d51df7
core, ui: create dummy member record when admin forwards a message from an unknown member ( #3651 )
...
* core: create dummy member record when admin forwards a message from an unknown member
* comments
* update unknown member if announced
* change removed
* change unknown name, revert diff
* revert diff
* ios
* update ios library
* android
* remove changes in iOS project file
* rename event
* remove unknown category
* android
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2024-01-11 17:55:13 +04:00
Alexander Bondarenko
e253c55ba4
core: compatibility with GHC 8.10.7 ( #3608 )
...
* GHC-8.10 compatibility
* tweak setters
* restore membership
* remove Show Batch
* fix bytestring-10 compat
* preserve membership qualifier in names
* a few more memberships
* rename
* remove with-compiler
* ci: add 8.10 builds, limit releases to 9.6
* use matrix.asset_name as release guard
* fix windows_build
* actually use ghc version from matrix
* fix typo
* revert build/hash split
* add ghc to cache key
* Force cache between build and tests
* use explicit caching steps
* skip unneeded tasks
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
Co-authored-by: Avently <7953703+avently@users.noreply.github.com >
2023-12-29 21:15:14 +00:00
Evgeny Poberezkin
7b073ba9f8
core: allow deleting last user ( #3567 )
...
* core: allow deleting last user (tests fail)
* tests, allow activating the hidden user when there is no active user
* hide logs
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
* comment
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
* comment
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2023-12-19 10:26:01 +00:00
Evgeny Poberezkin
f9a125bc32
Merge branch 'master' into ios-notifications
2023-12-11 14:11:00 +00:00
Alexander Bondarenko
35c1975d66
core: chat list pagination ( #3505 )
...
* add pagination args to APIGetChats
* add search to chat list API
* rename arg to paginationTs_ to match type
* lift another condition to ids query
* collect all chat refs before sorting, then get details
* split remaining preview functions
* roll back to collecting ids first with query cleanup
* add connection join back to filter out groups
* extract and expand tests
* add fav/unread args
* WIP
* lay out the queries with favs
* tweak tests
* add fav tests
* fix order by in the before case
* build query footer wholly from pagination
* add migration for direct contacts
* fix setting contact_used
* fix setting contact_used for group link contacts
* align search x filters space with UI, support filter by either favorite or unread, optimize queries, indexes
* always set chat_ts, fix tests
* refactor tests
* fix pagination logic, more tests
* refactor, rename
* increase default pagination count
* comments
* refactor
* comment
* report errors
* refactor
* remove unused type
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2023-12-11 17:50:32 +04:00
Evgeny Poberezkin
d3059afc99
ios, core: better notifications processing to avoid contention for database ( #3485 )
...
* core: forward notifications about message processing (for iOS notifications)
* simplexmq
* the option to keep database key, to allow re-opening the database
* export new init with keepKey and reopen DB api
* stop remote ctrl when suspending chat
* ios: close/re-open db on suspend/activate
* allow activating chat without restoring (for NSE)
* update NSE to suspend/activate (does not work)
* simplexmq
* suspend chat and close database when last notification in the process is processed
* stop reading notifications on message markers
* replace async stream with cancellable concurrent queue
* better synchronization of app and NSE
* remove outside of task
* remove unused var
* whitespace
* more debug logging, handle cancelled read after dequeue
* comments
* more comments
2023-12-09 21:59:40 +00:00
spaced4ndy
5819e42305
core: remove CRNewContactConnection response; mobile, desktop: create pending connections based on api responses (CRNewContactConnection was being used as "event" in UI) ( #3489 )
2023-11-30 20:31:32 +04:00
Alexander Bondarenko
6a21d5c7f1
add remote host bindings ( #3471 )
...
* add remote host bindings
* group iface/address together
* rename migration
* add implementation
* update view and api
* bump upstream
* add schema
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-11-28 16:32:33 +00:00
Evgeny Poberezkin
d29f1bb0cf
core: use fourmolu styles ( #3470 )
2023-11-26 18:16:37 +00:00
Evgeny Poberezkin
b1cf1656a0
core: cli remote control help section ( #3445 )
2023-11-24 10:48:14 +00:00
Alexander Bondarenko
74e80eb348
core: add remote stop reason and state ( #3444 )
...
* add remote stop reason and state
* rename
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-11-23 22:00:20 +00:00
Evgeny Poberezkin
d3f9616f9b
core: report controller info when found via multicast ( #3437 )
...
* core: report controller info when found via multicast
* handle parse error
2023-11-23 10:07:26 +00:00
Evgeny Poberezkin
324f614e00
core: return remote controller port to UI ( #3430 )
2023-11-22 17:40:10 +00:00
spaced4ndy
a8576c2340
core: test forwarded message deduplication, mute terminal error ( #3414 )
2023-11-21 19:25:50 +04:00
Evgeny Poberezkin
970ca3a409
Merge branch 'master' into remote-desktop
2023-11-20 10:35:20 +00:00
spaced4ndy
3a510eeaf0
core: rename forwarded fields ( #3401 )
2023-11-20 14:00:55 +04:00
Evgeny Poberezkin
cc434cda55
Merge branch 'master' into remote-desktop
2023-11-18 18:03:13 +00:00
spaced4ndy
c0e8740f50
core: group message forwarding ( #3360 )
...
* core: group message forwarding types
* xgrpmemcon
* rework xgrpmemcon to use intros table
* only forward w/t error
* forward msg
* xGrpMsgForward, check integrity outside
* deduplicate group messages
* test
* change error
* item forwarded flag
* intro_chat_protocol_version, bump version
* comment
* highly available client option
* more comments
* notify xgrpmemcon on deduplication
* member vrange
* encoding
* remove MsgForward
* remove import
* exclude files from forwarding
* refactor
* rename to align with protocol
* forward more message types
* add events
* remove unused error, function
* add x.file.cancel, x.info and x.grp.mem.new to forwarded messages
* remove unused x.msg.file.cancel
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-11-18 17:52:01 +00:00
Alexander Bondarenko
42e0400014
core: add remote controller discovery with multicast ( #3369 )
...
* draft multicast chat api
* prepare tests
* Plug discovery into chat api
* Add discovery timeout
* post-merge fixes
* rename discovery state to match others
* update for unified invitation
* fix review notices
* rename, remove stack, update simplexmq
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-11-17 18:50:38 +00:00
Alexander Bondarenko
339c3d2be1
Send CRRemote*Stopped on all errors ( #3376 )
...
* Send CRRemote*Stopped on all errors
Commands use the same action, made idempotent and don't send events.
* fix tests
* get http2 cancelling back
2023-11-15 17:31:36 +00:00