Commit graph

354 commits

Author SHA1 Message Date
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
Josh Perez
3620309f22
Show story replies in the timeline 2022-03-16 10:30:14 -07:00
Scott Nonnenberg
703bb8a3a3
Introduce new 'Block request' button in timeline 2022-03-15 17:11:28 -07:00
Josh Perez
eb91eb6fec
Process incoming story messages 2022-03-04 13:14:52 -08:00
Scott Nonnenberg
30783c887c
Introduce new conversationJobQueue 2022-02-16 10:36:21 -08:00
Scott Nonnenberg
90356d4c0f
Move a number of sync messages to jobs for retry 2022-01-14 13:34:52 -08:00
Scott Nonnenberg
06165cb742
Include sender keys in SignalProtocolStore zones 2022-01-07 18:12:13 -08:00
Scott Nonnenberg
a17e157e7b
Fix messages_unread index 2022-01-07 12:51:19 -08:00
Fedor Indutny
fa8ff2ae4c
Fix messages_preview index 2022-01-07 11:51:41 -08:00
Fedor Indutny
9d04daff5f
Fix message_user_initiated 2021-12-21 22:49:40 +01:00
Fedor Indutny
f5312b9463
Fix getUnreadReactionsAndMarkRead 2021-12-21 21:01:09 +01:00
Scott Nonnenberg
0163ef203b
loadAndScroll: Use one transaction to pull all data: old/new/metrics 2021-12-20 22:05:13 +01:00
Scott Nonnenberg
60a53656af
Optimize a few queries 2021-12-20 22:04:02 +01:00
Fedor Indutny
3228e22428
Fix batching in getUnreadReactionsAndMarkRead 2021-12-20 16:15:36 +01:00
Evan Hahn
770c80b9ee
Remove several @ts-ignores 2021-12-16 17:14:21 -08:00
Scott Nonnenberg
42cb570029
messages table: introduce new computed isStory field for index usage 2021-12-15 09:17:14 +01:00
Fedor Indutny
71ca3c0764
Drop old unprocessed envelopes 2021-12-13 17:25:44 -08:00
Evan Hahn
ebcd3e3e43
Remove unused getAllPrivateConversations SQL function 2021-12-10 15:15:00 -08:00
Scott Nonnenberg
34fd945f83
No Backbone in data layer; server/client interfaces are now similar 2021-12-10 16:51:54 -06:00
Scott Nonnenberg
161b0e5379
Refactor sender key sends to allow distribution lists 2021-12-09 18:15:59 -08:00
Scott Nonnenberg
fdc9885baa
Migration and data access functions for stories 2021-12-08 20:52:46 +01:00
Evan Hahn
67b17ec317
Hide "become a sustainer" button if you're already a sustainer 2021-11-30 17:29:57 +01:00
Scott Nonnenberg
39e10efa39
Conversation last message/activity: Use IS/IS NOT to better handle NULL 2021-11-18 15:15:38 -08:00
Fedor Indutny
54c60ebb4f
Treat "file is not a database" as database corruption 2021-11-17 13:17:45 -08:00
Fedor Indutny
066a23a6a9
Preliminary support for destinationUuid field 2021-11-12 13:26:52 -08:00
Evan Hahn
5619eeca83
Upgrade Prettier to 2.4.1 2021-11-11 16:43:05 -06:00
Fedor Indutny
e50f76a909
Reduce amount of logging in 41st migration 2021-11-09 11:31:41 -06:00
Fedor Indutny
7f9beef055
Extra logging for GV2 UUID migration 2021-11-03 09:59:46 -05:00
Evan Hahn
f647c4e053
Display user badges 2021-11-02 16:01:13 -07:00
Fedor Indutny
246583d274
Fix runtime error during SQL migration 2021-10-27 12:15:03 -05:00
Fedor Indutny
63fcdbe787
Use UUIDs in group database schema 2021-10-26 15:59:08 -07:00
Evan Hahn
74fde10ff5
Prefer import type when importing types 2021-10-26 14:15:33 -05:00
Fedor Indutny
1b1ed2cd05
Better reporting for DB corruption errors 2021-10-21 13:13:33 -07:00
Fedor Indutny
2c51c3fe84
Use console logger when regular is not available 2021-10-21 12:49:53 -07:00
Scott Nonnenberg
efde909484
Delete reactions when their parent message is deleted 2021-10-15 15:54:31 -07:00
Josh Perez
9dc5214db7
Fix clear all data 2021-10-15 11:43:13 -07:00
Fedor Indutny
8cf6748dce
Delay initializing SQL in renderer 2021-10-07 11:16:51 -07:00
Fedor Indutny
dddb3129cc
Optimize removeKnownAttachments 2021-10-05 09:36:07 -07:00
Fedor Indutny
af387095be
API to suspend/resume tasks with timeout 2021-09-27 11:22:46 -07:00
Fedor Indutny
4ef0bf96cc
Uint8Array migration 2021-09-23 17:49:05 -07:00
Evan Hahn
48daaaa81d
Ensure getLastConversationPreview never returns expired messages 2021-09-20 10:57:59 -07:00
Fedor Indutny
b83c00f43f
Defer unprocessed item attempt update 2021-09-17 16:11:24 -07:00
Josh Perez
65ddf0a9e8
Import log instead of using it off of window 2021-09-17 14:27:53 -04:00
Fedor Indutny
87b56fcfd0
Use logger interface in main sql worker 2021-09-16 14:54:06 -07:00
Fedor Indutny
3f7957c20d
Self-repairing message counter 2021-09-15 11:45:22 -07:00
Fedor Indutny
039bd072ed
Extra tests for SignalProtocolStore migration 2021-09-15 11:43:34 -07:00
Evan Hahn
fbedda194c
Handle missing conversation in SQL migration 41 2021-09-10 09:19:45 -07:00
Fedor Indutny
c7e7d55af4
UUID-keyed lookups in SignalProtocolStore 2021-09-09 19:38:11 -07:00
Fedor Indutny
7510be0caf
Detect database corruption consistently 2021-09-08 13:39:14 -07:00
Fedor Indutny
1a3f87f7f6
Fix call order when closing sqlite in renderer 2021-09-07 14:21:55 -07:00
Scott Nonnenberg
c6278aa173
Lightbox: A number of tweaks 2021-09-07 09:12:26 -07:00
Fedor Indutny
6f3191117f
Batch deleteSentProtoRecipient queries 2021-08-31 14:35:01 -07:00
Evan Hahn
a85dd1be36
Retry outbound "normal" messages for up to a day 2021-08-31 13:58:39 -07:00
Fedor Indutny
798533a417
Keep UI settings on heartbeat expiration 2021-08-30 14:39:57 -07:00
Scott Nonnenberg
dcf29078f4
ConversationView: Improve types 2021-08-30 14:32:56 -07:00
Evan Hahn
9e9a815a2b
ESLint: allow for..of 2021-08-26 13:18:00 -05:00
Evan Hahn
f86f753df9
Add durations utility for computing durations 2021-08-26 09:10:58 -05:00
Fedor Indutny
488ac22860
Display dialog on corrupted database 2021-08-24 13:31:06 -07:00
Evan Hahn
79c976668b
Receive rings for group calls 2021-08-20 09:06:15 -07:00
Fedor Indutny
ac55b8d643
Close database in renderer 2021-08-18 09:52:48 -07:00
Fedor Indutny
d222376b8f
Run WAL checkpoint on exit 2021-08-17 14:55:34 -07:00
Fedor Indutny
962515031d
Reduce number of SQL queries during conversation update 2021-08-16 11:56:27 -05:00
Evan Hahn
b0750e5f4e
Show "unplayed" dot on incoming audio messages 2021-08-12 13:15:55 -05:00
Scott Nonnenberg
3f1adec614
removeAllConfiguration: Use json_remove instead of json_patch 2021-08-11 13:11:31 -07:00
Fedor Indutny
8703b0e020
Reduce log file size 2021-08-09 15:04:17 -07:00
Fedor Indutny
a001882d58
Change Phone Number notifications 2021-08-05 16:34:49 -07:00
Fedor Indutny
6637fc2b95
Migrate sourceDevice from TEXT to INTEGER 2021-08-02 14:55:31 -07:00
Evan Hahn
689542a9b4
Show additional data in debug log header 2021-07-30 09:43:16 -07:00
Fedor Indutny
93f60ee5a6
Don't forget to cleanup in-memory sticker pack 2021-07-29 11:59:26 -07:00
Fedor Indutny
886e8966ff
Drop support for signaling key 2021-07-19 18:11:07 -07:00
Scott Nonnenberg
7761d83055
Update timers whenever we mark messages read 2021-07-19 13:45:18 -07:00
Scott Nonnenberg
a42c41ed01
Message Send Log to enable comprehensive resend 2021-07-15 16:48:09 -07:00
Fedor Indutny
5da5ffe504
Add placeholder migration 36 2021-07-12 17:32:17 -07:00
Fedor Indutny
ad217c808d
Revert "Refactor outbound delivery state"
This reverts commit 9c48a95eb5.
2021-07-12 16:51:45 -07:00
Fedor Indutny
455820a9cf
Fix "delete and restart" after database error 2021-07-09 17:43:36 -07:00
Evan Hahn
9c48a95eb5
Refactor outbound delivery state 2021-07-09 16:38:51 -05:00
Fedor Indutny
ddbbe3a6b1
More protobufjs migration 2021-07-09 12:36:10 -07:00
Evan Hahn
da27a6ac64
Add array-type TypeScript ESLint rule 2021-07-08 14:55:48 -07:00
Scott Nonnenberg
3b444479c0
Include new database corruption check for SQL errors 2021-06-30 15:06:50 -07:00