Commit graph

311 commits

Author SHA1 Message Date
Fedor Indutny
6aeddb9301
Order unprocessed envelopes by receivedAtCounter 2022-06-10 09:09:21 -07:00
Scott Nonnenberg
d753fe8fcb
getUnreadByConversationAndMarkRead: Only query incoming messages 2022-06-02 18:09:13 -07:00
Fedor Indutny
dfc310805a
Allow manually retrying attachment downloads 2022-05-23 16:07:41 -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
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
Fedor Indutny
42108c9ca9
Flush last conversation message save on shutdown 2022-04-12 11:16:58 -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
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
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
Fedor Indutny
fa8ff2ae4c
Fix messages_preview index 2022-01-07 11:51:41 -08: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
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
Scott Nonnenberg
39e10efa39
Conversation last message/activity: Use IS/IS NOT to better handle NULL 2021-11-18 15:15:38 -08:00
Evan Hahn
5619eeca83
Upgrade Prettier to 2.4.1 2021-11-11 16:43:05 -06:00
Evan Hahn
f647c4e053
Display user badges 2021-11-02 16:01:13 -07: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
Fedor Indutny
dddb3129cc
Optimize removeKnownAttachments 2021-10-05 09:36:07 -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
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
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
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
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
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
Fedor Indutny
23acbf284e
Create missing index for markRead 2021-06-29 09:45:31 -07:00
Fedor Indutny
323eb0688b
Switch to FULL synchronous of sqlite 2021-06-23 09:16:41 -07:00
Fedor Indutny
9bffd24708
Use smaller batches for multi-var queries 2021-06-22 11:44:51 -07:00
Evan Hahn
ca330899bb
Backfill missing expire times for incoming messages 2021-06-18 12:12:04 -07:00
Scott Nonnenberg
68f1023946
Move message.getPropsForBubble and friends to selectors 2021-06-17 10:15:10 -07:00
Evan Hahn
03a187097f
Disappearing message cleanups 2021-06-16 17:20:17 -05:00
Evan Hahn
61ad1231df
Ensure we always set expiration timer 2021-06-15 16:49:05 -07:00
Fedor Indutny
8f5086227a
Enforce stronger types for ArrayBuffers and storage 2021-06-14 17:09:37 -07:00
Fedor Indutny
a6ce00ff37
Fix check for universal timer notification 2021-06-02 13:55:10 -07:00
Fedor Indutny
4ee46cb490
Fix typo in SQL migration logs 2021-06-02 13:43:54 -05:00
Fedor Indutny
19f8042cd3
Universal Disappearing Messages 2021-06-01 13:45:43 -07:00
Fedor Indutny
e4d7e1e9c8
Simplify attachment jobs SQL query 2021-06-01 10:13:10 -07:00
Josh Perez
28f016ce48
Conversation Colors 2021-05-28 09:15:17 -07:00
Scott Nonnenberg
ee41e4f71d
A few small bugfixes 2021-05-27 13:47:39 -07:00
Evan Hahn
d4dc9b8e39 Message Requests: Add new "Report spam and block" button 2021-05-27 13:37:58 -07:00
Evan Hahn
20e501d9f1
Remove 4 unused database functions 2021-05-27 08:45:45 -07:00
Scott Nonnenberg
e6f1ec2b6b
Send support for Sender Key 2021-05-25 15:40:04 -07:00
Fedor Indutny
9693700dd2
Switch to WAL after cipher migration 2021-05-25 11:13:37 -07:00
Fedor Indutny
227f532ec2
Fix processing of cached envelopes 2021-05-24 14:30:56 -07:00
Evan Hahn
f3e207d0b0 Use timestamp instead of full model for tap-to-view age outs 2021-05-20 17:37:17 -07:00
Evan Hahn
6ccf97b5d0 getMessageById query should only select necessary field 2021-05-20 17:37:10 -07:00
Fedor Indutny
94d2c56ab9 Introduce in-memory transactions for sessions 2021-05-20 17:37:09 -07:00
Josh Perez
215d90fbe8 Always update unreadCount for conversations 2021-05-20 17:37:09 -07:00
Fedor Indutny
41a4643380 Use synchronous methods in transactions 2021-05-20 17:37:09 -07:00
Scott Nonnenberg
e6bab06510 Receive support for Sender Key
Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com>
2021-05-20 17:37:08 -07:00
Josh Perez
887b2c1db1
Get the correct unread count for a conversation 2021-05-10 11:49:13 -07:00
Josh Perez
1276368f94
Optimize read messages query 2021-05-07 17:50:14 -04:00
Josh Perez
e0c324e4ba
Send/Receive support for reaction read syncs 2021-05-06 21:15:25 -04:00
Evan Hahn
05703c2719
Blur avatars of unapproved conversations 2021-04-30 14:40:25 -05:00
Evan Hahn
bbd7fd3854
Initial support for job queue 2021-04-29 18:02:27 -05:00
Scott Nonnenberg
86d2a4b5dd decrypt/encrypt with libsignal-client, remove libsignal-protocol-javascript 2021-04-29 14:27:35 -07:00
Fedor Indutny
a76534ed45
Fix FTS trigger for messages with NULL body 2021-04-28 15:22:33 -07:00
Fedor Indutny
cd489a35fd
sql: use temporary tables for FTS results 2021-04-27 13:24:57 -07:00
Fedor Indutny
c9d74654bf
sql: don't update FTS when body didn't change 2021-04-26 17:31:15 -07:00
Fedor Indutny
dd173216ed
sql: speed up fts query, report slow queries 2021-04-26 15:01:22 -07:00
Evan Hahn
ea6562b7ac Merge branch 'hiqua-no_lower_limit_query' into next-beta 2021-04-14 14:14:57 -07:00
Evan Hahn
1366c93ed8 Fix getUnprocessedCount error message 2021-04-14 12:31:10 -05:00
Fedor Indutny
cb75e8b5f7
Add missing awaits in SQL logging 2021-04-14 10:50:45 -05:00
Evan Hahn
842d7980a6
Remove old comment about await in loop 2021-04-13 15:22:28 -07:00
Fedor Indutny
15247e1c9a Fix addStickerPackReference 2021-04-09 00:06:46 -04:00
Fedor Indutny
af9e038add Optimize hot queries
`getLastConversationX()` is called from debounced function, but
depending on how fast the fetch from the server is the actual
invocations could happen for every other message. Prepare and optimize
queries to save time.
2021-04-09 00:06:46 -04:00
Fedor Indutny
eb6d1b7216 Fix StickerType in sql/Interface and fix query 2021-04-09 00:05:41 -04:00
Fedor Indutny
0555ef0a1e Change primary key for messages table 2021-04-08 23:53:18 -04:00
Fedor Indutny
1fc7769f9f Optimize database and run quick check 2021-04-08 23:53:18 -04:00
Fedor Indutny
b9248e04ed Cache SQL statements used during startup 2021-04-08 23:53:18 -04:00
Fedor Indutny
37c8c1727f Types, better-sqlite3, and worker_threads for our sqlite 2021-04-08 23:53:18 -04:00
Fedor Indutny
5f9a75d9f4
journal_mode=WAL and synchronous=NORMAL for database 2021-03-24 14:35:06 -07:00
Scott Nonnenberg
2df7569389
saveMessages: Delete from messages_fts table even in insert case 2021-03-22 18:09:50 -07:00
Evan Hahn
b725ed2ffb Refresh profiles on app start (at most every 12 hours) 2021-03-19 16:57:36 -04:00
Fedor Indutny
021b54cb75 Fix sqlite3 threadpool exhaustion with db.serialize() on startup 2021-03-19 16:57:35 -04:00
Josh Perez
d82ce07942 Improve cold start performance 2021-03-19 16:57:35 -04:00
Scott Nonnenberg
7e629edd21 Move SignalProtocolStore to TypeScript 2021-03-19 16:53:52 -04:00
Evan Hahn
06fb4fd0bc Add "new conversation" composer for direct messages 2021-03-19 16:53:51 -04:00
Evan Hahn
6bbcf86772 Shorten searchConversations SQL query 2021-03-19 16:53:51 -04:00
Scott Nonnenberg
2f90d6aca9
Manually manage full-text search table 2021-02-04 12:46:55 -08:00
Scott Nonnenberg
21611266e5
Cache: Store sourceUuid for message rehydration 2021-02-04 11:43:10 -08:00
Scott Nonnenberg
089e2864b3
Reduce unnecessary or overly verbose logging 2021-02-04 11:39:07 -08:00
Scott Nonnenberg
12c44d40a8
makeLookup: Allow for key of zero 2021-01-27 14:39:45 -08:00
Evan Hahn
8a72607fa7 Prefer type to interface and add an ESLint rule 2021-01-25 18:29:00 -08:00
Scott Nonnenberg
be9721c72d
Don't change left pane preview or order when someone leaves group 2021-01-20 11:31:44 -06:00
Scott Nonnenberg
9f81b4157b Also use sent_at whenever we query database with received_at 2021-01-19 17:35:11 -08:00
Scott Nonnenberg
8116a8561d
Show progress dialog during delete 2021-01-12 18:42:15 -06:00
Evan Hahn
0c039bf431
Add group calling events to the message timeline 2020-12-07 14:43:19 -06:00
Scott Nonnenberg
2c69f2c367 Support for GV1 -> GV2 migration 2020-11-23 14:48:12 -05:00
Evan Hahn
8bfaf598af Add license headers across the project 2020-11-04 13:03:13 -06:00
Josh Perez
27759233e4 Storage Service Write: Improved conflict handling 2020-10-12 18:10:08 -04:00
Sidney Keese
dabab60f56 Remove TSLint
Co-authored-by: Chris Svenningsen <chris@carbonfive.com>
2020-10-12 18:10:07 -04:00
Sidney Keese
7b6d8f55d6 Migrate textsecure to eslint
Co-authored-by: Chris Svenningsen <chris@carbonfive.com>
2020-10-12 18:10:07 -04:00
Chris Svenningsen
b5df9b4067 Migrate messages, conversations, conversation_view, background to TS
Co-authored-by: Sidney Keese <sidney@carbonfive.com>
2020-10-12 18:10:07 -04:00
Scott Nonnenberg
bc3b61db1d Add p-queue timeouts; fix search crash; improve promise rejection logging 2020-09-21 15:42:51 -04:00
Scott Nonnenberg
7a02cc815d Support for new GroupV2 groups 2020-09-09 17:34:57 -07:00
Josh Perez
1ce0959fa1 Storage Service: Write 2020-09-09 17:34:57 -07:00
Scott Nonnenberg
f5a3fdb174 getOlderMessagesByConversation: Allow falsey messageId for resiliency 2020-08-28 15:42:25 -04:00
Scott Nonnenberg
8d5e832ed6 Left pane preview/timestamp: Further refine logic 2020-08-28 15:42:25 -04:00
Scott Nonnenberg
2db1569fbd
Fix conversation last activity calculation 2020-08-13 17:47:50 -05:00
Scott Nonnenberg
81cb7730a5
Message Requests improvements 2020-08-06 20:50:54 -04:00
Scott Nonnenberg
bab59ba2a1 Force social graph to pull down updates after beta.11 install 2020-07-30 13:27:44 -07:00
Scott Nonnenberg
901179440f Merge contacts when we discover split or duplicated contacts 2020-07-30 13:17:45 -07:00
Josh Perez
5b83485c89 Update safety number change warning dialog 2020-07-30 13:10:05 -07:00
Ken Powers
83574eb067 Message Requests 2020-07-30 13:08:44 -07:00
Scott Nonnenberg
fcf5ebe9da searchConversations: Search on e164 field, not id 2020-07-13 16:06:24 -07:00
Scott Nonnenberg
e536929e35 Handle messages with the same received_at 2020-07-13 16:06:24 -07:00
Scott Nonnenberg
b7d56def82 Moves libtextsecure to Typescript
* Starting to work through lint errors

* libsignal-protocol: Update changes for primary repo compatibility

* Step 1: task_with_timeout rename

* Step 2: Apply the changes to TaskWithTimeout.ts

* Step 1: All to-be-converted libtextsecure/*.js files moved

* Step 2: No Typescript errors!

* Get libtextsecure tests passing again

* TSLint errors down to 1

* Compilation succeeds, no lint errors or test failures

* WebSocketResources - update import for case-sensitive filesystems

* Fixes for lint-deps

* Remove unnecessary @ts-ignore

* Fix inability to message your own contact after link

* Add log message for the end of migration 20

* lint fix
2020-04-15 14:45:11 -07:00
Scott Nonnenberg
6b094e1514 Refactor: Move data-access code to Typescript w/ shared interface 2020-04-15 14:45:11 -07:00
Renamed from app/sql.js (Browse further)