Properly handle update of blocked numbers sync'd from mobile
device (#1411)
Fix some bugs with migration to Electron (still behind a flag)
- Dark Theme: Increase banner text contrast for legibility (#1415)
- Better disambiguate conversation directory names (#1409)
- Handle long group or contact names (#1402)
- Redact group ids in export logging (#1402)
Better logging
- Don't log expiration if queued task threw an error (#1412)
- Additional error handling/logging during contact sync (#1395)
Remove unknown group messages from cache - no need to retry! (#1414)
Update a large number of strings via transifex (#1403)
FREEBIE
* On export, don't print out entire group id, just last three chars
FREEBIE
* Export: Limit conversation dirs to 30 characters of original name
FREEBIE
* Redact groups ids on import as well
FREEBIE
* InboxView: Protect against nonexistent loading screen
FREEBIE
Note: This version requires a new 'directory' permission
Feature: Migration to Electron (currently behind a flag)
- Warning banner that this version is deprecated
- Export of all database contents to disk
- This exported data can be used to initialize the Electron version
of the app
- Note: after export, this Chrome instance will not be useable since
the Electron export-initialized instance will be an exact copy.
_There can only be one_ client with the same identity!
- See original pull request for flags to enable or reset:
https://github.com/WhisperSystems/Signal-Desktop/pull/1342
We now log 'clearAttention' less, since we call it every two seconds
String updates for es, fi, it, ja, pt_PT, ru and sv
FREEBIE
* Add support for backup and restore
This first pass works for all stores except messages, pending some scaling
improvements.
// FREEBIE
* Import of messages and attachments
Properly sanitize filenames. Logging information that will help with
debugging but won't threaten privacy (no contact or group names),
where the on-disk directories have this information to make things
human-readable
FREEBIE
* First fully operational single-action export and import!
FREEBIE
* Add migration export flow
A banner alert leads to a blocking ui for the migration. We close the socket and
wait for incoming messages to drain before starting the export.
FREEBIE
* A number of updates for the export flow
1. We don't immediately pop the directory selection dialog box, instead
showing an explicit 'choose directory' button after explaining what is
about to happen
2. We show a 'submit debug log' button on most steps of the process
3. We handle export errors and encourage the user to double-check their
filesystem then submit their log
4. We are resilient to restarts during the process
5. We handle the user cancelling out of the directory selection dialog
differently from other errors.
6. The export process is now serialized: non-messages, then messages.
7. After successful export, show where the data is on disk
FREEBUE
* Put migration behind a flag
FREEBIE
* Shut down websocket before proceeding with export
FREEBIE
* Add MigrationView to test/index.html to fix test
FREEBIE
* Remove 'Submit Debug Log' button when the export process is complete
FREEBIE
* Create a 'Signal Export' directory below user-chosen dir
This cleans things up a bit so we don't litter the user's target
directory with lots of stuff.
FREEBIE
* Clarify MessageReceiver.drain() method comments
FREEBIE
* A couple updates for clarity - event names, else handling
Also the removal of wait(), which wasn't used anywhere.
FREEBIE
* A number of wording updates for the export flow
FREEBIE
* Export complete: put dir on its own line, make text selectable
FREEBIE
- Don't try messages again on subsequent startup if error has been
shown to the user
- Performance improvement when processing incoming messages
- Workaround for Chrome App icon flashing behavior
- Additional logging when we get delivery receipt for unknown message
- Addition logging to help track down problems with contact sync
FREEBIE
There's really no reason to retry encryption errors again if they've
already been made user-visible in a conversation.
Also, refactor e->error in background.js onError(), since both e and ev
in this method made it too easy to make a mistake.
User-facing:
- Avatar now persists through conversation unload
- String updates for spanish, italian, and romanian
Dev:
- Logging for performance analysis and cross-device debugging
- No more emails from Travis on CI runs
FREEBIE
- How long it takes to get a message through the pre-send checks
- How long it takes to open a conversation for the first time
- The timestamp of any message we send to corellate with other logs
- Add conversation ID to 'decrypt old identity key errors' start/end
FREEBIE
Turning off travis email notifications. Github does a fine job notifying
us about the things we care about, otherwise we can always go there and
see the results.
FREEBIE
- When loading a conversation, do check for old messages hidden due to a
not-yet-approved safety number and attempt to decrypt them
- When processing queued messages or retrying incoming messages,
maintain original received date
- Fixed an issue where the security checks before sending to a group
with an unknown contact could fail, blocking send
- Improve performance of security checks before send to groups
- We now disable the message composition text box when doing security
checks before send
FREEBIE
Because we do a number of async checks before allowing the real send to
begin, on a slow matchine or when doing a lot of work (like receiving a
lot of messages) there can be a noticeable delay between hitting Enter
and the clearing of the text in the message box. In fact, newly-typed
text can be added to the previous message if the delay is long enough.
This prevents any interaction with the message box until the send has
either been prevented or has started.
FREEBIE
Discovered a user log where expiring message checks were happening
constantly. This ensures that a very large timeout doesn't roll over
into immediate callbacks.
FREEBIE
isVerified and isUntrusted both went to the protocol layer, but were not
prepared for rejected promises resulting from missing records. This
prevented send in large groups where there has never been a message
exchanged with one of the members.
FREEBIE
Notable changes:
Application loading screen
- We now properly process read receipts, delivery receipts and other
types of sync messages before dismissing the screen.
Fix: Properly report decryption errors when they happen
Fix: Slow down expiring message processing, especially on startup (may
result in lower CPU/memory usage)
I believe this to be the reason behind some of the high resource usage
on startup. If a lot of read receipts come in for disappearing messages,
this method can be called many, many times very quickly.
FREEBIE
Notable changes:
Verified contacts
- Ability to verify a contact's safety number, same for group's
members via the 'Show members' screen
- Check mark next to verified contacts, and next to
100%-verified groups
- Synchronization of verification decisions across devices
- Banner and confirmation on send when previously-verified safety
number changes
- Confirmation on send if safety number has changed very recently
- Updated message detail screen when a message fails due to a safety
number change
Delete individual message from message detail screen
Clearer error text when a message to a group partially fails
Icons for in-conversation timer change and key change notifications
We now drop duplicate messages when we receive them
A number of reliability fixes:
- New 'unprocessed' cache for messages not yet fully processed,
attempted re-process on startup
- Protections against 'wedged' conversations, which won't receive or
send messages until restart
- Better resilience to errors throughout the codebase
Application loading screen until server backlog is fully processed
- Shows messages processed so far
- Prevents large numbers of notifications from firing on application
startup
Conversation loading screen
Unloading of conversations and old messages due to inactivity to reduce
memory usage
Potential fix for "Too many message keys for chain" (caused after
desktop is offline for long time)
FREEBIE