Commit graph

432 commits

Author SHA1 Message Date
Jamie Kyle
1cc478180e
Fix call history deletion from sync messages 2023-09-27 12:42:30 -07:00
trevor-signal
503620fe00
Update database error confirmation dialogs 2023-09-21 10:13:25 -04:00
Fedor Indutny
c25867c737
Update better-sqlite3 to 8.5.2 2023-09-18 16:09:09 -07:00
Josh Perez
d0296ececa
Improvements to the media editor 2023-09-14 10:04:48 -07:00
Scott Nonnenberg
be6331d75f
Key cleanup before migration 88 and attempt vacuum only once in 920 2023-09-11 21:19:38 -04:00
trevor-signal
7ca8f4c763
Improve bulk message deletion speed 2023-09-07 16:07:07 -04:00
Fedor Indutny
1d07203fa9
Fix migration for conversations with null json 2023-09-06 15:58:45 -07:00
Fedor Indutny
b6ed789197 Reenable FTS optimization 2023-09-05 09:14:36 -07:00
Fedor Indutny
f3eee779a0
Update better-sqlite3 and remove FTS optimization 2023-08-31 15:33:31 -07:00
Jamie Kyle
eae9e570fc
Add more timestamp fallbacks for call migration 2023-08-29 16:31:45 -07:00
Scott Nonnenberg
cbd16b90bb
Resilience to failed PNI key upload, clean more key tables 2023-08-28 17:26:39 -07:00
Fedor Indutny
e05de1aa6f
Fix reaction field name in migration 88 2023-08-29 00:03:32 +02:00
Scott Nonnenberg
1f7386d7cf
Improve performance of Delete All Data 2023-08-25 09:29:42 -07:00
Scott Nonnenberg
40fe5b8013
Migration 91: Delete in chunks, not all at once 2023-08-24 02:29:05 +02:00
Jamie Kyle
344ebf494d
Mark all calls read when opening calls tab 2023-08-22 17:01:36 -04:00
Scott Nonnenberg
3339899684
Eliminate extra preKeys, fail early on key creation if no PNI identity key
Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com>
2023-08-21 22:15:10 +02:00
trevor-signal
bddf1f432d
Clean story reply screenshot data 2023-08-21 12:36:58 -07:00
Fedor Indutny
6f14b5f45d Fix handling of broken items on startup 2023-08-21 09:30:34 -07:00
Fedor Indutny
1b88e45a42 Fix persistence of username link data 2023-08-21 09:30:33 -07:00
Scott Nonnenberg
90f0f8e255 eraseAllStorageServiceState: Delete everything, delete in memory 2023-08-21 09:30:33 -07:00
Jamie Kyle
0273e1ac1d Fix call migration for unregistered conversations without serviceId 2023-08-21 09:30:33 -07:00
Jamie Kyle
ef0a3de636 Fix legacy call-history messages without a callId
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2023-08-21 09:30:33 -07:00
Fedor Indutny
6f0401b847 Optimize migration 88 2023-08-21 09:30:33 -07:00
Fedor Indutny
8b0da36caa Migrate schema to service ids 2023-08-21 09:30:33 -07:00
Josh Perez
b2319b43d6 Tracks send state for edited messages 2023-08-21 09:30:32 -07:00
Jamie Kyle
9c7dc22a23 Update nav tab badges, fix several call tabs issues 2023-08-21 09:30:32 -07:00
Jamie Kyle
3268d3e6eb Update call tab design based on feedback 2023-08-21 09:30:32 -07:00
Fedor Indutny
366b875fd2 Introduce Service Id Types
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2023-08-21 09:30:32 -07:00
Jamie Kyle
af0beb6d8e
Allow searching calls with legacy conversation id as peerId 2023-08-09 09:48:55 -07:00
Jamie Kyle
da35ffada6
In calls migration, skip old calls without a callId sooner 2023-08-09 09:33:43 -07:00
Jamie Kyle
e20fa41fd5
Drop calls from migration with the same callId and peerId 2023-08-09 09:32:43 -07:00
Jamie Kyle
1eaabb6734
Calls Tab & Group Call Disposition 2023-08-08 17:53:06 -07:00
Scott Nonnenberg
716f852970
New getRecentStoryReplies function to clean up replies in multiple convos 2023-07-21 15:10:32 -07:00
Fedor Indutny
e1d2dbd8ff
Username Link QR Code 2023-07-20 05:14:08 +02:00
trevor-signal
54d4734f05 Stop preemptively generating screenshots for video stories 2023-07-19 16:21:31 -07:00
trevor-signal
f400d39466 Add option to log all query times
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2023-07-19 16:21:31 -07:00
Scott Nonnenberg
9d03d9b59c Fix initial kyber key hydration; improve generation and logging 2023-07-19 16:21:31 -07:00
Scott Nonnenberg
b6445a6af0 Support for loading, storing, and using kyber keys in decryption 2023-07-19 16:21:30 -07:00
trevor-signal
9c6fb29edb
Include @mentioned names in search results 2023-06-26 14:25:48 -04:00
Scott Nonnenberg
efc237d106
Additional logging, more reliable contact/group sync fetch 2023-06-14 13:51:49 -07:00
trevor-signal
d012779e87
Show mentioned badges & enable scrolling to mentions in conversations 2023-05-23 14:59:07 -07:00
Fedor Indutny
6e5d9f5dd8
Optimize getAdjacentMessagesByConversationSync 2023-05-17 10:35:21 -07:00
Fedor Indutny
5869717cd3
Use correct timestamp for receipts of edited messages 2023-05-16 10:37:12 -07:00
Fedor Indutny
d9c0366219 Fix sticker manager 2023-05-09 10:52:39 -04:00
Josh Perez
be60b3d225 Moves SQL to full IPC 2023-05-09 10:52:39 -04:00
Josh Perez
1f2cde6d04
Send edited messages support
Co-authored-by: Fedor Indutnyy <indutny@signal.org>
2023-04-20 09:31:59 -07:00
Jamie Kyle
76b9d07acf
Remove Signal.Util 2023-04-10 20:54:43 -07:00
Scott Nonnenberg
d9d820e72a
Support for receiving formatted messages
Co-authored-by: Alvaro Carrasco <alvaro@signal.org>
2023-04-10 09:31:45 -07:00
Fedor Indutny
f61d8f38b0
Context menu for left pane list items 2023-04-05 13:48:00 -07:00
Josh Perez
36e21c0134
Receive support for editing messages 2023-03-27 19:48:57 -04:00
Jamie Kyle
1d549a9991
Multi-select forwarding and deleting 2023-03-20 15:23:53 -07:00
Fedor Indutny
5dff1768bd
Page media in Lightbox 2023-03-03 19:03:15 -08:00
Fedor Indutny
bd40a7fb98
Graceful handling of readonly DB error 2023-03-02 09:59:18 -08:00
Fedor Indutny
287d7e70e5
Fix change counter check in fts optimization 2023-02-21 14:06:35 -08:00
Alvaro
a4b5968579
Removed deletion of over-attempts-unprocessed from saveUnprocessedSync 2023-02-21 14:03:48 -07:00
Fedor Indutny
329fe8f393
Periodically optimize FTS table 2023-02-09 13:13:08 -08:00
Fedor Indutny
486cbe0471
Support reporting token on envelope 2023-02-07 16:55:12 -08:00
Jamie Kyle
2bbcc4676e
Move receipt queues into conversation queue to handle 428s 2023-02-06 09:24:34 -08:00
Alvaro
e51f582bfb
Removed hard limit on unprocessed messages in cache 2023-02-02 11:39:07 -08:00
Fedor Indutny
e64816830b
Revert "Periodically optimize FTS table"
This reverts commit 5dfdde998b.
2023-01-30 15:55:11 -08:00
Fedor Indutny
270804d62d
Reorder migrations 2023-01-30 11:55:38 -08:00
Fedor Indutny
67b108c718
Optimize conversation open performance 2023-01-27 09:47:24 -08:00
Fedor Indutny
2637df0c42
Use Signal tokenizer in FTS5 2023-01-26 15:53:22 -08:00
Fedor Indutny
78a33f28c8
Fix change counter check in fts optimization 2023-01-25 13:22:13 -08:00
Fedor Indutny
5dfdde998b
Periodically optimize FTS table 2023-01-24 11:13:00 -08:00
Fedor Indutny
dba2a6b166
Fix syntax error in old SQL migration 2023-01-23 17:07:00 -08:00
Fedor Indutny
6ddb12cd99
Fully remove DQS from SQL queries 2023-01-18 17:06:07 -08:00
Fedor Indutny
c6e184016b
Log sqlite3 warnings 2023-01-18 14:12:33 -08:00
Fedor Indutny
efc54e44c4
Further optimize getConversationMessageStats 2023-01-17 16:44:22 -08:00
Fedor Indutny
1c22fe653c
Optimize some indices and queries 2023-01-17 14:07:21 -07:00
Fedor Indutny
d7b09b9703
Deprecate phone number discovery notification 2023-01-12 14:18:08 -08:00
Scott Nonnenberg
50a0110192
Stories: Proper notifications and handling of out-of-order messages 2023-01-11 14:54:06 -08:00
Jamie Kyle
e5638c0b20
Call Disposition 2023-01-09 16:52:01 -08:00
Scott Nonnenberg
b8234765bf
Update Backbone types: attributes is T - and fix failing type checks 2023-01-05 13:58:13 -08:00
Dimitris Apostolou
3c80272673 Fix typos 2023-01-03 13:02:01 -08:00
Jamie Kyle
3705b959d6
Remove end year from licenses 2023-01-03 11:55:46 -08:00
Fedor Indutny
dec23725e5
Use ReadonlyArrays in conversation model and redux 2022-12-21 16:07:02 -08:00
Fedor Indutny
ecbf84638d
Increase max attempt count for unprocessed items 2022-12-21 16:06:50 -08:00
Fedor Indutny
ed271d92ea
Add no-misused/floating-promises lint rule 2022-12-21 10:41:48 -08:00
Fedor Indutny
50d9b6e5e1
Use @signalapp/better-sqlite3 2022-12-14 12:48:36 -08:00
Nikita Karamov
7cd566726f Replace mkdirp with native fs.mkdir
Prior to this change, Signal-Desktop was using a rather ancient version
of `mkdirp`, which was meant for Node.js versions without native support
for this kind of functionality. Starting with Node v10, `fs.mkdir()` can
perform recursive directory creation.

Since Signal-Desktop doesn't utilize any advantages of using such an old
version of `mkdirp` [1] (let alone any version of `mkdirp`), we can
replace it with the native methods of `fs` (or `fs/promises`).

This transition slightly reduces the amount of packages needed to be
downloaded and included in the final app since it now relies on the
built-in API of Node.js.
2022-12-13 11:01:10 -08:00
Fedor Indutny
e08a2fa86c
Optimize database after running migrations 2022-12-13 09:07:48 -08:00
Scott Nonnenberg
f366454893
updatePNI: Cleanup only for obsolete PNI 2022-12-12 14:06:16 -08:00
Scott Nonnenberg
a49a6f2057
Notifications for a few merge-related scenarios 2022-12-05 14:46:54 -08:00
Fedor Indutny
d6d53f9d18
Optimize loading stories 2022-11-28 09:19:48 -08:00
Fedor Indutny
991580a1ed
Improve error handling during group sends 2022-11-22 10:43:43 -08:00
Fedor Indutny
98ef4c627a
Update eslint to 8.27.0 2022-11-17 16:45:19 -08:00
Fedor Indutny
efa29dc800
Fix getKnownMessageAttachments query 2022-11-17 13:06:19 -07:00
Evan Hahn
a88243f26d
Better handle group call ring race conditions 2022-11-16 18:52:04 -08:00
Fedor Indutny
854c946cc7
Interactive cleanup of orphaned attachments 2022-11-16 16:29:15 -08:00
Fedor Indutny
e6ebfe4fca
Update typescript to 4.8.4 2022-11-14 11:35:37 -08:00
Fedor Indutny
a0c03025d8
Relax schema 41 migration 2022-11-08 09:17:21 -08:00
Fedor Indutny
c286e0f9c6
Drop deprecated SQL columns 2022-11-03 10:25:27 -07:00
Josh Perez
471a9e2e98
Show group replies icon for stories with replies 2022-10-22 02:26:16 -04:00
Fedor Indutny
e14c3241c5
Refresh stories in redux when data changes 2022-10-20 12:16:37 -07:00
Scott Nonnenberg
4ec48df5b9
Additional work to include story=true on send 2022-10-07 10:02:08 -07:00
Scott Nonnenberg
2b2594c20a
Stories: Fix sender key persistence, pipe story: true into sends 2022-09-30 09:59:36 -07:00
Josh Perez
67c706a7ef
Ensure deleting conversation deletes story replies 2022-09-29 17:57:11 -07:00
Fedor Indutny
c0082adc56
Revert "Enable fullfsync mode in the database"
This reverts commit a2eac80034.
2022-09-27 13:15:53 -07:00
Scott Nonnenberg
a7253be213
getUnreadByConversationAndMarkRead: Take 'now' param for reliable tests 2022-09-22 16:49:06 -07:00
Jamie Kyle
eb10aafd7c
tsc:allowUnreachableCode, eslint:no-unreachable, assert->assertDev 2022-09-15 13:17:15 -06:00
Jamie Kyle
0086216c9d
Add eqeqeq rule but require == for null 2022-09-14 14:40:44 -07:00
Scott Nonnenberg
192c85bb0e getNextAttachmentDownloadJobs: Delete malformed jobs 2022-09-07 14:17:08 -07:00
Fedor Indutny
7ce4beb270
Refactor contact sync processing 2022-08-24 22:04:42 -07:00
Fedor Indutny
757af2cbbe
Include ACI+Access Keys pairs with CDSI requests 2022-08-18 13:44:53 -07:00
Fedor Indutny
00cfd92dd0
Send and receive PniSignatureMessage 2022-08-15 14:53:33 -07:00
Josh Perez
0a81376ca0
Do not accept stories without a name and no deletedAtTimestamp 2022-08-11 18:03:22 -04:00
Josh Perez
f9c2e9b0af
softAssert that messageId is always a UUID 2022-08-11 14:02:25 -07:00
Scott Nonnenberg
faf6c41332
Early preparations for PNP Contact Merging 2022-08-09 14:39:00 -07:00
Fedor Indutny
b47a906211
Stickers in storage service 2022-08-03 10:10:49 -07:00
Fedor Indutny
79b48115e6 Handle PniChangeNumber 2022-07-28 14:50:10 -04:00
Josh Perez
e321e1fea8
Edit distribution lists via story settings menu 2022-07-20 20:07:09 -04:00
Scott Nonnenberg
2f252b8e26
Repair broken attachments with non-array 'data' fields 2022-07-18 13:01:43 -07:00
Scott Nonnenberg
a2eac80034 Enable fullfsync mode in the database 2022-07-15 14:47:24 -07:00
Fedor Indutny
a450e13a99
Fetch PNI group credentials 2022-07-08 13:46:25 -07:00
Fedor Indutny
3111b804de
Add an extra assert to Data.saveMessage 2022-07-06 15:53:25 -07:00
Scott Nonnenberg
5fcf97b43b
Introduce logging for unexpected incoming urgent values 2022-07-05 15:20:30 -07:00
Scott Nonnenberg
06190b1434
Introduce new urgent property for outgoing messages 2022-07-01 09:55:13 -07:00
Josh Perez
9155784d56
Sync my stories with primary device 2022-06-30 20:52:03 -04:00
Scott Nonnenberg
4568527232
Increase backstop queue timeouts across the app 2022-06-27 09:46:43 -07:00
Fedor Indutny
63679f5af6
Increment and store message migration attempts 2022-06-20 14:18:23 -07:00
Scott Nonnenberg
2464e0a9c1
Convert signal.js and preload.js to Typescript 2022-06-13 14:39:35 -07:00
Fedor Indutny
6aeddb9301
Order unprocessed envelopes by receivedAtCounter 2022-06-10 09:09:21 -07:00
Scott Nonnenberg
924c271b13
Convert js/modules/types/message to Typescript 2022-06-09 18:10:20 -07:00
Evan Hahn
f50a6abe36
Remove unused eslint-disables 2022-06-03 14:07:51 -07:00
Scott Nonnenberg
d753fe8fcb
getUnreadByConversationAndMarkRead: Only query incoming messages 2022-06-02 18:09:13 -07:00
Evan Hahn
2a2f44a73a
Convert message cleanup services to TypeScript 2022-05-31 16:53:14 -07:00
Fedor Indutny
dfc310805a
Allow manually retrying attachment downloads 2022-05-23 16:07:41 -07:00
Fedor Indutny
e86a312b74
Disable part of the migration 58 2022-05-18 09:44:43 -07:00
Scott Nonnenberg
105508c50f
Update unread count when creating important local notifications 2022-05-11 19:45:20 -07:00
Josh Perez
ddde85cdd8
Soft assert for hydrating story context 2022-05-11 16:47:19 -07:00
Scott Nonnenberg
69d0ed3309
Always provide isGroup/storyId to message-fetching functions 2022-05-11 15:20:47 -07:00
Scott Nonnenberg
364d690cf3
On database error: Escape copies error and quits, additional logging 2022-05-03 12:06:47 -07:00
Scott Nonnenberg
e078a2ae54
Ensure that seenStatus is always updated along with readStatus 2022-04-29 16:42:47 -07:00
Fedor Indutny
d6b58d23d6
Increment unprocessed attempts when fetching 2022-04-28 15:28:30 -07:00
Scott Nonnenberg
25282e3afa
getTotalUnreadForConversation: Add missing isGroup parameter 2022-04-27 10:41:24 -07:00
Josh Perez
2f44e33c9c
Move link notification to the conversation hero 2022-04-25 14:03:24 -07:00
Scott Nonnenberg
3a1df01c9e
New 'unseenStatus' field for certain secondary message types 2022-04-22 11:35:14 -07:00
Josh Perez
774246b6e2
Drop story replies from group timeline 2022-04-20 16:33:38 -07:00
Josh Perez
e3d537cbd3
Render group stories 2022-04-14 20:08:46 -04:00
Chris Eager
2f5e4f1b98
Update message reporting to use sender ACI instead of E164 2022-04-12 12:54:04 -07:00
Fedor Indutny
42108c9ca9
Flush last conversation message save on shutdown 2022-04-12 11:16:58 -07:00
Scott Nonnenberg
9e54f55c22
Ensure that waitForAll functions catch and log thrown errors 2022-04-11 10:53:57 -07:00
Fedor Indutny
a15d84aade
Update better-sqlite3 2022-04-07 15:49:23 -07:00
Fedor Indutny
e1e1cfb892
Use fuse.js for regular contact search 2022-04-07 11:47:12 -07:00
Fedor Indutny
f7c3a44056
Update electron to 17.3.0 2022-03-29 10:06:42 -07:00
Josh Perez
3b5cc26fec
Adds logic around downloading stories 2022-03-28 18:10:08 -07:00
Fedor Indutny
ca3f8b7df0
Store receivedAtCounter separately for unprocessed 2022-03-24 14:28:56 -07:00
Fedor Indutny
c5a3ffddf9
Limit number of GV2 banned members 2022-03-23 15:34:51 -07:00
Fedor Indutny
35b5087dc0
Short-circuit storyId predicate to optimize query 2022-03-21 14:21:35 -07:00