signal-desktop (8.8.0-1+droidian0+git20260502120544.539c30a.droidian) trixie; urgency=medium

  [ Cédric Bellegarde ]
  * Merge tag 'v8.8.0' of https://github.com/signalapp/Signal-Desktop
  * app: Remove app updates check
  * stylesheets: Tweak CSS for mobile
  * ts: Tweak conversation view for mobile phones
  * app: main: Simplify second instance startup
  * ts: components: SimpleQuillWrapper: Prevent auto-focus on mount for mobile
  * ts: ActiveWindowService: consider screensaver state in isActive()
  * app: Add D-Bus interface and wrapper to speed up secondary instance handling
  * ts: util: buildExperiation: Never expire
  * ts: services: notifications: Show one notification per conversation
  * ts: components: fun: Disable autofocus
  * app: Disable background throttling
  * app: Remove systray support
  * ts: background: Do not stop notifications on socket connect
  * app: Hidden titlebar (for GNOME Shell)
  * ts: services: Add back feedbackd support
  * components: Move microphone button to menu
  * circleci: Initial config
  * debian: Create package
  * debian: Update desktop file
  * github: Remove dependabot
  * patches: Add fs-extra patch to fix image loader

  [ 1009 ]
  * media editor: emoticons icon now visible near text input, now complete reset is avoided when touching outside of the rectangle

  [ Fedor Indutny ]
  * Add `curly: 'error'` to eslintrc and fix linting
  * Ensure a theme setting value is saved on first startup
  * Make mention blot non-contenteditable
  * Remove notification on reaction remove/change
  * Disable Dev Tools in production releases
  * Fix hidden Dev Tools menu item in development runs
  * New UI for audio playback and global audio player
  * Don't use `useMemo()` for AudioContext/Audio/Cache
  * Provide third HKDF parameter putRemoteAttestation
  * Fix sqlite3 threadpool exhaustion with db.serialize() on startup
  * Set `attachmentDownloadQueue = undefined` on empty
  * Reduce size of asar file and unpacked asar folder
  * Generate blurHash for outgoing link previews
  * Use eslint --cache CLI argument to speed up linting
  * Show download button for pending Link Preview images
  * use `incremental` build mode for `tsc`
  * Fix for UnregisteredUserError handling when fetching UUIDs
  * Preliminary support for better performance testing
  * Add download button and pending spinner for audio messages
  * package: clean-transpile should remove tsc cache
  * Update types: attachments may not have `url` property
  * Fix cursor over MessageAudio's spinner
  * Storage Service fixes to prevent crashes on Android
  * Remove useless logic in MessageAudio
  * Save attachment button should download attachment if needed
  * Fix attachments not loading for stickers/long messages
  * Change duration to countdown in MessageAudio
  * Mark attachment as corrupted if audio load failed
  * Add timestamp utilities with helpful names
  * Consistent cursors in MessageAudio
  * Use non-subtle crypto in libsignal-protocol
  * Cache identicons to avoid performance hit on app start
  * journal_mode=WAL and synchronous=NORMAL for database
  * Clicking first bars of the waveform should rewind
  * Flush all watchers on empty queue
  * First pass on CI support
  * Fix delivery status overflow in sticker messages
  * CSS fixes for link preview dates and long attachment filenames
  * Don't pass `false` query value for `enableCI`
  * filterAndSortContacts should tokenize
  * Decrease batcher wait time to speed up startup
  * Ensure file permissions for wal sqlite files too
  * Finish all renderer SQL queries switching to main
  * Use synchronous crypto for sealed sender
  * Check charset types in linkPreviewFetch.ts
  * Update electron to 12.0.2
  * Update zkgroup to the latest
  * Sort lint exceptions
  * Update node to 14.16.0
  * Update yarn to the latest for CI
  * Make test-node report errors
  * Types, better-sqlite3, and worker_threads for our sqlite
  * Cache SQL statements used during startup
  * Optimize database and run quick check
  * Change primary key for `messages` table
  * Always run `yarn` from `"scripts"`
  * Update to Webpack 5
  * Fix StickerType in sql/Interface and fix query
  * Bundle preload.js
  * Deduplicate conversations before passing to redux
  * Disable webpack cache for now
  * Optimize hot queries
  * Run SQL initialize in parallel with createWindow
  * Fix addStickerPackReference
  * Do not generate notification when disabled 
  * Cache GroupFields
  * Performance: Automate clean up of old material after hitting a limit in libsignal-protocol
  * Fix attachment filename being truncated when zoomed in
  * Cache node_modules in CI, benchmark workflow
  * Upgrade electron to 12.0.3
  * Report more performance stats
  * upgrade electron-builder to 22.10.5
  * Add missing awaits in SQL logging
  * Bundle sql worker with webpack
  * Don't use esm versions of deps in preload bundle
  * Wait for `appView` to be there in `onEmpty`
  * Remove outline from link previews
  * Use `bodyRanges` from message whenever available
  * Improve MessageAudio peaks computation
  * sql: speed up fts query, report slow queries
  * sql: don't update FTS when body didn't change
  * deps: update better-sqlite3
  * Fix group call notification color in light-theme
  * sql: use temporary tables for FTS results
  * Call `serverTimestamp.toNumber()` for unprocessed
  * Fix z-index of AvatarPopup and limit max width
  * Fix FTS trigger for messages with NULL body
  * Mark contact as registered when receiving message
  * GIF attachments
  * benchmarks: cumulative output
  * Update to electron 12.0.6
  * Show challenge when requested by server
  * Fix uncaught exception during shutdown on update
  * Fix race condition in challenge test
  * Use fuses to disable ELECTRON_RUN_AS_NODE
  * Prevent uncaught rejections in sql initialize
  * Let group update happen on relink
  * Update Electron to 12.0.7
  * Burn fuses only on install to fix Windows CI
  * Fix race conditions in challenge test
  * Fix further flakiness in challenge tests on CI
  * Use fake timers in challenge_test.ts
  * Apply reactions to messages in "Notes to Self"
  * Batch and de-duplicate profile key updates
  * Center tap-to-play GIF text using flex
  * Do not compute waveform for a long audio
  * Apply reactions optimistically
  * Fix hanging "Clear All Data" on Windows
  * Improve experience for contacts without signal accounts
  * Add outlines for MessageAudio buttons
  * Use synchronous methods in transactions
  * Introduce in-memory transactions for sessions
  * Fix in-memory transactions while accessing sessions
  * Ensure the app is closed before installing on Windows
  * Display SMS/MMS disclaimer in empty search results
  * Reuse global locks, handle empty envelopes
  * Rename locks to zones
  * await `goBackToMainProcess` in sticker-creator
  * update @signalapp/signal-client to 0.5.2
  * Fix in-memory transactions in MessageReceiver
  * Further improve in-memory transactions in MessageReceiver
  * Go back to main process before delayed processing
  * Fix session transactions for archive sessions
  * Go back to main process before delayed processing
  * Fix audio recordings
  * Fix performance issue for quote rendering
  * Handle `durationchange` events in MessageAudio
  * Use websocket queue for `queueAllCached()`
  * Add checks for unregistering message receiver
  * Fix processing of cached envelopes
  * Fix race condition in session transactions
  * Switch to WAL after cipher migration
  * Fix sticker-creator uploads
  * Do not display call buttons for SMS-only convo
  * Change color of "delete" button
  * Fix session transaction issue
  * Simplify attachment jobs SQL query
  * Add action for automated backports
  * Initialize IPC channels early
  * Add user path to logging exceptions
  * Fix SMS-only check for unregistered convo
  * Fix storybook errors
  * Universal Disappearing Messages
  * Add extension to uploaded debug log
  * Display proper text when quoting view once message
  * Fix typo in SQL migration logs
  * Fix performance of debug logs view
  * Fix storage upload for universal timers
  * Update @signalapp/signal-client to 0.8.1
  * Fix check for universal timer notification
  * Fix notification text on Windows
  * Fix nested border-radius for attachments
  * Make sure screen name is internationalized
  * Fix storybook for calling sources modal
  * Make link preview image clickable
  * update electron to 13.1.0
  * Update protobuf spec for GIFs
  * Move to new getSendOptions location
  * Faster WebSocket reconnects
  * Update electron to 13.1.2
  * Log conversation job wait time and duration
  * Enforce stronger types for ArrayBuffers and storage
  * Wrap all websocket errors, reconnect earlier
  * Fix syncing of "Off" setting for default timer
  * Reject WebSocket connect timeout with an HTTPError
  * Show universal timer notification in open conversation
  * Move to protobufjs in ts/groups.ts
  * Prevent deadlock in `maybeApplyUniversalTimer`
  * Use smaller batches for multi-var queries
  * Use `assert` in `normalizeUuid`
  * Reconnect within MessageReceiver
  * Make GIF flag a power-of-two value
  * Switch to FULL synchronous of sqlite
  * Fix check for successfull delivery
  * Fix Cmd+T navigation for left pane
  * Normalize UUID for formatting contact
  * Ensure that messages are in redux when scrolling
  * Forwarded messages must use different timestamps
  * Fix rendering of GIFs
  * Fix UI for GIFs in groups
  * Default disappearing message timeout fixes
  * Update RingRTC to v2.10.6
  * Create missing index for markRead
  * Unify audio playback under App component
  * Better emoji support in linkify/previews
  * Get native theme through IPC not remote
  * Fix duplicate key in Linkify
  * Updater debug utility
  * Updater: Log additional information from ShipIt
  * Optimize typing animation
  * More protobufjs use
  * More protobufjs migration
  * Fix attachment downloads for zero cdnId
  * Fix "delete and restart" after database error
  * Close modal when both mouseup/mousedown are inside
  * Revert "Refactor outbound delivery state"
  * Add placeholder migration 36
  * Fix logging in util/deprecated.ts
  * Fully move to protobufjs
  * Remove libtextsecure/components.js
  * Clean up conversations with UUID as E164
  * Show lightbox for GIFs
  * Fix sending previews without images
  * Use fixed-width numerals in call time
  * Fix CDS lookup
  * Use socket timeout on updater downloads
  * Fix background color for hover of "Join" button
  * Fix negative countdown for audio messages
  * Translate errors before rejecting in SendMessage
  * Drop support for signaling key
  * Fix z-index of sticker modal
  * Don't transcode incoming attachments
  * Merge branch 'whalehub/patch-1' into development
  * Merge branch 'heysujal/development' into development
  * Make JobQueue an abstract class
  * Fix title case for dialog
  * Use single WebAPI instance across the app
  * Unify MessageReceiver and MessageReceiverInner
  * MessageReceiver: Unwrap envelopes earlier in the processing chain
  * Fix overly-verbose errors in message details
  * Fix rendering of links with emoji
  * Move to websocket for requests to signal server
  * Redecode unknown protobuf fields before writing
  * Make sure to restore registration before relink
  * Add assert to messages endpoint
  * Properly handle connection timeout on unauthenticated websocket
  * Don't forget to cleanup in-memory sticker pack
  * Use smaller batches for receipts and syncs
  * Process read syncs after batches of messages
  * Fix uncaught error in `markMessageRead`
  * Suspend AudioContext to save resources
  * Handle message render errors in timeline
  * Unseal envelope in a separate step for better logs
  * Migrate sourceDevice from TEXT to INTEGER
  * Revert "Process read syncs after batches of messages"
  * Fix undefined log function
  * Support more WebSocket endpoints
  * confirmCode endpoint shouldn't reconnect socket
  * Update electron, electron-builder, @electron/fuses
  * Change Phone Number notifications
  * Ignore empty e164 in storage service
  * Fix multirecipient sends
  * Change conversation color assert to warning
  * Cache onHeightChange property of message
  * Fix benchmark CI
  * Better logging for early read syncs
  * Reduce log file size
  * Send profileKeys less frequently
  * Optimize rendering
  * Modernize Benchmarks CI
  * Optimize render part 2
  * Use different CI file/folder names
  * Fallback to sent_at when serverTimestamp is empty
  * Reduce number of SQL queries during conversation update
  * Fix late view/read sync logic
  * Fix various read sync inconsistencies
  * Fetch `hasGroupLink` from Redux in conversation details
  * Sort sender key devices for future optimization
  * Use stable keys for rendering timeline
  * Change error boundary notification text
  * Run WAL checkpoint on exit
  * Do not initialize `receivedAtCounter` in `connect`
  * Additional render optimizations
  * Close database in renderer
  * Update signal-client to 0.8.4
  * Disable websocket in sticker-creator
  * Speed-up senderKey membership check
  * Move `getAlwaysRelayCalls` to `window.Events`
  * Don't mutate state in TimelineItem
  * Rename ContactType to EmbeddedContactType
  * More benchmarks in CI
  * Start unauthenticated socket timer after request
  * Don't hide call controls when hovered
  * Display dialog on corrupted database
  * Run resumed zone jobs concurrently
  * Simplify envelope drop due to stopped processing
  * Log additional latency information on sends
  * Drop extraneous db query
  * Update TypeScript to 4.4.2
  * Use https git clones in workflows
  * Fix benchmarks CI
  * Keep UI settings on heartbeat expiration
  * Pass mode in `unlinkAndDisconnect` event listener
  * Use yarn for benchmarks CI
  * Batch deleteSentProtoRecipient queries
  * Hide previous/next buttons in fullscreen lightbox
  * Set `contenteditable` earlier in mentions blot
  * Clear sender certificate on E164 change
  * Fix lightbox for tap-to-view GIFs
  * Reconnect websocket on e164 change
  * Track zoom factor changes through IPC
  * Use `isNumber` in handleDataMessage
  * Add missing strings to `_locales` folder
  * Reorder IPC callbacks for settings window
  * Fix call order when closing sqlite in renderer
  * Detect database corruption consistently
  * Flush message counter on shutdown
  * Recompute row heights on coalesced updates
  * Add changeNumber capability
  * Update Electron to 13.3.0
  * UUID-keyed lookups in SignalProtocolStore
  * Ensure conversation id in storeSession
  * Fix action propagation to timeline items
  * Extra tests for SignalProtocolStore migration
  * Fix socket management for unlinkAndDisconnect
  * Self-repairing message counter
  * Use `audio.ended` in MessageAudio.tsx
  * Update socket status more eagerly
  * Use logger interface in main sql worker
  * Maximize image when zooming in lightbox
  * Disable jumbomoji in quotes
  * Add NSIS retry dialog string to _locales
  * Small UI fixes for left pane dialogs
  * Defer unprocessed item attempt update
  * CallScreen interactivity fixes
  * Use consistent check for timeline height recomputation
  * Fix sticker-creator startup issue
  * Better types for WebAPI
  * Fix quote content-type for GIFs
  * Convert js/modules/types/contact.js to TypeScript
  * Add translations for NSIS installer
  * Upgrade @signalapp/signal-client to 0.9.5
  * Uint8Array migration
  * Truncate lastHeartbeat to day millis
  * Display thumbnails for video attachments
  * API to suspend/resume tasks with timeout
  * Consistent scheduling of sendToGroup
  * Fix flaky TaskWithTimeout test
  * Remove key caching from Timeline
  * Fix translations in app-builder-lib
  * Annotate WebAPI logs with request subtype
  * Consistent sorting for messages in reducer
  * Fix MessageAudio spinner
  * Add jitter support to BackOff class
  * Remove unused code from WebAPI
  * Subscribe to theme change in settings
  * Autofocus "choose group member" modal input
  * Use physical keys+layout for shortcuts
  * Use physical keys for voice message shortcut
  * Coalesce typing indicators when blocked
  * Fix various clipping issues with message buttons
  * Small fixes for LeftPaneDialog
  * Optimize `removeKnownAttachments`
  * Force update should skip version check
  * Remove stale test
  * Update limits for GroupDescriptionInput
  * Update got/form-data to latest
  * Fix sticker creator
  * Remove ts/services/timers.ts
  * Fix uncaught error in copyStickerToAttachments
  * Delay initializing SQL in renderer
  * Use non-throttled timeouts for websockets
  * Fix sticker-creator
  * Cache system-tray-setting in ephemeral config
  * Center text in "Optimizing" window
  * Use console logger when regular is not available
  * Fix duplicate ids in BaseConversationListItem
  * Better reporting for DB corruption errors
  * Use read stream for fetching debug logs
  * Use focus trap for CallingLobby
  * Increase contrast ratio for unread badge
  * Use UUIDs in group database schema
  * Fix runtime error during SQL migration
  * Get rid of `electron.remote`
  * Bump better-sqlite3
  * Add about field to ConversationDetailsHeader
  * Fix color of close button in call settings
  * Changing storageID shouldn't cause rerender
  * Speed up getAuthor for message
  * Use react-redux's batch instead of react's
  * Update better-sqlite3 to update sqlcipher
  * Fix row height recomputation in Timeline
  * Extra logging for GV2 UUID migration
  * Update electron to 15.3.0
  * Update electron to 15.3.1
  * WebSocket API for CDS
  * Downgrade sass-loader to 10.2.0
  * Reduce amount of logging in 41st migration
  * Less strict uuid fetch in areWeAdmin
  * Use `invoke`/`handle` in `settingsChannel`
  * Prune invalid conversations from storage service
  * Display correct link in DialogUpdate
  * Add focus trap to CallingLobby
  * Additional protocol changes for CDS v2
  * Preliminary support for destinationUuid field
  * Add stream timeout for attachment downloads
  * Add exhaustive UUIDKind checks to MessageReceiver
  * Add OS version to debuglog header
  * Fix IPC error in sticker-creator
  * Treat "file is not a database" as database corruption
  * Don't add change number notifications to ourselves
  * Use full name in ChangeNumberNotification
  * Add separator to envelope log id
  * Add PNI to debug log
  * Revert "When you send a message, scroll it into view"
  * Use strict @electron/fuses
  * Use `throwOnTimeout` option for PQueue
  * Update signal-client to 0.11.0
  * Initialize `locale` earlier to avoid races
  * Move StandaloneRegistration to React
  * Add PNI endpoints to WebAPI
  * Don't treat TimeoutError as a decryption error
  * Ensure that message heights are always recomputed
  * Fix Redux update on conversation trigger
  * Capture draft attachment's dimensions
  * Use human-readable names for websockets
  * Fix color of sticky footer in Modal
  * Generate PNI key on standalone registration
  * M1 Support
  * Use different z-index for app-loading-screen
  * Don't notarize releases in parallel
  * Install cross-platform deps before packaging
  * Improve Rosetta detection
  * Use macOS Big Sur for CI
  * Add v2 implementation of CDS HSM
  * Better error reporting in StickerGrid
  * Fix sticker-creator
  * Update electron to 16.0.4
  * Reduce logging from rotateSignedPreKey
  * Fix crashes when playing media on legacy OS
  * Remove unnecessary casts in conversations.ts
  * Display M1/Intel in About screen
  * Drop old unprocessed envelopes
  * Update yarn.lock
  * Update ChangeNumber--notification
  * Compact universal builds for macOS
  * Fuse electron at build time
  * Block WebAPI during active registration
  * Support running test-electron manually
  * Fix batching in getUnreadReactionsAndMarkRead
  * Fix getHtmlDocument for compressed documents
  * Default to `system` `theme-setting`
  * Fix getUnreadReactionsAndMarkRead
  * Fix message_user_initiated
  * Patch got@11.8.2 to fix onCancel error
  * Include sharp dlls on windows
  * Don't run CI twice on pull requests
  * Fix sticker uninstall popup z-index
  * Switch SQL to main process on disconnect
  * Update electron to 16.0.6
  * Drop unused generated protobufjs methods
  * Process manifest before persisting its version
  * Use serverTimestamp for delivery receipts
  * Update last conversation message after loading
  * Fix messages_preview index
  * Detect startup after recent crashes
  * Update electron to 16.0.7
  * Fix flaky test-release test
  * More frequent message cleanup
  * Update @react-spring/web to 9.4.1
  * Start worker threads after second instance check
  * Add tentative prefix to crash report uploads
  * Trigger EnvelopeEvent for unsealed envelopes
  * Fix partial updates on Windows
  * Log conversation open time
  * Fix crash report location on Windows
  * Add extra logging for change phone number
  * Use message.groupV2.revision during first fetch
  * Fix typo in unknownContact
  * Fix logging overflow
  * Revert "MessageReceiver: Pause processing of new messages on suspend"
  * Don't let unidentifiedStatus change e164
  * Avoid calling `tray.destroy()` when quitting
  * Enable background throttling for alpha users
  * Fetch joinedAtVersion before change log fetch for new groups
  * Improve performance of isEmojiOnlyText
  * Create contacts during processing of group updates
  * Properly propagate 204 to fetchManifest
  * First storage service test
  * Use identity key from storage service
  * Use upload-artifact to upload logs on failure
  * Erase storage service state on key change
  * Normalize UUID in ConversationModel.initialize
  * Update electron to 16.0.8
  * Make sure isPinned is in sync with storage service
  * Copy missing locale paks on build
  * Sort conversations by active_at
  * Do not reset active_at after group fetch
  * Drop legacy feature flags
  * Use new server params for group log fetch
  * Update storageService logging
  * Update storage service when sharing profile key
  * Fetch profiles for pending members
  * Drop invalid storage service keys
  * Use esbuild
  * Storage service tests and benches in ts/test-mock
  * Our conversation doesn't require profile sharing
  * Dropped storage keys should not cause upload
  * Drop GV1 records when GV2 records are present
  * Improve conversion between typed arrays
  * Remove setup menu items after QR code linking
  * Prune frameworks folder before zipping release
  * Fix sticker creator
  * Change location of copied language packs
  * Run notarization in afterPack script
  * Always use profile keys from group state
  * Update electron to 17.1.0
  * Notarize in afterSign step instead of afterPack
  * Differential updates
  * Fix clear button in AvatarEditor
  * Fix release note text
  * Update mock-server, upload ci logs on failure
  * Display differential download size in UI
  * Move assert to a different Updater method
  * Hotwire preload.bundle.js to specific NODE_ENV
  * Use checkAccountExistence
  * Don't bundle large singular dependencies
  * Move tsc from `yarn generate` to `yarn lint`
  * Update mock server and drop /etc/hosts requirement
  * Remove warn log when no account record is fetched
  * Optimize number of range requests in updater
  * Handle PNI keys from ProvisionMessage
  * Update TypeScript to 4.6.2
  * Pass go headers through in updater/differential
  * Fix error handling during piping in updater
  * Change order of syncs during linking
  * Fix generation of reaction ids
  * Update electron-builder to 23.0.1
  * Make updates atomic again
  * Unescape link preview description
  * Update sqlcipher to 4.5.1
  * Don't mkdir restore dir in updater
  * Enable background throttling for beta users
  * Use zip compression for windows installer
  * Update electron to 17.1.1
  * Fix `useZip` location in package.json
  * Remove useZip for now
  * Add extra notary signature checks to zkgroup
  * Optimize initial storage service fetch
  * Use new CDS implementation in staging
  * Allow requesting profile without profileKey
  * Use explicit method names for universal timers
  * Drop unused downloadsPath
  * Profile fetches shouldn't drop our own profile key
  * Use valid uuid as a fallback in calling
  * Update esbuild to 0.14.27
  * Update electron to 17.1.2
  * Optimize profile avatar uploads and sync urls
  * Fix race condition in Timeline
  * Request last group state when fetching delta
  * Do not reopen the last notification on reconnect
  * Postpone routineProfileRefresh until empty
  * Fix z-index of CustomizingPreferredReactionsModal
  * Make final state assert more specific
  * Short-circuit storyId predicate to optimize query
  * Remove createNonBreakingLastSeparator
  * Better merging for changed keys in storage service
  * getProfile errors shouldn't stop group update
  * Use parallel-prettier for lint
  * Ignore node_modules in pprettier glob
  * Use --force-long with pbjs
  * Limit number of GV2 banned members
  * Update electron to 17.2.0
  * Configure `Long` before requiring compiled protobuf
  * Fetch full group state if last epoch is stale
  * Store receivedAtCounter separately for unprocessed
  * Don't pass full group to spoofing review dialog
  * Request and handle PniIdentity sync message
  * Graceful renames, better errors in updater
  * Allow composing to contacts from groups
  * Don't await profile fetches without changes
  * Update esbuild to 0.14.28, use es2020 target
  * Update electron to 17.3.0
  * Split `addSingleMessage` for better batching
  * Introduce `requireManualUpdate` yaml flag
  * Update electron to 17.3.1
  * GroupV2: Don't apply last state from the logs if skipped
  * Fix single sticker stickerpack download
  * Allow adding to a group by phone number
  * Fix storage service processing of verified status
  * Staple .zip/.dmg build artifacts on macOS
  * Fully notarize universal dmg instead of stapling
  * Fix win32 uninstaller issues on 5.36.0 and 5.37.0
  * Manually asarUnpack sharp's binaries
  * Add Cannot_Update_Require_Manual dialog type
  * Another fix for single-sticker packs
  * Raise voice note time limit to one hour
  * Fix white screen when sharing screen
  * Use fuse.js for regular contact search
  * Update dependencies to support Emoji v14
  * Update better-sqlite3
  * Use different commit of better-sqlite3
  * Graceful handling of single-range diff download
  * Better tool for symbolication of crash reports
  * Fix spurious assert in groups.ts
  * Flush last conversation message save on shutdown
  * Batch storage item read requests
  * Support search for E164 without candidate contacts
  * Patch NSIS installer message
  * Patch fallback 7z extraction in nsis
  * Don't update our own profile key from group state
  * Clear previous pending pni identity events
  * Drop ContactRecords for our own ACI/PNI
  * Initial GV2 mock tests
  * Drop verified syncs, use storage service for event
  * Update libsignal-client to 0.16.0
  * Ignore PNI key upload errors for now
  * Don't post extraneous verified change notification
  * Transcode link preview images
  * Update to electron@18.1.0
  * Fix screen reader interaction with message audio
  * Update electron-builder to 23.0.8
  * Fix handling of 206 status code in updater
  * Fix flaky GV2 mock test
  * Resolve attachments folder before using it
  * Revert update to electron 18.1.0
  * Cache paths resolved by createPathGetter
  * Add filter commands for finding conversations
  * Bump fuse.js treshold value
  * Update electron to 18.1.0
  * Fix "Cannot Update" dialog's retry button
  * Confirm group call update messages
  * Increment unprocessed attempts when fetching
  * Change background of the "muted" icon
  * Report process cpu/memory usage in debug log
  * Update electron to 18.2.2
  * Dark theme loading screen
  * Let CallingAudioIndicator background linger
  * Bless "Day by Day" sticker pack
  * Disable 2d canvas acceleration
  * Revert "Let CallingAudioIndicator background linger"
  * Disable part of the migration 58
  * Mark messages as failed when running out of time
  * Update electron to 18.2.4
  * Dynamic audio level indicator
  * Add extra padding to audio indicator
  * Stop retrying message send on 400 response
  * Take activeAt in account when using fuse.js index
  * Fix audio indicator svg glitch
  * Combine two redux batches in send flow
  * Pass abortSignal to sendToGroup
  * Allow manually retrying attachment downloads
  * Update electron to 18.3.0
  * Restore call view mode after presentation end
  * Fix uncaught exception in logging
  * Populate sourceDevice field of ManifestRecord
  * Support keepMutedChatsArchived flag
  * Expiration timer shouldn't count as unread on link
  * Preload fonts, load scripts after body
  * Add crossorigin attribute to preloads
  * Update electron to 18.3.2
  * Add debug log url when submitting it to Support
  * Erased messages should not stall attachment jobs
  * Use patched frameless-titlebar on Windows
  * Make sure windows with titlebar have OS class
  * Order unprocessed envelopes by receivedAtCounter
  * Remove title from the Windows titlebar
  * Upgrade electron to 19.0.4 (#4206)
  * Clicking open menu should dismiss it
  * Fix minor UI issues
  * Simplify quote alignment and position of toggle
  * Reserve more room for calling button labels
  * CDSI Support
  * Fix minor UI issues with composer
  * Add extra pixel to titlebar on Windows 11
  * Fix mentions alignment
  * Counteract zoom-level changes in custom titlebar
  * Add to group by username
  * Polyfill os.hostname() on Windows 7
  * Counteract zoom-level changes in custom titlebar
  * Increment and store message migration attempts
  * Update electron to 19.0.5
  * Better logging for expiration timer updates
  * Fix UA string
  * Fix PiP positioning
  * Update frameless-titlebar to 2.3.0
  * Fix top position for Stories pane
  * Shift titlebar on Windows 11
  * Fix management of selectedMessage in redux
  * Monkey-patch os.hostname on Windows 7
  * Fix titlebar button height
  * Fix sending to embedded contact
  * Update frameless-titlebar to 2.3.2
  * Handle render-process-gone
  * Close emoji picker when picking emoji
  * Update electron to 19.0.7
  * Don't save window stats after shutdown request
  * Update frameless-titlebar to 2.3.4
  * Titlebar fixes
  * Localize accelerators in custom menu
  * Fix titlebar
  * Add an extra assert to Data.saveMessage
  * Correct identifier for story records
  * Potential fix for laggy scrolling
  * Properly close emoji picker when picking emoji
  * Fetch PNI group credentials
  * Lazily fetch profiles when modifying groups
  * Always refetch profile key credential if expired
  * Refresh PNI on startup
  * Titlebar fixes
  * Update frameless-titlebar to 2.3.5
  * Fix storybook
  * Update electron to 19.0.10
  * Add comments to titlebar-related variables
  * Handle PniChangeNumber
  * Remove `source` from Envelope
  * Update mock-server to 2.4.1
  * Fix positioning of StoryViewer
  * Consistent log lines for WebAPI requests
  * Stickers in storage service
  * Upgrade electron to 19.0.11
  * Support iasVersion 4
  * Patch websocket to fix data after end issues
  * Cancel throttled refreshRemoteConfig on link
  * Register pnpChangeNumber capability
  * Open inbox when linking and suddenly offline
  * Fix assertion in mergeStickerPackRecord
  * Send and receive PniSignatureMessage
  * Fix handling of STICKER_PACK unknown records
  * Update electron to 19.0.12
  * Stop using textarea in DebugLogWindow
  * Additional logging for calling service
  * Use ourPni when creating our own contact
  * Introduce desktop.pnp.storageService flag
  * Reset pniCredential when our E164 changes
  * Update electron to 19.0.13
  * Rename remote config flag
  * Include ACI+Access Keys pairs with CDSI requests
  * Mirror CDS requests
  * Remove unused CDSH code
  * Drop pnpChangeNumber capability
  * Fix signal.me links
  * Update legacy CDS enclaveId
  * Refactor contact sync processing
  * contactSync should depend on syncMessage.complete
  * Update libsignal-client to 0.20.0
  * Update electron to 20.1.0
  * Update node to 16.15.0 to match electron
  * Show internal error toast on CDS errors
  * Use ContactPills in StoriesSettingsModal
  * Update Inter to 3.19
  * Pass proxyUrl to LegacyCDS
  * Fix flaky test and add screenshots
  * Re-order CI actions for macos
  * Move mocha timeout setup to test.js
  * Minimize and start Signal in tray
  * Provide speakerHeight to ringrtc
  * Persist hasSetMyStoriesPrivacy in storage service
  * Preload correct font versions
  * Fix recursion loop in sendStory
  * Update electron to 20.1.3
  * Never pass negative speaker height to RingRTC
  * Center "Disappearing Messages" in Create Group
  * Don't clear manually applied link preview
  * Run checkForConflicts on a p-queue
  * Separate flag for cdsi in beta channel
  * Update electron to 20.1.4
  * Improve challenge handling
  * Properly handle closing click events in modals
  * Ignore "minimize" event on Linux
  * Fix color pick in TextStoryCreator
  * Support unregisteredAtTimestamp in storage service
  * Disable remapping of 'minimize' to 'close'
  * Test rate-limiting, stories in mock server
  * Update to esbuild 0.15.8
  * Wait for contact sync in MessageReceiver
  * Keep custom titlebar in full screen mode
  * Stop using deprecated PniCredential
  * Fix display of titlebar in fullscreen on Windows
  * Extend cleanSignedPreKeys to support PNI
  * Fix titlebar position in RTL mode
  * Revert "Enable fullfsync mode in the database"
  * Fix click handling for stories
  * Fix UI in PendingInvites
  * Fix archive icon in collapsed left pane
  * systemGivenName/systemFamilyName in ContactPill
  * Disable hardware acceleration on linux
  * Better fix for custom titlebar in RTL locale
  * Fix outside click in story replies
  * Update to latest pino
  * Sync `storiesDisabled` flag on AccountRecord
  * Fix storybook
  * Use X-Signal-Receive-Stories header
  * Provide pni registration id in createAccount
  * Support url-only link previews in stories
  * Sync group stories through storage service
  * Discriminator in username
  * Reprocess unknown fields after loading convos
  * Fix PNI merging for PNI-only conversations
  * Use correct endpoint to lookup by username
  * Fix search in StoriesPane
  * Fix positioning of calling modal
  * Update Intel advisories for Legacy CDS
  * Refresh stories in redux when data changes
  * Don't display sent stories in groups
  * Fix scrolling of long group story reply
  * Save conversation when toggling story status
  * Story view receipts setting
  * Reduce timeout of some long running tasks
  * Check stories capability when sending replies
  * Remove LegacyCDS
  * Fix mock server story tests
  * Close and cancel ConfirmationDialog on Escape
  * Allow link-only stories, download previews
  * Update electron to 20.3.4
  * Store all story reactions as messages
  * Drop deprecated SQL columns
  * Refresh remote config right after registration
  * Fix storage service handling of contact status
  * Relax schema 41 migration
  * Add extra check to markConversationRead
  * Fix i18n string id
  * Wrap eventHandlerQueue jobs with task with timeout
  * Retry log rotation on EPERM/EACCESS
  * Hydrate body ranges for story replies
  * Use translateX instead of changing width
  * Introduce --enable-gpu flag on Linux
  * Update typescript to 4.8.4
  * Remove unnecessary windows 7 shim
  * Remove duplicate modal footer from group edit
  * Run backport action when creating PR
  * Fix story reactions in 1:1 conversations
  * Fix stories uncaught exception on startup
  * Use DurationInSeconds for expireTimer
  * Populate blurHash when sending stories
  * Update sqlcipher to 4.5.2
  * Interactive cleanup of orphaned attachments
  * Add NPM_CONFIG_LOGLEVEL=verbose to CI
  * Better send state for unregistered recipients
  * Update electron to 21.3.0
  * Add release notes for v6.0.0
  * Fix getKnownMessageAttachments query
  * Update eslint to 8.27.0
  * Update better-sqlite3 to fix Windows builds
  * Fix ICU format of a couple of strings
  * Fine-grained session control for node-fetch
  * Make sure that storySendMode is in group types
  * Better handling of calling messages
  * Handle new rate limiting info from CDSI
  * Improve error handling during group sends
  * Don't trigger excessive 'resize' events
  * Add more debug tools for stories
  * Update TypeScript to 4.9.3
  * Prevent layout recalculations in some animations
  * Bump node.js version to match electron
  * Optimize loading stories
  * Fix extra padding in ConversationHeader
  * Refactor send story job
  * Improve story DOE flow
  * Remove underscore
  * Improve handling of DOE sync messages for stories
  * Add a new github action
  * Add desktop.groupCallOutboundRing2.beta flag
  * Fix sticker-creator preload error
  * Use native browser APIs in sticker-creator
  * Update electron to 21.3.3
  * Move axe-core to devDependencies
  * Optimize database after running migrations
  * Don't show duplicate modals on signal.me links
  * Unsnooze updates when clicked
  * Allow case sensitive usernames
  * Make sure that closed Modals are always removed
  * Add missing await in gv1 migration
  * Drop pniCredential completely
  * Use @signalapp/better-sqlite3
  * Fix DisappearingTimerSelect on Windows
  * Update electron to 22.0.0
  * Simplify sticker upload
  * Fixes for electron@22.0.0
  * Fix copying timestamps to clipboard
  * Optimize Message rendering
  * Add "pni" capability in staging
  * Add no-misused/floating-promises lint rule
  * Add missing isClosed check for Modal
  * Increase max attempt count for unprocessed items
  * Use ReadonlyArrays in conversation model and redux
  * Cache some volatile conversation properties
  * Use proxy-compare for message bubbles
  * Update contact sync to match iOS behavior
  * Use @indutny/sneequals for memoization
  * Fix adding to group by username
  * Cache all props in ListView
  * Fix units of maximum attachment size
  * Update @indutny/sneequals to 3.2.0
  * Repair on-boarding story if needed
  * Enable background throttling for everyone
  * Reload conversation messages on merge
  * Display combined group event for PNI -> ACI
  * Support esnext in storybook
  * Add extra logging to TaskWithTimeout
  * Deprecate phone number discovery notification
  * ci: retry pushing benchmark data
  * ci: quick fix for benchmark workflow
  * Never pass mutable data to selectors
  * Optimize some indices and queries
  * Further optimize getConversationMessageStats
  * package: update esbuild to 0.17.2
  * Log sqlite3 warnings
  * Unsupported OS Dialog
  * Fix yarn dev:transpile
  * Fully remove DQS from SQL queries
  * Confine message selector cache to component
  * Ensure consistent member filtering in sendToGroup
  * Fix syntax error in old SQL migration
  * Use SquirrelMacEnableDirectContentsWrite on macOS
  * Periodically optimize FTS table
  * Fix change counter check in fts optimization
  * Use Signal tokenizer in FTS5
  * Optimize conversation open performance
  * Reorder migrations
  * Revert "Periodically optimize FTS table"
  * Update @signalapp/better-sqlite3 to 8.4.1
  * Fix build expiration reporting
  * Split ACI contact when it is unregistered
  * Update electron to 22.2.0
  * Make mock server envelopes younger
  * Process username changes in storage service
  * Generalize keepMutedChatsArchived check
  * Simplify E164 checks in storage service
  * Decrease contact sync timeout on linking
  * Disallow pinning broken conversations
  * Support reporting token on envelope
  * Use signDlls electron-builder option for Windows
  * Remove spurious notification messages from test
  * Create AudioContext only when needed
  * Username hashing
  * fix flaky mock server test
  * Speed up bulk conversation creation 
  * svgo all svgs
  * Remove at-username i18n string
  * Periodically optimize FTS table
  * Restore PNI when restoring UUID
  * deps: update better-sqlite3 to 8.4.3
  * Username onboarding
  * Fix unhandled rejection in differential updater
  * Use ContactRecord.systemNickname
  * Handle ERR_FAILED from loadURL when shutting down
  * Handle 409/410 when confirming username
  * Fix conversation title building when merging
  * Use systemNickname in conversation merger
  * Disable FTS optimizer in production
  * SquirrelMacEnableDirectContentsWrite in Beta
  * Further restrict E164 format in storage service
  * Partially revert "Speed up bulk conversation creation"
  * Fix change counter check in fts optimization
  * Include optional dependency in asar when built
  * Allow substitutions when symbolicating reports
  * PNP Settings
  * Enable SquirrelMacEnableDirectContentsWrite
  * Ignore more ERR_FAILED instances
  * New sticker creator button
  * Better way to throw websocket exceptions
  * Descriptive error messages for video stories
  * confine art creator to staging for now
  * Fix window-height css variable
  * Graceful rimraf in updater
  * Graceful handling of readonly DB error
  * Update Lightbox UI
  * Page media in Lightbox
  * Enable FTS optimizer in production
  * Unflip forward icon in Lightbox
  * Use electron API to detect Rosetta
  * Minor UI fixes for updated Lightbox
  * Use ListTile in username/e164 compose
  * Fix typo in icu:ArtCreator--Authentication--error
  * Fix settings breadcrumbs for onboarding flow
  * Fix min-height of PNP settings row
  * Remove padding from nested modal footer
  * Use libsignal-client validation for nicknames
  * Use spring to animate lightbox thumbnails
  * Fix modal text on username gone error
  * Reverse direction of lightbox animation
  * Fix object destroyed error
  * Fix adding to group by username
  * Move setVerified to conversation queue
  * NSIS should fail installation on Windows < 7
  * Better logging for hanging benchmarks
  * Always animate lightbox transitions
  * Make lightbox buttons smaller
  * New state for Update Dialog
  * Remove Sticker Creator in favor of Web App
  * Fix Lightbox crash
  * Clean-transpile sticker creator
  * Remove deleted strings after one month
  * Remove typeface-inter from dependencies
  * electron@22.3.3, esbuild@0.17.11, typescript@5.0.2
  * UpdateDialog on InstallScreen
  * Windows Installer tweaks
  * Fix linux icons
  * Fallback to dns.resolve4/6 on getaddrinfo failure
  * Copy profileSharing when merging conversations
  * isInSystemContacts should use systemName
  * Use custom fallback DNS servers
  * Use differentialPackage option for nsis
  * Handle PNI+PNI+E164 triple
  * Make sure that radios are mutually exclusive
  * Display "days ago" in loading screen
  * Introduce buffered console logger
  * Faster Windows/Linux CI
  * Adjust copy in loading screen
  * Cache eslint cache in CI
  * Fix eslint cache update
  * Update electron to 22.3.5
  * Loading screen progressbar improvements
  * Fix storybook
  * Update tray/titlebar icons
  * Context menu for left pane list items
  * Use DoH for query fallback
  * Reduce job queue shutdown timeout
  * Reduce timeout for newMessageQueue
  * Move challenge urls into config
  * Use synchronous IPC for passing config
  * Simplify redux ducks and avoid reexport
  * Use lookupOrCreate in getMessageDescriptor
  * Sync contact record after key change notification
  * Fix flakey mock test
  * Sticker Creator Window
  * Copy quote from original message
  * Don't collapse metadata for edited message
  * Use timestamp of edited message when editing
  * Disable image preload
  * Make lightbox buttons smaller
  * MessageReceiver improvements
  * Extra toast for Message Receiver errors
  * Remove unused notification when possible
  * Fix check in MessageReceiver
  * Update icons to v3
  * Fix sticker manager
  * Fix chat color icon in convo details
  * Use new attachments API endpoint
  * Update delivery status icons
  * Fix highlighting of nested context menus
  * Some other minor UI fixes
  * Use correct resend request timestamp
  * Disable editing quotes for messages
  * Drop support of PniIdentity sync message
  * Map zh_TW to zh-Hant in NSIS
  * Update electron to 24.2.0
  * Fix sync message for editMessage
  * Assert presence of sent_at timestamp for receipts
  * Add notice on Ubuntu < 20.04
  * Require libc 2.28 on Linux
  * Put timestamp of edited message into the job
  * Test SenderKey receive
  * Use correct timestamp for receipts of edited messages
  * Update tray icons
  * Optimize getAdjacentMessagesByConversationSync
  * Update call button icon states
  * Format WhatsNewModal
  * Use e164 from PniChangeNumber sync message
  * Fix position of lightbox arrows for a video
  * Minor adjustments to "Join" button
  * drop-shadow for lightbox arrows
  * Update more icons to v3
  * Don't send group update on PNI decline
  * Use libsignal-client for username validation
  * Remove lonely e164 conversation lookups
  * Delete PNI storageID on merge
  * Fix handling of replies on multiple dist lists
  * Use electron's DNS resolver, prioritizing ipv4 connections
  * Fix edit message in Note to Self
  * Clear typing indicator after receiving edits
  * Use custom entitlements for frameworks/libs
  * Optimize debug logs by truncating CDN URLs
  * Disable contact management for Note to Self
  * MemberPendingProfileKey can't have profile key
  * Implement simplified Happy Eyeballs
  * Don't shuffle dns addresses
  * Simplify WebSocket keepalive logic
  * Make TLS handshake a part of Happy Eyeballs
  * Fix number blocks alignment in Safety Number UI
  * Do not use hostname with tls.connect
  * Update electron to 25.1.1
  * Enable TCP Keep-Alive on WebSockets
  * Update typescript to 5.1.3
  * Upgrade electron to 25.2.0
  * destinationServiceId in Sent
  * Fix click handling in nested modals
  * Add support for ACI safety numbers behind a feature flag
  * Always visible arrows, new remote config
  * Update electron to 25.3.0
  * Add !unread: internal filter
  * Better ordering of ACI/E164 numbers
  * Fix part of storybook stories
  * Support cds.disableCompatibilityMode
  * Add missing string to _locales/en/messages.json
  * Username Link QR Code
  * Remove unstable test
  * Use combined username link API
  * Update group notification icons
  * Stories/lists management for removed contact
  * Fix sticker creator cover image selection
  * Update libsignal-client to 0.29.1
  * Fix mock test path prefix
  * Upgrade electron to 25.4.0
  * Introduce Service Id Types
  * A few serviceId fixes
  * Attachment controller fixes
  * Migrate schema to service ids
  * Optimize migration 88
  * Unlink on PNI identity key mismatch
  * Add extra slash to username link
  * Fix aci value in mentions
  * Replace assert with log in markConversationRead
  * Add done button to UsernameLinkModalBody
  * Fix persistence of username link data
  * Update electron-builder to 24.6.3
  * Fix handling of broken items on startup
  * Fix sync messages for voice notes
  * Upgrade libsignal to 0.31.0
  * Handle username link 404 by showing toast
  * Fix reaction field name in migration 88
  * Atomic linking
  * Fix incorrect My Story name in SendStoryModal
  * Use contact's familyName if givenName is empty
  * Support Happy Eyeballs in proxy-agent
  * Explicit ACI check for contact serviceId
  * Add more granularity to accountE164 deprecation
  * Don't show error dialog with valid ACI
  * Fix storage of joinedAtVersion in groups
  * Omit large polyfills and unused modules from asar
  * Update better-sqlite3 and remove FTS optimization
  * Reenable FTS optimization
  * Fix crash in getBackgroundColor
  * Fix migration for conversations with null json
  * Fix profile key oscillations in groups
  * Update Electron to 26.1.0
  * Add support for symbolicating raw .dmp files
  * Fix flashing MR after restoring contact
  * Upgrade electron to 25.8.1
  * Fix format of pniSignature.pniBytes
  * Auto-retry starting app in mock tests
  * Update better-sqlite3 to 8.5.2
  * Add more timeouts, retries in mock tests
  * Add keyboard navigation to SafetyNumberViewer
  * Fix file extension in symoblicate-crash-reports
  * Support duplicate attachments in lightbox
  * Fix message timestamp in Lightbox
  * Use untagged pnis in storage service
  * Don't accept PNI as ACI in contact sync
  * Update electron to 25.8.4
  * Use the profile key from the latest group change
  * Restart captcha handler on online status blip
  * Writable/readable database interfaces
  * Retain cdn ids for attachments
  * Fix deadlock in saveIdentity
  * Run integrity checks on database corruption
  * Use FTS5 optimizer in production
  * Fix retry logic
  * Deprecate storageServiceKey in SyncMessage.Keys
  * Show Session Switchover Events
  * Promote fts5 secure-delete to production
  * Accept masterKey in ProvisionMessage
  * Update electron to 25.9.3
  * Clear PNI signature flag on PNI change
  * Fix units of global.safetyNumberAci
  * Sign .node files on windows
  * Enable pni capability
  * Keep crash report url after restart
  * Remove safetyNumberAci remote configuration
  * Remove support for E164-based numbers
  * Strict types in RemoteConfig
  * Username and username link integrity check
  * Better check for empty storage/master keys
  * Remove deprecated ContactDetails fields
  * Compile protobufs with no-convert/null-defaults
  * Fix UI bug with self-add by username in groups
  * Fix left pane banner colors & add username integrity check to queue
  * Use 'SF Pro' font as a fallback in jp locale
  * Clean up group credential fetcher
  * Better filtering of contacts in search
  * Fix accountRecord.e164 deprecation
  * Catch early exceptions in runCorruptionChecks
  * Update electron to 27.1.2
  * Provide file url to autoUpdater on macos
  * Revert --null-defaults flag for pbjs
  * Revert "Provide file url to autoUpdater on macos"
  * Use signal_tokenizer for search query
  * Provide file url to autoUpdater on macos
  * Use feed.json with macos updater
  * Bump minOSVersion for macOS
  * Fix one more updater bug on macos
  * Fix handling of trailing '/' in captcha urls
  * Upgrade electron to 27.1.3
  * Support PNI in QualifiedAddress.parse
  * Cleanup RemoteConfig
  * Persist reaction.receivedAtDate
  * Allow reactions/replies after setting removalStage
  * Fix scrolling for contact in removalStage
  * Move `open-url` handling to first instance block
  * Install downloaded updates while in tray
  * Pass through vendor json in the updater
  * Add default update fields to package.json
  * Use createHTTPSAgent for all requests
  * Fix boolean treatment in updater
  * Test Sticker Creator in CI
  * Fix signal connection count
  * Revise copy for clear data dialog
  * Delete unused localization strings
  * Ignore delivery receipts for outgoing reactions
  * Don't auto-update during calls
  * Add one missing emoji shortcut
  * Upgrade electron to 27.2.0
  * Support phone number sharing flag on profile
  * Add more specific group change notification string
  * Preserve avatar during integrity fix
  * Use native dark theme titlebar on Windows
  * Upgrade Electron to 27.2.3
  * Fix parsing of Retry-After
  * Custom Discriminator in EditUsernameModalBody
  * Upgrade Electron to 28.1.5
  * Release notes for 6.46.x
  * Update strings
  * v6.48.0-alpha.1
  * Remove most uses of desktop.pnp remote config
  * Remove unused query parameter
  * Upgrade Electron to 28.2.0
  * Username UI Improvements
  * Username Education
  * Add pniSignatureVerified support
  * Explicit checks for pniChangeNumber
  * Fix UsernameMegaphone text padding
  * Don't show megaphone when username is set
  * Test more contact splitting scenarios
  * Adjust copy for UsernameOnboardingModal
  * Fix PNI normalization in conversation selectors
  * Add extra PNP string to settings
  * Conversation details changes for PNP
  * Fix dropped avatar on PNP settings update
  * Enable autoConvertEmoji by default
  * Username recovery improvements
  * Successful remote config fetch should unexpire app
  * Update crashReports configuration on alpha
  * Fix case sensitivity of X-Signal-Timestamp regexp
  * Make whole username clickable in UsernameLinkModalBody
  * Update shared groups when opening dialog
  * Change defaults for conversation title generation
  * Change copy for a error message
  * v7.1.0-alpha.1
  * Enable usernames
  * New compose UX for usernames/e164
  * Always display reset modal on success
  * Fix highlight in CountryCodeSelect
  * Switch to light number icon
  * Extract region from e164 in FindByPhoneNumber
  * Use libsignal-client for parsing crash reports
  * Consistent display of E164 on some dialogs
  * Fix icon color for e164 entry
  * Support Enter shortcut in findBy helpers
  * More permissive username search
  * Jitter updater poll timeout
  * Don't poll websocket on remote expiration
  * Fix conversation close shortcut
  * Fix MessageRequestResponse sync processing
  * Add more buttons to ContactModal
  * Some adjustments to AboutContactModal
  * Control UI visibility in ProfileEditor
  * Update country display names
  * Reduce max discriminator length
  * Remove unused pre-PNP code
  * Further PNP fixes
  * Some PNP fixes
  * Enforce LTR in EditUsernameModalBody's input
  * Run storage service sync after linking
  * AboutContactModal improvements
  * Release notes for 7.0
  * Update strings
  * v7.2.0-alpha.1
  * Fix Settings window for linking stage
  * Fix username link QR code in RTL
  * Add extra error state to EditUsernameModalBody
  * PNP UI Change for Preferences
  * Update benchmark action
  * Update storage service enum names
  * Update strings
  * Upgrade electron to 29.0.0
  * Patch nan to fix Electron 29 build
  * Fix FullOnly updater fallback
  * Use rezip-electron when build macOS zip files
  * Post release events to datadog
  * Fix release action
  * Fix release action pt2
  * Add manual acknowledgement
  * Fix sequencing of database closes
  * Use indexOf instead of RegExp
  * Add ellipsis for long contact names
  * Provide fallback IP addrs for core services
  * Fix minor issue in searchMessages
  * Fix get-strings script
  * Update mock-server to 5.2.0
  * Resolve fallback dns addrs during build
  * Fix calls to PNI
  * Fix version check in crash handler
  * Fix message gradients in ConversationPanel
  * Run storage service on link
  * Release notes for 7.1
  * Update strings
  * v7.3.0-alpha.1
  * Update mock server to 6.0.0
  * Add parse-crash-reports script
  * ICU types
  * Fix lookupConversationWithoutServiceId
  * Rebuild icu-types as a part of dev:transpile
  * Fix symbolication of windows crash reports
  * Drop some unused files from asar
  * Introduce TitleTransition notification
  * Run benchmarks every 12 hours
  * Update error string
  * Deprecate icu:unreadMessage
  * Update config json files atomically
  * Delete a bunch of unused strings
  * Remove unused storage keys
  * Include and process destinationPniIdentityKey
  * Patch app-builder-lib to reorder asar
  * Don't import emoji-datasource in main
  * Introduce outage network status
  * Skip updating ICU types if they are unchanged
  * Add preliminary message backup harness
  * Fix createProxyAgent on Electron 29
  * Don't unlink on 4409
  * Simplify online/offline status management
  * Better group call state management
  * Localize Chats NavSidebar title
  * Merge signalapp/Signal-Desktop#6830
  * Lazy import proxy-agent
  * Don't run integrity checks when unlinked
  * Add localized emoji search
  * Move away from smartling CLI
  * Fix script name in package.json
  * Fix getGotOptions use after merge
  * Fix emoji search crash, show all supported emoji
  * Fetch updated profile on profile key update
  * Fix push-strings script
  * Update story gradients
  * Make appendPadding infer file size
  * Clear old conversation merges on Note to Self
  * Remove diacritics from fuse.js search term
  * Introduce --disable-ipv6 CLI option
  * Unsubscribe autoUpdater event handlers
  * Increase dns lookup timeout
  * Backup encryption and improvements
  * Don't put empty username into backup
  * Update mock-server to 6.3.0
  * Update electron to 30.0.0
  * Update sendStateByConversationId after merge
  * Fix lazy creation of ProxyAgent
  * Fix backup validation
  * Revert "Update electron to 30.0.0"
  * Backup Server APIs
  * Rename backupServerPublicParams
  * Release notes for 7.7
  * Update strings
  * v7.9.0-alpha.1
  * Remove edit message/formatting onboarding
  * Simplify group request making
  * Implement API for backup upload
  * Show reconnecting notification when screensharing
  * Improve localized emoji ranking
  * Import distribution lists from backup
  * Release notes for 7.9
  * Update strings
  * v7.11.0-alpha.1
  * Fix PiP aspect ratio to match request video
  * Update @electron/symbolicate-mac to 2.1.0
  * Use TUS utilities for backup upload
  * Update electron to 30.0.5
  * Move sticker creator API to chat service
  * Upgrade libsignal-client to 0.46.2
  * Upgrade to Electron 30.0.6
  * Add release notes workflow
  * Update release notes action
  * Export/import simple update messages
  * Upgrade electron to 30.0.8
  * Support backspace after emoji completion
  * Add unsupported/sse message export/import
  * Require more provisioning fields when linking
  * Update electron to 30.0.9
  * Better sync between convo and protocol stores
  * Edit message import/export
  * Show crash report modal earlier
  * Patch app-builder-lib to save win asar integrity
  * Don't expect endorsement response on group leave
  * Username deletion UI
  * Remove unused remote config key
  * Fix accept gv2 invite test
  * Infer libsignal environment from service url
  * Fix a typo in a profile editor string
  * Update libsignal to 0.50.0
  * Expand internal !unread filter
  * Prefer access key with SEALED_SENDER.UNKNOWN
  * Release notes for 7.13
  * Update strings
  * v7.15.0-alpha.1
  * Import/export gift badges, other fields
  * Import/export sticker packs
  * Import/export additional message flags
  * Fix pluralization of an error message
  * Remove a remote config flag
  * Lazily load better quality jumbomoji
  * Update libsignal to 0.51.1
  * Increase optional resource cache size
  * Import/export group state
  * Upgrade emoji data in sticker creator
  * Move from yarn to npm
  * Fix build on macOS
  * Update npm dependencies
  * Backport app-builder-lib patch for NSIS issue
  * Fix spurious group avatar change notifications
  * Fix esbuild in sticker-creator
  * Use 2x srcset for jumbomoji
  * Upgrade electron to 31.1.0
  * Upgrade github actions
  * Interactive test-electron
  * Fix `npm run dev:transpile`
  * Fix error handling in QR code screen
  * Fix Inbox storybook
  * Check for icu: strings in js folder as well
  * Alternative inbox visuals
  * Export tombstones for gv1 updates in gv2 groups
  * Upgrade storybook to 8
  * Use electron's safeStorage API
  * Fix buttons on safeStorage fallback modal
  * Deprecate fallback "key" property in config
  * Restart input stream on retried request
  * New attachment storage system
  * Use a fork of @electron/symbolicate-mac for speed
  * Fix dot animation on starting screen
  * Fix "copy image" context menu
  * Support extra case of config migration
  * Upgrade electron to 31.2.0
  * Update libphonenumber to 3.2.36
  * Update libsignal to 0.52.3
  * Import/export chat styles
  * Accept profile name during standalone registration
  * More lenient attachment v2 migration
  * Revert "Upgrade electron to 31.2.0"
  * Handle additional errors in attachment_channel
  * Drop noisy AbortErrors in attachment_channel
  * Resumable v2 uploads
  * Fix image send without description
  * Release notes for 7.17
  * Update strings
  * v7.19.0-alpha.1
  * Allow send with edited link preview
  * Update @types/node to 20
  * Fix error propagation for attachment streams
  * Make finalization part of the stream
  * Parallelize SQL queries
  * Parallelize test-electron
  * Better error handling for getSQLKey
  * Improve attachment option handling
  * Remove desktop.deleteSync from RemoteConfig
  * Update prettier to 3.3.3
  * Fix paging queries in the worker system 
  * Make most message attribute uses readonly
  * Update backup protos
  * Remove refs to MessageModel in conversations.ts
  * Update electron to 31.3.1
  * Use range-finder for streaming range requests
  * Update backup protos
  * Speed up background message migration
  * Speed up message migration further
  * Reduce number of cases where playback is disabled
  * Run orphaned attachment cleanup after timeout
  * Add cache layer for attachment streaming
  * Temporary fix for a Node.js regression
  * Fix image in AvatarLightbox for Note to Self
  * Fix ultramarine flash when closing Settings window
  * Update heic-convert to 2.1.0
  * Adjust contrast in StoryViewer
  * Remove event listeners on stream end
  * Streamline logic in maybeMergeContacts
  * Fix initialization order in background.ts
  * Improve check during message export
  * Better processing of minidump files
  * Fix missing group avatar on group link join
  * Remove extraneous electron-builder artifact on win
  * Download backup on link
  * Update @indutny/range-finder to 1.3.1
  * Expose data helpers for dev tools use
  * Update range-finder to 1.3.2
  * Separate calls in sql channel
  * Drop release notes channel when importing backup
  * Remove deprecated endpoint
  * Fix image processing for onboarding story
  * Update db user_version within transaction
  * Unpack windows icon from ASAR
  * Better database errors in worker thread
  * Update range-finder to 1.3.3
  * New styles for various empty states
  * Small style fixes for calls tab
  * Remove failed updater on double failure
  * Skip typecheck for emoji-datasource
  * Update range-finder to 1.3.4
  * Resumable attachment downloads
  * Add unlink step to existing UI flow
  * Watch protobuf changes in dev:transpile
  * Fix unhandled promise rejection text content
  * Add an extra debug method
  * Fix pluralization of a group notification
  * Update better-sqlite3 to 8.8.0
  * Introduce versioning clock to timer system
  * Fix backup import flow in linking UI
  * Preserve draft on conversation merge
  * Only increment timer version once
  * Release notes for 7.22
  * Update strings
  * Update DNS fallback
  * v7.24.0-alpha.1
  * Preload conversation open data
  * Introduce incrementMessagesMigrationAttempts query
  * Fix loading newer messages on scroll
  * Update strings to make direct refs to buttons
  * Send FETCH_LATEST.LOCAL_PROFILE on capability flip
  * Update electron to 32.0.1
  * Improve octetstream fallback in attachment channel
  * Fix build rules for windows
  * Track installer size across commits
  * Remove some unused libraries from asar
  * Resumable backup import
  * Refactor provisioning flow
  * Remove mapDispatchToProps
  * Add backup comparator test harness
  * Make backup import UI part of install
  * Introduce isStagingServer util method
  * Simplify copyQuote logic
  * Upgrade electron to 32.0.2
  * Include code cache for preload bundle
  * Generate preload cache from live app
  * Save artifacts on preload cache build failure
  * Remove unused module
  * Disable preload cache for now
  * Better exception handling for getDomain
  * Add mock test for safety number dialog
  * Don't create models in backups/import
  * Upgrade esbuild to 0.23.1
  * Drop messages earlier in backup import
  * Import/export expireTimerVersion
  * Preserve custom chat color order in backup
  * Backup import cancel UI
  * Don't patch Module without preload cache
  * Upgrade electron to 32.1.0
  * Update simple-windows-notifications to 2.0.2
  * Update simple-windows-notifications to 2.0.3
  * Update simple-windows-notifications to 2.0.4
  * Update simple-windows-notifications to 2.0.5
  * Fix some backup integration tests
  * Update simple-windows-notifications to 2.0.6
  * Backup import/export consistency fixes
  * Fix more import/export tests for backups
  * Revert "Upgrade to libsignal 0.58.0"
  * Further improvements for backup import/export
  * Refactor screen share picker internals
  * Better backup integration test harness
  * Enable useSystemPicker in non-production
  * Run backup integration tests in CI
  * Revert "Enable useSystemPicker in non-production"
  * Upgrade electron to 32.1.2
  * Update styles for verified icon
  * Fix cache invalidation for conversation preload
  * Create dependabot configuration
  * Release notes for 7.27
  * Update strings
  * Update DNS fallback
  * v7.29.0-alpha.1
  * Native macOS Sequoia screen sharing
  * Update simple-windows-notifications to 2.0.7
  * Update mac-screen-share to 1.0.5
  * Update mac-screen-share to 1.0.8
  * Update mac-screen-share to 1.0.11
  * Fix screenshare resolution
  * Fix adding sticker in media editor
  * Update backup tests to 996daf691d4162ce
  * Compute from embedded contact's displayName
  * Reuse html element for local preview visuals
  * Disable storage service while importing backup
  * Handle stopping screensharing from native UI
  * Remove unnecessary dialog on macOS Sequoia
  * Remove desktop.calling.raiseHand flag
  * Migrate sessions table to BLOB column
  * Fully move backup integration test to mock server
  * Migrate message ids to UUIDv7
  * Allow both UUIDv4/v7 for message ids
  * Update mock-server to 8.0.1
  * Move screenshare stop logic to ringrtc
  * Export/import attachments in integration tests
  * Bump node version to 20.18.0
  * Support for global.messageQueueTimeInSeconds
  * Update better-sqlite3 to 9.0.6
  * Use uuidv7 in callDisposition
  * Update electron to 33.0.1
  * Update rezip-electron to 2.0.0
  * Graceful fallback for unsupported body range type
  * Don't mirror screensharing preview in PiP
  * Link-and-sync
  * Deprecate macOS Catalina
  * Upgrade better-sqlite3 to 9.0.7
  * Disable link-and-sync in Alpha
  * Revert "Bump electron from 33.0.1 to 33.0.2"
  * Re-enable link-and-sync in Alpha
  * Fix link-and-sync in Alpha
  * Unlink on backup interruption
  * Import/export view-once messages
  * Faster backup import for large conversation count
  * Allow link-and-sync transfer to be in any CDN
  * Release notes for 7.32
  * Update strings
  * Update DNS fallback
  * v7.34.0-alpha.1
  * Update HKDF constants for backups
  * Fix binary name in CI
  * Update to libsignal 0.60.2
  * Don't run storage service concurrently with backup
  * Show backup import UI on Link-and-Sync
  * Fix adding large stickers in media editor
  * Add recordIkm to generated ManifestRecord
  * Timeout provisioning socket when visibility=false
  * Change attributes before queuing job
  * Use classes for QueryFragment in sql
  * Fix useHasWrapped hook
  * Refactor force-update updater mode
  * Reorder checks in initialization sequence
  * Fully sync before exporting a backup
  * Deprecate Keys.storageService sync field
  * Export/import verified state
  * Fix download progress reporting for force update
  * Show update UI on backup version mismatch
  * Improve backup export benchmark measurement
  * Update libsignal to 0.62.0
  * Handle abort signal in SocketManager
  * Ignore stdout errors when running from console
  * Upgrade rezip-electron to 2.0.1
  * Update backup integration tests to fcd73d83
  * Re-hydrate signal protocol caches after import
  * Add missing await in storage service code
  * Add new release line for testing
  * Fix service id conversion in import
  * Auto-retry transient update errors once
  * Set `verified` attribute on import
  * Fix UI for invalid timestamps
  * Fix self-mention in groups
  * Update better-sqlite3 to 9.0.9
  * Upgrade message batch on import
  * Update mock-server to 10.2.0
  * De-asyncify receipt handling logic
  * Make aci optional in ContactsParser
  * Ensure ACI in aci fields in backup
  * Export single contact, nickname
  * Apply bounds to timestamps during backup import
  * Improve invalid attachment locator handling
  * Improve check in storage service comparator
  * Fix import of link previews without date
  * Update ClearingData screen UI
  * QR code rotation
  * Disable fsync during backup import
  * Use specific string for ClearingData
  * Rename deleted strings
  * Release notes for 7.39
  * Update strings
  * Update DNS fallback
  * v7.41.0-alpha.1
  * Unmark string as deleted
  * Normalize messages table
  * Use Ubuntu 22 in CI
  * Use X-Signal-Timestamp header
  * Shorten description string
  * Fix query parameters
  * Change QR code style on linking screen
  * Optimize svg using new version of svgo
  * Fix provisioner early termination
  * Migrate unprocessed table to BLOBs
  * Fix attribution of chat updates on import
  * Fix progress bar width in import screen
  * Fix sourceDevice column type in unprocessed
  * Fix processing of cached envelopes
  * Use @electron/symbolicate-mac
  * Fix author id for e164-only 1:1 messages
  * Fix sticker pack download on import
  * Update electron to 34.0.1
  * Disallow conversation model creation during import
  * Fix QR-code auto-retry logic
  * Fix padding of conversation list
  * Resolve sticker pack references after import
  * Update better-sqlite3 to 9.0.10
  * Fix accidental loop during backup import
  * Wrap link preview description for long words (#9662)
  * Fix timestamp capping for storage service
  * Don't fetch remote config twice on startup
  * Fix status of in-flight sticker packs after import
  * Test processing of unprocessed envelopes
  * Change header visibility in left pane
  * Notification token on Windows
  * Update better-sqlite3 to 9.0.11
  * Refactor sticker sync logic
  * Remove unused string
  * Remove another unused string
  * Fix handling of encrypted unprocessed envelopes
  * Fix combining group change messages
  * Fix 1:1 calls
  * Update string to match iOS/Android
  * Vary number of decimals of file sizes
  * Fix sql error when restoring from interrupted sync
  * Refactor fast-glob pattern
  * Make link-and-sync downloads resumable
  * Use pnpm
  * Use pnpm in reproducible builds
  * Use --frozen-lockfile in reproducible builds
  * Support dynamic import with preload cache
  * Fix linux CI in main
  * Retry SQL query on successful FTS5 recovery
  * More accurate startup/backups benchmarks
  * Fix startup benchmark metrics
  * Cache ~/.electron-gyp in CI
  * Set MAX_CYCLES=2 for benchmarks in main
  * Use ms-winsoundevent:Notification.IM on Windows
  * Fix flaky test
  * Release notes for 7.45
  * Update strings
  * Update DNS fallback
  * v7.47.0-alpha.1
  * Show a modal for macOS media permissions
  * Fix media permissions modal string
  * Show update UI on asar changes on Linux
  * Reuse webp emoji sheets in the app
  * Move react-dev-tools-core to dev dependencies (#9902)
  * Exclude bundled dependencies from asar
  * Compactify locales even more
  * Import/export avatar colors
  * Use @signalapp/sqlcipher
  * ICU book workflow
  * Remove unused .node file on win/linux
  * Ignore electron-winstaller dependency
  * Relax media checks in calling lobbies
  * Fix sequencing of call state updates
  * Fix github actions to specific commit hashes
  * Skip building x64/arm64 dmg for macOS
  * Build native dependencies in parallel
  * Fix installer size dd script
  * Proper caching for batched statements
  * Use prebuilt simple-windows-notifications
  * Fix packaging on Windows with prebuild module
  * Hot socket
  * Attachment backfill
  * Add backfillError to AttachmentType
  * Allow backfill for more undownloadable attachments
  * Fix scheduling of paging queries
  * Highlight components in ICU Book
  * Fix avatar background aliasing
  * Backfill improvements
  * Improve remote participant rendering performance
  * Parallelize get-strings
  * Fix group link wrapping in convo details
  * Update inter to 4.1
  * Use `transform: translate` for call participants
  * Revert "Update inter to 4.1"
  * Avoid CropAndScale calls in RingRTC
  * Fix icu string
  * Better preload time counting
  * Fix restarting provisioner loop
  * Update electron to 35.1.4
  * Fix internal logo size
  * Move websocket preconnect earlier into startup
  * Lazy-load mac-screen-share C++ addon
  * Fix local preview width
  * Actually fix local preview container size
  * Fix link-and-sync cancellation
  * Release notes for 7.51
  * Update strings
  * Update DNS fallback
  * v7.53.0-alpha.1
  * Fix @electron/rebuild pnpm issue
  * Reduce ICU book build size
  * Fix test-electron on macos CI
  * Simplify preload cache generation
  * Add backup validation to settings
  * Use signed nsis package
  * Fix dynamic imports in bundled app
  * Be resilient to invalid incrementalMac value
  * Fix digest for nsis-3.0.4.1.7z
  * Fix roundtripping of voice notes with body
  * Fix backup export error for invalid serviceId
  * Simplify conflict resolution in storage service
  * Provisioner improvements
  * Update staged link preview styles
  * Fix link previews in forward modal
  * Delay provisioner socket connection
  * Remove already enabled blink features
  * Send window activation from tray icon as well
  * Simplify service id checks in MessageReceiver
  * Fix some backup export issues
  * Spread the update downloads over 6 hours
  * Additional fixes for backup validator
  * Update @signalapp/sqlcipher to 2.0.1
  * Set CI=true in reproducible build
  * Update electron-builder to 26.0.14
  * Better update handling on Linux
  * Fix backup validation errors
  * Better context menu on macOS
  * Attribute exported group updates to local ACI
  * Update sqlcipher to 2.0.3
  * Add content protection checkbox to Settings window
  * Scope down content protection to Windows 11
  * Fix runtime error in nickname equality check
  * Fix state after backup integration tests
  * Run SQL corruption check on logic error
  * Prefix sql read/write errors with method name
  * Use frame-by-frame validator for testing
  * Scope down content protection further for now
  * Fix additional backup export validation errors
  * Reorder getSendTarget logic for clarity
  * Release notes for 7.56
  * Update strings
  * Update DNS fallback
  * v7.58.0-alpha.1
  * Simplify message receiver event
  * Add a new CLI flag
  * Be more lenient with profile change export
  * Allow exporting pni-only contacts
  * Propagate CLI option to Settings UI
  * Be more lenient to misplaced pni in conversations
  * Update size of audio playback button
  * Update minimum ubuntu version
  * Drop pni call messages
  * Fix localization of "New call" view header
  * Delay storage service sync until empty
  * Better state teardown in tests
  * Unify shared group computation logic
  * Fix button label for save dialog
  * Fix focus UI for ListTile
  * Show error on invalid username links
  * Replace buffer.slice() with buffer.subarray()
  * Refactor build expiration checks
  * Linkify untruncated text
  * Enable GPU use on Linux
  * Fix backdrop for video stories in StoryCreator
  * Fix uncaught errors from ResizeObserver
  * Better usage of pino
  * Scope pino lines with filename
  * Add colors to Dev Tools
  * Fix creation of pino children
  * Fix double-wrap of MessageReceiver pino instance
  * Use new compact representations in protobufs
  * Update mock-server to 13.0.1
  * Demote sender key error in Signal Protocol Store
  * Update electron to 37.1.0
  * Update libsignal-client to 0.76.0
  * Dev tools grepping
  * Update @signalapp/sqlcipher to 2.1.0
  * Fix debuglogs window
  * [signalapp/Signal-Desktop#7403] use fromSeconds when setting universalExpireTimer
  * Release notes for 7.61
  * Update strings
  * Update DNS fallback
  * v7.63.0-alpha.1
  * Revert "Update electron to 37.1.0"
  * Fix contact sync for aci-less contacts
  * Use react-dom/client createRoot
  * Introduce ImageOrBlurhash component
  * Fix aspect ratio of ImageOrBlurhash
  * Fix lightbox mock test
  * Run lint in parallel
  * Simplify database migrations
  * Update pino to 9.8.0
  * Faster CI runs
  * Update @signalapp/sqlcipher to 2.2.2
  * Use larger windows runner in CI
  * Fix benchmark name
  * Fix quote annotation for GIFs
  * Remove unused capabilities
  * Fix check in wasGroupCallRingPreviouslyCanceled
  * Revert react-virtualized key changes
  * Key ConversationList by mode in left pane
  * Fix attachment key in AttachmentList
  * Use fully qualified keys in ConversationList
  * Add existence check to addStickerPackReference
  * Release notes for 7.67
  * Update strings
  * Update DNS fallback
  * v7.69.0-alpha.1
  * Update @signalapp/sqlcipher to 2.3.0
  * Update @signalapp/sqlcipher to 2.4.3
  * Fix `sleep()` during background throttling
  * Disable background throttling
  * Update @signalapp/sqlcipher to 2.4.4
  * Update electron to 37.3.1
  * Introduce FileThumbnail component
  * Add `.screenshot()` method to mock tests
  * Improve left pane search bar behavior
  * Merge ProgressCircle into SpinnerV2
  * Fix image spinner
  * Support symlinked stickers.noindex folder
  * Update styles for MediaGallery
  * Fix lint
  * Fix MediaGridItem for undownloaded GIFs
  * Show video duration in all media UI
  * Enforce `node:` schema for builtins, import extensions
  * Update electron to 38.1.2
  * Fix storybook
  * Final fixes for storybook after ESM prep
  * Update icon in MediaPermissionsModal
  * Qualify CJS-only module imports
  * Improve delivery receipt processing
  * Fix suggested names for saved attachments
  * Show ready-to-download documents in media gallery
  * Release notes for 7.73
  * Update strings
  * Update DNS fallback
  * v7.75.0-alpha.1
  * Update minimum macOS version to match Electron 38
  * Improve getUnusedFilename parsing
  * Add min OS version check to CI
  * [signalapp/Signal-Desktop#7496] Respect user-entered file extension when saving
  * Better draft attachment management logic
  * Fix string value for all media button
  * Update electron to 38.2.0
  * Update outgoing message size calculation
  * Fix closure of libsignal socket on reconnect
  * Introduce kyber pre key triple table
  * Mitigate macOS 26 performance issues
  * Update emoji-datasource to 16.0.0
  * Add transaction support to kyber triples
  * Simplify get-jumbomoji script
  * Update jumbomoji to version 12
  * Speed up TypeScript type checking
  * Don't include Server.js in Interface.js
  * Simplify source file dependency graph
  * Update pnpm to 10.18.1
  * Faster incremental builds
  * Fallback to emoji-datasource for unlocalized emoji
  * Move SignalProtocolStore off window
  * Remove window.textsecure global
  * Remove window.Signal.Services.storage
  * Remove a bunch more global variables
  * safePoll shouldn't produce error messages
  * Use mp4san
  * Remove window.Signal.Migrations
  * Remove window.i18n in favor of SignalContext.i18n
  * Add extra calling error modal
  * Remove window.getAccountManager
  * Fix calling dev tools window
  * Update emoji search index to version 15
  * Setup dependabot for github-actions
  * Reenable actions/setup-node cache
  * Prepare for adding file suffixes
  * Rename files
  * Suffix lint rule and fixes
  * Support muting from AirPods on macOS
  * Help debugging muteStateChange issues
  * Ensure all deps are categorized in file-suffix
  * Use v2 endpoints for groups WebAPI
  * Improve calling preload script
  * Upgrade electron to 38.4.0, electron-builder to 26.1.0
  * Revert electron-builder to 26.0.14
  * Import WindowsNotifications unconditionally
  * Exclude our own conversation from connection count
  * Allow .tsx files to be .std.tsx
  * Update emoji-picker-react in sticker creator
  * Fix uncaught error in AttachmentCrypto
  * Use emoji sheet with fallback
  * Show contact modal on click when reviewing
  * Run test-release in a temporary folder
  * Fix freeze in mute-state-change
  * Use binary proto fields in staging
  * Update to electron 39.0.0
  * Fix order of muteStateChange update
  * Release notes for 7.79
  * Update strings
  * Update DNS fallback
  * v7.81.0-alpha.1
  * [signalapp/Signal-Desktop#7571] Fix duplicate word in bug report template
  * Simplify GumVideoCapturer
  * Don't clear link preview on text selection
  * Fix findStoryMessage for in-memory messages
  * Update electron to 39.1.2
  * Downgrade electron to 39.1.1
  * Fix starting background color of about window
  * Update electron to 39.2.0
  * FIx initial background of main window
  * Link previews in all media
  * Update electron to 39.2.1
  * Fix media gallery updates on message change
  * Fix another instance of media gallery update
  * Audio tab in media gallery
  * Support consecutive playback in all media
  * Fix polkit template file
  * Clicking media gallery date should show message
  * Fix missing string
  * Remove references to missing .svg files
  * Media Gallery improvements
  * More Media Gallery fixes
  * Further tweaks for media gallery
  * Fix lint in AxoDialog
  * Fix use of Date.now() in test
  * Disable consecutive audio playback in Media Gallery
  * Fix layout issues in MediaGallery
  * Fix grid scaling in media gallery
  * Interact with Windows notifications from a thread
  * Fix loading more audio in media gallery
  * Update tabs UI in MediaGallery
  * Use semibold font for media gallery headings
  * Don't include preload/dom files in ASAR
  * Update rezip-electron/better-blockmap
  * Better order of files in ASAR
  * Minimize processing of forwarded attachments
  * Update rezip-electron to 3.0.2
  * Fix sticker creator
  * Contacts in documents tab of Media Gallery
  * Clear thumbnail/screenshot when forwarding media
  * Fix crash report stack traces
  * Add option to sort by file size in Media Gallery
  * Show profile name in about contact more often
  * Add extra API key for benchmarks
  * Better grafana env variables for benchmarks
  * Key Transparency
  * Fix placeholder in Key Transparency string
  * Update strings
  * Update DNS fallback
  * v7.90.0-alpha.1
  * [signalapp/Signal-Desktop#7693] Make formatting text with keyboard shortcuts irrespective of Caps Lock
  * Switch provisioning to libsignal
  * Follow up Key Transparency changes
  * Update electron to 40.1.0
  * Better Windows Store installation process
  * Fix safeStorage use in CI
  * Simplify link preview image fetching
  * Fix proto syntax in Migrations.proto
  * Update localized emoji, fix search
  * Fix some Key Transparency strings
  * Fix visibility of KT in settings
  * Add extra checks for OptionalResourceService
  * All Media Context Menu
  * Handle Envelope.serverGuidBinary
  * Remove duplicate header on websocket requests
  * Add feature flag for binary service id use
  * Split off an instance of icu:view
  * Revert "Add feature flag for binary service id use"
  * Add feature flag for binary service id use
  * Update Electron to 40.4.1
  * Fix flaky edit test
  * Update mock server
  * Simplify prekey id generation
  * Fix sync message serialization
  * Make sure prekey ids are non-zero
  * Update mock server to 18.0.0
  * Update electron to 40.8.0
  * Simplify json export mode
  * Simplify localBackup media parsing
  * Simplify ContactsParser
  * Use DelimitedStream in backup validator
  * Use protopiler for protocol buffers
  * Fix value overflow on iOS
  * Update mock server to 18.2.0
  * Release notes for 8.3
  * Update strings
  * Update DNS fallback
  * v8.5.0-alpha.1
  * Remove protobufjs
  * Improve backup export speed
  * Fix backup export concurrency model
  * Fix group link toggle
  * Use iterator with backpressure for export
  * Fix system name processing in storage service
  * Fix backup export of broken link previews
  * Update protopiler to 3.2.0
  * Fix default value population in ducks
  * Relax migration schema a bit
  * Call `maybeSetPendingUniversalTimer` at forward
  * Update electron to 40.8.3
  * Cleanup released remote config flags
  * Disable keepNames in esbuild script
  * Check imported dlls in CI
  * Add background to .dmg file
  * Fix text story background color
  * Ignore expireTimerVersion=0 messages
  * Show update progress bar on force update with QR
  * Update protopiler to 3.2.2 (#12533)
  * Simplify TaskWithTimeout
  * Update protopiler to 3.2.3
  * Simplify esbuild script
  * Serialize sql args/results
  * Simplify TaskWithTimeout further
  * Add profileName to left pane search terms
  * Update protopiler to 3.2.4
  * Fix some import cycles
  * Remove use of __dirname from main process
  * Update electron to 40.8.5
  * Update libsignal to 0.90.0
  * Bundle everything with rolldown
  * Enable import/extensions lint rule
  * Update got to 14.6.6
  * Use *-proxy-agent modules directly
  * Remove unused patch
  * Further ASAR size reduction
  * Move one more dependency cleanup file list
  * Fix RTL rendering of delete for everyone message
  * Fix sticker creator
  * Add pnpm script for no delay releases
  * Update to mock-server@19
  * Update Electron to 41.1.1
  * A bit faster pnpm install in CI
  * gRPC mock tests
  * Run username resolution through grpc in mocks
  * Faster Windows CI
  * Fix screensharing button click handler
  * Use code-splitting across more bundles
  * Remove urlpattern-polyfill
  * Fix schema of whoami response
  * Use protopiler in sticker creator
  * Make sure manifest numbers are monotonic
  * Introduce AssetService
  * Fix fonts in storybook
  * Update electron to 41.2.2
  * Update strings
  * 8.8.0

  [ automated-signal ]
  * Tighten itemStorage types with default values
  * Always allow reporting chats as spam
  * GroupMemberLabelEditor: No confirm discard when missing permissions
  * Improve file handler check to add path separator
  * A few improvements for the save attachment workflow
  * Fix message rendering in RTL
  * Improve disabling of drag regions
  * Setup knip
  * Save serverGuid for call messages from non-accepted chats
  * Add option to run mocktests in background
  * Update copy for outgoing view once media toast
  * Clean up sync message sends
  * Bump libsignal to 0.92.1
  * Fix calls tab call button showing for terminated groups
  * Fix emoji sort order in emoji picker
  * Update unused strings script to consider scripts
  * Make `prepareFileUrl` synchronous
  * Fix contenteditable="false"
  * Preferences: Allow more options to be changed
  * Fix donation receipt saving
  * Fix emoji locales loading

  [ ayumi-signal ]
  * Fix Toast action text color to be lighter blue
  * Only show message react and reply hover buttons when actionable
  * Fix default conversation color to use state
  * Add Linux distribution version to debug logs
  * Fix voice message playback and end sound order
  * Fix getLinuxName usage of fs-extra in shared
  * Update Linux dependencies
  * Fix Message Detail Reaction Viewer overflow (#6239)
  * Workaround Linux Wayland screenshare bug
  * Multiple person typing indicators in groups
  * Group Typing Bubble Animations
  * Fix typing bubble timeline scroll jumping
  * Fix changing zoom factor with keyboard shortcut in Settings
  * Fix avatar from name to support lowercase
  * Fix show same conversation composer focus
  * Only animate typing when viewing conversation
  * Fix main window eager get zoom setting
  * Fix group typing bubble less x animation
  * Use new endpoint for badge config
  * Bring back dev:transpile dev:sass
  * Bump DOE timer from 3h to 24h
  * Fix system tray icon pixelated in Ubuntu Linux
  * Update prettierignore with .git
  * Don't process edits until attachmentDownloadQueue finishes
  * Upgrade libsignal to 0.32.1
  * New call UI and controls
  * Calling css adjustments
  * Fix call top button z-index in speaker mode
  * Fix calling participant appearance
  * Restyle CallLobby and ringing screens
  * Calling: Add local video/mute to local preview; button order
  * Settings: Improve left pane size at high zoom
  * Fix Lightbox video controls in small viewports
  * Fix floating date header when not scrolling
  * Call Controls: Enhance width for viewport sizes
  * Use Message received_at_ms to hide typing bubble
  * Fix call settings and participant page buttons
  * Fix infinite stacking All Media with shortcut
  * initializeAllJobQueues after redux is ready
  * Show error when editing messages after max edits
  * Optimize FTS5
  * Calling Reactions
  * Fix call More Options menu to not autohide
  * Call Reactions fixes and emoji consistency
  * Fix composer emoji picker hidden for RTL languages
  * Fix NavSidebar resize for RTL languages
  * Fix ConversationPanel push/pop for RTL
  * Update CONTRIBUTING.md windows VS version
  * Fix replies to videos showing as quote photos
  * Fix audio message scrubbing
  * Fix calling container top for custom titlebar
  * Raise Hand in Group Calls
  * Adjust Raised Hands button and toast visibility
  * Click grid raised hand participant to open queue
  * Fix localization plural noun objects
  * Add story for hand raising
  * Reactions from another device should show as yours
  * Fix Calling PiP for RTL languages
  * Fix call grid participant name vertical spacing
  * fix code style for pip
  * Cleanup after rotating images
  * Call Reaction Bursts
  * Hand raised sound
  * Fix unintended unread notification
  * Reduce volume of raise hand sound
  * Combine recent raised hands into existing toast
  * Show raise hand status in call participant list
  * Top level Reaction/Raise Hand buttons and remove More Options
  * Improve group call participants background, padding, margin
  * Fix pip remote video
  * Fix call participant emoji name display
  * Animate raised hand button
  * Update calling raise hand and react icons
  * Calling missing media keys indicator
  * Restore call reactions click outside to dismiss
  * Fix linking screen lost connection retry button
  * Fix reaction picker hiding on less timeline content auto scroll
  * Fix group updates for blocked users
  * Fix initial direct call from unknown contacts
  * Fix video and audio playback to pause on window close
  * Use system nickname or first name for incoming group calls
  * Update call reaction icon
  * Ask for confirmation when closing app during call
  * Fix setMediaPlaybackDisabled when reduxActions not ready
  * Fix MessageCache dev assertion for direct disappearing timer
  * Basic call link join support
  * Retry updater when in-call app close is cancelled
  * Fix updater onRestartCancelled state
  * Fix stories View/Replies overflow scroll
  * Update to emoji 15.1
  * Fix MessageCache when receiving story reactions
  * Upgrade libsignal to 0.40.1
  * Add acknowledgements from ringrtc and libsignal
  * Fix group call outgoing ring
  * Add acknowledgements from ringrtc 2.39.0
  * Update adhoc calling util
  * Only require acknowledgments rebuild in gh lint action
  * Move missed call chat badging to calls tab
  * Add migration for unread call history messages and fix json.seenStatus
  * Change ephemeral settings to only persist in ephemeralConfig
  * Upgrade electron to 29.1.0
  * Fix unread count taskbar badge for Windows
  * Handle new sync message MarkedAsRead for Calls Tab
  * Release notes for 7.3
  * Update strings
  * v7.5.0-alpha.1
  * Fix doGroupCallPeek to skip direct conversations
  * Fix Timeline to not peek group call for direct calls
  * Fix GroupCallRemoteParticipant error dialog to retain error message
  * Update calling raise hand button order
  * Upgrade electron to 29.1.5 and revert windows badge fix
  * Fix marking read a single call history
  * Update position of Call Screen Raised Hands count button
  * Call link call history
  * Fix story direct Quick Reply and low height emoji picker limit
  * Allow PiP while awaiting approval to join adhoc calls
  * Release notes for 7.6
  * Update strings
  * v7.8.0-alpha.1
  * Fix screenshare notice window and gracefully fallback mock test env
  * Update to RingRTC v2.40.0
  * Finish deprecation of legacy windows audio device module
  * Fix reaction burst skin tone variations
  * Sync call link call history
  * Fix call react button lingering tooltip
  * Call lobby join button text for call links requiring approval
  * Enable calling reactions
  * Call link admin key fix and in-call approve, deny, remove
  * Fix raised hands list title and add hint for order
  * Fix screenshare window zoomed appearance
  * Show leave button and spinner while requesting to join call link
  * Fix call link notice on group call; fix call participants horizontal alignment
  * Fix extraneous call to cleanupCallHistoryMessages
  * Fix screenshare for call link calls
  * Use global screen share cache for group calls
  * Center chat list icons at narrow width; use rounded scrollbars
  * Peek call links and group calls from Calls Tab
  * Search call links in calls tab
  * Release notes for 7.11
  * Update strings
  * v7.13.0-alpha.1
  * Update log header
  * Fix calling tools JS
  * Enable calling raise hand
  * Remap voice recording shortcut to fix Paste Match Style
  * Send profile keys in call links
  * Fix reference to signal art
  * Reduce logging by moving getConversationById serviceId normalization
  * Improve display of unknown contacts in call links
  * Update raise hand strings
  * Fix logging for in call close confirmation
  * Use flag for calling raise hand
  * Share call link via signal while in call
  * Update getTheme for full screen calls
  * Fix string pluralization for call link unknown contact count
  * View contact modal from call participants list
  * Fix voice note drafts when switching chats
  * Release notes for 7.14
  * Update strings
  * v7.16.0-alpha.1
  * Fix dev script to transpile icu-types
  * Use call link color in create, update, show
  * Patch app-builder-lib for linux prerelease versioning
  * Revert patch for app-builder-lib linux prerelease versioning
  * Block users from joining call links
  * Call link batch approve join requests
  * Fix PiP and call settings in reconnecting calls
  * Fix group call notification on group call peek
  * Save call history when peeking and discovering active call links
  * While in call link call show unknown contacts discretely
  * CONTRIBUTING: Add info for macOS ad-hoc signing
  * Mac: Fix signal link handling when app is not open
  * Fix Linux crash when config has large window dimensions
  * Update info for group call blocked participants
  * Fix undefined mainWindow on close confirmation timeout
  * Skip unsealed typing messages with active challenges
  * Cleanup normalizeGroupCallTimestamp non-number handling
  * Linux: Detect changes in safeStorage backend
  * Fix storybook dependency to be dev only
  * Only run ensureFilePermissions() once as a migration
  * Update call strings
  * Release notes for 7.19
  * Update strings
  * v7.21.0-alpha.1
  * Fix group endorsement logging
  * Merge signalapp/Signal-Desktop#6956
  * Merge signalapp/Signal-Desktop#6958
  * Fix lint
  * Save dns-fallback file
  * Add kwallet6 to help dialog
  * Merge signalapp/Signal-Desktop#6945
  * Update reproducible build script to reflect build process
  * Fix Linux build permissions
  * Fix Linux build permissions further
  * Limit call link names to 32 characters
  * Style create call link icon like chat tab buttons
  * Linux builds: Default SOURCE_DATE_EPOCH to 1
  * [signalapp/Signal-Desktop#6989] Improve instructions for reproducible builds
  * Linux: Fix reproducible build for ubuntu 20
  * [signalapp/Signal-Desktop#7000] Update README.md
  * Tests: Fix backup test unread count
  * Reduce retries when deleting call links
  * Update isAdhocCallingEnabled
  * Use storage service for call links
  * Fix string in i18n test
  * Release notes for 7.24
  * Update strings
  * Update DNS fallback
  * v7.26.0-alpha.1
  * [signalapp/Signal-Desktop#7008] Readme, reproducible builds: update chmod command
  * Update strings for group call lobby and contact voice call
  * Prevent deletion of active call links and style join button
  * Update string for call link require admin approval
  * In call link lobby mute audio by default when peeking many devices
  * Contact info modal for call link join requests
  * Add CallLinkDeleteManager to retry and ensure deletion
  * Use job queue when restoring call links from storage
  * Don't sync storage when discovering deleted links during restore
  * Fix copy and share button style in call link participants list
  * Fix starting direct calls
  * Async refresh call links on CallLinkUpdate sync
  * Log pending users for call link calls
  * Fix link preview for received call link previews without title
  * Update color of call link lobby notice
  * Adjust call lobby avatar and style
  * Animate call link join requests
  * Fix raised hand list button hiding after fade out
  * Improve in call display of missing media keys
  * Allow escape key to dismiss call link edit modals
  * Fix app init wait for backup on first link
  * Retry dialog for errors during backup download
  * Fix joining deleted call links leaving call active
  * Synchronous delete call link
  * Release notes for 7.29
  * Update strings
  * Update DNS fallback
  * v7.31.0-alpha.1
  * Only create call links from storage sync after refresh confirmed
  * Fix storage mergeCallLinkRecord deletedAt handling
  * Fix sync CallEvent peerId for call link roomIds
  * Fix ErrorModal title
  * Allow call links beta
  * Fix handling CallLogEvent sync for call link targets
  * Remove >_< from emoji substitutions
  * Fix spacing of your own icons in call link participant list
  * Add ProfileKeyForCall conversation job
  * Fix call link delete to require inactive call
  * Save storage for defunct and pending call links
  * Add test for call link storage
  * Fix pressing screenshare multiple times on Linux Wayland
  * Upgrade better-sqlite3 to 9.0.8
  * Add experimental win32 arm64 build support
  * Fix script build-win32-arm64
  * Fix win32 arm translation check
  * Consider own join time for group call missing media key check
  * Fix ringing direct calls to wait for after prering state
  * Use websocket for all chat service requests
  * Update mock-server to 10.0.0 to ensure tests use WS chat endpoints
  * Update call view icons
  * Fix pre call info for call links with admin approval
  * Release notes for 7.35
  * Update strings
  * Update DNS fallback
  * v7.37.0-alpha.1
  * Show connecting state before ringing for direct calls
  * Verify groupId for group changes
  * Initial logic for release notes
  * Upgrade electron to 33.2.1
  * Deprecate check for versioned expire timer capability
  * Fix package-lock for node version 20.18.1
  * Release notes for 7.36
  * Update strings
  * Update DNS fallback
  * v7.38.0-alpha.1
  * Fix importing call links with max expiration time
  * Improve compatibility for max long values in backups
  * Fix profile display in direct call connecting state
  * Fix composer focus when using message menu to reply in narrow widths
  * Fix composer focus when using emoji picker and pressing Enter and upgrade focus-trap-react to 10.3.1
  * Fix custom color backup import/export
  * Fix backup import for unused admin call links
  * Remove desktop.calling.adhoc flags
  * Show info for permanently undownloadable visual attachments
  * Fix undownloadable attachment check to require download error
  * Show info for permanently undownloadable file and audio attachments
  * Allow cancel during backup import processing
  * Fix message reaction picker moving when typing stops
  * Update strings
  * Update DNS fallback
  * v7.44.0-alpha.1
  * Fix persistence of last window size and position
  * Show dialog for permanently undownloadable attachments
  * Fix forwarding messages with undownloadable attachments
  * Fix call animation from speaker to grid view so animating speaker is on top
  * Fix thumbnail when forwarding visual media
  * Fix missing media icon while sending gifs
  * Don't allow device naming when linking without syncing
  * Refresh self conversation verified state on registration
  * Prioritize sticker downloads initiated from UI
  * Fix zoom on macOS and when restoring window
  * Fix linking QR code for windows high contrast mode
  * Use node_linker=hoisted in npmrc to fix electron-builder with pnpm
  * Fix file save dialog default path for Linux KDE
  * Upgrade electron-builder to 26.0.10 to fix packaging for pnpm
  * Upgrade electron to 35.0.2
  * Release notes for 7.48
  * Update strings
  * Update DNS fallback
  * v7.50.0-alpha.1
  * Improve error messaging for startup database error
  * Upgrade axios to 1.8.4
  * Update support URL for startup DB error dialog
  * Fix batch attachment download renaming and overwriting files
  * Upgrade electron-builder to 26.0.12
  * Update README for reproducible-builds
  * Add workaround to fix Linux GTK version for electron
  * Basic support for local encrypted backups
  * Fix local backup for attachments needing reencryption
  * Handle locally missing attachments for local backups
  * Upgrade electron to 36.2.1
  * Fix backup export error for pending direct calls
  * Add dev menu to import local backup
  * Don't show reactions from call participants who have recently left
  * Fix main window not showing on Linux with Wayland
  * Add settings for local backups
  * Add OS auth to local backup key viewer
  * Update string for join group link error
  * Test: Add Linux GTK version switch for electron to fix test-node
  * Release notes for 7.59
  * Initial workflow for donations
  * Fix db error from concurrent processing of call link update sync
  * Fix linux post upgrade script polkit action handling
  * Initial donation amount picker
  * Style donation amount picker
  * Upgrade libsignal to 0.76.6
  * Release notes for 7.64
  * Update strings
  * Update DNS fallback
  * v7.66.0-alpha.1
  * Fix call link refresh on CallLinkUpdate sync for metadata changes
  * Style donations card form
  * Show one time badge icon in donation receipt list
  * Fix icon for preferences donations
  * Improve amount picker custom input and sort currency list
  * Fix donation receipt generator for rtl languages
  * Disable donations while offline
  * Update electron to 37.2.6
  * Fix calls tab mark read error when adhoc call is the latest
  * Use ErrorBoundary for donations
  * Linux builds: Use ubuntu 22 image
  * Add in progress donation placeholder badge to donations home
  * Begin Donations testing
  * Fix linux build file permissions to fix reproducible builds
  * Fix donation receipts list noMouseClose
  * Donations flow visual fixes
  * Fix donations settings pane
  * Fix donations processing dialog on retry and add onEnter handler to form inputs
  * Fix logging on initialization
  * Fix donations custom amount input caret and lost currency symbols
  * Update text in donations discard dialog
  * Donations dialogs visual fixes
  * Fix flaky test models/messages getNotificationData
  * Fix stuck in-call close dialog overlay when cancelling
  * Upgrade electron to 37.4.0
  * Fix remote config for configs with unspecified on-off values
  * Fixes for donation amount picker
  * Localize payment card expiration date
  * Use donations prod flag
  * Fix Donation payment card fields in RTL
  * Use toLowerCase for config values
  * Release notes for 7.70
  * Update strings
  * Update DNS fallback
  * v7.72.0-alpha.1
  * Fix position of currency select dropdown caret
  * Fix donations toast to show only on resume after restart
  * Fix calling video device selection by using getUserMedia deviceId.exact
  * Test safeStorage in Flatpak environments
  * Ensure file permissions when building for Linux and set sha length for test builds
  * Reproduce linux build with github action
  * Revert Linux GTK version workaround
  * Add script for linux build targets
  * Remove donations flags
  * Action to schedule Linux reproducible builds
  * Linux: Fix StartupWMClass to fix app icon
  * Fix typo in notification profiles setting
  * Linux: Fix X11 app icon by updating desktopName and wm_class
  * Fix Linux wm class for alpha
  * Release notes for 7.76
  * Update strings
  * Update DNS fallback
  * v7.78.0-alpha.1
  * Update action reproducible build scheduler to not clone repo
  * Remember scroll position in chats
  * Adjust timeline message scroll targeting to use scrollIntoView
  * Fix lost drafts when restoring chat scroll position
  * Fix app icon for Linux adhoc builds
  * Fix multiple choice polls to use unique voters as denominator
  * Add byte length checks to poll question and options during create
  * Init AppImage support
  * Fix zoom reset on app init by removing preferred size handler
  * Upgrade electron to 39.2.4
  * Use separate user data dir for AppImage builds
  * Init local state for remote megaphones
  * Fix logging when cleaning up megaphone files
  * Gh action: Add retry to reproducible builds
  * Init remote megaphone UI
  * Fix raised hand count showing 0
  * Implement megaphone conditional standard_donate with local device createdAt
  * Ability to click megaphone in narrow sidebar to expand sidebar
  * Fix lightbox image zoom on click
  * Release notes for 7.87
  * Update strings
  * Update DNS fallback
  * v7.89.0-alpha.1
  * Donation data workflows for PayPal
  * Add support for PayPal donations
  * Update PayPal cancel handling
  * Update release note fetcher to delete unknown saved megaphones
  * Add feature flag for remote megaphone
  * Update text on paypal discard dialog
  * Update text in cancel PayPal dialog
  * Update donation faq dialog
  * Fix donate payment selection when Paypal is not supported
  * When deleting megaphones ensure they are removed in redux
  * Fix megaphone donate cta to navigate to amount picker and cache config in redux
  * Handle multiple visits to Paypal approval return URI
  * Fix draggable text and images in donations paypal and badge dialog
  * Update PayPal return URI handler for redirect landing page
  * Add donation timeout for Paypal
  * Hide standard_donate megaphone after getting a badge
  * Update megaphone design
  * Fix megaphone check for dontShowBeforeEpochMs
  * Release notes for 8.0
  * Update strings
  * Update DNS fallback
  * v8.2.0-alpha.1
  * Internal tool to test megaphone
  * AppImage updater: Add minGlibcVersion check
  * Send remote mute requests in group calls and call links
  * Bump AppImage updater min glibc to 2.34
  * Fix toast and megaphone overlay
  * Move Call link remove from call into ContactModal and Show menu icon in call participant list
  * Add feature flag for call remote mute send
  * Fix raised hand list icon hiding on hover
  * Fix view once media send to not include message body or bodyRanges
  * Release notes for 8.5
  * Update strings
  * Update DNS fallback
  * v8.7.0-alpha.1
  * Init group terminate
  * Linux: Fix development auth prompts
  * Prevent poll voting in ended groups
  * Fix actions available on ended groups
  * Update strings for group terminate
  * Don't use send endorsements when fetching profiles in ended groups
  * Fix sending receipts to terminated groups
  * Fix disappearing messages select in direct chat ConversationDetails
  * Fix DoE received in terminated groups to match UI behavior
  * Mock test for group terminate
  * Release notes for 8.8
  * Update strings
  * 8.8.0-beta.1

  [ Jamie Kyle ]
  * Add eqeqeq rule but require == for null
  * tsc:allowUnreachableCode, eslint:no-unreachable, assert->assertDev
  * Accept multiple images and videos in attachment picker
  * Remove unreachable code
  * Init Danger/Endanger with Backbone/package.json versions rules
  * support icu messageformat for translations
  * Dont forward group story replies into conversation
  * fix intl-linter tests
  * Notify story creator for replies
  * stories: use web animations api to simplify progress bar/playback
  * create backport check
  * stories: sending/failed states in stories list
  * stories: fix storybook interaction test for add button
  * stories: disable text story download until we can download them
  * stories: notify participants in story replies for new replies
  * backport-check: use both sources for labels all the time
  * Story settings modal copy and design changes
  * stories: fix module cycle
  * Update story settings modal design, add group details page
  * stories: Update copy in left pane to My Stories
  * stories: muted by default, muted on app blur
  * Init payments message types
  * danger: ignore known git show error
  * fix lint
  * Danger/CI: Correctly swallow async errors
  * Move ToastType to its own file to avoid importing electron in storybooks
  * danger: Fix name code -> exitCode
  * Updated message from design
  * Remove end year from licenses
  * Treat falsy values as valid for i18n placeholders & fix groups in common message
  * Don't allow link preview and draft attachment at the same time
  * Treat 413 and 429 as rate limits everywhere
  * Add new eslint plugin to check for valid i18n keys
  * Call Disposition
  * Add more logs for call disposition
  * Group call started notification use address book name
  * Add new kind of system message with red text
  * Add type-alias-readonlydeep rule and make ducks mostly immutable
  * Fix video duration parsing in stories
  * Use preferred system locales and add Farsi font stack
  * Prefix preferred system locales with l10n_util logic
  * Update safety number verification messages to match ios/android
  * Move receipt queues into conversation queue to handle 428s
  * jumbo emoji-only message with whitespace
  * Move addCallHistory into conversation queue
  * update strings
  * Add 6.6 release notes
  * v6.6.0-beta.1
  * Cancel receipt send when encountering safety number change
  * Add more logging to addCallHistory
  * Avoid recreating small images where possible + bump libheif-js
  * speaking indicator design tweaks
  * set speaking indicator to fade in instantly
  * fix formatting
  * Ensure new message in addCallHistory has all attributes
  * Add source location to top-level unhandled error if available
  * Force save for call disposition
  * only forceSave when we are creating a new message
  * Multi-select forwarding and deleting
  * Use circular buffer instead of array for logs
  * Copy change for multi-select delete
  * Hide speaking border when presenting/1:1 in group
  * Dont show speaking indicator for active speaker in speaker view
  * get new strings
  * update release notes
  * v6.12.0-beta.1
  * Ctrl+Click to select message, fix delete pluralization
  * Fix escape handling
  * Add shortcuts for forward/delete selected/targeted messages
  * Prepare for ICU migration
  * Normalize i18n() calls to prepare for ICU migration
  * Make valid-i18n-keys rule strict and fix most exceptions
  * Fully migrate to ICU
  * Match multiple locales for spellchecker
  * Use ICU number/plural formatting
  * Fix forwarded messages timestamp offset
  * Update i18n eslint rule to validate missing/extra icu params
  * Fix pluralization issues in translations
  * Update app icon ico files with more sizes
  * Add forward messages shortcut, remap open stickers
  * Log unknown field tags for sync messages we havent handled
  * Filter unknown call disposition event types
  * Dont enter select mode when ctrl+clicking a link inside a message
  * Remove ts/util/index.ts
  * Merge delete for me/everyone into one modal
  * Hide message contents in notifications for message requests
  * Remove Signal.Util
  * Prevent accidentally entering select mode when selecting text
  * Migrate most React class components to function components
  * Rename Conversation -> Chat in all strings
  * Rename delete for everyone to delete from all devices in note to self
  * Use LocaleMatcher to resolve system preferred locales
  * Fallback to getNotificationText() in updateLastMessage()
  * Skip edit step when forwarding a voice message
  * Mark TimelineItem memo() to fix send perf regression
  * RTL
  * Always reencode images through canvas
  * Update drafts when removing attachments in forward modal
  * Shorten/Reorder MessageContextMenu items to match mobile
  * Remap zh-TW to zh-Hant to match Traditional Chinese in other regions
  * Fixes for locale matching
  * Validate and log transitions for call disposition
  * Update reaction label to use pluralization
  * update strings & whats new
  * v6.21.0-beta.1
  * Only ring when participating in call end
  * left align toasts by default
  * Add noOneChoice icu rule and fix broken string
  * Revert reverted plural message
  * Ensure windows doesn't strip file ext when saving
  * Only subscribe to redux when available
  * Accept --lang flag to customize locale of app
  * Refactor i18n/intl utils, support icu only, remove renderText
  * Fix i18n lint rule with emoji->emojify component
  * fix noteToSelf message
  * fix lint-intl bad test case
  * Redact paths on windows in more cases
  * Fix forwarding attachments that haven't been downloaded
  * Add logging to missing identity state in contact record
  * fail quietly when search messagelookup gets dropped
  * handleOutsideClick should drop events that started inside
  * Never mark outgoing call message as unread
  * Ensure call history is added when call is accepted
  * Update header actions/add hiddenFromConversationSearch
  * Use getPreferredSystemLocales for all timestamps
  * Add useSizeObserver and replace most react-measure
  * Implement read support for CDN3
  * Wrap full link preview content in dir=auto
  * Improve typing CPU/GPU performance
  * macOS: Add support for 12/24-hour time display preferences
  * optimize timeline scroll performance
  * update strings
  * release notes
  * v6.28.0-beta.1
  * Silence noisy react-intl warning in tests
  * Revert "optimize timeline scroll performance"
  * Refactor useReducedMotion
  * fix layout of story views/replies modal
  * Expose i18n globals in SignalContext across all windows
  * Calls Tab & Group Call Disposition
  * Drop calls from migration with the same callId and peerId
  * In calls migration, skip old calls without a callId sooner
  * Put MyStories into NavSidebar
  * Allow searching calls with legacy conversation id as peerId
  * Update groupCallHistoryGroups queries
  * Fix sticker pack preview modal scrollbars and modal scroll dividers
  * Update call tab design based on feedback
  * Only notify for group calls once
  * Update nav tab badges, fix several call tabs issues
  * Fix formatting
  * Fix app badge count not getting updated
  * Fix marked unread label not being sr-only
  * Fix legacy call-history messages without a callId
  * Fix call list scroll jumping
  * Fix call migration for unregistered conversations without serviceId
  * Revert to previous method of rendering calling notifications
  * Fix changing tabs marking conversation read
  * Only count unread stats for other tabs
  * Fix panel animations when switching tabs
  * Fix several call tabs UI issues
  * Fix MyStories add button themed unnecessarily
  * Mark all calls read when opening calls tab
  * Validate transitions between call history timestamps
  * Fix adding group call history with no ring
  * Add logs to group call peeks after call ended
  * Use keyboard-mode instead of :focus-visible
  * Add more timestamp fallbacks for call migration
  * Fix dark theme missed call text in red
  * Load messages when showConversation is called in other tab
  * Fix speaker view not auto switching on presenting
  * Fix non-missed calls having red text
  * Fix sidebar staying collapsed when about to search
  * Fix sidebar notices in collapsed mode
  * Fix timestamps on call history message updating
  * Change order of checks for attachments
  * Fix NavSidebar buttons hover/focus background colors
  * Fix hover/focus bg overriding active bg in ConversationList
  * Fix timeline scrolling automatically while emoji picker is open
  * Track acceptedTime during call, fix call screen duration
  * Add commits check action
  * Fix themed styles for LeftPaneDialog, add stories
  * Add logging to spellcheck dictionaries loading
  * Fix tall video gifs not filling message bubble
  * Fix call history deletion from sync messages
  * Update last message on group call peek
  * Fix composer expand to be on top of message reactions
  * Update call history timestamps from group call update messages
  * Use 8-core runners for lint/mock-tests/benchmarks
  * Refactor portals/outside clicks in sticker creator
  * Fix ConversationHeader context menu getting cut off
  * Upgrade Storybook
  * Fix StoryListItem dark-theme focus style
  * Fix stories tab title to be i18n
  * Add logging for deleted prekeys and other records
  * Add logging to other bulk key delete operations
  * Use system contact attributes when starting call
  * Peek group call on ring update
  * Apply mention ranges to body when multi-forwarding
  * Refactor Signal app routing
  * Fix untranslated labels/tooltips in NavTabs
  * Init Language Picker
  * Fix timestamps/spellcheck to use locale override
  * Update to static translated locale display names
  * Update WhatsNew
  * Update strings
  * v6.41.0-alpha.1
  * Include locale-display-names.json in builds
  * Fix captcha route parsing
  * Ensure no params are getting lowercased
  * Update locale display name strings
  * Fix emoji assets missing from storybook
  * Fix calls tab clearing clicking on old calls
  * Fix audio waveform displaying RTL
  * Handle invalid args in signal routes
  * Remove call back/again buttons on pending call
  * Fix conversation unread count overwritten
  * Fix drag handle z-index relative to NavSidebar
  * Redact zeroed out MY_STORY_ID in debuglogs
  * Fix settings window never loading
  * Add config for localeDirectionTestingOverride
  * Fix unread count for group conversations you left
  * Fix MessageAudio flipped with RTL text
  * Update release notes
  * Update strings
  * v6.45.0-alpha.1
  * Fix broken Smartling ICU message syntax
  * Fix plurals grammar
  * Fix singular was/were
  * Add timestamp to doSendMessage log
  * Fix untranslated media editor crop presets
  * Fix calling needs permission screen not fullscreen
  * Add ZoomFactorService to keep windows in sync
  * Fix EmojiPicker shortcut with panel open
  * Fix story distribution list checkmark in RTL
  * Fix ForwardMessagesModal RTL send button
  * Fix wrong ringerId in auto-ended remote call
  * Fix text selection in conversation details
  * Disable header more menu in select mode
  * Fix mixing unsupported/supported media warning
  * Update text in delete all messages confirm modal
  * Add additional checks/logs to ringtones
  * Fix dir=auto in RTL when elements are empty
  * Fix multiple attachments border radius in RTL
  * Move storybooks dir attr to html element
  * Fix Join call button in conversation header hover/focus styles
  * Refactor AttachmentCrypto
  * Disable sourcemaps in dev
  * Fix ContextMenuTrigger missing children
  * Cleanup stale ringing calls
  * Handle 403 errors on attachments
  * Fix save profile name edit
  * Fix save profile avatar disappearing on save name/bio
  * Inherit font stack everywhere
  * Add log for missing sticker data for download
  * Fix shutdown with bad network connectivity
  * Unlink on device conflict 4409
  * Fix error handling in makeVideoScreenshot
  * Make quill editors inherit global font stack
  * Add unicode bidi isolates to i18n substitutions for strings
  * LeftPane should be full width when empty
  * Improve performance of mock tests
  * Fix i18n numbers getting toString()'d
  * Remove expired messages
  * Fix supertab
  * Fix pluralization of "in this call" message
  * Prevent ringing until app hasInitialLoadCompleted
  * Spam Reporting UI changes
  * Log config sources and allow other file extensions
  * Fix up arrow on non-empty editor
  * Refactor smart components
  * Fix ConversationDetails groupsInCommon empty
  * Fix error thrown in SmartSafetyNumberModal
  * Always use static/cached selectors in useSelector
  * Remove accepted message without explicit user action
  * Sort by recency then alphabetically everywhere
  * Refactor ConversationHeader into function component
  * Use useCallback all the time in smart components
  * Fix wide toasts in debuglog window
  * Show the system contacts icon in more places
  * Add confirm modal when setting pnp to not discoverable
  * Fix incorrect member count in chat details during pending membership
  * Init Nicknames & Notes
  * Fix Alt+Up triggering edit message
  * Add edit nickname to contact modal for group members
  * Fix ProfileChangeNotification update nickname contactId
  * Hide nicknames and notes on note to self
  * Add better invalid service id logs
  * Fix nicknames visibility
  * Make block/report keep chat timestamp
  * Fix avatar badges z-index from covering header
  * Emojify note and add non-nickname tooltip
  * Fix edit button in chat details header
  * Update copy for nicknames & notes modal
  * Add unblocked timeline event
  * Make call history logs the same as call event logs
  * Pause story on mouse/space hold
  * Fix mock test env check outside of browser
  * Close note preview modal when clearing note
  * Improve text wrapping of links in messages
  * Fix right click in expanded composer
  * Add utilities for using TUS Protocol
  * Release notes for 7.8
  * Update strings
  * v7.10.0-alpha.1
  * Switch to the /v2/ storage-service endpoints for group operations
  * Fix single person groups being marked verified
  * Make ICU types stricter for inline JSX
  * Move toasts in calls up and fix click to dismiss
  * Fix contact icon in call participants list
  * Save group send endorsements
  * Init CallLinkDetails view in calls tab
  * Exit 1 with lint-intl failures
  * Make crop control hitbox bigger
  * yarn.lock: Upgrade `integrity` to sha512
  * Fix avatar lightbox aspect ratio
  * Init create/admin call links flow
  * Set quote author name to dir=auto
  * Disable pasting in composer when in background
  * Add npmrc to use legacy peer deps everywhere
  * Update call link edit/add name modals
  * Update CallLogEvent to latest spec
  * Optimize markAllCallHistoryReadWithPredicate
  * Optimize markAllCallHistoryReadSync
  * Add bidi strip setting and use in os dialogs
  * Drop deleted story distribution lists after 30d
  * Refactor update failed strings to remove nesting
  * Sync call link create/update
  * Fix ringer updates
  * Checks locales are real in resolveCanonicalLocales
  * Add editing to call details pane
  * Support delete for call links
  * Release notes for 7.20
  * Update strings
  * Update DNS fallback
  * v7.22.0-alpha.1
  * Refactor StoryProgressSegment to have better controlled animations
  * Optimize updating call unread count
  * Fix update call unread count debounce bound action
  * Split up story reactions message for you/someone else
  * Fix unknown contact started a group call
  * Fix call history read syncs
  * Fix StoryViewer and update spring animations
  * Implement endorsements for group send
  * Fix benchmark reporting
  * Fix CallsTab infinite scroll loading and add benchmark
  * Add integration test for localeOverride
  * Add Lightbox integration test
  * Fix group send endorsements for new members
  * Dont flag endorsements fail on unregistered error
  * Improve error handling of invalid bodies
  * Add release notes for 7.26
  * Update strings
  * Update DNS fallback
  * v7.28.0-alpha.1
  * Add SignalDebug.getMessageBySentAt
  * Enable SignalDebug when devtools is enabled
  * Add urlPath util for building escaped URL paths
  * Revert "Add urlPath util for building escaped URL paths"
  * Add schema utils
  * Enable more type checking settings
  * Support endorsements for group 1:1 sends
  * Throttle failed endorsements toast
  * Fix buildToken including our aci incorrectly
  * Improve logging of endorsements expirations
  * Fix GSE for delivery receipts in inactive groups
  * Fix group update deadlock inside conversation queue
  * Fix heic/heif extension name case sensitivity
  * Release notes for 7.31
  * Update strings
  * Update DNS fallback
  * v7.33.0-alpha.1
  * Only set last group fetch for server updates
  * Remove unnecesary profile fetch assertion
  * Refresh group state if missing group members
  * Brand Refresh
  * Fix dark mode when in light mode os theme
  * Fix pixelated windows app icon
  * Improve windows icon at smaller sizes
  * Upgrade/remove outdated dependencies
  * Upgrade outdated dependencies
  * Fix animated logo spinner
  * Upgrade sass
  * Upgrade outdated dependencies
  * Update icon assets
  * Fix repeated call messages for timestamp updates
  * Fix react-contextmenu patch
  * Fix lightbox video styles
  * Fix long call titles overflowing in calls list
  * Fix memory usage by batching syncTasks
  * Fix sidebar drag handle for touch devices
  * Sort story views by timestamp
  * Fix flakey endorsements expiration test
  * Upgrade electron-builder
  * Fix linux non-prod releases
  * Migrate to private class properties/methods
  * Update release notes
  * Update strings
  * Update DNS fallback
  * v7.46.0-alpha.1
  * Init Fun Picker
  * Add emoji spritesheets to built app
  * Fun picker improvements
  * Fun picker fixes
  * Fix rendering non/overly-qualified emoji in emojify
  * Fix sticker rendering with bad content-type
  * Migrate remaining emoji/sticker pickers to fun picker
  * Update release notes
  * Update strings
  * Update DNS fallback
  * v7.52.0-alpha.1
  * Bump @signalapp/sqlcipher to 2.0.0
  * Add remaining features to fun picker
  * Disable sccache in github actions
  * Translate emoji names everywhere
  * Add danger rule to check all pnpm-lock.yaml dependencies have integrity
  * Wrap mention blot react root with emoji localization provider
  * Fun picker: Emoji skin tones picker and recent gifs
  * Fix reaction skin tone picker
  * FunPicker: Keep emoji picker open on select for composition inputs
  * Fix flakey edits mock test
  * Fix join group modal
  * Translate emoji completions in composer
  * Add tooltips to fun picker
  * Upgrade to React 18
  * Upgrade react in sticker-creator
  * Fix localized emoji auto-completions
  * Update release notes
  * Update strings
  * Update DNS fallback
  * v7.56.0-alpha.1
  * Fix conversation view from getting stale data
  * Fix sass deprecation warnings and make them fatal
  * Wrap all React roots with StrictMode
  * Fix mismatching gif response byte length
  * Display emoji completions with diacritics
  * Ignore 500s/identity key errors for GSE toast
  * Add backdrop blur to image grid download button
  * Add keyboard shortcuts to fun picker
  * Update release notes
  * Update strings
  * Update DNS fallback
  * v7.57.0-alpha.1
  * Fix gif download error with mismatching slice byte length
  * Fix FunLightbox and FunTooltip
  * Hide deprecated unicode family emoji from picker
  * Init Chat Folders Settings UI
  * Update release notes
  * Update strings
  * Update DNS fallback
  * v7.62.0-alpha.1
  * Disable fun error boundary toast in prod
  * Init donations card form validation
  * Fix space key opening lightbox on image reactions
  * Reduce number of log.error calls
  * Fix emoji picker error toast on escape
  * Init Axo design system
  * Fix attachment list image thumbnail
  * update release notes
  * Update strings
  * Update DNS fallback
  * v7.68.0-alpha.1
  * Filter out SMS conversations with no messages from the contact results
  * Fix image thumbnail cover size
  * Add license-comments eslint rule
  * Get Tailwind ready for general usage
  * Create internal db debugger
  * Implement sync for chat folders
  * Update release notes
  * Update strings
  * Update DNS fallback
  * v7.71.0-alpha.1
  * Create AriaClickable component
  * Init AxoSwitch/AxoCheckbox & forced-colors mode
  * Fix emoji stories and add inline emoji story
  * Update symbols font
  * Fix tailwind sources and prefers-contrast theme
  * Fix styles for ordered lists after css reset
  * Init Chat Folders UI
  * Fix missing all chat folder on startup without new manifest
  * Init AxoMenuBuilder
  * Fix duplicate all chats folder
  * Update release notes
  * Update strings
  * Update DNS fallback
  * v7.80.0-alpha.1
  * Update release notes
  * Update strings
  * Update DNS fallback
  * v7.82.0-alpha.1
  * Make AxoSymbol.Icon center in non-inline parents
  * Remove unnecessary aria-hidden in badge
  * Remove dead code in axo dialog
  * Add onClick handlers to all axo dialog buttons
  * Add new axo checkbox square variant
  * Update release notes
  * Update strings
  * Update DNS fallback
  * v7.85.0-alpha.1
  * Update release notes
  * Update strings
  * Update DNS fallback
  * v7.87.0-alpha.1
  * Update release notes
  * Update strings
  * Update DNS fallback
  * v8.4.0-alpha.1
  * Update release notes
  * Update strings
  * Update DNS fallback

  [ Jamie ]
  * Remove old emoji and sticker pickers
  * Chat folders bugfixes & ui updates
  * Fix context menu trigger on chat folders overview
  * Migrate all preferences buttons to axo button
  * Add shortcuts for add/remove chat to chat folder
  * Update symbols font
  * Fix initial all chats folder params
  * Fix badge counts for include muted setting
  * Init AxoAlertDialog
  * Fix chat folder settings title when editing folder
  * Chat folder fixes
  * Temporarily downgrade libsignal from 0.85.1 to 0.83.0
  * Fix scrollbar styles across the app
  * Fix non-qualified emoji values rendering as emoji in composer
  * Axo dialog design updates & aria checks
  * Fix chat folder migration
  * Implement backup support for chat folders
  * Init AxoIconButton
  * Fix scrollbars for all macOS settings
  * Migrate react-contextmenu menus to axo menus
  * Highlight chat folder with open context menu
  * Fix header menu keys
  * Fix emoji picker closing when using pen/touch
  * Add pinned message chat event
  * Add pin message item to message context menu
  * Fix react picker positioning in narrow window
  * Init PinnedMessagesBar UI
  * Setup pinned messages types and table
  * Remove "Paste & match style" on plain text inputs
  * Init PinnedMessagesPanel
  * PinnedMessagesPanel: Add footer with Unpin all messages button
  * Add UI for more message types in PinnedMessagesBar
  * Init Call Quality Survey UI
  * Add receive support for pin/unpin message
  * Support sending pin/unpin messages
  * Remove most emoji is valid assertions
  * Setup pin/unpin actions and mark messages pinned in timeline
  * Integrate pinned messages bar/panel
  * Add pinned messages receive/send flags
  * Update current pinned message on scroll
  * Fix sending pin/unpin messages to groups
  * Allow unpinning all pinned messages
  * Add alert dialog to confirm replacing oldest pinned message
  * Add pinned message notifications
  * Render message preview in single line
  * Schedule expiration of pinned messages
  * Update description for unpin all confirmation dialog
  * Fix notification text for incoming pinned message
  * Fix redux memo dev warning in getModeSpecificProps
  * Fix foreign key error pinning in-memory messages
  * Prepare for upgrade to React 19
  * Fix pinned messages state syncing
  * Fix logging of handleAttachmentsProcessing error
  * Rework conversation panel layout and sub-header styles
  * Remove outline/highlight shadow from chat header
  * Add view-once media support for pinned messages bar
  * Add backup support for pinned messages
  * Add expiration timer to pinned message notification
  * Pinned messages UI fixes
  * Add expire timers to pin/unpin data messages
  * Sync and update UI when pinned messages expire
  * Update context menu strings for pin/unpin
  * Animate pinned messages bar
  * Fix pin targeting based on edited timestamp
  * Fixes for unpin sync message
  * Add warning when pinning disappearing message
  * Fix pin message dialog submit with no warning step
  * Fix go to pinned message ambiguous sql column
  * Switch from Tenor to Giphy for GIF search
  * Fix sticker message metadata color in dark mode
  * Add new tailwind curved-* util for superellipses
  * Init AxoTooltip component
  * Fix go to pinned message targeting outgoing messages
  * Exclude our code from react ref lint-deps rules
  * Init AvoAvatar primitive
  * Fix AxoAvatar.ClickToView symbol
  * Fix outgoing sticker metadata text color
  * Admin Delete
  * Fix chat folder sync with serviceIdBinary
  * Fix re-prompting to register as default client for protocols if we already are
  * Fix copy quote content from deleted messages
  * Prevent deleted messages from being pinned
  * Update UI for own admin delete on incoming message
  * Reverse alert dialog actions when stacked
  * Fix app hanging if runAllSyncTasks() throws an error
  * Add confirm dialog before discarding draft on edit
  * Enable tsconfig noUncheckedIndexedAccess
  * Fix getBytesForPeerId logging warning
  * React 19
  * Upgrade other react dependencies
  * Replace typescript compiler with native tsgo compiler
  * Fix hasDraft length checks
  * Update admin delete confirm modal description during rollout
  * Fix scrollbar offsetWidth warning when starting storybook
  * Switch from eslint to oxlint
  * Upgrade Tailwind packages to same version
  * Upgrade danger setup and add tailwind deps rule
  * Migrate scripts to ESM and ts-check
  * Enable more oxlint typescript rules
  * Upgrade dependencies
  * Add reason strings to noop actions
  * Update CollapseSet button style and ARIA structure

  [ trevor-signal ]
  * Fix light mode on SignalConnectionsModal
  * Ensure call-only conversations appear in left pane
  * Exclude domains from link previews
  * Explicitly save active_at status on call receipt
  * Ensure notification icons  respect avatar preference
  * In integration tests, provide all contacts a prekey
  * Update contact spoofing banner & dialog
  * Simplify captcha response handling
  * Update call-only conversation message request UI
  * Ensure back button in conversation header remains clickable
  * Update screen-sharing window styling
  * Improved WS request timeout handling
  * Update strings
  * Release notes for 6.19.0
  * v6.19.0-beta.1
  * Improve handling of invalid conversations
  * Update clickable regions for context menus
  * Update Stories pane back button clickable region
  * Show mentioned badges & enable scrolling to mentions in conversations
  * Fix notification text for gifted badges
  * Update marked unread conversation indicator
  * Use normal shutdown infrastructure to hang up active calls
  * Show self-view when waiting in 1:1 calls
  * Update missing quote reference styles
  * Refactor group story reply receipt logic
  * Adjust conversation header context menu styling
  * Ensure story buttons are clickable despite being in a no-drag region
  * Clean up conversation change handler
  * Update dependencies to support newer emojis
  * Include unreadMentionsCount as part of conversation props
  * Prevent replying to blocked group's stories
  * Update modal animation states to ensure proper dismissal
  * Sort contacts and conversations alphabetically when composing message
  * Highlight multiple words in search result snippet
  * Include @mentioned names in search results
  * Update strings
  * Release notes for 6.24
  * v6.24.0-beta.1
  * Make conversation header draggable
  * Ensure calling header is draggable
  * Allow sends of quoted messages with attachments without thumbnails
  * Add option to log all query times
  * Stop preemptively generating screenshots for video stories
  * Conversation open speed benchmarking for staging builds
  * Prevent long system contact names from wrapping in group call participant list
  * Clean story reply screenshot data
  * Disable publish during Linux CI build
  * Improve reliability of click events for IncomingCallBar
  * Allow hashes in app data paths
  * Ensure mainWindow stays responsive after opening debug logs in fullscreen on MacOS
  * Update strings
  * Update release notes
  * v6.31.0-beta.1
  * Hide show story notification count if stories are not enabled
  * Improve bulk message deletion speed
  * Revert "Update Electron to 26.1.0"
  * Improve handling of payment notification messages
  * Scroll to bottom of conversation when message is sent
  * Update database error confirmation dialogs
  * Update read sync handling for reacted messages
  * Stop marking pending/ringing calls read
  * Disable selecting existing group members in add members modal
  * Accept profile keys for unknown members in groups
  * Blur participant videos when calls are reconnecting
  * Ensure messageCache is updated when properties are unset
  * Centralize calling toasts and add imperative API
  * Update React Profiler reference
  * Fix handling of pointer events for calling toasts
  * Deduplicate message_changed redux actions
  * Update toast replacement animation styles in Calling UI
  * Add new toast region for calling button toasts
  * Mock tests: retry app launch until DB initializes
  * Clarify function of "Delete" option when deleting conversation messages
  * Throttle re-renders for rapidly-updating messages
  * Only update sendStateByConversationId for correct version of edited message
  * Add release notes for 6.38
  * Update strings
  * v6.40.0-alpha.1
  * Cache view syncs by sender + timestamp
  * Reduce flake and extend edit-test to include more send state updates
  * Allow RTL-able images to display in Storybook
  * Fix group call video alignment in RTL
  * Add paginated calling grid for group calls
  * Ensure regions above timeline remain draggable
  * Fix group state decoding for default values
  * Convert CallingHeader texts to toasts
  * Update link for support on database error
  * Fix transition for video tiles in group calls
  * Fix calling tools position
  * Ensure controls remain visible during ringing direct call
  * Store plaintext hash with newly sent or received attachments
  * Disambiguate between types of receipts when stored in the same map
  * Fix bug in deleting multiple members from a story distribution list
  * Simplify sqlJoin required arguments
  * Disable draggable regions when context menu is open
  * Prevent (some) CI flakes
  * Add additional logging on before-quit event
  * Reduce mock test flake on CI
  * Generate compressed thumbnail for images and videos
  * Fix macOS CI build
  * Update node-gyp
  * Guard against long message attachments rendering
  * Reduce flake on edit mock test
  * Retry test-electron in case of SIGBUS
  * Refactor target message for delivery receipt processing
  * Cache node_modules in stories CI action
  * Add mock test for settings window
  * Merge signalapp/Signal-Desktop#6531
  * Add contextMenu for deleting call events on right-click
  * Add large group send benchmark
  * Respect prefer reduced motion setting for group call tiles
  * Fix reference error in getTargetMessage
  * Grab most recent attributes when saving messages in batchers
  * Batch receipt processing
  * Adjust starting point of conversation open benchmark
  * Update message receipt processing & add tests
  * Wait for receipts to be processed during conversation open benchmark
  * Reduce unnecessary redux update during message receipt
  * Use utility & fixup dependency array
  * Merge signalapp/Signal-Desktop#6724
  * Add plaintext hash to existing message attachments
  * Ensure images are scaled during message schema migration
  * Remove now-unnecessary data from prekey upload request
  * Avoid overwriting new chat colors when adjusting conversation attributes
  * Allow viewing contact details from group change messages
  * Update call reaction emoji burst speed & direction
  * Update username onboarding tooltip styles
  * Fix indexedDB deletion modal
  * Update behavior when receiving sync messages with isRecipientUpdate
  * Prevent decryptAndCache jobs from delaying message sends
  * Improve timeline rendering performance
  * Add timeout to avatar fetches and avoid blocking on profile syncs
  * Ensure textarea is always clickable for text stories
  * Ensure chats pane in settings is visible
  * Generate mediaName for backed-up attachments
  * Release notes for 7.2
  * Update strings
  * v7.4.0-alpha.1
  * Remove autoOrientJPEG and consolidate downscaling logic
  * Support larger sync messages in large groups
  * Add timeout to DNS lookup
  * Improve resiliency to excessive prekey generation
  * Enable minimize to tray on linux in production
  * Avoid repeated scollToMessage actions
  * Retain key for downloaded attachments
  * Add additional logging for attachment downloading
  * Cleanup attachment download flow
  * Update error handling in makeVideoScreenshot
  * Rely on socket connection events for message request handling registration
  * Ensure we register messageReceiver only after setup is complete
  * Reset app storage on mock-test failure to start app
  * Simplify messageReceiver initialization & reset
  * Upgrade playwright to v1.42.1
  * Use typing helper in mock-tests
  * Update mock tests to use locator.fill instead of .type
  * Fix persistence of disappearing timer notification message
  * Enable more specific AttachmentDownload prioritization
  * Ensure inbox is shown when registered device is offline
  * Ensure unauthenticated websocket reconnects if using LibSignal's transport
  * Close websocket if request times out
  * Remove pending flag once attachment is downloaded
  * Update attachment download handling while in a call
  * Improve message targeting for incoming reactions
  * Ensure queues are restarted once the empty event is received
  * Ensure attachmentDownloadQueue retains fresh attributes
  * Enable downloading attachments from backup CDN
  * Disable crash reporting in production
  * Mark offline if websocket connection attempt times out
  * Consolidate fileSize formatting logic
  * Grab freshest attributes when adding attachment to message
  * Convert attachments to filePointers for backup export
  * Release notes for 7.10
  * Update strings
  * v7.12.0-alpha.1
  * Use TUS for attachment uploads
  * Update conversion of Uint8Array to Readable for in-memory attachments
  * Store IV when encrypting or decrypting attachments
  * Revert "Store IV when encrypting or decrypting attachments"
  * Improve quoted attachment typings
  * Store IV when encrypting or decrypting attachments
  * Enable attachment backup uploading
  * Backup support for link preview and contact attachments
  * Properly calculate thumbnail size
  * Remove outgoing message attachment caches
  * Support voice memo backups
  * Backup support for quotes & quoted attachments
  * Backup support for sticker messages
  * Avoid race condition in AttachmentDownloadQueue
  * Fallback to download from transit tier if attachment not found on backup tier
  * Improve syncing of in-memory expirationStartTimestamp
  * Release notes for 7.15
  * Update strings
  * v7.17.0-alpha.1
  * Reduce CI flake on MacOS runner
  * Add indices to improve messages_on_delete trigger
  * Add back testUtilities.debug
  * Add indexes to support messages foreign key constraints
  * Use v4/attachments endpoint for attachment upload forms
  * Support thumbnail export & import during backup of visual attachments
  * Fix test-electron tests on Windows runner
  * Update "link new device" mobile client button text when linking
  * Improve throttling of profile fetching
  * Release notes for 7.18
  * Update strings
  * v7.20.0-alpha.1
  * Reduce test-electron CI flake on macOS
  * Update mediaName derivation to hex encoding
  * Respect 429 rate-limiting during attachment backup
  * Add attachment support to mock tests
  * Improve performance of link preview parsing
  * Properly abort inflight requests on resume or shutdown
  * Fix CI test flake for AttachmentDownloadManager
  * Update error handling during TLS connection
  * Ensure message is saved after queueing attachment downloads
  * Ensure outgoing filesize limit considers padding and encryption
  * Add default timeout for initial response to attachment request
  * Hide tags input field on save dialog on MacOS
  * Ensure SQL worker messages are not dropped
  * Update backup import/export with new SendStatus, FilePointer, and GroupSnapshot updates
  * Ensure patch-package errors on errors or warnings
  * Speed up orphaned attachment check
  * De-noise removal of unprocessed envelopes
  * Release notes for 7.23
  * Update strings
  * Update DNS fallback
  * v7.25.0-alpha.1
  * Fix story backups mock test & read-receipt setting restoration
  * Improve logging in VoiceNotesPlaybackContext
  * Add downloadPath to attachments after import to support resumable download
  * Add a backup media download progress bar
  * Generate hash on avatar attachment bytes only
  * Respond to malformed messages with empty body
  * Wait for successful link before removing some setup menu items
  * Pause, cancel & resume backup media download
  * Clarify logging when receiving stories
  * Don't block message processing on contact syncs
  * Prefer files when handling paste event
  * Export long message attachments
  * Clarify behavior of name and profile sharing when joining a group via restricted link
  * Update text of button when unhiding a story
  * Use authorization header for websocket authentication
  * Avoid race condition of group updates overwriting unread counts
  * Reduce Windows CI flake for backup attachments test
  * Ensure attachments are re-encryptable to same digest
  * Simplify about string logic
  * Make ensureAttachmentIsReencryptable migration resilient to missing attachments
  * Update ensureAttachmentIsReencryptable logic
  * Improve startup SQL query performance monitoring
  * Allow clicking on undownloaded generic attachment
  * Improve UUIDv7 handling
  * Release notes for 7.30
  * Update strings
  * Update DNS fallback
  * v7.32.0-alpha.1
  * Clarify behavior of group deletion
  * Ensure that call history messages are marked read when they are seen
  * Fix group search visibility
  * Add backup attachment restore idle state
  * Update captcha response error handling
  * Log query stats during backup import
  * Allow link previews without image or title
  * Batch attachment download jobs
  * Default test-electron worker count to 1 locally
  * Improve chat search filtering 
  * Fix download media banner styles
  * Improve message migration error handling
  * Improve scroll behavior of left pane
  * Update device naming flow during link and sync
  * Request contact sync before importing backup
  * Batch redux conversation changed / added actions
  * Update quote behavior in backups
  * Update backup media idle state after resuming download
  * Update backup benchmark timing
  * Avoid unnecessary stringification when saving new message
  * Handle calls without callId in backup proto
  * Release notes for 7.34
  * Update strings
  * Update DNS fallback
  * v7.36.0-alpha.1
  * Trim group name and description from group state
  * Add toast when import errors
  * Allow empty groupExpirationTimerUpdate.updaterAci in backup import
  * Improve handling of expireTimerVersion glare
  * Better handling of failed message migration attempts
  * Ensure ESC removes quoted reply when drafting
  * Allow for empty stickerMessage.emoji and quote.authorAci during backup import
  * Improve tap-to-view deletion query
  * Improve handling of DOE messages in backups
  * Disable message insert triggers during backup import
  * Fix transfer archive timeout
  * Test for roundtripping view-once quotes
  * Hydrate redux before updating conversations' last messages after import
  * Improve backup conversation message request state handling
  * Handle fatal error during backup import
  * Support device name change sync message
  * Fix UUID Regex when normalizing serviceIds
  * On link, ensure group conversations are shown in search
  * Handle backup transfer errors during linking
  * Backups: update to latest integration tests
  * Update attachment handling
  * Release notes for 7.37
  * Update strings
  * Update DNS fallback
  * v7.39.0-alpha.1
  * Add adhoc release channel for public ad-hoc testing
  * After import, don't show chats in left pane unless they have messages
  * Some improvements to adhoc builds
  * Fix color of quotes in chats with custom colors
  * Update link & sync UI
  * Implement lower hand suggestion in group calls
  * Clarify behavior for SMS-only conversations
  * Only mark smsOnlyOrUnregistered for direct conversations
  * Improve copy-image context-menu algorithm
  * Ensure chat list matches primary after backup import for certain directionless-message-only chats
  * Release notes for 7.38
  * Update strings
  * Update DNS fallback
  * v7.40.0-alpha.1
  * Update sendStateByConversationId for lonely groups
  * Improve performance of deleting all data
  * Check validity of link previews on import
  * Ensure adhoc builds expire correctly
  * Backups: support direct story replies
  * Enable link & sync in beta
  * Update conversation hero message
  * Update link & sync availability
  * Update which messages affect chat list presence on import
  * Advertise both link and sync capabilities
  * Roundtrip group.blocked state
  * Update to latest backup integration tests
  * Enable link & sync in beta
  * Avoid mute timeouts with invalid delay values
  * Update behavior during import for missing oneof fields
  * Only show error toast when importing unknown frames
  * Update link & sync release notes
  * Add description to device name field in settings page
  * Enable link & sync in production
  * Refactor app initialization logic
  * Prevent element resize when timeline is scroll-locked
  * Support system name fields & upgrade libsignal
  * Avoid errant scroll on context menu hide
  * Update apt in CI if install fails
  * Add mock test for libsignal websockets
  * Require X-Signal-Timestamp header on all storage/group server 403 responses
  * Improve recovery from corrupted downloads
  * Improve handling of edited long message attachments
  * Avoid spurious error log when waiting for contact syncs
  * Fix path for resumable downloads
  * Show critical-idle-primary-device banner in response to WS upgrade response headers
  * Release notes for 7.46
  * Update strings
  * Update DNS fallback
  * v7.48.0-alpha.1
  * Fix getNextAttachmentDownloadJobs query
  * Support idle primary device warning alert from server
  * Prefer article modified times in link preview descriptions
  * Fix alignment of control rows in settings window
  * Allow clicking on narrow version of idle primary device warning
  * Update Backup Media download progress indicator for narrow left panes
  * Show backup status in Settings window
  * Use Libsignal to validate sealed-sender certificates
  * Update attachment error handling for 403 status responses
  * Update backup handling of messages with an expireTimer
  * Override electron/node-gyp dependency
  * Add modal alert for users with critical-idle-primary-device alert
  * Add offline state to BackupMediaDownloadProgress
  * Show low-disk-space warning during backup media download
  * Fix out-of-disk-space test
  * Release notes for 7.52
  * Update strings
  * Update DNS fallback
  * v7.54.0-alpha.1
  * Update feature flag setup for funPicker
  * Reset expire timer version after unlink
  * Optimize publicKey deserialization for server trust root
  * Throttle unread updates
  * Improve reaction targeting
  * Don't drop about-to-disappear messages
  * Send and properly receive AttachmentPointer.uploadTimestamp
  * Bump libsignal-client to v0.71.1
  * Adjust story buttons to not overlap window drag region
  * Improve logging when falling back to transit tier for attachment downloads
  * Fallback to global media tier CDN number
  * Improve pasted image filenames
  * Refactor idle download state
  * Fix subscription response schema
  * Normalize message attachments
  * Ensure consistency in forwarding logic
  * Show error toast on database errors
  * Release notes for 7.57
  * Update strings
  * Update DNS fallback
  * v7.59.0-alpha.1
  * Migration to normalize all attachments
  * Update message attachment migration
  * Add message schema version section to internal settings
  * Centralize notification logic
  * [signalapp/Signal-Desktop#7345] Update primary device description
  * Fix scrollbar border colors and positioning
  * [signalapp/Signal-Desktop#7348] Prefer user's own reaction variant in ReactionViewer
  * [signalapp/Signal-Desktop#7347] Update input padding for edit group modal
  * Cleanup logging levels in WebAPI
  * Release notes for 7.58.x
  * Update strings
  * Update DNS fallback
  * v7.60.0-alpha.1
  * Upload new set of PQ keys if too many exist
  * Backups: use new locatorInfo & mediaName (#10627)
  * Update strings
  * Update DNS fallback
  * v7.61.0-alpha.1
  * Backups: subscription info improvements
  * Avoid foreign index constraint error when saving message attachments
  * Reorganize test cases
  * Improve saveAttachmentDownloadJob error handling
  * Limit linked device interaction with backup service
  * Backups: update integration tests
  * Restrict message attachments shown in gallery & lightbox
  * Add backup media download progress to settings pane
  * Preserve conversation list ordering for message request response events
  * Only queue backfilled attachments after backfill response
  * Allow passing newest read message explicitly
  * Increase max displayable image dimensions
  * Avoid race condition when marking messages read
  * Stop round-tripping wallpaper data
  * Refactor backup media download progress tracking
  * Inline long-text messages in the backup proto
  * Mark messages read on delay when timeline becomes visible
  * Save artifacts on test-electron failures
  * Fix scroll positioning after viewing archive
  * Update max message length check
  * Backups: remove legacy locators
  * Skip queueing old attachments on non-media-enabled backup import
  * Enable remote backups UI on nightly builds
  * Group message reactions by parentKey
  * Fix backup thumbnail encryption when downloading
  * Treat 403 from CDN0 the same as a 404 from others CDNs
  * Update retry behavior for backed-up attachments
  * Add support for OutgoingMessageDetails.dateReceived
  * Update behavior on timeout retrieving archive
  * Wait to confirm keys sync message
  * Ensure incrementalMac consistency when exporting
  * Fix quote copying from original image
  * Update profile sharing when added to group
  * Keep messages in their own transaction in saveMessagesIndividually
  * Enable backfilling of attachments without message_attachment rows
  * Simplify undownloadable attachment states
  * Fix benchmark CI misattribution & flake
  * Update backups branding
  * Improve handling of backup CDN read credentials
  * Improve message attachment parsing
  * Discard invalid incrementalMacs
  * Add debugging toast when attachment download from backup tier fails
  * Update backups feature flags
  * Clarify resumable download paths
  * Add media granularity to backup attachment download source
  * Advertise new link and sync capability
  * Update local backups visibility
  * [signalapp/Signal-Desktop#7453] Update conversation list styles when dragging
  * Avoid foreign key error if message is deleted before saving attachments
  * Improve handling of invalid incrementalMac during backup import 
  * Release notes for 7.72
  * Update strings
  * Update DNS fallback
  * v7.74.0-alpha.1
  * Allow empty inviteeAci field when importing GroupInvitationDeclinedUpdate update messages
  * Toast on main process errors
  * Fix attachment ciphertext size calculations for backup tier downloads
  * Update handling of aborted attachment download jobs
  * Limit unnecessary thumbnail generation
  * Fix attachment backfill mock tests
  * Fix lightbox mock tests
  * Avoid logging an error when weakly referenced attachment is missing
  * Internationalize backup cost string
  * Update accounting of backed up attachments
  * Release notes for 7.74
  * Update strings
  * Update DNS fallback
  * v7.76.0-alpha.1
  * Avoid deadlock when processing deletes and edits concurrently
  * Fix typo in unblock group modal
  * Avoid regenerating thumbnail or screenshot on edit
  * Centralize message attachment file path logic
  * Fix emojification of release note
  * Improve typing indicator sending/receiving behavior
  * Increase sender certificate expiration buffer
  * Improve attachment handling of edits
  * Re-use standard attachments on edit
  * Refactor backup subscription UI
  * Improve profile key validation
  * Disable chat folder filtering when feature is disabled
  * Improve timeline layout rendering
  * Improve marking messages read after wheel event when unfocused
  * Adjust conversation search rankings for archived conversations
  * Improve screenreader experience with timestamps in chat list
  * Increase concurrency of profile & key fetches
  * Fix lint for mute-state-change package
  * Remove invalid quotes from conversation
  * Ensure last message text is always updated
  * Simplify edit handling of attachments
  * Avoid incorrect use of preload cache
  * Show draftTimestamp in left pane preview
  * Fix backup group update test cases
  * Fix typing indicators for 1:1 conversations
  * Refactor backup import/export options
  * Fix lint
  * [signalapp/Signal-Desktop#7512] Improve copy-paste formatting inheritance
  * Ensure reactions are handled in order
  * Disable redux action logging by default
  * Allow poll questions to be searchable
  * Prevent editing or forwarding polls
  * Add pending poll vote UI state
  * Avoid orphaning quoted attachment thumbnails
  * Expire poll terminate chat events
  * Improve speed of getUnreadByConversationAndMarkRead query
  * Fix loading screen theme
  * Optimize getUnreadByConversationAndMarkRead
  * Update behavior for soon-to-expire attachments on backup CDN
  * Drop recipient without any identifier
  * Drop invalid keyChange messages on export
  * Only fetch CDN object metadata for remote backups
  * Trim body on export if body attachment remains
  * Improvements to plaintext export
  * Improve DOE behavior for poll messages
  * Improve handling of group story replies
  * Simplify getUnreadReactionsAndMarkRead query
  * Improve ordering of getRecentStoryReplies
  * Update toast behavior for backup attachments
  * Simplify URL handling
  * Improve scroll behavior when pressing enter from search input
  * Improve message content cleanup behavior
  * Improve reliability of keyboard shortcuts for composer
  * Avoid persisting DOE message in first pass
  * Deduplicate usernames
  * Improve performance of saveMessagesIndividually
  * Simplify group call peeking logic
  * Continue toasting for recently received attachments that are missing from backup tier
  * Add clipboard utility to copy text temporarily
  * Release notes for 7.84
  * Update strings
  * Update DNS fallback
  * v7.86.0-alpha.1
  * Trigger apt-get update if install fails on CI
  * Skip conversation save when applying MRR from storage service
  * Ensure composition input is focused when clicking to edit or reply to message
  * Add timeouts for TUS uploads
  * Exclude mentionAciBinary in processedRange
  * Improve focus management for AxoContextMenu
  * Fix focus state when forwarding
  * Mark window inactive immediately when blurred
  * Update local backup export UI
  * Bind remote config to libsignal-net
  * Conditionally show sidebar view in group calls
  * Cleanup after canceled local backup export
  * Update copy highlighting nonprofit status
  * Update sidebar layout visibility in group calls
  * Update group info permissions string
  * Release notes for 7.89
  * Update strings
  * Update DNS fallback
  * v7.91.0-alpha.1
  * Deduplicate incoming attachments on disk
  * Improve call link admin UI transition
  * Avoid race when downloading group avatars post-import
  * Reuse calculated height & width when deduplicating attachments
  * Update Signal Artist Series sticker packs
  * Better accounting of orphaned attachments
  * Deduplicate incoming stickers from installed sticker packs
  * Improve ref counting when deduplicating attachments on disk
  * Add debug message option to MessageContextMenu
  * Refactor avatar fetching and updating logic
  * Limit embedded groupChange size
  * Treat replies similarly to mentions for notifications
  * Reuse files on disk for outgoing messages
  * Improve ordering of file cleanup
  * Reuse recent CDN locators
  * Improve thumbnail accounting for quotes
  * Update types for message.errors
  * Remove backup feature flags
  * Simplify message deduplication
  * Align chat color gradients to backup definitions
  * Update folder structure for local backups
  * Keep mention repository up to date
  * Local backup validation improvements
  * Update backup export behavior for member labels and group updates
  * Exclude erased messages from backup
  * Prune local backups to retain the most recent two
  * Improvements to local import testing
  * Update local backup strings
  * Bump CI backup tests
  * Improve post-import handling of new group permission
  * Allow disabling local backups
  * Improve export handling of body ranges and storyReactions
  * Update storage proto and handle invalid callHistory messages
  * Improve username validity checks
  * Prevent errant timeline scroll
  * Fix range header parsing
  * Bump libsignal to v0.88.2
  * Support pollTerminateNotification in backups
  * Make explicit storage item preserve/remove behavior on unlink
  * More backup export improvements
  * Fix optimization path for unicodeSlice
  * Make export test resilient to out-of-order handling
  * Drop empty story replies and misattributed 1:1 messages
  * Fix PNI serviceId bytes on export
  * Add feature flag for local backups
  * Refactor recipient tracking during export
  * More backup export fixes
  * Exclude chatItems without an author during export
  * Update strings
  * Update DNS fallback
  * v8.6.0-alpha.1
  * Include prefix for PNI serviceIds on export
  * Handle unregistered actions when prompting for OS auth
  * Update local backups availability during rollout
  * Mark accepted or outgoing callHistory as seen
  * Allow incremental playback for attachments with plaintextHash
  * Strip visual attachment filenames for local device
  * Improve processing of mentions in direct conversations
  * Fix some flaky test-electron tests
  * Improve performance of test-electron
  * Update strings for recovery key
  * Add recovery key changed modal
  * Exclude invalid source-less incoming messages
  * Enable local backups after unlink
  * Update local backup OS auth strings
  * Improved orphaned attachment debugging
  * Add separate remote config flag to control max video size
  * Fix local backup backupId iv and counter mechanism
  * Fix recovery key string
  * Improve normalization of profile names
  * Cap number of incremental macs sent in a message
  * Fix sizing of recovery key textarea
  * Improve broken image behavior in ImageGrid
  * Improve resiliency of backup folder deletion
  * Simplify sync message author check

  [ Scott Nonnenberg ]
  * Add .DS_Store to .gitignore
  * Introduce new filesize dependency
  * File attachments: show file size, bold filename, make icon bigger
  * Android themes: Add space between file attachment, message text
  * Change iOS file attachment bubbles to be on-theme
  * Reduce empty space to the left of the larger file icon
  * Change android/android-dark file attachments to be on-theme
  * Add test verifying that AttachmentView shows file size
  * Jumbomoji support matching Android support
  * Bulletproof getCountOfAllMatches against non-global regex input
  * Add new Last Seen Indicator with unread count, scroll to it
  * Scroll on new message only if we were already at bottom
  * Simplify MessageListView.resetScrollPosition: no translation math
  * MessageListView remove unused reset-scroll event
  * Android: Make last seen indicator margin consistent top/bottom
  * Eliminate all console errors during test run
  * Restore interactivity to InboxViews hosted on test page
  * test/index.html: Comments to help in turning off code coverage
  * Add new test/manual.txt with scenarios for last-seen, scrolling
  * LastSeenIndicatorView: programmatic tests, tweak to manual tests
  * Introduce unread message to fixtures, further interactivity fixes
  * test/fixtures.js: Cleanup - data at top, images/setup at bottom
  * Scroll down button: when scrolled up, or new non-visible message
  * Only show scroll down button if we're not at bottom of convo
  * test/manual.txt: add scenarios for new scroll down button
  * Recursively fetch messages until we've loaded all unread
  * Add recursive fetch scenario to manual test script
  * Wait for scroll before deciding whether to add scroll down button
  * Update last seen indicator even if window doesn't have focus
  * Move margin-top back to inner last seen indicator element
  * Update manual test script after changes to last seen indicator
  * Ensure that we never show last seen indicator if count is zero
  * A few tweaks to safety number-related UI
  * A guard to prevent infinite loops in fetching of conversation
  * Override Message.fetch to ensure that db data overrides local
  * Exclude Backbone-sourced method from jscs checks
  * fetchConversation: Minimize scans across loaded messages
  * Last seen indicator: Keep scroll position when window loses focus
  * Keep last seen indicator around for five seconds
  * Reset last seen indicator timing on focus of window
  * Update manual test script to reflect scroll/last-seen updates
  * Fix race condition: Pull from database after add to conversation
  * Fix: Don't scroll to last seen indicator on focus
  * Make last seen indicator more stable, with less forced removal
  * 20px at bottom of conversation considered 'at the bottom'
  * Increase wiggle room to 30 px, which should ensure text cut off
  * MessageListView.measureScrollPosition: reuse variables
  * Update the scroll position when 'fetch more messages' is complete
  * Last seen indicator visual refresh
  * Move to overlay scroll bars for the conversation list
  * Fix broken reference to i18n string 'mediaMessage'
  * Make MessageView.render() idempotent
  * loadAttachments: Handle the zero -> some attachments case
  * Last seen indicator: dismissed only on open and send
  * Mark messages read only when visible, on receipt, focus, scroll
  * Update manual test script with updated scrolling/unread behavior
  * Prevent 'mark read on scroll' during fetches
  * Preserve lastSeenIndicator location when not focused
  * Add comment and fine-tune last-seen indicator when not focused
  * Bulletproofing of markRead and findNewestVisibleUnread
  * Bump version to 0.41.0
  * loadMoreMessages: Fix broken reference to this.view.outerHeight
  * TimerView: don't continue to update after expiration
  * TimerView: Remove some unused bits of code
  * TimerView: Update only as often as 500ms
  * Fix: Show hourglass on incoming disappearing messages once read
  * Conversation.sendMessage: Don't set unreadCount to zero
  * ConversationView.markRead: Mark all messages read when at bottom
  * Fix: Ensure that attachments are always rendered
  * Read receipts: Also mark all messages read prior to this one
  * Conversation.onReadMessage - queue job, don't send read receipts
  * Conversation.markRead: Remove checks for unread
  * Mark older messages as read when we get out-of-order read receipt
  * Conversation.markRead: Return a promise so queueJob works
  * Refine Last Indicator Visuals
  * Fix indentation in android-dark.scss
  * Make spacing at top/bottom of last seen indicator consistent
  * A little cleanup in ConversationView.resetLastSeenIndicator
  * MessageView.appendAttachmentView: Remove from proper parent
  * Bump version to 0.41.1
  * Remove helvetica font in favor of Roboto
  * Add padding at the top of the conversation
  * Protos: Sync spacing with iOS version of protos
  * Protos: Add support for the contact sync end event
  * Protos: Add support for requesting group context
  * Protos: Add support for synchronizing verification of contacts
  * Protos: Put avatar in each message type like iOS/Android
  * Protos: Re-order ContactDetails and GroupDetails to match iOS
  * Use setElement to ensure that re-parented views listen for events
  * Remove default Alt+S shortcut for showing the app
  * Fix: Show attachment views; they trigger update syncrhonously
  * Bump version to 0.41.2
  * Fix attachment styles in iOS theme
  * Light themes: Add gray background color to message detail screen
  * Capture missing manifest.css change
  * Bump version to 0.41.3
  * Remove recorder UI when we fail to 'getUserMedia'
  * Use error.stack instead of error for console log
  * Make Jumbomoji normal size when in the conversation preview
  * Remove all concept of 'key conflict' from the app
  * Move all instances of 'verify identity' to 'show identity'
  * Support for group-member verifications via second-level panel
  * Confirmaton on send, banner when 'unverified'
  * Confirmation dialog: Make keyboard-accessible: escape to cancel
  * A bit of cleanup after some early code review
  * Remove 'safety number approval' option from settings dialog
  * Prevent access to Safety Number when talking to yourself
  * Safety Number screen: make verify button like other buttons
  * Reintroduce outline around confirmation dialog buttons
  * Remove isVerified string from messages.json - don't use
  * Remove comments after NewGroupUpdateView investigation
  * Make the term 'Verified' fully localizable
  * Remove empty string class passed to contact template
  * Replace unicode check with new svg icon
  * Allow re-send of messages in msg detail view on OutgoingKeyError
  * Update strings to use 'Click to show' not 'Click to verify'
  * Add items to conversation history when user verifies/unverifies
  * Re-render verified change conversation items when convo changes
  * Remove extraneous logging
  * Conversation.updateLastMessage: fix indent, use of null message
  * Prepare for verification sync messages: receiver, ready to send
  * Move to the real verify/trust APIs
  * Fixes to get local verification and sync messages working
  * Ensure that we pull verified state only after getting profiles
  * Check trust store for latest identity key info before sending
  * Check trust store for identity key information on every new message
  * Fix a couple bind()) issues when getting verified state
  * Shadow/icon/blue for banner, better verify advisories in dark theme
  * Add icons for keychange and expiration timer in-conversation items
  * Replace warning icon with a smaller file so it scales down better
  * Add verified state summary to top of safety number screen
  * Show call to action on group member list when verifying
  * Left-align confirmation dialog text, explain more on 'send anyway'
  * Move unverified banner text to match Android
  * Protos: Update spacing to match libsignal-service-java
  * Protos: Move to latest iteration of verification protos
  * Differentiate between local and remote trust decisions
  * Object.assign -> _.extend(), for to make Chrome 45 and below work
  * Refactor: combine Conversation.setVerified/setVerifiedDefault
  * processVerifiedMessage: Trigger keychange event when key differs
  * Log on receipt of verified sync after we've processed the state
  * processVerifiedMessage: Archive all sessions when key changes
  * Fix: Conversation.updateVerified fails when convo not yet in db
  * Update identity key after a send error tells us it has changed
  * MessageView: Be resilient to multiple renders of a network error
  * OutgoingMessage: Reduce the calls to registerError
  * OutgoingMessage: A few code style tweaks to make things readable
  * Message.send - check for missing identityKey, also add logging
  * Message.send: Add promise to array for consistency
  * Protos: Update to optional verified in sync (was: repeated)
  * Fix call to reloadDevicesAndSend - it returns a function
  * OutgoingMessage: Provide proper timestamp for replayability
  * Handle unverified length of zero
  * Show last seen indicator for keychange/verification notifications
  * m.get('sender') -> m.isIncoming(), filter in getLoadedUnreadCount
  * Truncate long filenames in attachments
  * Miscellaneous wire-up to ensure that failures propagate
  * jshint: Introduce laxbreak to allow for if clauses on diff lines
  * Show verified/keychange notifications when actually relevant
  * Handle UNVERIFIED sync verification messages (via contact sync)
  * Update verification-related strings to better match mobile app
  * Improve experience when discovering identity key error on send
  * Fix crash in keychange listener test
  * Code coverage: Collect test coverage for the protocol layer
  * Code coverage test run: Fix broken test
  * Make it clear in conversation just some recipients failed
  * Fix focus issues with identity key send view
  * removeAllSessions: properly reject in failure cases
  * test/index.html: Restore previous location of code coverage stuff
  * "Clear verification" -> "Mark as not verified"
  * setTrusted() -> setApproved() to dismiss the five-second warning
  * Unify processVerifiedMessage with Java implementation
  * Show warning when we discover key change on verify
  * Add else handlers with logging in toggleVerified catch handler
  * Improve wording on the 'SN changed' popup after verification
  * Send warning: Show single problematic group member, not group name
  * Show 'Message not sent' only if 'Some recipients failed' not showing
  * Verification sync logging: include whether it was from contact sync
  * Show size of files even if size not precomputed for attachment
  * Remove jitter on verifying/unverifying safety number
  * someRecipientsFailed string: Add period for consistency
  * Delete individual message
  * ConfirmationDialogView: Make showCancel an explicit option
  * Throttle calls to getProfile when opening conversation
  * Bullet-proof _setVerified and handleDataMessage against rejections
  * Ensure that promises always resolve, or that rejections are okay
  * Cache messages on receipt, remove from cache when processed
  * Conversation: Start w/DEFAULT verified state, avoid null timestamp
  * More bullet-proofing - reject surrounding promise if save() fails
  * Last seen indicator/scroll down button - defensive removal
  * Gruntfile: Remove firefox target in sauce labs task
  * Add a pure copy from backbone into reliable_trigger.js for diff
  * Override Backbone's trigger with one that catches exceptions
  * Whenever adding something to a queue, include a timeout
  * Fetch conversation before saving in all sync handlers
  * When finding all groups involving a number, load from DB not memory
  * Apply reliable trigger to Backbone.Collection as well
  * Add return to onContractReceived for consistency
  * Increase log length to 5000, since we're logging so much now
  * Read receipts: Log sender and timestamp when related msg not found
  * isUntrusted: Return false if firstUse is true
  * findOrCreateById instead of private-specific method
  * Animated loading screens on startup and first conversation load
  * Handle the 'extension loaded, reopen window' scenario
  * background.js: Flow promises properly in error case
  * App loading screen: show messages processed so far
  * Reset MessageReciever queue whenever possible
  * Dismiss the app loading screen if we failed to connect to socket
  * MessageReceiver: Flow promises back properly in decrypt error case
  * Consistent returns, no more eventTarget, comments for tricky bits
  * Fix second fetchConversation call if unread > 0
  * Unload conversations and old messages every half-hour
  * Fix manfest.css, libtextsecure.js catch-up
  * MessageReceiver: Ensure that we queue all cached first
  * Conversation.markRead() - wait for all database saves are complete
  * ConversationView: when windows are closed, call unload()
  * ConversationView.unload: Add ability to provide reason for logging
  * libtextsecure.js catch-up
  * Better logging for sync sent messages, and new (disappeared) msgs
  * Read/Delivery Receipts: Wait for resolution in main queue
  * Expiring messages: destroy only after we've notified conversation
  * Conversation.notify(): introduce a promise to track completion
  * MessageReceiver: Log empty event, flow promise properly
  * Expiring messages: Add clarifying comment about destroy() ordering
  * handleDataMessage: Remove if(confirm) checks, add try/catch
  * Set messageKeysLimit to unlimited if communicating with our devices (#1348)
  * Fix for "Can't find record for undefined.1"
  * Fix sync'd disappearing messages; prevent double-save
  * Restore 'cancel' button on delete message confirmation dialog
  * MessageView: Always remove errors on re-render to prevent doubles
  * MessageReceiver: Fix envelope id logging and make it consistent
  * MessageReceiver: Process cached before dismissing loading screen
  * Fix 'retry message' scenario: they are now content messages
  * Making the application loading screen dark in the dark theme
  * Key verification error popup: Remove cancel, empty resolve()
  * Bump version to v0.42.0
  * Clarify someRecipientsFailed string via description
  * Throttle expiring messages data query and deletion
  * MessageReceiver: Wait for all code paths in handleSyncMessage
  * Give initIncomingMessage envelope in background.js error handling
  * v0.42.1
  * Handle rejections from protocol layer (due to missing records)
  * Add a max setTimout for expiring messages (over max == immediate)
  * Disable message box between send request and final send begin
  * Decrypt any IncomingIdentityKeyError still sticking around
  * Maintain original received time when processing queued/error msgs
  * v0.42.2
  * Set receivedAt after decrypt, sort by received then sent
  * v0.42.3
  * libtextsecure.js catch-up
  * v0.42.4
  * Don't revoke convo avatar URL on unload - we will need it again
  * Travis doesn't respect the repo/organization email so turning off
  * Additional logging for perf analysis and cross-device debuging
  * Re-enable message box if enter pressed with no text/files
  * Update spanish, italian, and romanian strings
  * v0.42.5
  * Run 'locale-patch' Grunt task on recent string additions
  * v0.42.6
  * Add logging to help track down problems with Sync
  * Additional logging when we get delivery receipt for unknown msg
  * MessageReceiver cache: Don't convert to string for save
  * Remove errors from the cache when they are shown to the user (#1392)
  * Fix a few errant jshint problems
  * v0.42.7
  * Move clear/drawAttention logging up a level to reduce verbosity
  * Full export, migration banner, and full migration workflow - behind flag (#1342)
  * Bullet-proofing export scenarios: null attachments, no msgreceiver
  * Export: Handle synchronous 'shutdown-complete' event (already offline)
  * String updates for es, fi, it, ja, pt_PT, ru and sv
  * v0.43.0
  * Chrome export fixes: too-long names, redact group ids (#1402)
  * Update a large number of strings via transifex (#1403)
  * Additional error handling/logging during contact sync (#1395)
  * Fix handling of sync message with blocked numbers (#1411)
  * Export: Better disambiguate conversation directory names (#1409)
  * createTaskWithTimeout: Don't log expiration if task threw (#1412)
  * Export/Dark Theme: Increase banner text contrast for legibility (#1415)
  * Remove unknown group messages from cache - no need to retry! (#1414)
  * v0.43.1
  * Export: Remove " as one of the allowed characters in filenames
  * Export: Properly generate directory names for nameless groups (#1421)
  * Fetch conversations once, clean up ConversationController API (#1420)
  * v0.43.2
  * Fetch all conversations on startup of app, not on inbox load (#1437)
  * MessageView: Handle change of color to null, call getColor() (#1438)
  * Export: Limit attachment filename length, + convo date, + tests (#1439)
  * MessageView.updateColor: Call getAvatar on convo, not message
  * v0.43.3
  * Don't show notification for verified state change with yourself (#1454)
  * Log entry max to 2k, remove logging in hot codepaths (#1459)
  * Export: Improve usability - timing expectations, install button (#1474)
  * Force full contact/group import on next launch if not first run (#1476)
  * Update localized strings
  * v0.43.4
  * More refactoring to reduce global event dependencies
  * Load test page and run tests on start when NODE_ENV=test
  * Fix emoji test, since emoji image paths no longer start with /
  * Fix NetworkStatusView tests' stubbing of window.i18n
  * Fix non-rendering unicode characters on test page
  * Use correct locale, fall back to en if we don't have translations
  * Initial version of `grunt unit-tests`, tests from command-line
  * Enable complete exit of Electron process after `grunt unit-tests`
  * Fix emoji tests - image paths are no longer absolute
  * Cleanup: Add unit-tests task to grunt test, fix style checks
  * Move `grunt test` to ./travis.sh since it now invokes spectron
  * Increase unit-tests timeout, improve error display, add set -e
  * process.env.NODE_ENV -> environment
  * Remove i18n stub used in NetworkStatusView tests
  * Eliminate HIDE_DEV_TOOLS environment variable. Hide in test env.
  * Fixes for appveyor build: path formats, correct electron binary
  * Proto-loading: Throw if we get an error
  * Capture and display browser logs when unit tests fail
  * Remove test/protos symlink, use window.PROTO_ROOT for config
  * Remove duplicate key in package.json
  * Introduce new dependency for user settings: electron-config
  * Remember window position, size, and maximized/fullscreen status
  * Add manual test scenarios for remembering window state
  * Move electron-config init below our change to appData path
  * Add release directory to gitignore
  * Bump version to v1.0.8
  * Bump version to v1.0.9
  * Add two scripts to handle broken permissions in release dir
  * fix_broken_perms.sh: Restore signal-desktop execute permission
  * Bump version to 1.0.10
  * Add missing comma in ConversationView event list
  * Fix paths for all newly-added icons
  * Get rid of node_modules caching for AppVeyor builds
  * Bump version to 1.0.11
  * Bump version to 1.0.12
  * Bump version to 1.0.13
  * AppVeyor - fix what appears to be a problem with '&& grunt'
  * Travis: Removing OSX from the platform list for now; long delays!
  * Bump version to 1.0.14
  * Appveyor: Add some logging to help track down flakiness
  * Fix warning icon in message detail page - use relative path
  * Bump version to v1.0.15
  * manifest.css catch-up
  * Load locale information only after application's 'ready' event
  * Use two interations instead of while loop for trimming log
  * Bump version to 1.0.16
  * Bump version to 1.0.17
  * Remove questions from aptly.sh - they interrupted automated scripts
  * Don't show 'new update available' dialog if it's already showing
  * Fix trimming of debug log: remove first, use proper iteration var
  * Remove spellchecking on the debug log field - causes big slowdown
  * Note how many debug logs we have after we load them from DB
  * Bump version to 1.0.18
  * Fix auto-update dialog now that locale-loading has been changed
  * A number of fixes for loading screen, recent rebase
  * Bump version to 1.0.19
  * AppView.createInbox() - set this.inboxView immediately to be ready
  * Calm time travel checks, don't continually reschedule key rotation
  * Reschedule all timers on time travel, set interval back to 1000ms
  * Import: choice on first startup, workflow, ported to Node.js fs API
  * Remove step 1 of previous setup flow, replaced by choice screen
  * Protobufs: More logging on failure to load protobufs, fix tests
  * Separate dir selection from import, better import button text
  * Remove migration-related functionality, leaving export stuff
  * Tune the import error message: suggest re-export, debug log link
  * InstallView: Refactor step numbers into enum
  * v1.0.20
  * Copy emoji from components to images directory for asar creation
  * AppView: Store initialLoadComplete value for late openInbox
  * Add semver and spellchecker directly, remove electron-provider
  * Add os-locale to reliably get xx-XX style locale on all OSes
  * Multi-error, multi-language, and cross-platform spell-check
  * Add lodash for server-side utility functions
  * Merge locale-provided strings into english for failover support
  * v1.0.21
  * v1.0.22
  * Import: Wait until db writes resolve before saying we're done (#1401)
  * v1.0.23
  * Fix unlinked loading screen hang, fix error dialog on start (#1440)
  * Scroll to bottom when adding a new message (#1450)
  * focus() visible window on show-window instead of show() (#1455)
  * Copy audio-related files into js/ instead of symlinking them (#1456)
  * v1.0.24
  * Additional logging to help track down socket disconnect problems (#1469)
  * Update builder (Windows taskbar), tweak config (GNOME taskbar) (#1473)
  * Move app theming from index to app view (#1479)
  * AppVeyor: Reduce build output due to xcopy of all emoji files
  * Bypass often-corrupt node_modules/.bin/grunt.cmd on windows (#1481)
  * v1.0.25
  * Remove images/emoji directory (#1485)
  * Additional logging when we can't decrypt a user's profile (#1483)
  * Update our release scripts to match changes in electron-builder (#1484)
  * script to build for electron on install, Electron docs refresh (#1491)
  * setTimeout/setImmediate workaround for linux hangs (#1497)
  * v1.0.26
  * Move logging to disk via bunyan
  * jshint: Turn on ES6 mode, fix a few issues in new logging file
  * Remove unused grunt tasks: sauce labs and connect
  * Redact group ids in logging
  * No longer need manifest.json. Removing.
  * Add certificate name for windows code-signing (#1513)
  * Disconnect from socket faster on loss of network access (#1512)
  * Further workaround to try to push node.js event loop forward (#1511)
  * Only retry messages on startup, not every sockect reconnect (#1510)
  * Update electron to v1.6.14 to get security fix (#1519)
  * Update strings for fa, no, pt_BR, pt_PT, ro, zh_CN, zh_TW (#1517)
  * Eliminate $name$ in two places (#1520)
  * Only show notifications when done with sync (#1507)
  * Ensure final message before 'empty' is ready for notification (#1522)
  * v1.0.27
  * v1.0.28
  * window.onerror: move to proper window.log.error call (#1528)
  * Remove 'debug' from the list of stores we import (#1532)
  * Override console.log in main process, handle non-strings (#1536)
  * Update electron-updater and supply it with windows/publisherName (#1535)
  * Load debug log dialog immediately, then populate log data (#1540)
  * Better handling of network disconnection/reconnection (#1546)
  * Make .status CSS rules more specific to fix onboarding text (#1547)
  * Show proper icon when attachment is not an image (#1548)
  * v1.0.29
  * Fully eliminate debug from imported data (#1556)
  * Add 100MB file size limit for arbitrary file types (#1555)
  * v1.0.30
  * Update autosize, which should fix stack overflow error (#1560)
  * Fix intermittent conversation sort order problem (#1558)
  * Improve fixtures, restore InboxView rendering on the test page (#1562)
  * Improve OS menu (#1563)
  * Wait to manually disconnect after receiving 'offline' event (#1561)
  * v1.0.31
  * Deployment: No longer use CI windows assets, include about.html (#1564)
  * Log when we've detected a new version (#1567)
  * Reduce logging when the window moves (#1568)
  * models/conversation: Refer to proper error variable (#1569)
  * Load profiles for a conversation without blocking convo load (#1570)
  * Add 5s timeout for all requests but attachment up/down, avatar (#1584)
  * v1.0.32
  * Better handling of online/offline behavior, socket shutdown (#1593)
  * Only start the app up when we've fetched all conversations (#1597)
  * Don't send read syncs or read receipts for messages with errors (#1596)
  * v1.0.33
  * Re-enable read receipts and read syncs (#1604)
  * v1.0.34
  * Beta versions support: SxS support, in-app env/instance display (#1606)
  * v1.0.35-beta.1
  * Update to the latest Electron 1.6.x (#1666)
  * v1.0.35
  * Don't call createWindow before the app is ready for it (#1665)
  * Wait for IndexedDB transactions to complete for import scale (#1698)
  * Increase web request timeout, drop failed delivery receipts (#1699)
  * v1.0.36
  * Immediately remove delivery receipts from the retry cache (#1719)
  * Update strings for quite a few languages (#1733)
  * preload.js: Load spellcheck last; it fails with /tmp noexec (#1734)
  * v1.0.37
  * Merge branch 'master' into development
  * Be resilient to thrown non-errors in import process (#1737)
  * Update to the latest 1.7.x electron (#1736)
  * Add icon to the window manually on creation (#1735)
  * Use icon from /images for window creation (#1738)
  * Beta builds: A few updates required for successful release (#1739)
  * v1.1.0-beta.1
  * removeSignedPrekey: Be resilient to delete returning nothing (#1769)
  * Import: Better onerror logging, save attachments serially (#1768)
  * v1.0.38
  * aptly.sh: Instructions for pruning old packages from repo (#1771)
  * Retry failed signed key rotation; start rotation when registered (#1772)
  * Remove last seen indicator if we get a sync'd outgoing message (#1805)
  * Update to electron-builder 19.29.0 for better shortcut behavior (#1804)
  * Add some copy clarifying the import process (#1803)
  * Proper session reset: Delete sessions before and after (#1796)
  * Set parent window for about/new version, escape to close (#1795)
  *  Move to e.target.error, transaction/request.error didn't work (#1785)
  * Remove conversation from left pane on 'delete messages' (#1807)
  * Properly localize group changes (#1802)
  * v1.0.39
  * Merge branch 'master' into development
  * yarn.lock and libtextsecure.js catchup
  * Introduce library for notifications on downlevel windows (#1812)
  * Fix notifications: windows -> window, serialize false setting
  * rotateSignedPrekeys: Fix 'res is not defined' error
  * v1.1.0-beta.2
  * deployment: update electron-publisher-s3 to match builder update
  * On group/contact import: don't re-add hidden entries to left pane (#1811)
  * Key rotation: log failures, retry, force on new version (#1833)
  * A variety of logging improvements to track down bugs (#1832)
  * Logging for prekey fetches, load of log files (#1836)
  * Harden our handling of config.json, verify that window is visible (#1830)
  * Move sync messages to silent = true (#1843)
  * Save prekeys optimistically, track confirms, new clean behavior (#1846)
  * Emoji: Eliminate unused images, make sure panel clicks add emoji (#1849)
  * NullMessage sent before verification sync should not be silent (#1857)
  * aptly.sh: support for current and previous ubuntu versions (#1856)
  * Add proxy support based on environment variables (#1855)
  * v1.0.40
  * Merge branch 'master' into development
  * Fix merge confilict in rotate_signed_prekey_listener.js
  * v1.1.0-beta.3
  * aptly.sh: Fix broken switch commands - distro and config fix
  * Fix ASAR filter: takes ASAR size down by ~200MB (#1869)
  * Delay our call to quitAndInstall(); doesn't work inside callback (#1866)
  * Merge branch 'master' into development
  * v1.0.41
  * Merge branch 'master' into development
  * v1.1.0-beta.4
  * Support pass-through proxies with HTTPS_PROXY env var (#1878)
  * v1.1.0-beta.5
  * Update available dialog: default now 'later', not 'restart' (#1894)
  * Remove obsolete emoji via a new fork of emoji-panel (#1893)
  * Show window if hidden when second instance attempts to start (#1897)
  * Introduce intl-friendly sort order for contact lists (#1900)
  * Support the latest phone number formats via libphonenumber (#1899)
  * Treat tiffs like unrecognized files; Chrome doesn't render them (#1901)
  * v1.1.0-beta.6
  * Promote v1.1.0-beta.6 to production
  * manifest.css catch-up
  * v1.1.0
  * Remove duplicate showWindow method (#1918)
  * Update to Electron 1.7.10 (#1919)
  * Log out information from DOMException when import fails (#1923)
  * Update strings for just about all supported languages (#1921)
  * Preserve disabled state in the middle of sending message (#1937)
  * Update a number of dependencies to the latest: builder, websocket, spellcheck (#1920)
  * Make errors more debuggable; capture correct stack, include name (#1944)
  * Clean logs on start - and eslint/mocha with code coverage (#1945)
  * Remove built assets from repo, updates to docs + GH templates (#1955)
  * Readme: big install, Contributing: mention Next Steps project (#1956)
  * Fix device ID check, clean up prekey fetch logging (#1961)
  * v1.2.0-beta.1
  * Dependency updates, fixes required for successful release (#1966)
  * Log more info w/http errors, resilient to invalid group members (#1968)
  * Left pane: small sorting fix, logging for error cases (#1969)
  * Update electron-builder to latest, with .ico fix (#1976)
  * Video/audio: rely on the browser to detect content type (#1977)
  * Account setup: confirm first signed prekey, clear prekeys (#1979)
  * v1.2.0-beta.2
  * Remove expired message if it expired during database fetch (#1983)
  * Update to latest Electron 1.7.x (#1996)
  * v1.2.0
  * v1.3.0-beta.1
  * Harden production against NODE_ENV environment variable (#2010)
  * Process expireTimer and block status along with contact/group sync (#1980)
  * app.quit() -> app.exit(), immediate app close on second instance (#2017)
  * Big update to new signal branding (#2018)
  * Merge tag 'v1.3.0-beta.1'
  * v1.3.0
  * Update electron to 1.7.12 (#2029)
  * Fix typo in issue template (#2020)
  * Make our binary comparisons constant time (#2047)
  * Update to libsignal-protocol-javascript v1.3.0 (#2050)
  * v1.4.0-beta.1
  * Protect against null mainWindow in captureAndSaveWindowStats (#2061)
  * New design for import/install, 'light' import (#2053)
  * Enable conversation open when app started offline (#2064)
  * v1.5.0-beta.1
  * Two fixes for tricky import/register scenarios (#2072)
  * Promote 1.5.0-beta.1 (and a couple bugfixes) to production
  * v1.5.0
  * Don't pop conversations with timer change to top (#2084)
  * v1.5.1
  * Merge branch 'master' into development
  * Show View -> Debug on OSX, ensure Debug Log is visible (#2089)
  * v1.5.2
  * Merge branch 'master' into development
  * v1.6.0-beta.1
  * Choose device name screen: Finish by pressing enter (#2085)
  * v1.6.0-beta.2
  * Disable all webviews, since we never intend to create them (#2114)
  * Delete data on windows uninstall
  * Add nsp to dev dependencies and to travis and CI scripts
  * Remove config after unlink, clear db when linked with new number
  * Return number (not id) in getNumber, remove unnecessary comment
  * Enable deletion of all logs on disk via IPC
  * New section in settings screen, full-screen 'are you sure?'
  * Delete data screen: Remove scrollbar when no convo selected
  * Allow ConversationController.load() to be called more than once
  * Move to better database deletion call; clears in-memory caches
  * Use proper logging if error pops when deleting all logs
  * Start moving towards semantic CSS class names
  * Move wrapDeferred from background.js to preload.js
  * Format updates to js/database.js
  * Refactor: db tasks to database.js, log delete to modules/logs.js
  * Remove all mention of obsolete safety-number-approval setting
  * Fix broken storeNames.forEach, since it's not an array
  * Clear conversation list when the conversations collection resets
  * Remove scrollbar when placeholder is showning when in iOS theme
  * Refactor newly-added ClearDataView in settings_view.js
  * v1.7.0-beta.1
  * Code formatting updates for backup.js
  * Refactor backup.js to use async/await
  * Remove strange eslint-generated triple-parens
  * Refactor: Move Backup under window.Signal
  * Backup: All exports are now 'light' exports
  * Exclude unnecessary data in export: profiles, replayable errors
  * Harden rotateSignedPrekey against nonexistent identity key
  * Backup: zipped messages.json, flat attachments dir
  * Encryption support for backup and restore
  * 1.7.0-beta.2
  * Update to electron 1.8.4 (#2186)
  * Gruntfile: Remove edits to background.js; no longer applicable
  * Gruntfile: limit jshint/jscs watch tasks to own files, not *.js
  * Move moment from bower deps to npm deps
  * Update style of i18n, pull it in via preload instead of .html
  * Introduce React/TypeScript/TSLint into app for new UI components
  * Full styleguide now available via `yarn styleguide`
  * Add 'use strict' to i18n.js
  * v1.7.0-beta.3
  * Remove i18n.js from jshint run, fix missing semicolon
  * Add mp3 to project, make binary files available in rsg on util
  * Add missing shim, fix typo
  * Parse theme from querystring, put on util. Moment from require()
  * Fix tslint errors and add tslint to CI task in package.json
  * New tslint rule: Interfaces must not start with I
  * Gruntfile: Sort lines in jshint/jscs config
  * Use Array.isArray in i18n.js
  * Fix typo in index.ts
  * Rename test-only MessageParents to ConversationContext
  * Finish rename of MessageParents, re-add moment to page
  * js/i18n.js -> js/modules/i18n.js
  * Remove 'use strict' from i18n.js
  * Big refactor: ts/ directory for all typescript, including react
  * window.Signal.React -> window.Signal.Components
  * Simplify assignment; add warning to preload.js about Style Guide
  * Introduce React, TypeScript, TSLint and React-StyleGuidist (#2219)
  * Rename file for Whisper.ReactWrapperView (#2232)
  * Styleguide: Incoming/outgoing attachments of all types
  * In iOS theme, join attachment bubble with caption bubble
  * Update protos to reflect recent quotation-related updates
  * Style guide: All permutations of text reply to diff. quote types
  * message_view.js: eslint fixes and a bit of fixup
  * Reply -> Quote
  * Move quote-related examples from Message.md to Quote.md
  * Fixed examples in Quote.md, rough Android visuals
  * Unleash eslint on message_receiver.js - lots of change
  * Quotes: The full pipeline into the database
  * Unleash eslint on models/conversations.js
  * Unleash eslint on models/messages.js
  * MessageReceiver: Can't use arrow function if it is to be new'd
  * Turns out that we call validateNumber() on group conversations!
  * Eliminate eslint-generated triple-parents
  * Remove models/messages + models/messages from jscs run
  * Full support for quotations in Android theme
  * Fix a number of lint failures
  * Wire up fake window.Signal.HTML because it's captured on load
  * Fix MessageView test: p -> div
  * Quote loading: Check for in-memory message until we get one
  * preload.js: Fix quote support, load Quote properly
  * Removed unused aspect ratio mixin
  * Fix problem of squished quote icons and images
  * Support for iOS theme
  * A few tweaks for the android-dark theme
  * android-dark: Constrain light play icon to with peer image
  * MessageView: Make Quotes resilient to re-renders
  * MessageReceiver: Translate from BigNumber to number for quote id
  * Introduce a bit of color to the message/attachment style guide
  * Quotes/iOS: Fix bug where large quote content would smoosh icon
  * Quote.tsx: Fix tslint errors
  * Load attachment data for quotedMessages, processMessage on add
  * Move to white background for ios replies, hairline bottom border
  * Move to central MIME functions, remove some console.log
  * iOS: Handle portrait image that doesn't fill message box
  * Fix handling attachment thumbnails using thumbnail key
  * Remove pointer cursor when clicking on quote won't do anything
  * Load thumbnail even if we have the full message in hand
  * Don't fail message load if we can't load quote thumbnail
  * Constrain 'start recording' event listener to capture-audio only
  * Conversation.loadQuoteThumbnail: Be resilient to no attachments
  * Fix message_receiver
  * Fix lint issues in message_receiver.js
  * Fix iOS: tail, blue partial border, extra attachment space
  * Center and limit the size of non-square thumbnails in quotes
  * ConversationContext: conversationType => type
  * MessageView: Call the proper render method on change event
  * messages.json: Fix typo in replacement string
  * Finish type definition for _mapQuotedAttachments
  * Handle attachment load failure for quoted message
  * Make iOS quote theming apply in the message detail screen
  * Quote.md: Fix image example, add examples for attachment + reply
  * Receive quoted replies, collapsed iOS bubbles (#2244)
  * v1.8.0-beta.1
  * Add style guide examples for portrait/landscape images
  * iOS: Center images in bubble, shrink bubble down to image size
  * Style Guide: Additional message examples, a few fixes to enable
  * Show three dot icon next to message on hover
  * Tighten up CSS
  * Eslintify conversation_view.js
  * Refactor: Push selector logic for quote props into Message model
  * CSS Refactor: Pull quote CSS out from parent classes
  * MessageView refactor: reply -> quote
  * Show current quoted message above composition field
  * conversation_view: Remove logging in quote handling
  * MessageView: Remove logging
  * Put quote preview in text box for Android, above it in iOS
  * MessageView: Show menu w/ 'reply to message' on triple-dot click
  * Use fit: cover for non-square thumbnails, better movie icon
  * Make thumbnails on quote load and on quote preview creation
  * Full pipeline to send quotes, including thumbnail upload
  * Make sent quote clickable - process after adding to conversation
  * Remove borders that didn't render well
  * Refactor: Use correct name for sanitized filename in backup.js
  * Fix electron test race condition with protobuf loading
  * Prevent infinite repeated errors on leaving electron tests open
  * Put focus in the message composition field on reply
  * Eslintify test/backup_test.js
  * Backup and end-to-end test!
  * Update quotes to render emoji just like normal messages
  * Disable sending of quoted replies for now
  * iOS theme: Permanant background to attachment part of bubble
  * Fix some tslint errors
  * Backup E2E test: Fix path analysis on windows
  * Android Dark theme: refactor, increase contrast in outgoing
  * Backup E2E test: Normalize paths because glob returns / on WIN
  * Responding to pull request review feedback
  * Clear border-radius at bottom of quote in iOS theme
  * Document Message v4, remove data-free thumbnails
  * Restore rendering of group update and end session messages
  * Send quoted replies and message/quote visual updates (#2273)
  * Add border-radius to iOS quoted-message to fix MacOS render bug
  * Add border-radius to iOS quoted-message to fix MacOS render bug (#2282)
  * Enable the sending of quoted replies
  * Apply iOS theme after link
  * Fix quote thumbnail flickering issue
  * Enable sending quoted replies, two fixes (#2284)
  * Fix rendering issue with iOS quote preview (in composition mode)
  * Fix rendering issue with iOS quote preview (#2292)
  * ConversationView: Add 'View All Media' menu item
  * v1.9.0-beta.1
  * eslintify file_input_view.js
  * Generate thumbnails for new video attachments, video quotes
  * Respond to PR feedback
  * Make algorithm for finding thumbnails more efficient
  * Move to some of our global utility methods
  * Remove the outline for the scroll down button
  * Thumbnails for new video attachments and video quotes (#2293)
  * styleguide: Make filesize and Signal.Util.GoogleChrome available
  * styleguide: Make filesize/Signal.Util.GoogleChrome available (#2302)
  * Show 'You' in Android theme quotes instead of contact name
  * Show 'You' in Android theme quotes instead of contact name (#2312)
  * v1.10.0-beta.1
  * Stop uploading linux build assets; no longer used in build
  * Gruntfile: Remove build fetching, no longer used in build
  * package.json: Remove all but the scripts needed for modern build
  * Remove electron builder support for publishing to S3
  * Remove unused build assets
  * Remove unused asarl package.json script, rearrange a little
  * Build updates: remove unused commands and assets (#2318)
  * Turn on prettier support for markdown files, update all files
  * Turn on prettier support for markdown files, update all files (#2320)
  * Update translations for week of 5/1
  * Update translations for week of 5/1 (#2328)
  * Let's make it all pretty, shall we?
  * Now we've got everything prettified!
  * prettier: exclude blanket_mocha.js for libtextsecure tests
  * Move entire application over to using prettier.js (#2324)
  * Update translations for week of 5/7 (#2352)
  * MessageView: Add id from database to DOM for outgoing messages (#2350)
  * Contact sharing: protos and data pipeline
  * Visuals for embedded contacts as well as contact detail screen
  * Wire up all contact behaviors, refactor Contact type/selector
  * Fix style guide for LightboxGallery component
  * Pull all setup in preload.js into signal.js. goal: webpackable
  * Update contact bubbles for ios theme
  * Update contacts for android dark theme
  * Show contact name when you reply to message with a contact
  * Eliminate arrows in the standalone Lightbox component examples
  * Refactor to remove duplicated code, lint/prettier fixes
  * Minify new svg files
  * Move contact migrate code from message.js to contact.js
  * Move CSS to remove button styling into mixins.scss
  * Drop ifTruthy suffix
  * Remove Object.assign still hanging around in typescript
  * A couple renames in contact.js
  * MessageView: Get rid of 'let' for hasSignalAccount
  * validateContact: Return error instead of logging
  * Use protobuf enum values to eliminate magic numbers
  * Remove 'Contact' from 'Contact.*' properties, clean->parse
  * scss mixin: remove-button-styles -> button-reset
  * Feature: Receive contact (#2349)
  * parseAndWriteAvatar: Do shallow copy before omit() call
  * Properly handle contact property as an array in MessageReceiver
  * Use backup labels if custom contact type labels are missing
  * Fall back on givenName/familyName if no displayName/organization
  * Parse phone numbers into e164 as part of schema upgrade
  * Use contact name when updating last message for a conversation
  * Move phone number format/parse into ts/types/PhoneNumber
  * Fix a few types: relax contact, Email->Phone
  * Fixes for receive contact (#2359)
  * v1.11.0-beta.1
  * Debounce notifications so we don't orphan them
  * Notifications: All calls are debounced except for shutdown clear
  * Notification Improvements (#2364)
  * v1.11.0-beta.2
  * Update link handling
  * v1.11.0-beta.3
  * Move to react for newlines, emoji, and links in message body
  * v1.11.0-beta.4
  * Fix malformed CSP
  * v1.11.0-beta.5
  * A few fixes for the contact detail screen (#2374)
  * Update React-based emoji handling to fix skin tone modifiers (#2399)
  * Update to electron v2.0.1 (#2401)
  * Move all forks to @scottnonnenberg-signal account
  * Disable window.open(); has extra Electron functionalnity
  * Prevent new BrowserWindows from being created
  * Filter file scheme; disable http, https and ftp entirely
  * Print out main process logs if electron unit tests fail
  * Add form-action: 'self' to CSP for defense in depth
  * Refactor all emoji utility methods into window.Signal.Emoji
  * Refactor link/emoji/newline components for composability
  * Emojification now all done with react via a few new components
  * Add emojification to contact names shown in quotes
  * Turn on all of Microsoft's recommend lint rules
  * Add style guide examples for ContactName and ConversationTitle
  * Remove unused app-migration-screen template
  * Remove unused messages.json strings
  * Remove formatting in importError localization string
  * Explicitly disable nodeIntegration in service workers
  * Move to npm for several dependencies
  * Remove jscs from the project
  * bower.json and Gruntfile.js cleanup
  * Remove unused code; move signal.js to js/modules for eslint
  * Disable Electron-augmented window.open
  * Expand set of blocked URI schemes
  * Fix lint error in OS.ts
  * Fix formatting in contributing.md
  * v1.12.0-beta.1
  * eslintify background.js
  * When marking message read, ensure that peers have same read_at
  * Remove broken stylesheets symlink
  * Ensure that bulk-read messages expire at the proper time (#2414)
  * Hardening: normalize on-disk attachment paths before save/load
  * Fine-tune file protocol filter
  * Disable eval() since we never use it
  * Deny all permissions we don't actually need
  * eslintify libtextsecure/api.js
  * Refactor api.js into web_api, which encapsulates all web access
  * Ensure message expire timer start times are never in the future
  * File protocol filter: log when non-absolute path is rejected
  * Fix path-oriented unit test on Windows
  * v1.12.0-beta.2
  * iOS theme: Links in quotes now blue (not white) for visibility (#2435)
  * Ensure timer updates show in convo before initiating message
  * Send message: Pull expireTimer, recipients, dest before queueJob
  * Follow symlinks in app/config paths before starting app up
  * Remove window.config in favor of window.getXXX() accessors
  * v1.13.0-beta.1
  * Disable inline rendering of SVG attachments
  * Remove unused export/import functionality
  * Send/reply: Be resilient to errors making attachment thumbnail (#2468)
  * Clarify beta install instructions (#2471)
  * Expire timer updates: don't send if updated via remote message (#2473)
  * Restore version/environment details to about window (#2477)
  * Fix width of message detail screen (#2478)
  * Update fr/tr strings (#2479)
  * Add missing await for thumbnail creation in makeQuote()
  * Add link to terms and privacy policy in about window
  * v1.13.0-beta.2
  * Idle detector: Fix bug preventing it from ever turning off (#2487)
  * Include about_preload.js in production builds (#2485)
  * Disable notifications on new 'reconnect' event for laptop resume
  * Add missing timer option strings
  * Make all OS menus localizable
  * Update contents of conversation even when view not hydrated
  * eslintify expiring_messages.js
  * Handle timer updates along with group updates
  * New media permission, show dialog when not enabled for voice msg
  * Add 'newmessage' event handler to Conversation for reliablity
  * Update strings for quite a few languages
  * Whenever user opens conversation, update its last message
  * v1.14.0-beta.1
  * Ensure that the production build has permissions_popup_preload.js
  * v1.14.0-beta.2
  * Remove temporary test logging
  * Permissions: 'return callback(true)' instead of 'return true'
  * v1.14.0-beta.3
  * Open separate windows with theme, update settings theme on change
  * Ensure that notifications and auto-hide window settings are saved
  * Be resilient to null thrown errors so we can surface to user
  * Ensure disabled timer notification is 'to off' not 'to seconds'
  * v1.14.1-beta.1
  * Remove iOS theme in favor of plain light/dark themes
  * Protos: Add color field to GroupDetails
  * New React component: Message
  * Remove jshint - move everything over to eslint
  * Include _locales/en/messages.json in prettier formatting
  * Finish new Message component, integrate into application
  * Media Gallery: Support for dark theme
  * New React component: ConversationListItem, installed in left pane
  * Fix reply to message w/attachment, dark theme quoted attachment
  * Timestamp: Eliminate 'Invalid date' from potential output
  * Fixes for quotes/schema upgrade, optimize media gallery load
  * Remove empty file: colorSVG.ts
  * Fix lint errors in conversation_view.js
  * A couple small fixes: quotes, ConversationListItem, MessageDetail
  * Update localization strings
  * On click of search result, show and focus conversation
  * Remove verbose updateLastMessage logging, fix MediaGallery save
  * Make quote props consistent, white circle dark theme play overlay
  * v1.15.0-beta.1
  * Fix MediaGallery handling of videos - show thumbnail and overlay
  * Dark theme: Brighten icons on image overlay for visibility
  * Lightbox: Play video on open, play/pause on click of video itself
  * Remove unused code
  * LightBox: tslint exception for play() call which returns promise
  * Make text entered in search box higher-contrast
  * Fix left pane timestamp alightment on platforms with scrollbars
  * ConversationHeader: Ensure that profile has tilde before it
  * Automatically clean up old debug info, remove unneeded field
  * New option: Disable spell check
  * Update the user agent for debug log requests
  * v1.15.0-beta.2
  * Remove User-Agent from form to upload debug log
  * Show error if debug log upload fails
  * Log clear error if we fail to retrieve debug log upload key
  * v1.15.0-beta.3
  * Fix permissions popup; add needed function on window (#2554)
  * Workaround for linux w/tmp mounted as noexec; spellcheck fails (#2548)
  * Streamline code to clean logs based on version number
  * Localization strings update (#2550)
  * Responding to feedback on the updated visuals (#2549)
  * v1.15.0-beta.4
  * Use window.log in browser context, turn on console eslint rule
  * file_input_view: Use makeVideoThumbnail on attach of video
  * Fix embedded contacts and contact detail in dark theme
  * Ensure a theme is selected on initial load
  * Eslintify all of libtextsecure
  * Remove too-verbose logging on contact sync
  * v1.15.0-beta.5
  * Ensure that color mapping matches the spreadsheet
  * Add verified notification and sync the verified status as well
  * ConversationHeader: centered title, ConvoListItem: unbold name
  * Preload all icon images to reduce flickering when they are used
  * Show 'group updated' in left pane when we get info-free update
  * Disappearing messages: show 'disabled' instead of 'set to off'
  * On message delete, ensure that all external files are deleted
  * Move to centralized message/cache data layer
  * Conversation: store lastMessage/lastMessageStatus in memory only
  * ContactListItem: Add spacing above and below (for 'show members')
  * Introduce mandatary migration on startup, to minimum version
  * Update delivered/read message if already in collection
  * Workaround for not ending up at bottom of conversation
  * Fix reference to i18n key: Unlinked -> unlinked
  * Preserve migration state when deleting config due to failed login
  * Add dir='auto' to Message and Quote body for RTL languages
  * Ensure back button appears when safety number screen shows
  * v1.15.0-beta.6
  * Migrate to SQLCipher for messages/cache
  * Update localization strings
  * Yarn lockfile catch-up
  * v1.15.0-beta.7
  * Ensure that all multi-statement sql functionss are serialized
  * Delete before forced bulk insert to fix broken migrations
  * Show 'Off' text when disappearing messages are turned off
  * Statically compile openssl into sqlcipher for linux targets
  * A couple copy changes: Show -> View, New Number -> Safety Number
  * When updating message schema pre-SQLCipher, use legacy save
  * Dark Mode: Fix color/layout of the 'you are disconnected' warning
  * v1.15.0-beta.8
  * Message: video/image attachment borders inline, on top of image
  * Make settings and debug log available during initial migrations
  * Fix styling of the 'Start conversation...' search result item
  * Show and log progress during the SQLCipher migration
  * Ensure that we always enqueue in the same order received
  * Fixes for Chrome app import in this new SQLCipher world
  * Fix duplicate message detection
  * node-sqlcipher update: always build, statically link openssl
  * Build libcrypto.a on Ubuntu 14.04 for maximum compatibility
  * v1.15.0-beta.9
  * Set disappearing check timer reliably - on all message saves
  * Update conversation first on timer change to eliminate flicker
  * v1.15.0-beta.10
  * On error handling cached message, show error then delete
  * Fix problems with transparency on some macOS computers
  * Allow for 'error' status on incoming messages not just outgoing
  * Ensure that a SQL command timeout results in an error
  * Move expiring message time earlier if read sync has earlier time
  * In partially-successful group send, don't start expire timer
  * Ensure that all messages in cache are migrated properly
  * Eliminate orphaned external message files on startup
  * Fix lint issue in _modules.scss
  * v1.15.1-beta.1
  * Provide needed function to migration process
  * v1.15.2-beta.1
  * Ensure that the metadata overlay is on top of all overlays
  * Ensure that safety number change banner is on top of messages
  * Clean up old messages, better handle errors from sending
  * v1.15.3-beta.1
  * Ensure that error in handleDataMessage is treated as error
  * Ensure that scroll down button is always on top of conversation
  * Style scrollbar
  * Increase the timeout for database updates
  * Let server know that we failed to process message on cache error
  * New SQL indices and query tweaks to eliminate table scans
  * Data layer: return null if id not in database, not empty model
  * SettingsView: Fix logging
  * Use base64 strings for incoming message cache instead of binary
  * Additional logging for sql commands in debug mode
  * Remove some extraneous code in main.js
  * v1.15.4-beta.1
  * Add logging to help diagnose protocol handler false positives
  * Disable drag and drop if it's not a file attachment
  * Handle contact: don't exit early if timer is 'invalid'
  * When iOS device has been linked, use iOS color scheme
  * Copy quoted message contents into quote on receipt
  * Conversations now better take advantage of wide screens
  * MessageReceiver.queueAllCached: Give event loop a rest
  * Re-enable orphaned attachment cleanup
  * Both UI timer and database timer will remove expired message
  * Update strings for 'fa' language
  * Properly style countdown icon in iOS light/dark themes
  * Store SQLCipher decryption key in separate file
  * Move all arrayBuffer<->base64 functions to be async
  * Move base64 conversions off of the main thread
  * data/removeMessage: no need for additional model instantiation
  * Routine update to Electron v2.0.8
  * Split configuration into low and high traffic files
  * v1.16.0-beta.1
  * Don't treat sends to a group with unregistered users as an error
  * Update localization strings
  * Introduce new languages to the product
  * MessageView: Only re-render on change of key conversation fields
  * backup.js: Remove references to nonexistent i18n strings
  * Show generic attachment for non-loading/too-large images/videos
  * Pop toast on attempted attach if image attachment is too large
  * iOS theme: higher visibility for embedded contact text
  * v1.16.1-beta.1
  * Support for blocking groups on mobile, via group/blocked syncs
  * Group Blocking: Allow group metadata messages from own devices
  * Only accept 'you left group' messages when group blocked
  * v1.16.1-beta.2
  * Custom linter to check code quality (#2753)
  * Keep conversation.lastMessage in memory
  * Follow symlinks on target file path as well as user/config paths
  * Localization string updates
  * v1.16.2-beta.1
  * Update linter exceptions after update
  * v1.16.2-beta.2
  * Move conversations to SQLCipher
  * Move to new colors, switch incoming/outgoing colors
  * Unread badge is now attached to avatar in left pane
  * Update to new design for avatars: individual/group icons/colors
  * Add user's avatar to the top left of the screen
  * Fix the overflow on message bubbles with long names/attachments
  * Better handle large numbers of messages in cache on startup
  * Delete conversation external files on deletion
  * Update lint exceptions
  * v1.17.0-beta.1
  * Close recorder on switch away, only send after finish clicked
  * Fix timer colors
  * Fix left border of to-be-sent quote
  * Allow GIFs larger than 6MB
  * On startup, if we've just upgraded to a new version, contact sync
  * Warnings for dangerous files
  * Restore iOS-specific theme; colors on left in android theme
  * Lint fixes
  * v1.17.0-beta.2
  * Longer timeout for orphaned file cleanup
  * Tests and increase consistency for isFileDangerous calls
  * Keep object stores after conversations migrate to SQLCipher
  * Lint fixes
  * Localization updates
  * v1.17.0-beta.3
  * Ensure that file is not attached if we've filtered it
  * inboxView: Ensure Conversation exists for our own number
  * Add ca language
  * Fix lint errors
  * Conversations have blue avatar backgrounds if no image provided
  * Android theme: Incoming quotes take color from containing message
  * Ensure that blue group avatars are preserved in dark theme
  * v1.17.0-beta.4
  * Calculate warning properly for all methods of attachment download
  * Properly handle avatar changes in group update messages
  * v1.17.1-beta.1
  * Import: Properly handle import with all empty non-convo stores
  * Remove messages/conversations/unprocessed IndexedDB object stores
  * Request contact sync only on the first connect after upgrade
  * Update lint exceptions
  * v1.17.2-beta.1
  * Sealed Sender support
  * v1.18.0-beta.3
  * Import: Be resilient to deletions from importObject
  * Move all remaining stores to SQLCipher
  * Only show database log entries if task takes longer than 10ms
  * Remove unnecessary scripts
  * v1.18.0-beta.4
  * On fetch of profileAvatar, set it to convo's profileAvatar field
  * Be resilient to malformed ephemeral.json
  * Refine sealed sender logic
  * Update localization strings
  * Don't display 'read' icon if read-recipts-setting is disabled
  * A couple fixes for the data layer, legacy message upgrade/migrate
  * Add current message counter to the log to help with debugging
  * Eliminate some conversation fields which are no longer used
  * Add logging to help in debugging sealedSender state
  * Remove IndexedDB files after removing IndexedDB database
  * v1.18.0-beta.5
  * Refine Sealed Sender behaviors
  * Make timestamp test a bit more forgiving
  * eslintify all test files
  * Update localization strings
  * Restor full function syntax to custom Mocha reporter
  * v1.18.0-beta.6
  * A few small bugfixes
  * Ensure proper order of state changes during account create
  * Gracefully shut down database operations before app exit
  * Improve our deletion of IndexedDB post-SQLCipher migration
  * Lint fixes
  * v1.18.0-beta.7
  * Bump sender certificate timer after registration for re-link
  * Fix reference to nonexistent variable
  * Change sessions.id to a TEXT field to prevent type coercion
  * Bulletproof getNumberInfo against missing ourNumber
  * Support receiving multiple images in one messages
  * Typing Indicators
  * package.json: Lock all dependencies to specific versions
  * yarn.lock: Update to latest yarn, add integrity fields
  * Update to Electron3; reinstall native deps for nan which builds
  * Upgrade to node 10.13.0; update chokidar, its dep upath fails
  * Update websocket dep; 1.0.25 was causing errors w/Electron3
  * Update Travis/AppVeyor to Node 10.13.0
  * Show dialog if application fails to start up properly
  * Store arrayBuffers in database for remote identity keys
  * Dismiss typing indicator when ConversationView is not loaded
  * Lint fixes
  * Update lodash to latest release
  * Update icon-gen for Electron v3 compatibility
  * Update proxy-agent to latest
  * Lint fixes
  * Enable CI and packaged builds with Electron v3 (#2939)
  * v1.19.0-beta.2
  * Ensure that multi-video lightbox scrolling changes video
  * Request configuration sync on startup of new version
  * Improve sealed sender icon display logic
  * v1.19.0-beta.3
  * Throttle typing events, fix profile logging, fix group typing
  * main process: Don't send IPC to event.sender if it is destroyed
  * Remove nsp; its registry has now been taken offline
  * Remove unused lint exceptions
  * v1.19.0-beta.4
  * Lint fixes after recent PRs
  * Encrypt device name on account create, on first launch if needed
  * Updates to backup infrastructure
  * New staged attachments UI, multiple image attachments per message
  * Reintroduce single attachment limit
  * Update delivered_to for outgoing with earlier delivery receipts
  * Ensure that caption is shown even for single-image message
  * Preserve links with embedded emoji
  * Fix some of the notification avatar colors
  * Ensure that too-wide messages don't overflow in small breakpoint
  * Include caption, width and height for outgoing attachments
  * Support for web socket communication with no signaling key
  * FileInputView: Event on attachment change to hide/show microphone
  * Caption editor: add keyboard interaction, disable for single img
  * Show just first image if we receive mixed multi-attachment msg
  * Use thumbnails for smaller cells in image grids
  * Some style and interaction fine-tuning
  * Upgrade Electron to 3.0.14
  * Data infrastructure work
  * Increase contrast of typing indicator in iOS theme
  * Preserve scroll position when adding/removing staged quote
  * Enable sending multiple images in one message
  * Improve caption editor usability, new 'add attachment' affordance
  * Preserve scroll position on toggle emoji panel, add attachment
  * Lint fixes
  * v1.20.0-beta.3
  * Multiple images can now be selected in file chooser and drag/drop
  * Print out error properly if we can't initialize logging
  * Show contact name on 'send anyway' dialog instead of $name$
  * Don't linkify quoted message contents
  * Ensure that blocked messages are dropped even after sealed sender
  * Link Previews
  * Large update to localization strings
  * Lint fixes
  * Ensure that dialog pops up when permissions denied for voice note
  * Update electron-builder and electron-updater
  * Fix rendering bug with verified state in updateVerified()
  * Use the proper method for pulling attachments off disk for retry
  * Fail over to all numbers in retry if errors don't have numbers
  * Introduce new language: NB
  * Lint fixes
  * v1.21.0-beta.3
  * A number of small fixes for Link Previews
  * Fix width of audio player when window is very narrow
  * Localization updates
  * Dark Theme: Preserve blue background on app loading screen
  * v1.21.0-beta.4
  * Reenable send when link preview is missing an image
  * Protect against unhandled promises when calling checkForUpdates
  * Ensure that Curve.async points to worker after startWorker call
  * mainWindow.close - be ready for null mainWindow
  * Fix: Navigation to message via quote click didn't always work
  * v1.21.1-beta.1
  * Ensure we don't add empty attachments to quote
  * Show members: Pull conversation from group table
  * MessageReceiver: Log errors with proper message id
  * Fine-tune linkification technique for link previews
  * v1.21.2-beta.1
  * Note to Self
  * Download attachments in separate queue from message processing
  * Add cache support to Signal Protocol Store
  * Remove JSON column and Backbone Model for unprocessed
  * MessageReceiver: Don't wait for app logic to start next decrypt
  * Remove groups table, conversation is single source of truth
  * Revert electron-builder upgrade due to bugs
  * Lint fixes
  * Fix asm.js errors in emscripten-generated functions
  * Ensure that we capture sender even if thrown error is falsey
  * MessageReceiver: Don't wait for cache update to move forward
  * Ensure outgoing attachment size always matches resized image
  * Lint fixes
  * Localization updates
  * v1.22.0-beta.1
  * Improve spinner colors on top of medium-brightness backgrounds
  * Throw error if incoming attachment has mismatched attachment size
  * Note to Self timer fixes for bugs reported by beta users
  * Remove unnecessary methods on window
  * Clean up shutdown handling - stop processing incoming messages
  * Disable import/export outside of test mode; not currently used
  * View All Media: Listen for updates to conversation, re-render
  * Debug log optimizations and improvements
  * On database error: show popup, allow user to delete and relaunch
  * Prevent crash when tray icon no longer available (due to apt)
  * Queue quote reference handling per convo in handleDataMessage
  * Ensure that we show error'd recipients in message details screen
  * web_api: Fix caching of https.agent objects between requests
  * Lint fixes
  * v1.22.0-beta.2
  * If logs are malformed on startup, delete them all and start over
  * Improve handling for URLs composed of mixed character sets
  * Ensure image lightbox is aware of its underlying message changes
  * Update to Electron 4.x
  * Add job details to attachment download log warning
  * Fix ASM warnings in MP3 library
  * Only put nbsp before last token in msg body if token is <12 chars
  * Note to Self: set expirationStartTimestamp before sending sync
  * Bring lastMessage and lastMessageStatus back to conversation
  * Present 'database error' dialog in more situations
  * Don't continue to log if socket is returning unknown status
  * libsignal-protocol: Protect against null thrown Errors
  * Remove reference to nonexistent view
  * Move expiring message cleanup after ConversationController.load()
  * Lint fixes
  * Don't return error for groups with no members but yourself
  * On attachment save include date, include album index
  * Move left pane entirely to React
  * Disable full-text search until we can go to arbitrary messages
  * Render only visible conversations in left pane
  * Archive Conversation
  * Update strings for sixteen languages
  * Message Detail: Ensure that quotes are not clickable
  * v1.23.0-beta.1
  * Update electron-builder/updater to fix build error on MacOS
  * Update electron-updater to fix its handling of node_module pkging
  * Note to Self: On just expire timer update, set TIMER_UPDATE flag
  * Fix typo in 'move to inbox' string
  * Single member groups: Make all group-related sends a noop
  * v1.23.0-beta.2
  * Send sync sent messages properly in 1-member group
  * Remove unnecessary 'tag' from Notification construction
  * Send long text as an attachment instead of inline
  * Update to Electron 4.0.8
  * Fix vertical sizing of left pane when switching inbox<->archive
  * v1.23.0-beta.3
  * Escape XML delimiters for notifications on linux
  * Update spellchecker to reenable spellcheck on linux w/electron v4
  * v1.23.0-beta.4
  * Update react-contextmenu to avoid event handler issues un unload
  * Skip URLs that include the @ symbol when generating links
  * Update sqlcipher dependency to get win vc++ redistributable
  * Upgrade electron-builder and electron-updater
  * Update Electron to 4.1.1
  * v1.23.1-beta.1
  * Ensure that we have all conversations in redux store
  * Remove unused aptly target
  * When closing database, be resilient to null db
  * Update to Electron v4.1.2 to fix permissions issue
  * Lint fixes
  * v1.23.2-beta.1
  * Retry send: Always remove all errors and recalculate recipients
  * Enable long message send as an attachment
  * New MessageController as the single place for in-memory messages
  * Introduce CTRL-E shortcut for archiving a conversation
  * Conversation.updateLastMessage: Properly clear timestamp/status
  * yarn clean-transpile: ensure that it always gets everything
  * Download and install updates without the help of electron-updater
  * Fix issue where 'delete messages' was not clickable second time
  * Downgrade to electron-builder@20.39.0 due to windows install bug
  * libsignal-protocol: Be resilient to missing open session
  * Lint fixes for recent PRs
  * A few updates to our Contributing.md and Pull Request template
  * Update strings for 45 languages
  * v1.24.0-beta.1
  * Lint fixes
  * Add logging to track synchronization in message processing
  * Windows: Do our file filtration with case-insensitive checks
  * v1.24.0-beta.2
  * Windows: Return real path, not lowercase path
  * Restore previous build-release command, failed on macOS
  * v1.24.0-beta.3
  * Update libphonenumber dependency
  * updateLastMessage: If we don't update last text, clear it
  * Add a new env variable to the hardening list
  * Don't send if message body is too long
  * v1.24.0-beta.4
  * Disable keyboard shortcut for conversation archive
  * v1.24.1-beta.1
  * Refactor: Prepare Message function props for conversation scope
  * Refactor messages model; New timeline react components
  * Move redux setup to central location - background.js
  * Fix for incorrect checkmarks when syncs were received offline
  * Conversation: Update last message after deleting all messages
  * Padded attachments, attachments v2
  * Don't add duplicate errors to the database
  * Handle and send isRecipientUpdate sync messages
  * Improved handling of group changes
  * Exclude extra DLLs from final build, put key DLLs in root dir
  * Set timestamps in dataMessage, prepare for validation
  * Refactor 'waiting' flags into one location, fix timestamp check
  * Update jquery dependency
  * v1.25.0-beta.1
  * Update NetworkStatusView on message error instead of plain render
  * Add some logging for debug log upload
  * v1.25.0-beta.3
  * Include proper emoji sprite sheet for picker in package
  * v1.25.0-beta.4
  * Only use attemptedStatus on re-download if it is 'installed'
  * Clear sticker introduction tooltip on button click
  * Set proper isRecipientUpdate flag on outgoing sync messages
  * Avoid crash in processing incoming message if timestamp is null
  * Hide blessed packs section if we don't have any blessed packs
  * Remove borders from link preview small thumbnails
  * Close sticker picker on Escape keyup
  * Exclude invalid recent emoji, simplify items redux structure
  * Re-add light border around scrollbar thumb in light theme
  * Fix translation from :skin-tone-X: where X is greater than 1
  * Move emojis.shortName from STRING to TEXT to avoid coercion
  * Focus message box on emoji panel close, don't dismiss on shift
  * v1.25.0-beta.5
  * v1.25.0-beta.6
  * v1.25.1-beta.1
  * Drop profile on missing profile key, drop avatar on download 403
  * For 'me,' prefer signal profile avatar over address book info
  * Support new 'requiredProtocolVersion' in DataMessage
  * To prevent crashes, catch thrown error from tray.setIcon
  * ConversationView - extract all header setup into new method
  * Force unique filename when saving files from multi-attachment msg
  * Ensure that all event handling in background.js is queued
  * Fix incorrect contentType/extension for outgoing resized image attachments
  * Update js-yaml dependency
  * Lint fixes after js-yaml update
  * Update string for unspported message after upgrade
  * Lint fixes after recent PR merges
  * v1.25.2-beta.1
  * Revert "Add desktopName to package.json to fix linux badge" (#3409)
  * v1.25.2-beta.2
  * Only preload emoji after the window is fully loaded
  * v1.25.2-beta.3
  * Ensure that long message attachments don't show in media gallery
  * Clean up transaction handling in sql.js
  * Capture id after first save for incoming error messages
  * Properly download new group avatars
  * Ensure only one active attachment download setTimeout
  * v1.25.2-beta.4
  * Migrate from IndexedDB before doing new version checks
  * Lint fixes
  * v1.25.3-beta.1
  * Prevent multiple parallel signed prekey rotations
  * Receive support for View Once photos
  * Improve queuing strategies in the app
  * Ensure suggested attachment filenames are consistent
  * Update lodash
  * Change group_update field of message after avatar download queued
  * Update yarn version in CI, resolve dependency conflict
  * v1.26.0-beta.3
  * Two small changes
  * Update node gyp to remove fstream in production
  * Re-register support for sealed sender when a device is re-linked
  * Lint fixes
  * Use MessageController whenever we create a new Message
  * Update improvements
  * Changes to View Once
  * Allow for zero-length attachment pointers
  * Fix clicks on sticker picker buttons to page left/right
  * v1.26.0-beta.4
  * v1.26.1-beta.1
  * v1.26.2-beta.1
  * Time out faster for IndexedDB existence checks
  * Virtualize Messages List - only render what's visible
  * Persist drafts
  * Virtualize search results - only render what's visible
  * Full-text search within conversation
  * Make identity key screen show up immediately
  * Some fixes for windowed render
  * Don't render left pane until we're done processing initial queue
  * Two fixes for messages causing errors
  * Only log to console if we're on a TTY stdout interface
  * Update Electron to 6.0.1, SQLCipher to 4.2.0
  * Use curve functions from native module
  * Migrate from schema_version to user_version
  * Remove all calls to flashFrame()
  * Address alpha feedback
  * Fixes for CI
  * v1.27.1-beta.5
  * Address beta feedback
  * Recalculate message height when pending sticker is loaded
  * v1.27.1-beta.6
  * Optimize scrolling: resize only changed row index and higher
  * v1.27.1-beta.7
  * Timeline: Only call setIsNearBottom if value has changed
  * SQL channel: Only serialize data access functions which need it
  * Only update drafts in left pane when conversation is closed
  * Ensure out-of-band attachment updates make new top-level objects
  * Timeline: Handle height change due to pending voice note
  * v1.27.1-beta.8
  * Timeline: Resize message if any attachment is no longer pending
  * Don't search conversations if searching within conversation
  * v1.27.1-beta.9
  * Fix access to safety number view from group members screen
  * Linux: Force --no-sandbox into .desktop file
  * A number of performance tweaks
  * Windows: Reintroduce flash frame when we trigger a notification
  * v1.27.2-beta.1
  * Update Electron to 6.0.9
  * Update localization strings
  * Prevent >64k text in composition box; truncate too-large drafts
  * Timeline: Scroll to bottom even if last row is taller than screen
  * Only re-save and re-sort conversation if draft has changed
  * Ensure that conversation window is always full-height
  * Timeline: Increase 'at bottom' threshold so we stick to bottom
  * Timeline: Add role='row' to each element item rendered
  * SearchResults: Add row and header roles
  * Add aria-live to network status area, left pane, and timeline
  * Force maximized state on startup if window previously maximized
  * Prevent multiple instances of same background attachment job
  * Attachment-add flow: capture renamed filename, file type checks
  * MessageReceiver: Add note about out-of-band updateCache calls
  * Message: Ensure that change event always has getReduxData() data
  * v1.27.3-beta.1
  * Lightbox: Ensure that click of video pauses it
  * When SQLITE_CORRUPT error happens, immediately restart the app
  * New Idle timer; messages not marked read if user is idle
  * Startup: integrity_check in addition to cipher_integrity_check
  * sql_channel: Ensure we save reference to MultipleQueue to start
  * Video Thumbnails: Seek to 1s mark in video before capture
  * v1.27.3-beta.2
  * Add entitlements and build configuration for MacOS catalina
  * Improve message download performance
  * Increase maximum message counter from 2000 to 5000
  * On startup after 30+ days, delete local encryption info
  * Fix scrolling; sometimes target is mid-screen, not at the top
  * Support for receiving View Once Video
  * Kick off checks for updates in more situations
  * MessageReceiver: Remove contact/group sync from cache immediately
  * Update colors, icons, and fonts
  * When showing draft in left pane, don't show last message status
  * Two fixes for linux
  * prepare_beta_build: Update to new signal.desktop filename
  * v1.28.0-beta.1
  * Eliminate unnecessary param in getTapToViewMessagesNeedingErase
  * v1.28.0-beta.2
  * MessageReceiver: removeFromCache no longer returns a promise
  * --disable-flash-frame is no longer related to --start-in-tray
  * Fix voice note recorder layout
  * Startup message counter: increment on message processing complete
  * Ensure we track message height change when long message loads
  * ConversationStack: Unset lastConversation on model unload
  * A few fixes after the recent design refresh
  * New AvatarPopup component
  * Decrease font sizes; increase author and quote body text sizes
  * v1.28.0-beta.3
  * MessageReceiver: Ensure that we always clearTimeout before set
  * SettingsView: Remove unused localization strings
  * Batcher: Enable faster shutdown by flushing immediately
  * Increase size of emoji
  * SessionRecord: Once again serialize/deserialize within libsignal
  * v1.28.0-beta.4
  * ConversationView.unload: Remove CompositionArea component
  * Ensure that loading screen progress includes all message types
  * v1.28.0-beta.5
  * Fix View Once Video, fix Permissions Popup
  * Update localization strings
  * Additional logging in unusual error cases
  * Update timer and group/profile icons
  * Track last use via heartbeat instead of by last startup
  * v1.28.0-beta.6
  * Ensure heartbeat interval starts even if we start up expired
  * Change domain for sharing sticker packs
  * Keyboard shortcuts and accessibility
  * v1.29.0-beta.1
  * Shortcuts: Check for both capital and lowercase characters
  * Handle Ctrl+/ in the application instead of via Electron
  * Don't include maximize in BrowserWindow options
  * Move to web-hinted version of inter files
  * Message: Only focus if focus is not inside container already
  * Prevent conversation up/down when showing search results
  * Hover/focus styles for embedded contacts, default action
  * CompositionInput: Prevent ctrl+shift+m from adding a newline
  * Disable emoji and sticker pickers if conversation has open panels
  * Zoom In: Remove custom accelerator for windows/linux
  * Move to CTRL+= for windows, remove the need for the shift
  * Voice Note -> Voice Message
  * Open conversation menu: Ctrl-Shift-I -> Ctrl-Shift-L
  * v1.29.0-beta.2
  * Visual bug fixes for v1.29
  * Update to Electron 6.1.4
  * Keyboard/mouse mode and keyboard support bugfixes
  * v1.29.0-beta.3
  * Update language strings
  * Bugfixes for v1.29
  * Add logging to help track down 401s during registration
  * v1.29.0-beta.4
  * MainHeader: Ensure unmount doesn't double-remove on popperRoot
  * v1.29.0-beta.5
  * Set focus properly in confirmation dialogs when in mouse mode
  * Check for duplicate and send delivery receipts in per-convo queue
  * Don't do any additional processing of unsupported messages
  * Flow installedPack property down from CompositionArea
  * os-locale: Include 'preferLocal: false' option when using execa
  * macOS shortcuts: Only listen for command key, not control key
  * Lint fix
  * v1.29.1-beta.1
  * Introduce two built-in sticker packs: Zozo and Bandit
  * v1.30.0-beta.1
  * Fix blank sticker creator window on windows/linux
  * Shortcuts screen: Show sticker picker cmd when stickers installed
  * Auto-dismiss 'pack installed' tooltip after 10 seconds (not 1m)
  * Simplify linkification filter - check for ASCII/non-ASCII only
  * Lint fix
  * v1.30.0-beta.2
  * Stickers: Disable 'installed pack' tooltip
  * v1.30.0-beta.3
  * Lint fixes after recent merges
  * Make outgoing View Once timestamp/timer visible in all themes
  * handleDataMessage: Set convo preview after message processing
  * View Once: In dark mode, expired bubbles match background color
  * Only show pack installed tooltip for non-blessed, local installs
  * Conversation: Wait for database fetch to add incoming messages
  * Lighten in-progress spinner in light/ios theme
  * Message bubble: Larger stickers; handle non-square aspect ratios
  * Save attachments with macOS quarantine attribute
  * OutgoingMessage: On OutgoingKeyError, archive all sessions
  * Use 1x icon in View-once bubbles, explanatory expired toasts
  * Handle both given and family name in decrypted profile name
  * handleDataMessage: Apply out-of-order view sync directly
  * Lint fix
  * v1.30.0-beta.4
  * Reintroduce file chooser dialog for every attachment save
  * idle timer: don't check window.isFocused, force inactive on blur
  * ducks/conversations: Ensure metrics agree with in-memory messages
  * v1.30.0-beta.5
  * Send: Gracefully degrade if we don't have sender certificate
  * Ensure sender cert refresh timer resets only when necessary
  * Add version number to user-agent header on outgoing requests
  * v1.30.0-beta.6
  * No propagate, fix 'attachment save' cancel
  * v1.30.0-beta.7
  * Update strings
  * v1.31.0-beta.1
  * Ensure that message.previousCounter can never go below zero
  * Ensure that oldest/newest are correct given duplicate timestamps
  * Handle duplicate receivedAt timestamps for MESSAGE_RESET event
  * ContactName: Fix case in import
  * v1.31.0-beta.2
  * Restore contact/conversation differentiation in search results
  * Fix lint
  * A set of fixes and upgrades
  * v1.32.0-beta.1
  * Move logic into handleDataMessage for proper queuing
  * Update SQLCipher to 4.3.0
  * v1.32.0-beta.2
  * Changes necessary to make Windows build work
  * Lint fixes
  * AppVeyor: Remove additional certificate field before build
  * v1.32.0-beta.3
  * Restore cursor styling to the default; i-bars for text, etc.
  * Fix windows fast-glob usage in lint-deps test task
  * v1.32.0-beta.4
  * Enable reply/reactions on messages with no errors array
  * Sticker modal: Handle wider text on install/uninstall button
  * Update electron, electron-builder and add more preload logging
  * v1.32.0-beta.5
  * Update electron to 8.0.3, electron-builder to 22.3.6
  * Don't attempt to maximize or fullscreen if using tray icon
  * Remove legacy import flow
  * v1.32.0-beta.6
  * v1.32.1-beta.1
  * app-builder-lib patch: update to current version
  * Update to Electron 8.1.1
  * Sticker Modal: Ensure that very long author is truncated
  * Update strings for ar, bg, bn, ca, cs, da, de, el, eo, es, et...
  * Move CI to GitHub Actions
  * Eliminate remaining Electron 8 deprecations
  * GitHub Actions: Split linting out, make other jobs dependent
  * Retry websocket connect if error returned is 502
  * Reaction Send: Include current conversation timer
  * v1.33.0-beta.3
  * Eliminate clipped error icon for wide messages with errors
  * v1.33.0-beta.4
  * Update to Electron 8.2.1
  * Don't run CI on macos unless we're in development/master branch
  * v1.33.0-beta.5
  * Explicitly stop process when notarization returns error
  * Include sender in group update notifications
  * Move web_api.js and js/modules/crypto.js to TypeScript
  * Refactor: Move data-access code to Typescript w/ shared interface
  * Moves libtextsecure to Typescript
  * MessageReceiver: Drop messages with GroupContextV2
  * Updates to Electron 8.2.2
  * Adds support for versioned profiles
  * Reset Session: Include timestamp in DataMessage proto
  * v1.34.0-beta.1
  * Ensure old attachments with .id field only are handled
  * New keyboard shortcuts: Ctrl+1..9, Ctrl+Tab/Ctrl+Shift+Tab
  * Ensure that search box is resilient to invalid country codes
  * Update dependencies
  * Settings pane -> Preferences pane
  * Conversation.onOpened: Wait for outstanding message processing
  * Fix sticker creator after CDN and typescript changes
  * Remove all IndexedDB migration code
  * Update strings
  * Update Electron to 8.2.5
  * Introduce snyk, update dependencies
  * MessageReceiver: Drop sync messages with GroupContextV2
  * Link flow: Show 'you must upgrade' on 409 server response
  * v1.34.0-beta.2
  * Run scheduled snyk test jobs once per day
  * v1.34.0-beta.3
  * Update zkgroup dependency to 0.7.1
  * handleDataMessage: Properly create new convo if given only membersE164
  * resetSession: Take both UUID and e164, use each correctly
  * Drop 'group leave' messages if sender is not currently in group
  * Improve safety number logic in group conversations
  * View All Media -> View Recent Media
  * v1.34.2-beta.1
  * GroupNotification: Use singular string when we have just one contact
  * rotateSignedPreKey: Protect against too-frequent rotation
  * Message.idForLogging: Ensure that it works for outgoing
  * getPropsForSearchResult: Harden to missing conversation
  * Enable support for versioned profiles
  * Github -> GitHub
  * v1.34.3-beta.1
  * Lint fixes
  * deleteStickerPackReference: Return early on empty array as well 
  * onContactReceived: Tighten up 'self' check
  * onGroupReceived: Only process a group if it has a 16-byte id
  * Handle messages with the same received_at
  * Update to Electron 8.3.4
  * Improve reliability of out-of-order reactions and DOE
  * Conversation.getTitle(): return 'unknown contact' if no data
  * searchConversations: Search on e164 field, not id
  * Conversation.idForLogging: Show groupId or uuid/e164 instead of id
  * v1.34.4-beta.1
  * Update strings. Two new supported languages: af and eu
  * Don't start rotation mechanisms until queue is empty
  * Increase maximum frame size for incoming websocket messages
  * Ensure that 'Join the Beta' menu item shows in production
  * Readme update; fix package.json scripts for Windows
  * Only use membersE164 field in GroupV1 messages
  * v1.34.5-beta.1
  * Restore ability to get to safety number screen from member list
  * Merge contacts when we discover split or duplicated contacts
  * First-class profile name rendering
  * Force social graph to pull down updates after beta.11 install
  * combineContacts: Don't clear conversations to reset lookups
  * AvatarPopup: Show profile name if we have it
  * Show notifications when a user's profile name changes
  * Update message.isEmpty() and .isNormalBubble() with recent additions
  * Fixes several bugs
  * Sync messages: Additional debugging info, consistent ids
  * Message Requests improvements 
  * WebAPI.getProfileURL: Use profileKeyVersion by itself if we have it
  * Safely generate cached conversation props on startup
  * Storage Service: Don't create groups from incoming v1 records 
  * Calling: Show call event summaries in left pane 
  * Fix contact name rendering on call screen
  * Fix conversation last activity calculation
  * Update strings
  * v1.35.1-beta.1
  * Fix merge conflict in Mime.ts
  * Left pane preview/timestamp: Further refine logic 
  * getOlderMessagesByConversation: Allow falsey messageId for resiliency
  * Storybook: A little bit of organization 
  * Ensure conversation details flow down to Message Requests UI
  * Sort exceptions.json
  * Fix left pane preview text for timer changes
  * ProfileChangeNotification: Ensure emoji are rendered properly
  * Support for new GroupV2 groups
  * Fix typing indicator in groups: now goes away when we get the message
  * v1.36.1-beta.1
  * Introduce new remote flag for storage service write behavior
  * A couple of small bugfixes
  * GroupsV2: Use both sent_at and received_at when processing changes
  * GroupsV2: Register GV2 capabilities properly
  * v1.36.1-beta.2
  * Update strings for de, it, nl, sl, sq, sv, uk, zh_CN, and zh_TW
  * Fix linter: global state left on the regex causes problems
  * Increase requiredProtocolVersion if quote includes @mention
  * Outgoing: Ensure that sends still succeed without CDS
  * Ensure that ConversationController.load is resilient to errors
  * Allow for very tall portrait images in lightbox
  * Add p-queue timeouts; fix search crash; improve promise rejection logging
  * Update to the new gv2 capability string
  * Improved support for images with extreme ratios
  * MessageReceiver: Use UUID if we have it
  * Update to the new gv2 capability string
  * Two small bugfixes
  * Conversation.addSingleMessage: Use queue to maintain incoming order
  * GroupV2: Show better strings for 'added but previously invited' cases
  * handleDataMessage: Don't drop messages for empty GroupV1 groups
  * GroupsV2: Better group invite behavior
  * SafetyNumberViewer: Disable for contacts with missing data
  * Disable obsolete feature flags
  * Minimize downstream effects of storage sync
  * storage: Don't throw if we store undefined
  * Resilience to quick reconnects: always reprocess from cache first
  * Proper styling for View Once messages which are deleted for everyone
  * Errors: Associate by conversationId, properly persist to database
  * setProfileKey: Drop profileAvatar when we get new profileKey
  * Small fix to ensure spinner and error dialog show properly
  * Remove 'call you' from message requests copy
  * Reactions: Don't apply to messages with errors
  * GroupsV2: Use full group state if change actions incompatible
  * Update strings
  * Modern profile sharing in 1:1 and GroupV1 groups
  * Capture original error stack when sending messages
  * Conversation reducer: sort by received_at then sent_at like Backbone
  * Properly prepare, await and hand response for sync message send
  * Show 'accept invite UI' for re-invite, calm progress spinner
  * Reliability fixes for conversation formatting and message send
  * Always share profile on send; no profile sharing UI if no messages
  * A few small bugfixes
  * Fix out-of-order applications of reaction and delete-for-everyone
  * Cleanup: Reactions, Delete for Everyone
  * v1.37.3-beta.1
  * Lightbox.tsx: Fix formatting
  * Fix left pane draft display and GV2 typing indicators
  * ConversationListItem: Prevent vertical scrollbar in name area
  * Introduced encoding dependency, needed by node-fetch
  * CompositionInput: Submit trimmed text instead of not submitting
  * Ensure authorUuid is set in outgoing quotes
  * GroupV2: Add 'you were invited' to timeline after link
  * Conversation.setMarkedUnread: Only captureChange if value changed
  * Update strings
  * v1.38.1-beta.1
  * message.setToExpire: Log start timestamp, log before save
  * background/connect: Prevent concurrent calls to connect
  * Reactions: Don't send null 'remove' field
  * conversation.applyMessageRequestResponse: Always save at the end
  * Message Requests: Show blurhash for pending stickers
  * v1.38.1-beta.2
  * Prevent send and show toast for invalid conversations
  * Update strings
  * v1.38.1-beta.3
  * Update TypeScript, Prettier and typescript-eslint for new TypeScript 3.8 syntax
  * Support for GV1 -> GV2 migration
  * Migration: Ensure that groupId lookup is kept up to date
  * New feature flag with ability to migrate GV1 groups
  * Migration: Use pendingMember roles, better 'you were invited'
  * MessageReceiver: Wait for derived GV1 data
  * GroupV1MigrationDialog: sort member list before display
  * MessageReceiver: still queue message, even if respond(200) fails
  * Buttons: refactor mixins, new light style
  * GroupV1Migration: Pass areWeInvited value, don't set to always true
  * Emoji completion: reverse results to show higher results at the top
  *  Timeline: repair oldest/newest metrics if we fetch nothing
  * New Group migration dialog: Migrate -> Upgrade
  * Don't promote archived sessions, more logging on error
  * Clean up UUID-handling to prepare for future
  * Quotes: Use authorId when navigating to original message
  * Emoji: Search on short name first, eliminate short_names, proper sort
  * Adjust timeouts for better performance
  * MessageReceiver: Envelope id is always locally generated
  * Be resilient to missing data in MessageReceiver constructor
  * Show progress dialog during delete
  * v1.39.5-beta.1
  * Fix a few issues with linking a new Desktop instance
  * Update strings
  * Also use sent_at whenever we query database with received_at
  * v1.39.6-beta.1
  * Don't change left pane preview or order when someone leaves group
  * Group V2 invite links: in-conversation messages
  * Finish in-redux conversation lookups, getPropsForSearchResult moved
  * Show 'you were removed from group' if dropped during migration
  * makeLookup: Allow for key of zero
  * Support for joining New Groups via invite links
  * Reduce unnecessary or overly verbose logging
  * Cache: Store sourceUuid for message rehydration
  * Manually manage full-text search table
  * Fix merge conflict with #4619
  * Remove unused lint-deps exception
  * v1.40.0-beta.3
  * Specify public key type in updatesPublicKey
  * v1.40.0-beta.4
  * Fix string for unattributed admin approval enable
  * getMembersCount: Return undefined when conversation has no members
  * Create group link previews; don't open Signal links in browser first; allow ephemeral download of previously-error'd pack
  * Handle group data from log endpoint with no groupChange
  * Honor messageKeysLimit, remove batching for session saves
  * Update strings
  * v1.40.0-beta.5
  * Update to Electron v11.2.3
  * Backwards compatibility updates for libsignal-client
  * Fix composer reference in Ctrl-T shortcut handling
  * v1.40.0-beta.6
  * v1.40.0-beta.7
  * Update google-libphonenumber to v3.2.17
  * Update strings
  * Update libsignal-client for improved win32 build
  * v1.40.0-beta.8
  * Debug Logs: Log response body when we fail to upload
  * Update strings
  * v1.40.1-beta.1
  * Automatic session reset
  * GroupV2: Log from/to revision when applying full group state
  * Add 'chat session refreshed' to timeline for every error
  * Move getPlaceholder to component that needs it
  * A few bug fixes
  * background.ts/conversation_view.ts modules, Whisper.View/ToastView in TS
  * Move SignalProtocolStore to TypeScript
  * Move SecretSessionCipher to TypeScript
  * Remove getIsConversationEmptySelector in favor of messageCount
  * Support for translating Desktop sessions to libsignal-client sessions
  * Fix 'you created group' message pinned to bottom
  * Chat Session Refreshed: Include schemaVersion to prevent later upgrade
  * Fix out-of-order message changes; remove isGroupV2, and double-update
  * MessageReceiver: Be resilient to failed updateCache call
  * MessageReceiver: Restore queuing for in-order decryption
  * groups/updateGroup: Fix use of incrementMessageCounter
  * Update Sticker Creator references to LibSignalStore, logging in renderer
  * Ensure we don't supply undefined to SyncMessage.Read protobuf
  * saveMessages: Delete from messages_fts table even in insert case
  * Send to just-removed folks in groupv2 removal operations
  * Re-render left pane and timeline items when group members change
  * Fix CDS fetches; use proper hashing mechanism
  * GroupV2: Always add profileKeys to newProfileKeys return value
  * Required profile sharing: Only activate for 1:1 and gv1 groups
  * Don't always show an error on manual contact sync
  * Don't mark old messages as read on timer update
  * yarn.lock fixup
  * Quotes: Check message's conversationId
  * Group settings: on block and leave, don't delete
  * v5.1.0-beta.5
  * decrypt/encrypt with libsignal-client, remove libsignal-protocol-javascript
  * encryptCdsDiscoveryRequest: Reset offset after writing to array
  * Add test for calculateAgreement
  * Message Requests: Always open to top of conversation
  * Fix a number visual bugs with message forwarding
  * Fine-tuning of conversation lists (compose, forward, left pane)
  * Left pane: Ensure pinned conversations show only once
  * OutgoingMessage: Use enqueueSessionJob for all encrypts
  * Clean up inviteLink handling, harden compose input
  * Revert "Update to RingRTC v2.9.6"
  * A few small bug fixes
  * Update proxy-agent to v4.0.1
  * Don't reset session if sealed sender wrapper is invalid
  * Receive support for Sender Key
  * getSendOptions: Disable sealed sender whenever sending to own account
  * Upgrade a number of sub-dependencies
  * On 401 response from Signal server, reconnect websocket
  * View Once: Allow for missing sender; only require senderUuid
  * Update strings for fa, fr, hr, and is
  * Ensure that context is always provided for error logs
  * Update strings for ca, de, et, km, sl, sv, and th
  * v5.3.0-beta.1
  * Enable click on draft quotes, fetch groups from contact modal
  * Enable click on draft quotes, fetch groups from contact modal
  * Partially revert "Clean up inviteLink handling, harden compose input"
  * Revert "Fix typo in method name"
  * onChange: Emit changed event even if changed set is empty
  * Fixes for Sender Key: Receive
  * Force load of newer/older messages if, on load, all messages visible
  * Send support for Sender Key
  * A few small bugfixes
  * Properly unpad incoming sender key messages
  * Support for message retry requests
  * Sender Key: Disable capability and bug fixes
  * Group Description: Edit/Receive
  * Timeline: mark messages read even with no known oldest message
  * Reactions/DFE: Ensure post-save updates are persisted
  * Use correct timestamps for failed call events
  * Forward: Don't re-use timestamp or attachment files
  * Render proper contact in Delivery Issue notifications
  * Group Description: Render newlines, view button in change notification
  * Don't delete all data if e164 changes (focus on UUID if we have it)
  * Conversation: Prevent getProps errors on initial link
  * Sender Key: Prepare for production
  * Update strings
  * v5.5.0-beta.1
  * Ensure that typing indicators are always sent with online = true
  * Remove messageCollection from Conversation model
  * Remove unused import/export code
  * Move message.getPropsForBubble and friends to selectors
  * Move all files under /app to typescript
  * Remove js/deletes.js, superseded by ts/messageModifiers/Deletes.ts
  * Include new database corruption check for SQL errors
  * autoOrientJPEG: Protect against missing message parameter
  * Update strings
  * v5.8.0-beta.1
  * Refactor SendMessage.ts to named parameters
  * Clear profile avatar when we discover that it has been removed
  * Ensure sender info propagates after sealed sender decrypt error
  * Message Send Log to enable comprehensive resend
  * waitThenMaybeUpdateGroup: If group is blocked, don't fetch
  * Initialize ConversationController earlier
  * Improve error message for group link join failure
  * ConversationView: Call forceSend with proper signature
  * Update timers whenever we mark messages read
  * Make decryption error toast stick around until interaction
  * Message.sendSyncMessage: properly handle falsey id field
  * Update strings
  * archiveSessionOnMatch: Check for ratchet key match as well
  * Better logging for sealed sender, sender key distribution
  * sendToGroup: Ensure key distribution messages are always online:false
  * More logging in addDeliveryIssue, properly wait in getProfiles
  * Delivery Issues: Show simpler message when displayed in a group
  * Group Details: Show unregistered users in member list
  * Update translations
  * v5.12.0-beta.1
  * Sender Key: Track registrationIds in senderKeyState
  * Track performance of message sends
  * Use 'aws s3 rsync' to upload linux builds, not aptly
  * DeliveryIssueDialog: Add learn more button linking to support
  * Modernize DeliveryIssueDialog, fix outline clipping in Modal
  * Sender Key: Prepare for testing in beta
  * Sender Key: Proper 409-handling, save new members earlier
  * Simplify signed prekey handling - always save for 30 days, always save five
  * _maybeMigrateSession: Directly update cache or save session if needed
  * Sender Key: Flags to disable, send to unrestricted
  * Partially revert "Sender Key: Prepare for testing in beta"
  * Standardize feature flag for internal testing
  * requestResend: Show decryption error toast only for RESENDABLE/DEFAULT
  * Message Send Log: Increase retention length
  * Support for alpha build channel
  * Groups: Force a fetch right now if our update runs into a conflict
  * Log: Show both enabled/disabled and value for flags
  * Calling: Never show lobby for incoming call
  * Bless new 'My Daily Life' sticker pack by Plastic Thing 
  * Calling: Clear activeCall only for incoming prering/ringing calls
  * Sender Key: Hardcode senderKey to true, during link and thereafter
  * removeAllConfiguration: Use json_remove instead of json_patch
  * Update languages. New: lv and ml
  * v5.14.0-beta.1
  * aptly.sh: auto-detect first run, configurable apt location
  * sendToGroup: Save conversation before removing senderKey
  * MessageReceiver: Drop blocked senders only after processing SKDMs
  * AccountManager: Simplify key rotation pre-check
  * New version startup: clear remote expiration, hydrate from remote config
  * Move to `desktop.sendSenderKey3` feature flag
  * ConversationView: Improve types
  * `maybeAddAttachment`: Add pending attachment for all file types
  * Settings window: Don't show until everything is rendered
  * One lightbox at a time; proper dismiss of "read more" screen; proper in-progress draft HEIC images
  * Update to libsignal-client@0.9.0, handle new invalid registration error
  * Mandatory profile sharing: Don't disable react/reply in GroupV2 groups
  * Update strings
  * Update proxy-agent to 5.0.0, move @types/pino to dev dependencies
  * Release Notes for 5.17
  * v5.17.0-beta.1
  * Lightbox: A number of tweaks
  * Message: Don't propagate sender avatar click event
  * Fix Connecting spinner in dark mode, maintain draft attachment order
  * ConversationView.hasFiles: Exclude pending attachments by default
  * Draw attention even if notifications are disabled
  * Render disappearing message countdown even if deleted for everyone
  * ConversationDetails: Prevent block/leave of group if only admin
  * WebsocketResources: Increase maximum outgoing message size
  * WhatsNew: Save build creation time, use as displayed date
  * Improve a few strings, highlight back button on focus, proper key value
  * Additional logging, new ability to force Conversation 'change' event
  * Update strings
  * Update release notes for 5.18
  * v5.18.0-beta.1
  * Clear stale sender certificates
  * AvatarPreview: Use avatarPath directly if provided
  * Stale Bot: Exclude 'Feature Request' label
  * Fix blank avatars, duplicate recent media, static message details
  * Typescriptify main.js
  * Introduce focus traps for ModalHost, add button role to DropZone
  * Send related emoji along with Sticker, fix SendMessage types
  * Focus-trap: Use allowOutsideClick where appropriate
  * Sticker upload affordances, fix 'recent media'
  * Update to Electron 3.5.2
  * linkPreviewFetch: Increase maximum HTML we'll process to 1000*1024 bytes
  * Delete reactions when their parent message is deleted
  * getIdenticon: Use `conversation.getTitle()` for contact name
  * Ensure conversation is in left pane when creating a draft message
  * getMessageDescriptor: Log more information if we can't find conversation
  * main/second-instance: If logger isn't ready, skip further checks
  * updateGroup: Use hasMember instead of 'left' attribute for membership
  * onDecryptionError/onRetryRequest: Don't run until queue is empty
  * Show What's New dialog in app via Help -> Go to release notes
  * Accessibility fixes for ConversationDetails and AvatarPopup
  * base_config: Don't throw if loaded config file is empty
  * DataMessage.ProtocolVersion: Increase current/supported value
  * Settings window: Add interaction mode and tab focus state
  * Usernames: Create/update/delete in profile editor
  * Scroll to bottom of conversation on message send
  * MESSAGES_RESET: Keep scrollToBottomCounter the same value
  * Ensure multiple draft attachment adds don't stomp on each other
  * Fix broken Pending Invites screen
  * Don't show emoji chooser unless entered search text is 3+ characters
  * Handle duplicate requests to start recording a voice note
  * Remember message Read More state when scrolling in virtualized container
  * Search for username in compose mode
  * Allow stage and send of video, even if we can't get screenshot
  * Update username max/min lengths
  * Update several dependencies, remove a few as well
  * Update protos with planned changes for stories
  * onRetryRequest: Send only after session archive or found senderKey
  * Conversation last message/activity: Use IS/IS NOT to better handle NULL
  * When you send a message, scroll it into view
  * Draft attachments: Show image as generic attachment if too big
  * Conversation details label: Differentiate between group and 1:1 chat
  * sendToGroup: Flow errors during key-fetching back up to original sender
  * When you send a message, scroll it into view
  * handleReaction: don't fetch/save across an await boundary
  * Show sender and device number in decryption error toast
  * Tell Chromium not to change gain during recording
  * Startup: If we don't have core data available, show 'link device' screen
  * Migration and data access functions for stories
  * Revert "Proper Japanese fonts"
  * Theme: Don't update on startup of every new version
  * Refactor sender key sends to allow distribution lists
  * No Backbone in data layer; server/client interfaces are now similar
  * Remove Grunt in favor of ts/scripts
  * messages table: introduce new computed isStory field for index usage
  * Usernames: Fetch own username from /whoami not /profile
  * Fix groupV2 change rendering in notifications and left pane
  * Fix yarn dev: add dev:sass and dev:sass-bridge
  * Optimize a few queries
  * loadAndScroll: Use one transaction to pull all data: old/new/metrics
  * Re-enable reaction notifications and improve message modifier typing
  * Enable notifications for disappearing messages on macOS 12.0.1 and above
  * updateSharedGroups: Make one database query, check for membership, sort
  * Protocol filter: Support home path mapped to UNC share
  * Fix messages_unread index
  * Include sender keys in SignalProtocolStore zones
  * getProfiles: Fetch a maximum of three profiles at at a time
  * Update strings
  * Add release notes for 5.29
  * v5.29.0-beta.1
  * Calling Lobby: Ensure participant list can be dismissed
  * Move a number of sync messages to jobs for retry
  * Properly handle groupIds in incoming block sync
  * MessageReceiver: Pause processing of new messages on suspend
  * MessateReceiver.maybeUpdateTimestamp: Annotate group identifier for log
  * Fix incorrect translation key: unknownUser -> unnkownContact
  * Honor preferContactAvatars field on AccountRecord
  * TaskWithTimeout: After suspend, don't start timers for new tasks
  * Improve storage service migration to new field understanding
  * Add second trusted issuer certificate authority
  * sendContentMessageToGroup: Comprehensive error check before failover
  * Expiration start timestamp cleanup: Cancel update when missing our UUID
  * New queue for view once syncs, handleRetry improvements
  * Update strings
  * Add release notes for 5.32.x
  * v5.32.0-beta.1
  * Sender Key: Use sender key expire duration from remote config
  * MessageReceiver: Extract cipherTextBytes/Type from non-sealed messages
  * Introduce new conversationJobQueue
  * hangup: Hang up all calls, warn if we can't find intended call
  * envelopeTypeToCiphertextType: Handle all envelope types
  * profileKey: Check length of incoming values, clear on failed send/fetch
  * Don't fetch profiles on conversation open if we've left group
  * updateGroup: Update group attributes last, after notifications are added
  * background.ts: Introduce types for redux initialState
  * applyMessageRequestResponse: Don't leaveGroup in 1:1 conversations
  * sendToGroup: Combine into final send result even in error scenarios
  * Don't send to blocked users
  * Simplify OutgoingIdentityKeyError, use it in getKeysForIdentifier
  * A few updates to CONTRIBUTING.md
  * Migrate and add migration/removed events if GV2 migration removed us
  * Group Migration: Don't bump to top of list if we're not in group
  * Conversation Queue: Fix conversationId added to untrusted list
  * Delete for everyone: Track sends and show failure states
  * Ensure that only messages with storyId have a StoryContext
  * Populate dataMessage on CallbackResultType when sending 1:1 messages
  * Don't increment totalUnread count for sends or database loads
  * getTextAndMentionsFromOps: Trim start of first op if it's a string
  * Add release notes for 5.36
  * Update strings
  * v5.36.0-beta.1
  * Support for people banned from joining groups via link
  * Introduce new 'Block request' button in timeline
  * Fix third item in Whats's New dialog
  * Sticker pack download: require just one successful sticker download
  * Timeline: Spacing and message selection tweaks
  * Fix Contact Modal and improve Debug Log window
  * Challenge: Save conversationIds and start queues
  * Drop stories and their replies if feature flag is disabled
  * background: Initialize job queues earlier
  * Message Select: New faster animation, lighter for incoming bubbles
  * Group messages by status, grouping everything delivered+ together
  * Fix rendering of messages with primarily RTL text
  * addSingleMessage: Only loadNewestMessages if conversation is loaded
  * Don't render metadata if message bubble is collapsed
  * Reintroduce inline metadata with full RTL support
  * Suppress sticker pack installation errors on startup re-download
  * Update strings
  * Add release notes for 5.37
  * v5.37.0-beta.1
  * Group disparate status together, but show metadata if different
  * Sort message-initiated timer updates before the initiating message
  * Don't linkify when certain unicode formatting characters are present
  * getUntrustedConversations: Ensure we return conversationIds
  * shouldCurrentMessageHideMetadata: Hide more often for less jumpiness
  * Remove support for legacyMessage
  * startCall: wait for startOutgoingDirectCall before updating lobby
  * More peeking of group calls to prevent out-of-date member info
  * Basic support for forced colors/high contrast mode
  * Improve layout of various message bubbles
  * ProfileEditor: Fix updating non-avatar with no avatar
  * Don't apply custom color style if message is deleted for everyone
  * Ensure that waitForAll functions catch and log thrown errors
  * Disable forward for messages with embedded contact
  * Restore ability to message someone from embedded contact
  * Contact presence: Check for array with items, not truthiness
  * Job Queue: Don't wait unless it's our first time in verify loop
  * getSuggestedFilename: January 2nd to fix test failure in some time zones
  * Support for server-configurable maximum attachment size
  * Show expiration timer for incoming messages even if unread
  * Fetch profiles for conversations needing verification, more logging too
  * Timeline: Mark messages read sooner, and a little more often
  * New 'unseenStatus' field for certain secondary message types
  * Message.tsx: Don't handle clicks outside of container
  * sendProfileKey: Be resilient to more kinds of errors
  * Prepare for branch move: development -> main
  * Challenge: If no retry-after header on 428, don't start timer for retry
  * getTotalUnreadForConversation: Add missing isGroup parameter
  * Fix collapsed corners for link previews and image attachments
  * Ensure that seenStatus is always updated along with readStatus
  * MediaGallery: Localize Media and Documents tab headers
  * Notarization: Update electron-notarize and start using notarytool
  * On database error: Escape copies error and quits, additional logging
  * Update conversation.unreadCount in just one place, from database
  * sendNormalMessage: Only send just sync message in Note to Self, groups
  * JobQueue: If job data does not parse, delete it from database
  * Ensure source is not required for incoming sync messages
  * Timeline: When scrolling far into history, discard newest messages
  * Support for incoming gift badges
  * Always provide isGroup/storyId to message-fetching functions
  * Timeline: Use messageChangeCounter to mark messages read less often
  * Update unread count when creating important local notifications
  * Groups: Show in left pane more often, proper join message
  * Gift Badges: A few tweaks
  * Reset MessageReceiver processed count after reporting it
  * Fix left pane summary for gift badges
  * Make that theme values are in the expected range
  * When floating loading spinner isn't visible, don't render it
  * Append 'password-store=basic' switch on startup
  * Restore useful bubble for incoming messages with errors
  * If group avatar is the same, but URL changed, capture that new URL
  * Sort groups you've left to the bottom of search
  * Move to uuids for untrusted conversations needing verification
  * Send just sync message if we've already sent to all recipients
  * Remove inboxCollection, ensure falsey active_at removes from badge count
  * getMessagePropStatus: Move back to isOutgoing for in/out check
  * Update strings, update to modern transifex tool
  * Add release notes for 5.46.x
  * v5.46.0-beta.1
  * On Sender Key distribution message failure, don't update send status
  * getUnreadByConversationAndMarkRead: Only query incoming messages
  * Fix StickerButton
  * Convert js/modules/types/message to Typescript
  * On send, disable message field before doing anything async
  * Message: If collapsed in group, remove top margin on link previews
  * Convert signal.js and preload.js to Typescript
  * Fix sticker creator in our new typescriptified world
  * Conversation details: Unblock option for groups, update unblock style
  * Introduce new auto-updating staging channel
  * Ensure all components of sticker creator startup are in package
  * Force 'password-store' to 'basic' on all platforms
  * Update unread count on conversation open
  * Fetch latest group data on unblock of a group
  * Revert RingRTC back to v2.20.0
  * Fix Gift Badge expiration
  * Update to RingRTC v2.20.8
  * Reintroduce 'expired' event, simplify handling of View Once media
  * Use different copy for outgoing gift badges
  * Include sticker creator in clean-transpile script
  * Check that size is number, not truthiness of size
  * Ensure modal overlay has the right z-index
  * Increase backstop queue timeouts across the app
  * updateCallHistoryForGroupCall: If exists, update left pane preview
  * models/messages.initialize: If no ourConversationId, skip migration
  * Spellcheck: Use full locale, otherwise all which match base
  * Fix patches for protobufjs and got
  * getUUID: Return undefined if uuid is falsey
  * Forward: Ensure we get the latest attachments with hydrated data
  * CompositionInput: Use sendingRef to ensure we don't double-submit 
  * Ensure expireTimer updates in Note to Self are never unread
  * Introduce new urgent property for outgoing messages
  * showMessageDetail: Add a backup in addition to transitionend handler
  * Introduce logging for unexpected incoming urgent values
  * updateSchema: Be resilient to invalid images
  * Revert "Potential fix for laggy scrolling"
  * Background message migration: Process just one batch at a time
  * enqueueMessageForSend: Capture storage service change on unarchive
  * Attachment downloads: Use filename if we have it, ignore index = 1
  * Remove emoji, mentions and links when calculating text direction
  * Simplify expireTimer change handling, queue for contact sync
  * Ensure that outgoing gift badges can be Viewed
  * Update strings
  * v5.51.0-beta.1
  * Introduce new Profile Fetch service, with centralized queueing
  * Fix missing titlebar on Windows
  * Enable fullfsync mode in the database
  * Ensure that the GroupV1 Migration dialog shows
  * main.ts: Fix main title bar check
  * Spell check: Restore english region support
  * Wait for enqueueMessageForSend before resetting message input box
  * Repair broken attachments with non-array 'data' fields
  * Remove unused lint-deps exceptions
  * Update strings
  * v5.52.0-beta.1
  * validateUnsealedEnvelope: On expire, log serverTimestamp vs. expiration
  * Use concurrency of one for queues with no options
  * Replace mentions with text when forwarding
  * Request our PNI along with group credential fetch
  * Conversation.getProps: Allow for our own ACI to be missing
  * Message.tsx: Use role=row for container, not role=button
  * Always use - (not _) when dealing with locales
  * Move back to libsignal-client v0.18.1
  * Upgrade to libsignal-client v0.19.2
  * AttachmentDownloads: Wait for job completion, validate active job list
  * Eliminate strange text layout in CAPTCHA dialog
  * Add release notes for v5.54
  * Update strings
  * v5.54.0-beta.1
  * RoutineProfileRefresher: Track instances, only start() once, min sleep
  * A few fixes for the emoji bundled with stickers
  * Don't use original filenames when saving multi-attachment messages
  * Early preparations for PNP Contact Merging
  * Remove restriction on maybeMergeContacts, combineConversations fixes
  * A number of additional merging fixes
  * Unarchive conversations when we add a calling event to it
  * getUnverified/getUntrusted: Return conversation array, not collection
  * Group Credentials: Request six days of data to account for clock skew
  * Make attachments more resilient, decrease websocket keepalive
  * maybeMergeContacts/create: Put PNI into UUID field if no ACI
  * ErrorBoundary improvements, StickerCreator logging/resiliency
  * Ensure non-visual attachments can be manually downloaded
  * Don't log call audio levels actions to console in dev mode
  * Format all messages.json files in preparation for larger changes
  * Contact Sync: Consider undefined value as a disabled expire timer
  * Storage/getItemsState: Warn if not ready, log on success as well
  * Fix specificity for unread story ring styles
  * Protocol Filter: Catch and return 'invalid url' on all errors
  * Expire Timer: If we generated change, don't mark unread
  * getNextAttachmentDownloadJobs: Delete malformed jobs
  * Fix keyboard handling in ReactionPicker/Viewer and their child views
  * Sticker Creator: Use findIndex to determine cover sticker index
  * Message.tsx: Don't let event propagate on generic attachment click
  * Stories: Don't drop 1:1 replies, always 24-hour expireTimer
  * Improve logging in handleDataMessage and contact sync
  * Update strings
  * v5.60.0-beta.1
  * Ensure that one emoji is added, when expected
  * _locales: Remove empty description fields
  * Don't include emoji name when searching; only use short_name
  * Unarchive conversation if another device sent a message to it
  * Only process signal domain links if they have hash/path/query
  * Improve spacing on no-video one-participant call screen
  * Reduce minimum window size to 300px by 200px
  * getUnreadByConversationAndMarkRead: Take 'now' param for reliable tests
  * Eliminate unknown groups and contacts from search results
  * Move to smartling for translation services
  * Stories: Fix sender key persistence, pipe story: true into sends
  * Pipe device number through for sync'd sent story messages
  * Additional work to include story=true on send
  * Enable stories in beta builds
  * Don't include expireTimer with reaction sends
  * Expand beta check for stories availability
  * sendToGroup/_shouldFailSend: Don't fail send on 401
  * Story send: Send sync message even in partial failure
  * Include story=true on SKDM only when sending to distribution list
  * Stories: Start expiration on receipt
  * Phased rollout by country code; starting w/ desktop.stories remote flag
  * Include story=true when deleting your story for everyone
  * Don't access RemoteConfig directly from 'dumb' components
  * showLightboxForMedia: Properly handle message events
  * Update strings and design around custom stories
  * Improvements to SafetyNumberChangeDialog
  * Keep story creator around until we've verified contacts and queued job
  * recentMedia/lightbox: Register messages for update and for lightbox
  * Save source of selectedMessage changes to prevent unnecessary scrolls
  * SafetyNumberChangeDialog: Introduce awareness of stories
  * Ensure that media messages are cached when loaded from convo settings
  * Use implicit content hint for sender key distribution messages
  * A bit of cleanup: eslint and yarn.lock
  * Notifications for a few merge-related scenarios
  * ConversationView: Move call/mute functions into redux
  * GroupV2: Show summary of change details on re-join of group
  * ConversationView: Move setPin to redux
  * ConversationView: Move attachments processing into redux
  * CompositionArea: Only reset message contents if id has changed
  * Eliminate resetEmojiResults, move onEditorStateChanged to redux
  * On debug log upload fail, log out top-level error message
  * Search Box: Handle focus properly
  * ConversationView: Move setQuotedMessage/scrollToMessage to redux
  * Merge signalapp/Signal-Desktop#5342
  * updatePNI: Cleanup only for obsolete PNI
  * Standardize on showConversation function, delete unused functions
  * ConversationView: Move deleteMessage to redux
  * ViewSyncs: Save message after modifying it
  * ConversationView: Pull various functions out of getMessageActions
  * Share profile key: Cancel send in more situations
  * conversation_view: Move the last of the small functions to redux
  * Update acknowledgements.md end year to 2023
  *  Update Backbone types: attributes is T - and fix failing type checks
  * ducks/composer: Properly compare attachment size against limit
  * Stories: Proper notifications and handling of out-of-order messages
  * Update strings
  * Reactions: isSentByConversationId is only for reactions from this device
  * Update strings
  * Release notes for 6.3.x
  * v6.3.0-beta.1
  * Set draftChanged=true when changing draftAttachments, better logging
  * Update patch for websocket dependency
  * AttachmentDownloads: Log second error, finish job even on failures
  * Stories: In send dialogs, don't show groups you're no longer part of
  * sendToGroup: 404 from multi_recipient endpoint now treated differently
  * SmartTimeline: Use key prop to ensure no re-use of existing component
  * EmojiButton: Eliminate usage of createPortal
  * sendToGroup: Don't fail send if we get 401 from multi_recipient/ request
  * Add more logging in update scenarios
  * Cancel in-flight attachment downloads on suspend/resume
  * MessageReceiver: handle sender key distro message included in any proto
  * 'Draw attention to this window' option is now defaulted to 'false'
  * Update strings
  * Add release notes for 6.5.x
  * v6.5.0-beta.1
  * Fix mentions for messages with ASCII art characters
  * maybeFetchNewCredentials: Fetch if we don't have credentials for today
  * Add a #toast div when still in the loading screen view
  * Show quote properly when replying to 1:1 story reaction
  * Proper i18n for search result headers "<sender> to <receiver>"
  * Linux notifications: Don't escape double- or single-quote characters
  * Use envelope.receivedAtDate when saving items to the cache
  * Group story replies: On send, don't set expire timer
  * Improve handling for group joins via group link
  * Add release notes for 6.10
  * Update strings
  * v6.10.0-beta.1
  * Add all sends needed for retry to conversationJobQueue
  * JobQueue: Don't start job if we're shutting down
  * Voice Notes mini-player: Show with no conversation, fix spacing
  * Remove outline from message container
  * Fix conversation title placeholder in block/confirm dialog
  * Use sentCounter in CompositionInput to drop old draft updates
  * Update strings
  * Release notes for 6.14.x
  * v6.14.0-beta.1
  * Support for receiving formatted messages
  * Fix sending of at-mentions
  * AudioPlayer: Logging when changing playback or queue
  * Filter incoming bodyRanges, also filter before display
  * Support for sending formatting messages
  * CompositionArea: Don't unconditionally apply draft contents if empty
  * Several text formatting fixes
  * Continue to mark story read if markOnboardingStoryAsRead didn't do it
  * Disable right-click copy menu for View Once images
  * Consider all messages without contentHint, from us, to be resendable
  * Update feature flags for text formatting for beta release
  * Allow sends of quote attachments with no thumbnail
  * uploadMessageSticker: Compare against previous sticker, not cache
  * Allow copy/paste of formatting and mentions
  * Formatting: A few more changes
  * Remove desktop.retryReceiptLifespan feature flag
  * Don't include expireTimer with group story reactions
  * Don't show formatting menu if formatting flag is disabled
  * Better handle newlines in content pasted into composer
  * Better handle multiline formatting
  * aptly.sh: Don't pull from public repo before release
  * aptly.sh: Pull passphrase for gpg-signing from file
  * Improve paste handling of formatted data
  * copyQuoteContentFromOriginal: Copy bodyRanges alongside body text
  * Limit receiver processing of text body ranges
  * Fix paste of images when focus is in the composer
  * aptly.sh: Introduce a way to download previous builds before release
  * Update local story distribution list in more cases
  * CompositionInput: Properly set cursor right after pasted data
  * Better handling of formatting in pasted text
  * Restore indicator when conversation is manually marked unread
  * aptly.sh: Remove to put it closer to release scripts
  * mentionsMe check: normalize before comparing against our UUID
  * Support clipboards with text/plain as well as file contents
  * beforeMessageSend: Set lastMessage properly to avoid duplicate @mentions
  * Fix cut/copy and paste from composer
  * Linux: Increase minimum libc version to 2.31
  * Implement cut/copy correctly for input/textarea elements
  * Formatting: Expand exceptions to multi-newline ops, multiple ops
  * Call refreshPreKeys on same cadence as rotateSignedPreKey
  * getTitle: Return nothing instead of an invalid phone number
  * isNewlineOnlyOp: Fix regular expression to handle inconsistent deltas
  * Additional logging, more reliable contact/group sync fetch
  * Enable formatting for all users
  * Release notes for 6.22
  * v6.22.0-beta.1
  * Merge signalapp/Signal-Desktop#6452
  * Merge signalapp/Signal-Desktop#6322
  * Fix failover on failed sends, and improve logging
  * WebAPI: Increase default timeout to 30 seconds
  * MessageReceiver: Emit envelope event on queue for cached+decrypted items
  * Release notes for 6.25
  * Remove release notes for 6.23
  * v6.25.0-beta.1
  * Merge signalapp/Signal-Desktop#6500
  * Revert "Upgrade stylelint to v15.10.1"
  * Support for loading, storing, and using kyber keys in decryption
  * getStringFromNode: Add parent/nextSibling for fewer newlines
  * Fix initial kyber key hydration; improve generation and logging
  * Renew Windows code-signing certificate
  * New getRecentStoryReplies function to clean up replies in multiple convos
  * Improved windows notifications
  * Spoilers: Keep non-overlapping bodyRanges separate
  * Notifications: Put actions inside onclick handler
  * Formatting menu: Show popup guide faster, fade in/out
  * Apply existing formatting to pasted content, preserve whitespace
  * Remove obsolete capabilities, improve routine profile fetch
  * Move windows-dummy-keystroke fork to signalapp organization
  * Update strings
  * Add release notes for 6.29.x
  * v6.29.0-beta.1
  * Ensure that isConversationUnregistered is not called on groups
  * Eliminate extra newlines when pasting composer text back into composer
  * Show mentions menu after pressing @, no further characters required
  * Use shouldLinkifyMessage in MessageBody/ReadMore
  * eraseAllStorageServiceState: Delete everything, delete in memory
  * Update build configuration after electron-builder update
  * Build config: Move back to one afterSign entry
  * Add build-linux yarn script to disable publish
  * Eliminate extra preKeys, fail early on key creation if no PNI identity key
  * Keep onboarding story message ids on unlink
  * Migration 91: Delete in chunks, not all at once
  * Linkify messages with unicode drawing characters
  * Improve performance of Delete All Data
  * CompositionArea: On paste, create emoji Op only if we have data
  * Resilience to failed PNI key upload, clean more key tables
  * Show 'join anyway' in verify dialog when joining call
  * Key cleanup before migration 88 and attempt vacuum only once in 920
  * v6.33.0-alpha.1
  * Reset spoiler expand state when a message is edited
  * v6.34.0-alpha.1
  * Add maximum wait in updateGroup, log with queue size in profile service
  * Add release notes for v6.32
  * onCapturePaste: stop propagation in more scenarios
  * ConversationView/onPaste: Only process items of kind 'file'
  * Ensure that messages to initiate calls are marked urgent=true
  * ConverationView.onPaste: Better handling of clipboard contents
  * Enable Hide Contact for all users
  * Update strings
  * Add release notes for 6.37
  * v6.39.0-alpha.1
  * Fix string: Messages can be edited up to 24 hours after send
  * conversationJobQueue: Only show captcha for bubble messages
  * Use streams to download attachments directly to disk
  * Update electron-notarize to 2.1.0
  * macOS: Make both notarize() calls consistent
  * Use sender+timestamp to cache receipts and read syncs
  * Windows: No longer rely on electron-builder for code-signing
  * sign-windows: await call to realpath
  * sign-windows: If return code is non-zero, throw
  * sign-windows: Put quotes around paths provided to sign script
  * Mark onboarding story read again, even if it's not unread
  * getTextAndRangesFromOps: Don't trim leading whitespace if monospace
  * No more type passed to removeAllConfiguration; keep more UI keys
  * ContactModal: Show contact's story ring, open correct story, close modal
  * On send, pull data from target edit if sending edit
  * EmojiPicker: Don't send on enter, just add emoji to draft message
  * sendSyncMessage: Check timestamp, don't check sent status
  * Add release notes for 6.41
  * Update strings
  * Remove some obsolete strings
  * v6.43.0-alpha.1
  * Merge signalapp/Signal-Desktop#6689
  * Merge signalapp/Signal-Desktop#6479
  * Merge signalapp/Signal-Desktop#6311
  * Show window on click of incoming group call notification
  * A couple tweaks to the new template
  * Merge signalapp/Signal-Desktop#6688
  * Merge signalapp/Signal-Desktop#6608
  * MessageTimestamp: Fix typo in class name
  * Simplify edit-related send functionality
  * Properly clean up story replies on expiration or delete
  * Introduce smaller incoming size limit for text attachments
  * Delete for Everyone: Don't allow unrestricted deletes in Note to Self
  * Group creation/update: Don't allow self-selection via phone number
  * upgradeSchema: New keepOnDisk option, used for edits
  * Attachment encrypt/decrypt: Validate digest/mac length for better errors
  * JobQueue: Allow jobs to be added before streaming starts
  * Release notes for 6.45.x
  * Update strings
  * v6.47.0-alpha.1
  * Fix formatting of _mixins.scss
  * Merge signalapp/Signal-Desktop#6747
  * macOS: Prepare for code-signing outside of electron-builder
  * Send attachment filenames for non-image/non-video quote attachments
  * Properly handle long message attachments for edited messages
  * Contact Sync: Properly drop contacts with invalid ACIs
  * Merge signalapp/Signal-Desktop#6775
  * Always persist last version when deleting configuration
  * Release notes for 6.48
  * Update strings
  * v6.50.0-alpha.1
  * Reset sender key when group member has safety number change
  * modifyTargetMessage: Save other changes before applying edits
  * Proper handling of incoming 1:1 story replies
  * Allow quotes to be removed when editing a message
  * Change challenge policy for outgoing group updates
  * Allow for zero-size attachments in maximum size calculation
  * composableGroups: Exclude groups where you're not a member
  * onSentMessage: Create destination conversation before further processing
  * onSentMessage: only merge if we have a destinationConversatonId
  * AboutContactModal: Use systemGivenName for contact before firstName
  * EmojiPicker: Enter adds emoji in keyboard mode, otherwise dismisses
  * Release notes for 7.4
  * Update strings
  * v7.6.0-alpha.1
  * markRead: Only update read/seen status on target message
  * getProfiles: Better logging; don't let promise propagate
  * Sort left pane via receivedAt/receivedAtMs, even via edits
  * New mock test: verify sync sent in a group
  * Enable crash reporting for all channels
  * Drafts: update lastMessageReceivedAtMs along with conversation timestamp
  * Release notes for 7.5
  * Update strings
  * v7.7.0-alpha.1
  * Message: Ensure that inline metadata is always clickable
  * Use new macOS signing script
  * Revert "Use new macOS signing script"
  * Send call messages with conversationJobQueue
  * Use new macOS signing script
  * Revert "Use new macOS signing script"
  * Use new macOS signing script
  * Group Calls: Simplify canvas creation
  * Backups: Handle groupV2 notifications
  * Challenge: On challenge response failure, propagate error
  * Fix rendering of group joins and remove checkServiceIdEquivalence
  * conversationJobQueue: Introduce RUNNING status, attempts and backoff
  * Update placeholders in a few strings
  * Challenge: Set status to 'idle' on rate limit errors
  * Story replies: Require referenced story only for groups
  * Groups: Update active_at more often when we detect group changes
  * Ensure left pane has correct timestamp for call
  * Support for local deletes synced to all your devices 
  * Challenge: Only show captcha if requested
  * Add release notes for 7.12
  * Update strings
  * v7.14.0-alpha.1
  * Add release note for 'record voice note' keyboard shortcut change
  * Update strings
  * Use profileKey from any incoming DataMessage
  * Move receipts and view/read syncs to new syncTasks system
  * Update strings Delete Sync explainer dialog
  * WebAPI: Ensure we report the right capabilities during link
  * Support for single-attachment delete synced across devices
  * Delete Sync: Handle and send mostRecentNonExpiringMessages if needed
  * Enable forwarding of shared contacts
  * Edit Message: Update only conversation list timestamp, don't re-sort
  * Calls Tab: Show proper color in all default avatars
  * Delete Sync: Show different text when deleting entire conversation
  * Remove leftover logic checking whether we are behind proxy
  * Improve story cleanup on expiration/deletion
  * Mark calling developer tools as not deleted
  * Release notes for 7.16
  * Update strings
  * v7.18.0-alpha.1
  * Show original sent timestamp for edited messages
  * Edit message: Don't allow send unless message contents changed
  * Restyle Call Link 'join call' button
  * Allow joining a call when already in a call, confirming first
  * getAllStories: Remove nested queries
  * hydrateStoryContext: Let through in more situations
  * Merge signalapp/Signal-Desktop#6942
  * Merge branch 'main' into HEAD
  * Merge signalapp/Signal-Desktop#6817
  * Merge branch 'main' into HEAD
  * ConversationDetails: openMenu -> onClick
  * Merge signalapp/Signal-Desktop#6822
  * Show notification on screenshare start in adhoc call
  * Groups: Allow fetch via log when discovering group from storage service
  * Attachment mock test: wait for draft attachment ready before send
  * cleanAttributes: Use value from cache, not from database
  * Contact Sync: Only update expireTimer on first sync
  * Backup: Support for calls
  * Make messaging/relink mock test more reliable
  * Add release notes for 7.21
  * Update strings
  * Update DNS fallback
  * v7.23.0-alpha.1
  * Merge signalapp/Signal-Desktop#6969
  * Groups: Continue processing group if endorsements are invalid
  * Groups: On log fetch error from current revision, use joined_at_version
  * Reinitialize redux after importing a backup
  * GroupListItem: When disabledReason provided, do not call onSelectGroup
  * Properly style call buttons across app, when already in a call
  * Reactions/Edits: Mark read after database save
  * updateGroupViaLogs: Save new endorsements only if at latest revision
  * Conversation: savePromises for off-queue post-handleDataMessage work
  * Calling: When calling out, send profileKey to 1:1 recipient
  * New logging if we get lots of redux actions in small time
  * Prevent interaction with non-Signal messages restored from backup
  * StagedLinkPreview: Add special handling for call links
  * Message Requests: Fix click of blurred profile avatar
  * Media Gallery: Scroll down and into the past
  * MediaGallery: Load only once with no attachments to show
  * getSelectedConversation: Return attributes instead of model
  * getQuoteAttachment: Handle attachments with no path
  * Add mock test for a 413 response from v1/challenge
  * Fix references to waitForEnabledComposer
  * Remove two describe.only() calls
  * Release notes for 7.25
  * Update strings
  * Update DNS fallback
  * v7.27.0-alpha.1
  * Stories: Only render text link if it's a valid URL
  * services/calling: Make logging consistent in startCall functions
  * Show groups you've left in search
  * setProfileKey: Introduce 'reason' parameter for improved logging
  * Don't show message request after requesting to join via group link
  * filterValidAttachments: Allow attachments with no thumbnail
  * openAndSetUpSQLCipher: Enable checkpoint_fullfsync pragma
  * visibleOnAnyScreen: Log window and display bounds
  * Make startCallLobby resilient to re-entrant calls
  * Allow edits which just remove the quote
  * Alert internal users if first message on websocket is repeated
  * setProfileKey: Additional logging for debugging oscillation
  * Move message upgrade from Backbone constructor to cleanAttributes
  * MediaGallery: Don't create scroll observer if we're still loading
  * MediaGallery: Only update if changed message is within time range
  * Deduplicate and cancel unneeded retry requests
  * Storage Service: Fetch updates on any group record merge
  * Release notes for 7.28
  * Update strings
  * Update DNS fallback
  * v7.30.0-alpha.1
  * Attachments: support for incrementalMac and chunkSize
  * Ensure that non-ACIs are excluded from the blocked UUIDs list
  * addMessageRequestResponseMessage: Don't update active_at on initial sync
  * Allow downloading multiple images into one directory
  * Centralize logic for finding/fetching the ringing call
  * Use libsignal PassThroughs instead of our own
  * Only show download button if message has attachments to download
  * handleBlocked: Continue on if we receive non-ACI
  * Ensure that calls ring at more appropriate times
  * Retain strikethrough formatting in message bubble mentions
  * Fix context menu text being different based on where right click occurred for emojis (#9215)
  * Add release notes for 7.33
  * Update strings
  * Update DNS fallback
  * v7.35.0-alpha.1
  * For outgoing 1:1 calls, start ringing on prering status
  * Ensure long message trimming is unicode-aware
  * Show attachment download progress, new stop button to cancel
  * Groups: Only set active_at when changes have happened
  * Keep profileKey in situations where it didn't work; still fail over
  * Use minimal replacement class for MessageModel
  * Introduce ability to play mp4 files as they download
  * MessageRequests: Only add events to timeline if value really changed
  * parseContact: Be resilient to invalid phone numbers
  * Add release notes for 7.40
  * Update strings
  * Update DNS fallback
  * v7.42.0-alpha.1
  * Move to MessageCache.saveMessage, queue downloads piecemeal
  * removeFromGroup: Don't use removed member for credentials
  * Use KeepAlive for libsignal-mediated websockets as well
  * Upgrade to QuillV2
  * Composer: Fix tab completion of mentions and emoji
  * modifyGroupV2: useCredentialsFrom only when profileKeyCredential needed
  * Fix copy/paste of a single-line of formatting text
  * Composer: Listen for compose start/end and apply proper styling
  * Fix window.SignalDebug.getMessage functions (#9699)
  * getProfile: Only clear profile name if profile is missing it
  * Send typingIndicator only when composer text and formatting has changed
  * downloadAttachment: Log presence/absence of downloadPath
  * Use other sync messages for conversations missing ACI
  * Trim message whitespace in more situations
  * Update to the latest SignalService.proto
  * Update release notes for 7.43
  * Update strings
  * Update DNS fallback
  * v7.45.0-alpha.1
  * Stories: Be resilient to a missing conversation
  * Ensure that call events don't override existing activeCallState
  * Show speaking indicator in 1:1 calls
  * Calling/handleOutgoingSignaling: Wait for job completion or timeout
  * Allow leading @ in Compose/Find by username
  * New option: Disable automatic attachment downloads
  * sendNormalMessage: If no errors, still retry messages send if needed
  * Return early in handleIncomingCall if call is ended
  * Ensure that stories download on view (#9945)
  * Calling: New option to expand your local preview
  * Ensure that download is no longer pending on abort
  * Ensure that send proceeds even if quote thumbnail attachment not found
  * Fix error in 'before each' hook
  * Compose: Show 'search for username' by itself more often
  * MessageReceipts: Removed dropped receipts from cache and database
  * Composer: Properly update quill state on clipboard cut
  * didSendToEveryone: Handle situations where you didn't send to yourself
  * Composer: Better handle option-delete keypresses on macOS
  * Composer/cut: Rely on Quill to update both DOM and its internal state
  * New SignalDebug function: archiveSessionsForCurrentConversation
  * Group Send Endorsements: Don't fetch blocked groups
  * callStateChange: Properly handle ReceivedOfferWhileActive event
  * Fix incremental video playback when file is downloaded quickly
  * CompositionInput: Run onBackspace no matter the modifiers
  * Release notes for 7.49
  * Update strings
  * Update DNS fallback
  * v7.51.0-alpha.1
  * beforeMessageSend: Properly update last message with active send
  * Expanded local preview: Don't overlap controls when audio-only/reconnecting
  * Show mute icon in 1:1 calls for remote party (#10074)
  * Local preview: Ensure background blur is opaque to items behind it
  * [signalapp/Signal-Desktop#7242] Allow collapsing archive sidebar
  * Do not show emojis when displaying name only
  * Update to the latest SignalService.proto
  * Calling: Improve the Picture-in-Picture popout
  * CallingLobby: Ensure your avatar is centered when camera is off
  * MessageReceiver: Process messages from queue before websocket
  * Calling PiP enhancements
  * Improve validation of username searches
  * Fix copy of emoji from message bubble
  * Logging improvements for sessions
  * Shutdown: Don't hang up ringing incoming calls
  * Manually hoist all eslint config and plugin modules
  * Username search: Trim leading/trailing whitespace beforehand
  * Introduce infrastructure for Notification Profiles
  * Notification Profiles: Ensure recently-created profiles always take precedence
  * makeHttpError: Ensure response headers have lowercase names
  * Introduce the new Settings tab
  * Settings Tab: When nav tabs collapsed, show toggle
  * Don't show unread count on Settings Tab icon
  * Settings Tab: Ensure that navigation to it is handled elsewhere
  * Settings Tab: A few visual tweaks
  * onUnregistered: Split contact even if we don't have pni
  * Move Profile Editor into the new Settings Tab
  * Settings Tab: When settings change, make proper updates
  * Update windows image used for github actions runs
  * Settings Tab: Allow resizing the left pane
  * Show bottom-left profile photo in nightly builds and in development
  * Settings Tab: Better layout for narrow windows
  * Settings Tab: Educate user about change to bottom-left profile icon
  * When a profile fetch fails, warn and don't log callstack
  * Settings Tab: Show updates dialog in all states but None
  * Don't go to settings after showing ProfileMovedModal
  * Initial settings donation pane
  * Initial donationReceipts data types
  * Simplify donation receipts
  * Donations: Make workflow more robust
  * Release Notes for 7.62
  * Update strings
  * Update DNS fallback
  * v7.64.0-alpha.1
  * Donations: Finish wiring up the 3ds validation flow
  * Message.tsx: Show expiring metadata when rendering generic attachments
  * Introduce new DonationVerificationModal to kick off 3ds verification
  * Update to signalapp/windows-ucv v1.0.1
  * Introduce new donation progress modals
  * Introduce new DonationErrorModal component
  * Donations: Show toasts when resuming after startup
  * Privacy.ts: Additional safety for debug logs
  * Donations: Show progress, error and verify dialogs
  * Privacy: Additional tweaks to debug log generation
  * Donations: Select default currency via user's phone number
  * AttachmentDownloadManager: Don't log errors/warnings in common cases
  * Donations: Show confirmation toast on startup at INTENT_METHOD
  * Contact Sync: Retry failed contacts sync downloads; don't try if offline
  * Donations: Introduce timeouts in early stages of the workflow
  * Release notes for 7.65
  * Update strings
  * Update DNS fallback
  * v7.67.0-alpha.1
  * Preferences: QR code button now takes you to username link screen
  * SignalProtocolStore: Make preKeys and kyberPreKeys zone-aware
  * getConversation: first/familyName should use nickname if set
  * Remove backbone as a dependency
  * ConversationController: Listen for updates and update unread count
  * Release notes for 7.71
  * Update strings
  * Update DNS fallback
  * v7.73.0-alpha.1
  * Fail mock test runs if tests fail
  * readSync mock test: look for visibility of last item
  * Fix the remaining PNP mock tests
  * Support for Notification Profiles
  * MessageDetail: Increase padding between label and value
  * Make verified notifications consistent
  * Log when we clear profile name
  * Notification Profiles: Normalize ids
  * Release notes for 7.77
  * Update strings
  * Update DNS fallback
  * v7.79.0-alpha.1
  * Fix reference to build-localized-display-names script
  * Find by username: Don't automatically add .01 discriminator
  * Notification Profiles: Exclude silenced conversations from badge count
  * ConversationController: Send changes to redux only if conversation in lookups
  * Fix spacing when a View Once message is viewed
  * Chat folders: for unread, check setting and active notification profile
  * Support for exporting chats to disk
  * Update export description string
  * Config: Remove unneeded downloads path
  * Notification Profiles: Fix scrollbars in the time picker
  * 1:1 calls: Show blurred avatar instead of black bars
  * CallScreen: Fix 1:1 display where container aspect ratio exceeds video
  * When checking files, handle trailing whitespace
  * Resize calling video containers on video aspect ratio changes
  * Improved logging: sync messages and outgoing sends
  * Ensure setLocalPreviewContainer is called when video is enabled
  * resolveUsernameByLink: Move to libsignal typed API
  * CallScreen: On ringing screen, remove Avatar in center of screen
  * Update Electron to v39.2.7
  * sendToGroup: Move to libsignal typed API
  * Make date-rendering consistent: show year if older than six months
  * Reintroduce black bars around 1:1 remote video
  * Release notes for 7.86
  * Update strings
  * Update DNS fallback
  * v7.88.0-alpha.1
  * Update to libsignal v0.86.12
  * Update to the latest Group and Backups protos
  * A few CSS tweaks and storybook fixes
  * Support for Group Member Labels
  * Group member label improvements
  * storageRecordOps.toRecipient: Allow for missing recipients
  * Render group member labels in quotes
  * Limit member label width
  * Show dialog if any non-admin labels when changing group info permission
  * ContactModal: Show full label, even if very long
  * GroupMemberLabelEditor: Show dialog on save or permissions error
  * Refactor conversation panels types, and remove obsolete event
  * GroupMemberLabelEditor: Show all other members with group labels
  * Group Member Labels: A few tweaks
  * Member Labels: A few visual tweaks
  * Member Labels: Show label in quotes of your own messages
  * Move understanding of Chats tab location into Nav
  * GroupMemberLabelEditor: Deep links, warn on navigate away
  * GroupMemberLabelEditor: Don't show 'you', show your profile name
  * getProfile: When no name in response, keep previous name
  * GroupMemberLabelEditor: After save, ensure `dirty = false` before navigate
  * Release notes for 8.1
  * Update strings
  * Update DNS fallback
  * v8.3.0-alpha.1
  * Member Labels: A few small changes
  * Allow all group members to have labels, no permission required
  * Repeat 8.0 release notes for 8.1
  * Introduce new permission for group member labels
  * Restore a few previously-deleted strings
  * Update icon for member label permission timeline update
  * Move open/close from showConversation to ChatsTab effect
  * Use all group members when calculating group colors
  * preferContactAvatars: Only force re-rendering if initial sync complete
  * decryptGroupState: Allow for missing member label permission
  * applyGroupChange: Ensure that accessControl updates are saved
  * A few small Timeline fixes
  * Collapse already-seen sets of timeline items
  * Collapse items into multi-day sets, handling start/end incomplete days
  * Collapsing Items: A few improvements
  * CollapseSet: Improve animation
  * Timeline: Include all item types in Select Mode
  * CollapseSet: Size limit, some new message types added/excluded
  * Fix danger/pnpm-lock.yaml
  * Update libsignal to 0.91.0
  * Release notes for 8.6
  * Update strings
  * Update DNS fallback
  * v8.8.0-alpha.1
  * Composer: Remove unneeded messageCompositionId field
  * Fix race condition in ConversationController tests
  * Update Contributing.md
  * Prevent forward of at-mentions, don't render in 1:1 conversations
  * Input: Truncate too-long pasted text instead of dropping entirely

  [ dependabot[bot] ]
  * Upgrade node-fetch to 2.6.7
  * Upgrade vm2 (a subdependency) to 3.9.7
  * Upgrade plist to v3.0.4
  * Upgrade url-parse to v1.5.10
  * Upgrade follow-redirects to v1.14.9
  * Upgrade simple-get to v3.1.1
  * Upgrade lodash-es to v4.17.21
  * Upgrade node-forge to v1.3.0
  * Upgrade plist to v3.0.5
  * Upgrade url-parse to v1.5.10
  * Upgrade moment to v2.29.2
  * Upgrade async to v2.6.4
  * Upgrade jpeg-js to v0.4.4
  * Upgrade protobufjs to v6.11.3
  * Upgrade sharp to v0.30.5
  * Upgrade browserslist to v4.20.4
  * Upgrade got to v11.8.5
  * Upgrade shell-quote to v1.7.3
  * Upgrade moment to v2.29.4
  * Upgrade terser to v4.8.1
  * Upgrade minimist to v1.2.6
  * Upgrade vm2 to v3.9.11
  * Upgrade loader-utils to v1.4.1
  * Upgrade loader-utils to v1.4.2
  * Update to decode-uri-component v0.2.2 in /danger
  * Update to decode-uri-component v0.2.2
  * Upgrade express to v4.18.2
  * Upgrade json5 to v2.2.3 in /danger
  * Upgrade http-cache-semantics to v4.1.1
  * Bump webpack from 5.30.0 to 5.76.0
  * Upgrade vm2 to 3.9.19
  * Bump vite from 4.2.2 to 4.2.3 in /sticker-creator
  * Upgrade semver to v5.7.2
  * Bump protobufjs from 7.2.3 to 7.2.4 in /sticker-creator
  * Bump protobufjs from 6.11.3 to 7.2.4
  * Upgrade stylelint to v15.10.1
  * Upgrade semver to v5.7.2 in /sticker-creator
  * Upgrade semver to v5.7.2 in /danger
  * Upgrade word-wrap to v1.2.4
  * Upgrade word-wrap to v1.2.4 in /sticker-creator
  * Bump get-func-name from 2.0.0 to 2.0.2
  * Bump get-func-name from 2.0.0 to 2.0.2 in /sticker-creator
  * Bump zod from 3.21.4 to 3.22.3 in /sticker-creator
  * Bump postcss from 8.4.22 to 8.4.31 in /sticker-creator
  * Bump zod from 3.21.4 to 3.22.3
  * Bump @adobe/css-tools from 4.3.1 to 4.3.2
  * Bump @babel/traverse from 7.21.4 to 7.23.6 in /sticker-creator
  * Bump @babel/traverse from 7.23.0 to 7.23.6
  * Bump vite from 4.2.3 to 4.5.2 in /sticker-creator
  * Bump ip from 1.1.8 to 1.1.9
  * Bump es5-ext from 0.10.49 to 0.10.63
  * Bump es5-ext from 0.10.62 to 0.10.64 in /sticker-creator
  * Upgrade express to v4.19.2
  * Upgrade vite to v4.5.3 in /sticker-creator
  * Bump protobufjs from 7.2.4 to 7.2.5 in /sticker-creator 
  * Bump tar from 6.1.13 to 6.2.1
  * Update braces to v3.0.3 in /danger
  * Upgrade ws to v6.2.3
  * Bump protobufjs from 7.2.4 to 7.3.2
  * Bump app-builder-lib and electron-builder
  * Bump braces from 3.0.2 to 3.0.3 in /sticker-creator
  * Bump micromatch to 4.0.8
  * Bump electron from 32.1.2 to 33.0.0
  * Bump electron from 33.0.1 to 33.0.2
  * Bump electron from 33.0.1 to 33.1.0
  * Bump electron from 33.2.1 to 33.3.1
  * Bump electron from 34.0.1 to 34.1.0
  * Bump electron from 34.1.0 to 34.1.1
  * Bump electron from 34.1.1 to 34.2.0
  * Bump electron from 35.0.2 to 35.1.0
  * Bump electron from 35.1.0 to 35.1.2
  * Bump electron from 35.1.4 to 36.0.1
  * Bump electron from 36.0.1 to 36.2.0
  * Bump electron from 36.2.1 to 36.3.2
  * Bump electron from 37.4.0 to 38.0.0
  * Bump electron from 38.0.0 to 38.1.0
  * Bump electron from 38.2.0 to 38.2.1
  * Update github action versions
  * Bump js-yaml from 4.1.0 to 4.1.1 in /danger
  * Bump actions/upload-artifact from 4.6.2 to 7.0.0
  * Bump actions/setup-node from 6.0.0 to 6.3.0
  * Bump actions/cache from 4.3.0 to 5.0.4
  * Bump actions/checkout from 5.0.0 to 6.0.2

  [ Jordan Rose ]
  * Reduce package size by omitting unused resources
  * Omit unused resources from built package
  * Context menu for message bubbles
  * On right-click link in message bubble, show menu to copy
  * Improve menu bar on macOS
  * Update to libsignal-client v0.10.1 with zkgroup included
  * Hang up any active calls when quitting
  * Don't show a notification for non-ringing calls in muted groups
  * Group calls: Make renderVideoFrame generate less garbage
  * In non-production builds, copy the linking QR code on double-click
  * Update for @signalapp/libsignal-client rename
  * Test that the zkgroup serverPublicParams are up to date
  * Typing while the emoji picker is up should enter search mode
  * Simplify logging
  * Update libsignal-client to v0.21.1
  * Remove unused dependencies
  * Dismiss the avatar menu after selecting "Update Signal"
  * Include a (non-localized) message on startup screens in staging
  * Update to RingRTC v2.30.0
  * Hook up LibSignalWebsocketResource.forceKeepAlive
  * Handle libsignal websocket connect() errors
  * (Re-)Enable Desktop's /v1/keepalive for libsignal chat websockets too
  * Improve use of libsignal for decryption
  * Link previews: return the image content type *after* transcoding
  * Link previews for image URLs
  * Set Accept-Language at the connection level for chat connections
  * Remove sealed sender proto file in favor of libsignal types
  * Update to libsignal v0.80.3, add future sealed sender trust roots
  * Allow hardcoding a captcha response in the config files
  * Provide full IdentityKeyPair to libsignal

  [ andrew-signal ]
  * Update libsignal to v0.59.0, add support for mock server test with libsignal
  * Bump to libsignal v0.70.0
  * Improve Error Handling from LibSignal's WebSocket Opens
  * Rotate experimentalTransportEnabled.prod to .2
  * Update libsignal-client to v0.76.4
  * Bump to libsignal v0.81.0
  * Separate out experimental and production remote config for permessageDeflate
  * Switch batchIdentityCheck to unauth socket
  * Bump to libsignal v0.87.1
  * Switch to libsignal's accountExists.
  * Update to libsignal v0.87.4
  * Bump to libsignal v0.88.0
  * Bump to libsignal v0.88.1
  * Bump to libsignal v0.88.3
  * Bump to libsignal v0.89.1
  * Bump to libsignal v0.89.2

  [ adel-signal ]
  * calling: update getIceServers to use new turn routing endpoint
  * calling: add setTurnServerOverride to SignalDebug to allow choosing ice server
  * calling: make hostname optional in IceServer type
  * calling: update setTurnServerOverride to support overriding all ice server fields
  * Add calling tools to visualize ringrtc stats
  * calling: add support for multiple ice server groups in GetIceServers
  * switch to v2/calling/relays endpoint
  * Update to RingRTC v2.54.1
  * Remove calling dev tools
  * Update RingRTC to 2.65.2
  * Update RingRTC to v2.66.0
  * Add downloading and caching calling assets to startup
  * calling: add internal preferences for DRED, bitrate, VP9, sfu url

  [ emir-signal ]
  * Add support for call link epochs
  * Add call summary support for all calls
  * Update to RingRTC v2.67.0

  [ yash-signal ]
  * Close button on 'Verify to continue messaging' dialog is misaligned
  * Remove 10-edit limit for note to self
  * Ensure clicking 'message' in contact modal un-pips the active call
  * Filter chats by Unread
  * Limit Filter by Unread to non production
  * Smarter incoming message handling for filter by unread
  * fix screenshare crash on OSX 14
  * Send alternate numbers to CDSI
  * Enable filter by unread on production
  * Highlight the selected conversation when filter by unread is enabled
  * Pin libphonenumber in package-lock.json
  * Filter by unread: small improvements and unit tests
  * Localized release notes
  * Add React Devtools
  * Add mock test for release notes
  * Release Notes Channel: Support image attachments (#9587)
  * Release Notes Channel: Add support for server body ranges (#9631)
  * Release Note Channel: Mute/Unmute UI, hide UI elements
  * Release Notes Channel: Fix behavior when conversation is blocked
  * Improve Processing of Sync Tasks
  * Message Request UI Improvements (#9938)
  * Click to download avatar for unaccepted conversations
  * Fix errant gradient on note to self
  * Fix gradient showing instead of placeholder when Avatar URL loading fails
  * Fix avatar not showing for new group adds with trusted contact
  * Fix avatar color consistency
  * Remove Release Notes Hash Check
  * Show list of members in a group in ConversationHero
  * Release notes UI fixes
  * Fix ConverationHero Title for 1:1 Conversations
  * Add Standardized Zod Validation to WebAPI
  * Only log zod when there's an error
  * Do not show avatars for call notifications when "no name or content" setting is enabled
  * Remove Release Notes Feature Flag
  * Add "This Message" reactions
  * Strip filenames for visual media attachments during upload
  * Release notes bug fixes, unit tests
  * Skip flaky release notes fetcher service test
  * Donations UI Receipt Generation
  * Staging indicator for donation receipts
  * Start Donations Receipt Flow UI
  * Fixes and improvements to Donations Home Page
  * sendSyncMessageOnly: Keep timer if it exists
  * Upgrade libsignal to 0.76.7
  * Catch top-level errors thrown in electron tests
  * Fix self badge retrieval
  * Add setting for "keep muted chats archived"
  * Post Donate Badge Toggle Modal
  * Release notes fetcher test flake fix
  * Donations: Fix x and download buttons not working on receipt modal
  * Simplify interaction with updater and main process
  * Show donations confirm discard modal when clicking back button twice
  * Donations: show modal when we can't apply the user's badge
  * Update badge information correctly when updating user profile
  * Update clean-transpile command to remove eslint cache
  * Initial Poll message receive support
  * Read-only Poll UI
  * Refine signal connections definition
  * Add ability to send poll create messages
  * Add ability to send poll votes
  * Add message preview for polls
  * Fix reply/quoting breaking for poll messages
  * Add backup support for polls
  * Poll create modal
  * Update poll receive feature flags
  * Add ability for poll author to terminate a poll
  * Send and receive polls with latest protocol version
  * Poll notifications and read syncs
  * Update poll create placeholder text, fix test flake
  * Polls UI Enhancements
  * [signalapp/Signal-Desktop#7526] Image disappears after first undo in media editor
  * Call Quality Survey Integration
  * Polls animations
  * Use remote config value for Call Quality Survey threshold, upgrade RingRTC
  * Update Prettier
  * Add z-index to AxoBaseDialog to fix Call Quality Survey placement
  * View-once media: backend send support
  * Add diagnostic information window to Call Quality Survey
  * Add call_diagnostic.html to packaged app build files
  * Update CQS logic: remove duration thresholds and add test mode
  * Migrate sharedGroupNames from model attribute to Redux selector
  * Fix non-renderable media files losing filename on upload
  * Fix admin pin permissions in groups with admin-only edit settings
  * Fix donation receipt sorting to show most recent year first
  * Emoji reply in 1:1 conversation should not discard reply text
  * Send viewed receipt for view-once opens
  * Update symbols font
  * Polls: Support sending polls in 1:1 conversations
  * Send View Once Messages
  * Remove poll feature flag gates
  * Polls: allow multiple votes by default
  * Add mac sandbox build support
  * Improve behavior in macOS sandbox
  * View Once UI Updates
  * Gate settings profile QR code button on having a username

  [ Jim Gustafson ]
  * Support RingRTC message sending queue
  * Use message age to expire old incoming calls
  * Update to RingRTC v2.3.1
  * Drop incoming calls if conversation is not 'accepted'
  * Upgrade to RingRTC v2.4.0
  * Update to RingRTC v2.4.1
  * Update to RingRTC v2.4.2
  * Update to RingRTC v2.5.1
  * Update to RingRTC v2.5.2
  * Update to RingRTC v2.7.0
  * Update to RingRTC v2.7.1
  * Add more logging for high level calling operations
  * Update to RingRTC v2.7.3
  * Update to RingRTC v2.8.1
  * Update to RingRTC v2.9.2
  * Update to RingRTC v2.9.3
  * Update to RingRTC v2.9.4
  * Update to RingRTC v2.9.6
  * Update to RingRTC v2.10.5
  * Update to RingRTC v2.10.7
  * Update to RingRTC v2.13.0
  * Update to RingRTC v2.13.3
  * Update to RingRTC v2.13.4
  * Update to RingRTC v2.13.5
  * Update to RingRTC v2.13.6
  * Update to RingRTC v2.14.0
  * Update to RingRTC v2.14.1
  * Update to RingRTC v2.14.2
  * Update to RingRTC v2.14.3
  * Update to RingRTC v2.15.0
  * Update to RingRTC v2.16.0
  * Update to RingRTC v2.16.1
  * Update to RingRTC v2.17.0
  * Update to RingRTC v2.17.2
  * Update to RingRTC v2.19.0
  * Update to RingRTC v2.19.2
  * Update to RingRTC v2.20.0
  * Update to RingRTC v2.20.1
  * Update to RingRTC v2.20.2
  * Update to RingRTC v2.20.4
  * Update to RingRTC v2.20.5
  * Update to RingRTC v2.20.6
  * Update to RingRTC v2.20.7
  * Update to RingRTC v2.20.8
  * Update calling ringtone
  * Update to RingRTC v2.20.9
  * Update to RingRTC v2.20.10
  * Update to RingRTC v2.20.11
  * Update to RingRTC v2.20.12
  * Update to RingRTC v2.20.13
  * Update to RingRTC v2.20.14
  * Update to RingRTC v2.21.0
  * Update to RingRTC v2.21.1
  * Update to RingRTC v2.21.2
  * Update to RingRTC v2.21.3
  * Update to RingRTC v2.21.5
  * Check media permissions for incoming group ring
  * Update to RingRTC v2.22.0
  * Update to RingRTC v2.23.0
  * Update to RingRTC v2.25.0
  * Update to RingRTC v2.25.1
  * Update to RingRTC v2.25.2
  * Update to RingRTC v2.26.2
  * Update to RingRTC v2.26.3
  * Update to RingRTC v2.26.4
  * Update to RingRTC v2.27.0
  * Update to RingRTC v2.28.0
  * Update to RingRTC v2.28.1
  * Update to RingRTC v2.29.0
  * Update to RingRTC v2.29.1
  * Update to RingRTC v2.31.1
  * Update to RingRTC v2.31.2
  * Stop sending legacyHangup
  * Update to RingRTC v2.32.1
  * Update to RingRTC v2.33.0
  * Update to RingRTC v2.34.0
  * Update to RingRTC v2.34.1
  * Preload media devices to avoid later delay
  * Update to RingRTC v2.34.3
  * Update to RingRTC v2.34.5
  * Update to RingRTC v2.35.0
  * Update to RingRTC v2.36.0
  * Update to RingRTC v2.37.0
  * Update to RingRTC v2.37.1
  * Update to RingRTC v2.38.0
  * Update to RingRTC v2.39.0
  * Update to RingRTC v2.39.2
  * Update to RingRTC v2.39.3
  * Update to RingRTC v2.41.0
  * Update to RingRTC v2.44.0
  * Update to RingRTC v2.44.1
  * Update to RingRTC v2.44.3
  * Update to RingRTC v2.45.0
  * Update to RingRTC v2.46.0
  * Update to RingRTC v2.46.1
  * Update to RingRTC v2.46.2
  * Update to RingRTC v2.47.0
  * Update to RingRTC v2.47.1
  * Update to RingRTC v2.48.0
  * Update to RingRTC v2.48.1
  * Add minimum frame rate constraint for screen share
  * Update to RingRTC v2.48.4
  * Force relays only if remote user is not a Signal Connection
  * Update to RingRTC v2.49.2
  * Update to RingRTC v2.49.3
  * Update to RingRTC v2.49.4
  * Update to RingRTC v2.50.0
  * Update to RingRTC v2.50.1
  * Update to RingRTC v2.50.2
  * Update to RingRTC v2.50.3
  * Calling: Add cache for relay server requests
  * Update to RingRTC v2.50.5
  * Calling: Move VideoSupport.ts to Client
  * Fix camera state after screen sharing
  * Update to RingRTC v2.52.2
  * Update to RingRTC v2.53.0
  * Update to RingRTC v2.56.0
  * Update to RingRTC v2.57.1
  * Update to RingRTC v2.59.2
  * Update to RingRTC v2.59.3
  * Update to RingRTC v2.59.4
  * Update to RingRTC v2.60.4
  * Update to RingRTC v2.60.5
  * Update to RingRTC v2.62.0
  * Update to RingRTC v2.63.0
  * Update to RingRTC v2.64.1
  * Update to RingRTC v2.65.3

  [ Richard Russo ]
  * Send zero speakerHeight when someone is presenting

  [ Chris Eager ]
  * Update message reporting to use sender ACI instead of E164
  * Update ChallengeType
  * Challenge: remove obsolete option
  * Remove DD_API_KEY from benchmark action
  * Remove Datadog release event and installer size metric

  [ Yash ]
  * release notes for 7.41
  * Update strings
  * Update DNS fallback
  * v7.43.0-alpha.1
  * Release notes for 7.47
  * Update strings
  * Update DNS fallback
  * v7.49.0-alpha.1
  * Update strings
  * Update DNS fallback
  * v7.55.0-alpha.1
  * release notes
  * Update strings
  * Update DNS fallback
  * v7.65.0-alpha.1
  * release notes
  * Update strings
  * release notes
  * Update strings
  * Update DNS fallback
  * v7.77.0-alpha.1
  * release notes
  * Update strings
  * Update DNS fallback
  * v7.83.0-alpha.1
  * release notes
  * Update strings
  * Update DNS fallback
  * v7.84.0-alpha.1
  * release notes
  * Update strings
  * Update DNS fallback
  * v7.92.0-alpha.1

  [ jimio ]
  * Polls: Longer question length and 1:1 Receive Support
  * Update twitter -> X in sticker creator share sheet

  [ Ehren Kret ]
  * Add support for receiving attachments from CDN 2
  * Keep signed prekeys for one month
  * Update chat server URLs
  * use consistent copyright notice to other repos
  * Fix styling of URLs in Group Description

  [ Alex Bakon ]
  * libsignal-net: propagate close code from manual close
  * Upgrade to libsignal-client v0.65.4
  * Notify libsignal-net on network availability
  * Upgrade libsignal to v0.65.5
  * Upgrade libsignal to 0.66.1
  * Pass proxy down to libsignal Net instance
  * Use libsignal Net without proxy on rejection
  * Upgrade libsignal to 0.67.0
  * Remove libsignal shadowing modes
  * Use new connect logic for libsignal CDSI with flag
  * Bump libsignal-client to 0.67.1
  * Revert "Bump libsignal-client to 0.67.1"
  * Handle server alerts received on libsignal auth socket
  * Enable libsignal CDSI connect logic by default
  * Upgrade libsignal to 0.68.0
  * Remove fallback CDSI implementation
  * Use libsignal key types internally
  * Upgrade libsignal to v0.71.0
  * Switch registration to use libsignal client
  * Bump libsignal-client to 0.72.1
  * Require PQ pre-keys from the server
  * Enable libsignal TLS 1.3 enforcement via config
  * Always use the websocket for chat requests
  * Start separating calls made to chat service
  * Upgrade libsignal to v0.78.2
  * Upgrade mock-server to v13.2.2
  * Upgrade libsignal to v0.78.3 and add chat noise shadowing
  * Switch remote config fetching to use new endpoint
  * Upgrade libsignal-client to 0.79.1
  * Remove non-libsignal-net Chat websocket
  * Remove unused CDSI remote config keys
  * Upgrade libsignal to v0.81.1, enable websocket compression via remote config
  * Use libsignal-net typed Chat API for lookup by username

  [ Miriam Zimmerman ]
  * Plumb through new ADM setting.
  * Fix device selection persistence bug
  * Update to RingRTC v2.48.3
  * Update to ringrtc v2.48.6
  * Add experimental Linux support for ringrtc ADM.
  * Update to ringrtc 2.48.7
  * Stub out speechEvent callback
  * Update to RingRTC v2.49.0
  * Fix crash by updating to ringrtc 2.49.1
  * Update remote configs for ringrtcAdm feature.
  * Fix "Default" mic display
  * Update to RingRTC v2.49.5
  * Update name for remote config for ringrtc ADM
  * Enable "Lower hand" suggestions
  * Bump version of ringrtc ADM prod remote config.
  * Receive side of remote mute
  * Adapt bootstrap to support two clients
  * Add integration test for call decline
  * RingRTC: Conversions from Buffer->Uint8Array
  * Calling Buffer->Uint8Array updates
  * Immediately handle audio device changes
  * Update to ringrtc v2.58.1
  * Add calling test that exercises virtual audio
  * Remove last use of Buffer in ringrtc API
  * Resolve flakiness in calling mock test
  * Tear down all audio devices
  * Update to ringrtc v2.60.7
  * Add regression test for mute consistency
  * Clarify purpose of getAndResetMaxAudioLevel
  * Clean up callMessages_test

  [ gram-signal ]
  * Remote Config flag for PQ ratchet
  * Use non-global flag for usePqRatchet
  * Add SPQR to capabilities upload.
  * Update to libsignal 0.83.0, remove passed-in requests for SPQR (now on by default)

  [ Elias Zamaria ]
  * Fix link previews for messages with emojis

  [ Alex Konradi ]
  * Update libsignal to 0.36.0
  * Integrate libsignal-net CDSI lookup and make it accessible in debug builds
  * Upgrade libsignal to 0.42.0
  * Request new ZKC-based auth credential
  * Upgrade to libsignal 0.58.0
  * Upgrade to libsignal 0.58.0
  * Target ES2021
  * Upgrade libsignal to v0.63.0
  * Use new libsignal chat connection types

  [ Jonathan Klabunde Tomer ]
  * Use /v1/accounts/whoami instead of looking up our username and link

  [ Sergey Skrobotov ]
  * unauthenticated WebSocket via libsignal: shadowing mode
  * remote config for making CDSI lookups via libsignal
  * Upgrade libsignal-client to 0.44.0 and adopt API changes
  * Prevent sending shadowing healthcheck on a closed connection
  * Add a remote config option to disable libsignal transport in prod
  * Make LibsignalWebSocketResourse an EventTarget
  * Pass `disableIPv6` setting to libsignal-net
  * libsignal authenticated websocket
  * Restore remote config before connecting to server
  * Adopt libsignal-net version with no auto-reconnect

  [ Vincent ]
  * Fix typo contribution guide
  * Fix link to Signal update location
  * Mention correct branch to rebase off of
  * Re-pin a conversation after undoing archival

  [ hackerbirds ]
  * Add verified badge to Notes to Self
  * Adjust official badge height
  * Modernize forward message modal
  * Make `onEscape` perform the back button behaviour
  * Modernize chat session refreshed modal
  * Remove legacy forward modal header CSS
  * Introduce reproducible build system on Linux

  [ Jon Seager ]
  * build: use `resolve4`/`resolve6` in `build:dns-fallback`.

  [ ayu ]
  * fix placeholder txt for last name during standalone device setup

  [ Rashad Sookram ]
  * Show loading state while joining a group call
  * Increase max video receive resolution for group calls
  * Add remote config for sending higher res screen share
  * Update to RingRTC v2.34.4
  * Increase max send resolution for screenshare
  * Update to RingRTC v2.39.1
  * Update to RingRTC v2.42.0
  * Update to RingRTC v2.44.2
  * Update to RingRTC v2.44.4

  [ Ben Biddington ]
  * Make it clear that 'Could not detect abi for version...' errors can be safely ignored

  [ Brendan Fattig ]
  * Use base64url encoding for encrypted username

  [ Sylvan Mably ]
  * Fix flaky search behaviour with minimized left pane
  * Toggle context menus on click and add active state

  [ tedgravlin ]
  * Fix README copyright year

  [ ayumi yu ]
  * Release notes for v6.36.0-beta.1
  * Update strings
  * v6.37.0-alpha.1
  * Merge signalapp/Signal-Desktop#6658
  * Merge signalapp/Signal-Desktop#6487
  * Merge signalapp/Signal-Desktop#6540
  * Merge signalapp/Signal-Desktop#6370
  * Update release notes
  * Update strings
  * v6.46.0-alpha.1
  * Release notes for 6.47.x
  * Update strings
  * v6.49.0-alpha.1

  [ Aamir Shahzad ]
  * Good Urdu Fonts Support

  [ Fedor Indutnyy ]
  * Merge remote-tracking branch 'hiqua/patch-3' into development
  * Fix typos and bugs in messages.json
  * Merge "Respect system theme in debug log modal"
  * Merge "Fix logging typo"
  * Merge "Have settings window update on theme changes"
  * Update translations
  * Update release notes for 5.19
  * v5.19.0-beta.1
  * Update translations
  * v5.22 release notes
  * v5.22.0-beta.1
  * Revert "Use focus trap for CallingLobby"
  * Update electron to 15.3.2
  * Update "What's New" for v5.25 release
  * Update translations
  * v5.25.0-beta.1
  * Update strings
  * Add release notes
  * v5.30.0-beta.1
  * Update translations
  * v5.34.0-beta.1
  * Merge https://github.com/signalapp/Signal-Desktop/pull/5788
  * Update strings
  * Add release notes for 5.38
  * v5.38.0-beta.1
  * Merge https://github.com/signalapp/Signal-Desktop/pull/5842
  * Release notes for 5.39.x
  * Update strings
  * v5.39.0-beta.1
  * Update strings
  * Release notes for 5.41.x
  * v5.41.0-beta.1
  * Update strings
  * v5.42.0-beta.1
  * Update strings
  * v5.44.0-beta.1
  * Update strings
  * Release notes for 5.45.x
  * v5.45.0-beta.1
  * Update strings
  * Release notes for 5.48.x
  * v5.48.0-beta.1
  * Update strings
  * v5.55.0-beta.1
  * Merge pull request #5976
  * Update strings
  * Release notes
  * v5.57.0-beta.1
  * Update strings
  * v5.58.0-beta.1
  * Update strings
  * Update strings
  * Update strings
  * Update strings
  * Add extra languages
  * Add release notes for 5.62.x
  * v5.62.0-beta.1
  * Update strings
  * Add release notes for 6.1
  * Update strings
  * v6.1.0-beta.1
  * Merge branch signalapp/Signal-Desktop#5753
  * Merge branch signalapp/Signal-Desktop#5276
  * Release notes for v6.7.0-beta.1
  * Update strings
  * v6.7.0-beta.1
  * Merge https://github.com/signalapp/Signal-Desktop/pull/6219
  * Merge https://github.com/signalapp/Signal-Desktop/pull/6289
  * Merge https://github.com/signalapp/Signal-Desktop/pull/6287
  * Release notes for v6.11.0-beta.1
  * Update strings
  * v6.11.0-beta.1
  * Update strings
  * Release notes for 6.16.0
  * v6.16.0-beta.1
  * Release notes for 6.18.0
  * Update strings
  * v6.18.0-beta.1
  * Merge https://github.com/signalapp/Signal-Desktop/pull/6410
  * Release notes for v6.26
  * Update strings
  * v6.26.0-beta.1
  * Release notes
  * Update strings
  * v6.27.0-beta.1
  * Release notes
  * Update strings
  * v6.30.0-beta.1
  * Release notes for v6.33
  * Update strings
  * v6.35.0-alpha.1
  * Release notes for v6.34.0-beta.1
  * Update strings
  * v6.36.0-alpha.1
  * Update strings
  * v6.42.0-alpha.1
  * Merge https://github.com/signalapp/Signal-Desktop/pull/6696
  * Release notes for 6.42.x
  * Update strings
  * v6.44.0-alpha.1
  * format
  * Merge signalapp/Signal-Desktop#6627
  * Merge signalapp/Signal-Desktop#6585
  * yarn format
  * Merge signalapp/Signal-Desktop#6585 after lint
  * Merge signalapp/Signal-Desktop#6580
  * Merge signalapp/Signal-Desktop#6561
  * Some improvements
  * Merge signalapp/Signal-Desktop/pull/6561

  [ pelya ]
  * Save current image from the gallery view by pressing Ctrl-S

  [ Mustafa Ateş UZUN ]
  * Merge branch 'main' into main

  [ Timothy Amello ]
  * Increase bubble-size in mixin usage by 12px and remove superfluous calculation

  [ Henry Wilkinson ]
  * Remove x icon

  [ Vijith Assar ]
  * link to GitHub Issues from CONTRIBUTING.md

  [ Thanh Le ]
  * Update NavSidebar.scss to use z-index from _variables.scss

  [ Artem Varaksa ]
  * Fix typo: `saftey` -> `safety` (#3470)
  * Fix typos in messages.json (#3668)
  * Default to staging SFU for non-production builds.

  [ Wes Appler ]
  * Always allow 'Note To Self' deletions regardless of time
  * Linting fixes

  [ Mahdi Nazemi ]
  * Change the highest priority Persian font to Vazirmatn

  [ bhaskar-raksahb ]
  * Updated ConversationHeader renderAvatar callback

  [ akonradi-signal ]
  * Hold CDSI lookup ACI & UAK args in one array

  [ Josh Perez ]
  * Set conversation avatar to null explicitly when missing
  * Move all status/alert dialogs into the Left Pane
  * Add interpolation for fallback dialog messages
  * Fix `:` blocking emoji insertion from emoji picker
  * Adds additional logging to boot path
  * Replace spellchecker in favor of typo-js
  * Add swoon sticker packs as blessed and known
  * Lint fixes
  * Improve UI around Voice Message limits
  * Fix for fallback update dialog
  * Move registration from redux selectors to util
  * Ensure fallback 'update available' dialog cannot stack
  * Fix new sticker pack keys
  * Move to new logo and primary blue color
  * Sort by inbox position to match phone after link
  * Search Results: Update contacts header height
  * Deprecate remaining color-signal-blue
  * Adjust iOS blue-tint and blue-shade
  * Ensure UpdateDialog closes when restart signal is tapped
  * Update quote reply color in iOS theme
  * Adjust colors for quote in composition area
  * Adjust LeftPane height when NetworkDialog pops out of view
  * Upgrade small logo icons
  * Support ultramarine convo colors from Android linked devices
  * Decouple RelinkDialog from NetworkStatusDialog
  * Use platform-specific window icons
  * LeftPane: Measure content above list to calculate list size
  * Restore 256px version of Signal logo
  * Make RelinkDialog supersede the NetworkDialog
  * Fix framework symlinks in zip file created by build
  * electron-builder patch: remove chmod for chrome-sandbox
  * Meet a11y standards for hover menus
  * Custom zip script for macOS update package
  * Wrap delivery receipt sends in conversation.queueJob
  * Drop group messages that don't change group
  * Delete right away if we already have the message
  * Prevent multiple concurrent update installers
  * Support system theme on all platforms
  * Remove unneeded entitlements
  * Update safety number change warning dialog
  * Social Graph: read-only state sync with primary device
  * Storage Service: Update local manifest version when it changes
  * Add unknown fields support to Protobuf.js
  * Don't reset panel on close of recent media pane
  * Integrate message requests with storage service
  * New message state: Partially sent
  * Error out in CI if there is a diff
  * Ensure all native modules exist outside of asar
  * Fix selectedReaction which is now always undefined
  * Outgoing call: Show safety number dialog if change detected
  * Calling: Device Selection
  * Mute conversations
  * Calling device selection: Localize 'default'
  * 1.35.1-beta.2
  * Calling: Prevent video flicker when switching audio devices
  * Message Requests: Swap Unblock/Delete buttons to match mobile apps
  * Blocking/Unblocking improvements for message requests
  * v1.35.1-beta.3
  * Calling type improvements
  * Storage Service: Write
  * Support server-determined build expiration
  * Storage logging improvements and repeat limits for stop sync
  * Storage Service Write: Tighten up validation
  * @mentions receive support
  * Don't count muted convos in badge count by default
  * Fix lint
  * Storage Service: More logging
  * @mention focus improvements
  * Render quoted mentions as text
  * v1.36.1-beta.3
  * Update translations
  * v1.36.2-beta.1
  * v1.36.2-beta.2
  * v1.36.3-beta.1
  * v1.36.3-beta.2
  * Storybook fix
  * Storage Service Write: Improved conflict handling
  * Delete @mentions on DOE
  * Calling: Picture-in-picture
  * Cleans up mute state after mute expires
  * Storage service write improvements
  * Tidy up the storage service logs
  * Calling: Lobby
  * Fixes lint
  * v1.37.1-beta.1
  * Move calling duration timer into redux state
  * Calling: Match buttons in other clients
  * Better logging for pin/unpin
  * v1.37.1-beta.2
  * Use a diff type of blur one that does not flicker
  * updateLastMessage: Use MessageController for latest data
  * v1.37.2-beta.1
  * Calling participants list
  * Improve context menus
  * Increase contrast of icons in composition area
  * Recent Media list: Round file sizes
  * Minor reaction string change in shortcuts
  * Group calling enhancements
  * 1.39.1-beta.1
  * Group Calling: Icon fix + participant list scroll
  * 1.39.1-beta.2
  * Fix tooltip bugs
  * Group Calling: Improve mute state styling
  * Group Calling: show participant name on hover
  * Force theming on tooltips for calling
  * Upgrades to RingRTC v2.8.2
  * Upgrades to RingRTC v2.8.3
  * Scrollbar styles for participant list
  * Participant list improvements
  * Group calling: fix participant hover state
  * Fixes rebase/lint
  * v1.39.2-beta.1
  * Group Calling: blocking participants
  * Handles safety number changes while in a call
  * Revs up the desktop.storageWrite2 feature flag
  * Group Calling: You is in this call
  * Fixes lint and TS warning
  * v1.39.2-beta.2
  * v1.39.2-beta.3
  * Fix CallingLobby/Screen from scrolling up conversation
  * When group call is empty you are now full screen
  * Updates locale strings
  * v1.39.2-beta.4
  * v1.39.3-beta.1
  * Clean up logging
  * v1.39.4-beta.1
  * Ensures emoji index does not exceed bounds on results change
  * Move confirmation_dialog_view to ts and React
  * Log app startup time
  * Show about info from contact profiles
  * Fixes rendering of about bio
  * Introduce conversation details screen for New Groups
  * Do not download media if in call
  * UI fixes for conversation details screen
  * Manual download of attachments with no blurHash
  * onChangeTheme: Guard against uninitialized redux
  * Improvements to Group Settings screen
  * Fix message retry and search results with mentions
  * Improve cold start performance
  * Fix for storage service profileSharing setting
  * Fix for missing replacement text in bodyRanges
  * Auto healing unreferenced quotes
  * Fix window refresh and reloads
  * Optimizations to the performance improvement changes
  * Changes display of your own name to "You"
  * Toggle between db in renderer and in main
  * Replace bunyan with pino
  * Improve conversation initial load times
  * Do not batch single saveMessage calls after start-up
  * Use classical rotation scheme for log rotation
  * Check for conversation conflicts before writing
  * Storage sync before writing
  * Fine tune the conversation load experience
  * Fix for unread syncs and ooo reactions
  * Fix for multiple at-mentions
  * v5.0.0-beta.0
  * Fix sticker creator uploads
  * Do not continue writing after stream has closed
  * Retain protections on gv1 records that match gv2 ids
  * v5.0.0-beta.1
  * v5.0.0-beta.2
  * Adds axe-storybook-testing
  * Storage service logging same
  * Fixes pinned conversations sync 
  * v5.0.0-beta.3
  * Sync mute state
  * Extra validations for storage service
  * v5.0.0-beta.4
  * Updates a11y dev deps
  * Do not populate left pane on initial link
  * Add return types for two MessageModel "getProps" methods
  * Replaces ConfirmationModal with ConfirmationDialog
  * Adds message forwarding
  * Fixes storage service validation where id already ArrayBuffer 
  * Various fixes for message forwarding
  * Do not filter body ranges if there are none
  * Allow forward of image attachment with no text
  * Send/Receive support for reaction read syncs
  * Upgrade to moment@2.29.1
  * Optimize read messages query 
  * Get the correct unread count for a conversation
  * One SearchInput to rule them all
  * Updating translation strings
  * Short circuit if there is no read reaction
  * v5.2.0-beta.1
  * Always update unreadCount for conversations
  * Always render dialogs in left pane
  * Add screensharing behind a feature flag
  * Enable screensharing flag for beta users
  * Conversation Colors
  * Screen sharing improvements
  * Colors update contact name colors
  * Update translations
  * v5.4.0-beta.2
  * Gradient dial knob improvements
  * Fix camera setting when stopping screenshare
  * Fixes view once colors
  * Fixes global chat color setting
  * Focus group description input when editing it
  * Fix screen sharing sources modal footer
  * Fix for per chat color selection
  * Revs screensharing feature flag
  * Do not start presenting if closing the screen share modal
  * Selects custom color when created
  * Fix global custom colored quote in composition area
  * Use the new Select component everywhere
  * Value in Select needs to be a string(boolean)
  * Do not focus screen share controller window on load
  * Remove isPrivate, isMe, isGroupV1, isGroupV2 from model
  * Update group name colors
  * Fix new link scenario where default color is not set
  * New top-level React root: <App />
  * Improve CallingScreenSharingController for long text
  * Removes some Backbone views
  * Update translations
  * v5.6.0-beta.1
  * Screen sharing controller localized text improvements
  * Option to send photos as high quality
  * Fix disappearing composition are during incoming call
  * Adds keyboard support to the media quality selector
  * Transcode all supported image types
  * Update uk translations
  * v5.9.0-beta.1
  * Shorten the submenu hover delay
  * Updates translations
  * v5.10.0-beta.1
  * Adds keyboard access to the finish linking phone button
  * Edit profile
  * Fix read more for long group descriptions 
  * Allow download of view once images if received in-call 
  * Support for announcement-only groups
  * Place announcement-only groups behind feature flag
  * Adds announcement group change decryption
  * Improvements to shared library components
  * Fix image contentType when transcoding
  * Allows you to turn off announcements only if already on
  * Avatar defaults and colors
  * Updates translations
  * v5.13.0-beta.1
  * Improvements to Avatar rendering
  *  Transcode heic/heif images
  * Bundle heic worker for unpacked asar
  * Fixes license headers test, adds them in
  * Faster preferences window
  * Removes old feature flags
  * New option for control over update downloads
  * Updates translations
  * v5.15.0-beta.1
  * Properly cancel image encoding
  * Disables auto-download updates on Linux
  * Add missing translations
  * Hides the little black square at the corner of preferences 
  * Do not transcode images if they meet the size thresholds
  * Fix 'install now' click after download
  * Improved Lightbox experience
  * Reduce the amount of storage service conflicts
  * Refine the clear all data experience
  * Restyle relink dialog
  * Restores ESC to close preferences
  * Remove pending update listeners prior to setting a new one
  * Fixes view once videos in lightbox
  * Allows clicking on label to edit checkbox
  * Adds additional logging to profile sharing enable/disable
  * Derive default conversation color from storage
  * Moves identicon svg to TS
  * Fixes save in lightbox
  * Fixes flakey CI
  * Streamlined system messages
  * Style the left pane scrollbar
  * Fixes no group description unless admin
  * Only log to console if process.stdout is available
  * Context isolation for About, ScreenShare, Preferences
  * Fixes contextmenu hover glitch
  * Ensure single upload for storage service
  * Adds probot/stale config
  * Import log instead of using it off of window
  * Make scrollbar overlay content in left pane
  * Fixes storybook loading
  * Enables context isolation for loading window
  * Permissions popup context iso
  * Associate form control with label for choose group members
  * Move i18n setup to TypeScript
  * Moves stringToArrayBuffer into util folder
  * Ensure that both window and SignalWindow are defined
  * Move emoji loading into TS
  * Ensure that delete logs timeout does not run after resolution
  * Moves navigateTo to util
  * Modernize ContactModal
  * Removes ToastView, new React toast
  * Auto close toasts onClick
  * Moves DraftAttachments into redux
  * Move common utils out of conversation view
  * Massively zoom in on images, adds panning
  * Moves AudioCapture into react
  * Adds open/close animations to dialogs and modals
  * Save image/jpeg images as .jpg
  * Fixes lightbox header buttons
  * Adds error dialog when voice recorder cannot start
  * Lightbox improvements
  * Fixes @mentions background for light-mode 
  * Fix background bleed through on color bubbles
  * Disallow multiline in About editing
  * Do not process records if there are none to process
  * Fix avatar popup zIndex
  * Adds touch support to lightbox
  * Fix click propagating from reaction viewer to container
  * Do not show play button for undownloaded media
  * Fix quote styles so they are uniform
  * Make triple dot menu work on really small screen widths
  * ConversationView in React
  * Adds some padding around lightbox zooming
  * Add some spacing for +10 reactions
  * Replace ringtone sound with something more chill
  * Context isolation for the debug log window
  * Render emoji like a sticker
  * Move the safety number viewer into modal
  * Actionable toasts
  * Fix safety number viewer for dark theme
  * Activate speaker view when screensharing, even while in PiP
  * Fix z-index next/prev buttons on Lightbox
  * Fix @mentions on outgoing messages
  * Refine toast styles
  * Fix safety number viewer for contact modal
  * Align single emoji send
  * Use SignalContext instead of SignalWindow
  * Remove dead css
  * Adds aria attributes to the ConversationList
  * Exclude jumbo style for single emoji in quotes or attachments
  * Center align conversation headers
  * Fix play button on videos
  * Memoize toasts to unstick them in AudioCapture
  * Animate lightbox and better touch support
  * Shows message status timestamps if available
  * Animates ModalHost overlay
  * v5.21 release notes
  * Updates translations
  * v5.21.0-beta.1
  * Resize debug log, rename save button
  * Fix clear all data
  * Release microphone immediately when cancelling recording
  * Moves the attach-file shortcut into the component
  * Do not show timestamp if timestamp matches sent_at
  * Affordances for really tall messages
  * Change electron version to v13.5.1
  * Conversation details screen for 1:1 chats
  * Close toast when action is clicked
  * Tweaks to conversation details
  * Open conversation details when clicking conversation header
  * Only focus read more in keyboard mode
  * Downgrade to electron v13.5.0
  * Reset left pane drag state whenever mouse leaves window
  * Include badgeIds when writing profile data
  * Add 100 character buffer to read more
  * Add image editor
  * Adjusts app min width to account for larger left pane
  * Do not allow attachments if there are link previews
  * Get a handle on all our z-index values
  * Release notes for v5.26
  * Media editing improvements
  * Updates translations
  * v5.26.0-beta.1
  * Various z-index value fixes
  * Fix video forwarding
  * Fixes canvas re-renders
  * Media editor minor improvements
  * Fix default conversation color overrides
  * Add some logging around setting preferred reaction emojis
  * Do not show window if launched as hidden
  * Check filename extension for heic/heif images
  * Adds all message actions to context menu
  * Always bring modified item to front in canvas
  * Wrap calling button text
  * Use the right image dimensions when saving canvas
  * Proper Japanese fonts
  * Fixes media editing undo
  * Fix sticker creator
  * Use app.getLocale to setup spellchecker locale
  * Lightbox zoom improvements
  * Disallow paste/drop images when there is a link preview
  * Fixes media editor text color selection prior to entering text
  * Hang up call when screen is locked
  * Remove env vars
  * Trim profile names when setting them
  * New left pane search design
  * Left pane design tweaks
  * Lightbox: Fix clicks outside of zoomable area
  * Fix lost focus when typing in archived message while searching
  * Only show image editing icon in composition area
  * Add some margin to zoom container in lightbox
  * Allow reactions in announcement only groups
  * Allow retry when cannot update
  * Release notes for v5.31.x
  * v5.31.0-beta.1
  * Do not attach files while voice recording in progress
  * Consolidates the search inputs
  * Ignore hardware media keys
  * Fallback for the SafetyNumberViewer
  * Japanese specific fonts
  * Removes bold from font-body-1
  * Release notes for v5.35.x
  * Updates translation strings
  * v5.35.0-beta.1
  * Process incoming story messages
  * Use a hook for the ever-updating now
  * Adjust calling pip z-index
  * Remove overflow-x from conversation list dates
  * Fix ContextMenu stories
  * Do not set conversation expire timer on incoming story msgs
  * Include authorUuid when sending replies
  * Show story replies in the timeline
  * Changes story message receiver acceptance logic
  * Adds logic around downloading stories
  * Changes story message receiver acceptance logic 2
  * Fix media not auto-downloading
  * Process text story messages
  * Adds keyboard affordance to story viewer
  * Do not add non-messages to the timeline
  * Add aria-label to all <Select /> instances
  * Fixes calling overlay z-index issue
  * Fixes isAccepted logic when calling it for the first time
  * Changes story sort order
  * Do not try to download text attachments
  * Allow outside click for focustrap
  * Force set expirationStartTimestamp on story messages
  * Move FocusTrap into the parent to allow scrolling list
  * Repair video playback in viewer
  * Adds captions in the viewer 
  * Merge signalapp/Signal-Desktop#5633
  * Merge signalapp/Signal-Desktop#5610
  * Render group stories 
  * Release notes for v5.40.x
  * Updates translations
  * v5.40.0-beta.1
  * Hidden stories list/unhide stories 
  * Drop story replies from group timeline
  * Prune the story progress effect's dependency list
  * Sync story read status from primary
  * Use useRefMerger in Input to avoid re-renders
  * Full width/height stories
  * Attach storyContext to group story replies
  * Fix story reply box interactions 
  * Ensure that we resolve attachments before displaying them
  * Move link notification to the conversation hero
  * View next unread story improvements
  * Allow multiple reactions to stories
  * Functional context menu in story viewer
  * Log better errors when unable to show attachments 
  * Fix video playback in StoryViewer for multiple videos
  * Fixes going to oldest unread story when viewing
  * Adds spacing to the story list
  * Story viewing improvements
  * Animated floating emojis
  * Fixes bugs with the story viewer
  * Merge signalapp/Signal-Desktop#5890
  * Updates translations
  * v5.43.0-beta.1
  * Merge branch 'main' into pr/5866
  * yarn.lock
  * Merge signalapp/Signal-Desktop#5866
  * Fix position of close button
  * Disable jumbomoji for story replies
  * Updates button styles for replies and views
  * Change color of placeholder
  * Adds playback bar to story viewer
  * Adds some logging to detect story playback order
  * Remove announcementGroup capability checks
  * Remove focus handler from stories icon
  * Adds keyboard shortcuts for calling
  * Adjust story replies for direct conversations
  * Always repair unexpired stories
  * Soft assert for hydrating story context
  * Upgrade react and storybook
  * Merge signalapp/Signal-Desktop#5904
  * Moves group link management actions to redux
  * Release notes for v5.47.x
  * Updates strings
  * v5.47.0-beta.1
  * Removes Inbox Backbone view
  * Create text stories
  * Revert "Counteract zoom-level changes in custom titlebar"
  * Updates donate to signal copy
  * Fix emoji picker popup z-index
  * Repair old unexpired stories
  * Adds interaction tests for components 
  * Updates strings
  * v5.49.0-beta.1
  * Sync my stories with primary device
  * Start downloading story thumbnails
  * Fix story quote custom color
  * Fixes story viewing behavior
  * Do not update unread count for story messages
  * Fix video playback controls flicker
  * Fixes getStoryView selector
  * Updates i18n strings
  * v5.50.0-beta.1
  * Fix incoming story context quotes
  * Story creator improvements
  * Fixes story reaction notification text
  * Show toast when reacting/replying to a Story
  * Adjust some types
  * DOE for stories
  * Protections on viewStory after we've unmounted
  * Add a stories toggle to Preferences
  * Use casual for mock data
  * Add unread count to the stories badge
  * Edit distribution lists via story settings menu
  * Drop incoming story messages if stories are turned off
  * Add story entry points around the app
  * Stories improvements
  * Adds debugging information to stories
  * Release notes for v5.53
  * Updates i18n strings
  * v5.53.0-beta.1
  * Ensure we are always using conversationId for story actions
  * Adds ErrorBoundary around stories
  * Delete a distribution lists members when list is deleted
  * Make story timestamps always relative time
  * Update views/replies chevron in story viewer
  * Removes sender name on story group sends in list
  * Group stories show group avatar in story list viewer
  * When reacting to a group story keep the modal open
  * Increase story list padding
  * Fix theming of close button in StoryViewer
  *  Add additional protection for story captions
  * Use video screenshot as background blur in story viewer
  * Normalize the distribution list and UUIDs iOS sends us 
  * Ensure we never fetch a deleted story
  * Ensure MyStories is part of the stories pane list
  * Improvements to sound on/off in story viewer
  * Update selectedStoryData whenever its story changes
  * Drop duplicate stories
  * Send text attachment stories
  * Contain story media within the viewer bounds
  * Aligns context menu buttons correctly
  * Sync MyStories using the ID not the name 
  * Adds error states to story images
  * Send story images/video
  * Filter out groups from signal connections
  * Drop incoming messages with a story context and no matching story
  * Place calls on top of story viewer, pause stories while in call
  * Grab new story duration whenever messageId changes
  * Sync stories sent to a group
  * Use <Message /> for group story replies
  * Do not count DOE stories in the unread count
  * Add a permanent add story button to MyStories
  * Send stories to groups capability
  * For distribution lists make sure we only use convos with uuid
  * Adjust close button positioning in story viewer
  * Pass deletedAtTimestamp into dlist db call
  * Lets users send stories to groups
  * Download your own story attachments. Hydrate story replies on receive
  * Do not allow MyStories to be deleted
  * Fixes isHidden prop from not being present in StoryView
  * softAssert that messageId is always a UUID
  * Adjust story duration
  * Do not accept stories without a name and no deletedAtTimestamp
  * Avoid race conditions when queueing a story for download
  * Fix chevron clipping in storyviewer
  * Single context menu open at a time
  * Only accept video/mp4 for story uploads
  * Add a log indicating when a reaction was added to a story
  * Mark stories as viewed if we have a view sync during modifyTargetMessage
  * Move getUntrustedContacts out of conversation_view
  * Use just the timestamp for story expiration
  * Rotate release notes for 5.56.x
  * Updates translations
  * v5.56.0-beta.1
  * Merge signalapp/Signal-Desktop#6036
  * Dark mode only for SendStoryModal
  * Fixes emoji-only rendering within a story reply context
  * Handle Safety Number changes while sending a story
  * Improvements to the MyStories row
  * Group stories should have a different timestamp
  * Allow paging through My Stories
  * Properly mark story messages as read locally
  * Assert that retried UUID is still part of dlist
  * First time My Stories post experience
  * Clear stories notification after visiting stories view
  * Queue attachment downloads when receiving a view sync 
  * @mention support for story replies
  * Change avatar story ring color for light theme
  * Adjust text stories to fit more nicely
  * Change the MyStories sort order
  * Only show message/reaction sent toast for 1:1 replies
  * Log when a story gets an expiration timer set
  * Polish up the My Stories page
  * My stories button improvements
  * Use conversationId to hide/goToChat in StoryViewer
  * Fix story group replies rendering
  * Remove group from story feature
  * UI for when read receipts are turned off
  * Change story text size to px
  * Use new story background colors
  * Do not allow replies to self story
  * Sort stories when they were read at
  * Fixes story play order
  * Fixes story viewing for reduced motion users 
  * Autoplay the hidden stories section
  * Include distribution list name on sent stories
  * v5.61 release notes
  * v5.61.0-beta.1
  * Ensure deleting conversation deletes story replies
  * Show proper distribution list name in story viewer
  * Updates stories toggle in settings
  * Do not allow send to announcement only groups 
  * Handle storyMessageRecipient updates before handling story messages
  * Reset storyReplyContext whenever a story expires
  * DOE stories when they are part of deleted lists
  * Story viewer navigation improvements
  * Fix for video stories not playing
  * Delete sent stories when you turn off stories
  * Render @mentions for group story replies
  * Fix for number of bars for group stories sent
  * Show group replies icon for stories with replies
  * Gracefully close the story viewer when we cannot find story
  * Emojify story captions
  * Fix flakey viewStory test
  * Fixes double redux data loading for story replies
  * Pause story while attempting to DOE 
  * Use group name for hidden stories
  * Update reaction last message notification text
  * Close viewer after viewing a single story
  * Open ContextMenu at correct location via keyboard
  * Fix text story creation input
  * Clean up group story replies
  * Use explicit allowlist setting for story receive
  * Link preview design for stories
  * Fix i18n typos
  * Rev stories feature flag
  * Onboarding story
  * Fixes storybook
  * Fixes My Story subtitle label in privacy modal
  * Discard invalid story replies 
  * Sending/Failed state for stories
  * Onboarding story improvements
  * StoryViewer pause improvements
  * Populate sender state correctly via story sync to group
  * Restore reply button on stories
  * Reset img error state when paging stories
  * Reset link preview tooltip state when paging through stories
  * Add emoji button to text story creation
  * Start story duration when it is a text story
  * Defensively set the signal conversation name
  * Add global setting for sent media quality
  * Handle cmd+shift+e keyboard shortcut
  * Onboarding story removal improvements
  * Moves parts of conversation view into redux
  * Moves blockAndReportSpam to redux
  * Moves startGV2Migration to redux
  * Moves sendMessage and friends to redux
  * Removes showForwardMessageModal from conversation_view
  * Removes showIdentity and showSafetyNumber in favor of redux action
  * Removes showContactModal in favor of redux action
  * Moves showStickerPackPreview to globalModals
  * Moves showLightbox to redux
  * Merge signalapp/Signal-Desktop#5960
  * Merge signalapp/Signal-Desktop#5886
  * Merge signalapp/Signal-Desktop#5636
  * Fixes lightbox selectedIndex
  * Fixes lint 
  * Do not include mp4box source in builds
  * Refresh the sticker pack manager
  * Moves saveAttachment to a redux action
  * A hybrid panel system for React & Backbone
  * Moves various panels out to ConversationView react
  * Moves ConversationDetails to react panels 
  * Merge signalapp/Signal-Desktop#4791
  * Moves show all media to react pane
  * Moves message details into React pane land
  * Removes ReactWrapperView
  * Fix GlobalModalContainer missing types
  * Properly retry story messages
  * Fixes lint on main
  * Simplify first time set my stories privacy
  * Merge signalapp/Signal-Desktop#5961
  * Removes Backbone.View and jQuery
  * Guard against composer setting quote while conversation switched
  * Clears @mentions when clearing draft
  * Make composer duck aware of the conversation it is in
  * Fix error where removePreview is called without a conversationId 
  * Remove a message from lightbox if its been DOE
  * Do not fire SELECTED_CONVERSATION_CHANGED more than once
  * Always download link preview image
  * Scroll to message if clicking on opened conversation
  * Make stories accessible with collapsed left pane
  * Enables ContextIsolation
  * Fix about, preferences, debug log windows
  * Adds debugging utilities in dev/beta environments
  * Fixes @mention draft changes
  * Fixes swedish date i18n
  * Enables debugging utilities in beta, alpha, dev
  * Fixes cmd+shift+r keyboard shortcut 
  * Fixes storybook for AudioCapture
  * A11y tweaks to the left pane and timeline
  * Fixes audio recording
  * Fixes link preview send in stories
  * Adds quick reactions to stories
  * Close story viewer when DOE a story
  * Let users search and go back to a small left pane
  * Moves link previews into the composer
  * Fixes link preview UI
  * Fixes notification text for story reactions
  * Link preview UI improvements
  * Fixes two translations
  * Notification for failed story sends
  * Fixes css for link previews
  * Merge signalapp/Signal-Desktop#6301
  * Merge signalapp/Signal-Desktop#6304
  * Merge signalapp/Signal-Desktop#6303
  * Release notes for 6.8.0
  * Updates i18n strings
  * v6.8.0-beta.1
  * Updates license year on README
  * Adds time stickers to MediaEditor
  * Use Intl.DateTimeFormat instead of moment for date formatting
  * Merge signalapp/Signal-Desktop#6319
  * Merge signalapp/Signal-Desktop#6320
  * Merge signalapp/Signal-Desktop#6321
  * Render replies to 1:1 text stories
  * Show story rings around avatars in send story modal
  * Include additional logging around onboarding story
  * Adds some logging around draft clearing
  * Adds storage service logging around story distribution lists
  * Fixes left pane sorting when messages come in from the future
  * Fixes timestamp tests in CI for different timezones
  * Enables sandbox on about window
  * Receive support for editing messages
  * Merge signalapp/Signal-Desktop#6345
  * Delivery receipt support for edited messages 
  * Updates i18n strings
  * Updates WhatsNew
  * v6.13.0-beta.1
  * Remove GroupContext proto
  * Send edited messages support
  * Enables sandbox for all windows except main
  * Fix missing window.i18n
  * Replace left pane button aria-label
  * Adds keyboard-mode outline to Checkbox
  * Do not close forward modal on outside click
  * Moves calling device settings to use Select component
  * Adds role=article to all messages 
  * Do not nest buttons in the conversation header
  * Adds role heading to the timeline date headers
  * Fix button title for emoji search close button
  * Focus first selectable element in preferences pane
  * Adds page up/down home/end keyboard support to timeline
  * Release notes for 6.17.x
  * Updates i18n strings
  * v6.17.0-beta.1
  * Link choose device label with input
  * Fix custom gradient keyboard mode
  * Better contrast ratio for modal close button and tabs
  * Adds fieldset/legend to preferences
  * Moves SQL to full IPC
  * A super tab idea
  * Use aria-pressed on sticker header buttons
  * Announce loading group create
  * Use aria-expanded for avatar popup menu
  * Use aria-pressed on emoji picker
  * Improves contrast within chips
  * Fix contrast between placeholder text and background for search input
  * Use standard Tabs component for PendingInvites 
  * Adds proper aria-label to gradient knobs
  * Adds a pop and whoosh sound for message receive/sent
  * Adds role=status to link in progress step
  * Fixes edit message conversation not being the right convo
  * Converts wav files to ogg
  * Enhance super tab
  * Send proper sync message for edit msg in all contexts
  * Normalize diacritics when searching conversations
  * Splits up current message from edited messages in modal
  * Show error state when QR code times out loading
  * Show who reacted in aria-label of reactions
  * Updates base translation
  * Adds keyboard shortcut for editing last message sent
  * Maps sent edit message timestamps to their original messages
  * Decouples the in-chat sounds from the notification sound settings
  * Use Promise.race instead so both promises do not resolve
  * Only apply certain keyboard shortcuts in situations
  * Fix RangeError invalid timestamp 
  * Whats new
  * Updates strings
  * v6.20.0-beta.1
  * Moves conversation.getProps out of models
  * Do not fetch link previews when editing message with attachment
  * Remove quote when editing a message
  * Do not set isRecipientUpdate for edit message sync sends
  * Do not fetch link preview when edited message does not contain preview
  * Adds logging to see what server timestamp is for edit messages > 24hr
  * Adds sentAt to notification logging
  * Removes diacritics from @mentions
  * Show a warning dialog when sending first edited message
  * Adds an edit message entry point in message details screen
  * Announce syncing in Preferences
  * Enables edit messages for beta version
  * Always move focus to new panel when showing
  * Moves shortcut guide to its own css component
  * Do not optimistically set active_at & timestamp when sending edit
  * Set aria-selected property for chat colors
  * Adds keyboard shortcut to open context menu on messages
  * Show time of edit in message timestamp
  * Updates strings
  * Release notes for 6.23
  * v6.23.0-beta.1
  * Lets you edit note to self indefinitely
  * Show dates in edit history modal
  * Converts ConversationHeader to useSelector
  * Do not trigger notifications for edited messages 
  * Fixes message clustering when there is an edit between
  * UI Improvements to the edit history modal
  * Adds logging for edit syncs processing
  * Attach composition keyboard handlers only when quill has focus
  * Update mentions regex to cover diacritics
  * Moves panel header into the panel component
  * Fixes click events on the incoming call bar
  * Apply out of order operations to edited messages
  * Fixes calling participants list popup
  * Removes groupv1 protos
  * Adds transitions to panels
  * Upgrades electron to 25.3.2
  * Graceful calling lobby handling
  * Aligns edit buttons with emoji picker
  * Capitalize Edited in message bubbles
  * Do not confirm DOE or edit until it is processed
  * Allow link previews to be added to an edit if original msg had no links
  * Reorders useEffect so that draft content is retained
  * Disallow paste image when editing
  * Process out of order edits
  * Tracks send state for edited messages
  * Fix message details scrolled down
  * Do not confirm messages until we have handled them 
  * Bump up the edit send/receive timers to 24hr/48hr
  * Always fetch link preview on edit message
  * Add out of order mock test for read syncs
  * Change text of send edit warn dialog
  * Fix out of order edit message read syncs
  * DRY up the message receive timing validation
  * Use read sync timestamp to do unread bookkeeping
  * Improvements to the media editor
  * Media editor polish
  * Debug onReadMessage call with read sync timestamp
  * Fix: media editor nits
  * Replace MessageController with MessageCache
  * Account for stories that are sometimes not found in the database
  * Do not drop edit messages if we get an invalid attachment
  * Updates strings
  * Release notes for 6.35
  * Focus keyboard shortcut for edit message
  * Fixes for media index
  * Save modified messages for edits
  * Fix softAssert when sending reaction

  [ Yaacov Akiba Slama ]
  * Add the ability to pass to electron --disable-features values

  [ NetSysFire ]
  * add issue form
  * use the correct branch since the repo has since changed to main

  [ Poren Chiang ]
  * Make default font stack generic
  * Update sticker creator font stack

  [ Mustafa UZUN ]
  * fix: json key name

  [ Mustafa Uzun ]
  * fix: initialize typo

  [ dasois ]
  * feat(input): added ascii to emoji conversion

  [ Nick Rayburn ]
  * Ignore message metadata on triple click

  [ wyvurn-h4x3r ]
  * Update StoryListItem.tsx

  [ sha-265 ]
  * Fix text alignment for RTL messages (#2597)
  * Fix text alignment for RTL quoted messages (#2980)
  * Add RTL support for author name in quote (#2594)
  * Add RTL support in conversation list message text (#3539)
  * Fix padding in compositor for RTL langauges

  [ Yusuf Sahin HAMZA ]
  * Improve archive helper text
  * Add copy option to triple-dot menu of messages

  [ Evan Hahn ]
  * Add 9 dangerous extensions and ignore trailing dot
  * Upgrade node-fetch to latest version, v2.6.0
  * A few CSS fixes for message bubbles
  * Remove scrollbar from author title in quotes
  * Fix local-development.json instructions
  * Fix instructions for running libtextsecure tests
  * Minor: remove a commented-out `debugger`
  * Minor: fix double import in textsecure.d.ts
  * Add test for Stickers.redactPackId 
  * Add gradient for call screen controls
  * Minor: avatars should not be selectable
  * Minor: remove `any`s from `createTaskWithTimeout`
  * Update to Lodash v4.17.20
  * Improved link verification logic.
  * A few logging improvements
  * Verify sticker data in getDataFromLink
  * Improve nested path detection across app
  * Improve parsing of sgnl:// hrefs
  * Widen the set of link previews which can be received
  * Sticker improvements
  * Fix issue with dates on inbound link previews
  * Upgrade node-sass to v4.14.1
  * Fix inbound link preview images
  * More descriptive notification/left pane text
  * Show group names in notifications, and only show the latest
  * Add tests: `localhost` is a "sneaky link"
  * Speed up `lint-deps`
  * Cleanup and remove unused chunks of libsignal-protocol
  * Windows: mark downloads as "from the internet"
  * Add sound effect for notifications in Linux
  * Fix error when node-fetch does redirects without a CA
  * Upgrade node-fetch to v2.6.1
  * Fix syntax error in subwindow HTML
  * Remove outdated CI badges from README
  * Add software acknowledgments, link to them from About window
  * Add debug logging to conversation view when starting outbound call 
  * Remove unused @types/agent-base dependency
  * Support APNGs in Sticker Creator
  * remove yarn lint-windows
  * Parallelize `yarn ready`
  * Proper call requests for callee
  * Fix a UUID variable holding an E164
  * Remove unnecessary non-null assertion
  * Outbound link previews
  * Only fuzzy linkify TLDs in place in 2010
  * Remove IP addresses from "sneaky" link detection
  * Minor: remove two `any`s from `<CallScreen>`
  * Improve small icons on Windows
  * Call requests: caller
  * Reject HTTP URLs when loading link previews
  * Remove unnecessary non-null assertion from Message#send
  * Upgrade Electron to v8.5.2
  * Remove type cast from ConversationModel#isMe
  * Ensure that clicking a link does not close the conversation
  * Use more exact type for addCallHistory
  * Mark long hrefs or those with invalid characters as sneaky
  * Outbound link previews: more lenient loading
  * Ensure left pane properly handles just pinned/archived
  * Fix error thrown on message retry
  * Consolidate `sleep` usages into a tested utility function
  * Add timeout to a link previews test for Windows CI
  * Update calling PiP icons
  * Remove unused `callState` prop from <CallingLobby>
  * Minor: fix calling button <Tooltip> warning
  * Minor: remove `WhatIsThis` type from storage.onready
  * Clean up <LeftPane /> tests
  * Use combineReducers as Redux recommends, removing an `any`
  * Add `useRef()` React Hook to lint rules
  * Tidy up link previews types
  * Remove some `any` casts for "smart" components
  * Rewrite <CallScreen> component with hooks
  * Rewrite Message model tests in TypeScript
  * Remove ESLint no-continue rule
  * Remove EditorConfig
  * Fix missing dark mode overrides when in keyboard mode
  * Hide call buttons when on call
  * Convert emoji actions to use redux-thunk
  * Add license headers across the project
  * Remove runtime type checks from calling service
  * Update `license` field in package.json and bower.json
  * Test calling's toggle actions, run tests in Electron
  * Add comments and tests for libsignal-protocol curve validation
  * test-electron: wait to run tests until protos are ready
  * Use thunks for calling action creators
  * Call screen footer styling improvements
  * Add transparent gradient to ongoing call header
  * Add `getOwn` utility function
  * Upgrade to Emoji v13
  * Redux state: Allow multiple calls to be stored
  * Calling lobby: show your blurred avatar instead of other person's
  * Improve missingCaseError error message
  * Remove AGPL headers from GitHub template files
  * Add OS to User-Agent
  * Initial group calling support
  * Add audio mute indicator for local preview and group remote participants
  * Add group call update to DataMessage
  * Minor: fix typo in WebAPI error message
  * Fix TypeScript error in <CallingPipRemoteVideo>
  * Increase timeout in license comments test\\\
  * Calling: mirror local video in PiP and lobby
  * Upgrade to RingRTC v2.8.2 RC.6
  * Group call video rendering performance improvements
  * In conversation header, only show video button for group calls
  * Fix SCSS auto-formatting issue
  * Group calling: Peek into a group call
  * Add list of participants to the lobby, and add basic blocking for max participants 
  * Group calling: disable local camera when call disconnects
  * Minor: fix group call remote participant name background
  * Fix call header title for direct calls
  * Minor: rename a <CallingHeader> prop for clarity
  * Minor: use enums instead of numbers in <CallScreen> stories
  * Center local video in calling lobby
  * Only allow group calling in beta versions
  * Update call buttons to match mobile
  * Show toast when group call is reconnecting
  * Minor: remove a typecast from <CallingPip>
  * Don't send messages to blocked group members
  * Prevent calling PiP from going off-screen
  * Show active speaker in group calling PiP
  * Send group call update messages when joining/leaving a call
  * Group calling: tell RingRTC about our rendered resolutions for perf
  * Calling selectors are now based on the root state
  * Group calling participants refactor
  * Fix mutation in CallingParticipantList component
  * Remove `any` from GroupCallRemoteParticipant stories
  * Log media access status to help debug user reports
  * Update to RingRTC v2.8.5
  * Fix logging when updating audio output device
  * yarn test-electron: automatically pick up test files
  * Dark theme for calling device selection
  * Update to RingRTC v2.8.6, fixing group calling audio bugs
  * Don't peek group calls if feature flag is disabled
  * Group calling SFU URL should be configurable
  * Put group calling behind a remote feature flag
  * Add group calling events to the message timeline
  * Update to RingRTC v2.8.7
  * Remove rounded corners from group calling PiP
  * Minor: fix year in license comment 
  * When joining an empty group call, the button should say "Start Call"
  * Fix lint warning in Conversation model
  * Fix duplicate timeline items for group call events
  * Send group call events to linked devices
  * Handle group calling event sync messages
  * Update group membership for a group call when it changes
  * Disable camera when quickly toggling the call lobby
  * Fix license information in README
  * Windows: prevent PiP avatar from being dragged
  * Call lobby: render local preview at camera's aspect ratio
  * Minor: remove unused exports from calling service
  * Incremental improvements to header
  * Update license tests in preparation for new year
  * Minor: use `clearTimeout` instead of `clearInterval` in <Message>
  * Minor: mark reducer arguments as Readonly
  * Minor: remove unused expiration-related CSS
  * Avoid unnecessary re-render on CHECK_NETWORK_STATUS
  * Fix sticker creator window title
  * Check leaks in Mocha
  * Fix layout of "this person is in your contacts" tooltip
  * Fix link previews for YouTube Music
  * Skip redundant `lint-deps` checks on CI
  * Fix logging batcher max size
  * Update macOS app icon for Big Sur
  * Make quote thumbnail full height
  * Link previews: show full size image less often
  * Update GitHub template to steer feature requests to community forum
  * Bump logging batch size from 20 to 500
  * Improve window activity detection, improving notification delivery
  * Hide direct call notification when window is active
  * Upgrade TypeScript to the latest version, v4.1.3
  * Move `getDefaultConversation` into a shared test folder
  * Update README and ACKNOWLEDGMENTS license years for 2021
  * Simplify stubs in Quill tests
  * Remove two unused type definitions
  * Fix CI by updating license years and fixing a type error
  * Use typescript-eslint's no-useless-constructor ESLint rule
  * Continue to show participants even when the blocked dialog is up
  * Use consistent User-Agent when uploading debug logs
  * Use flexbox to lay out main header
  * Clean up migrateColor utility
  * Fix "Contacts" header sizing in search results
  * Update link preview styles to better match designs
  * Share group calling frame buffers to reduce memory usage
  * Group calling: add overflow area
  * Group calling: add speaker view
  * Fix a typo in comment
  * Update read-last-lines to v1.8.0
  * Remove obsolete <Message> story
  * Properly handle sending videos which cannot be played locally
  * Patch over slow debug log rendering
  * Update Bunyan to the latest version, v1.8.15
  * Prefer `type` to `interface` and add an ESLint rule
  * Add some types to window and window.Signal
  * Update Sharp to the latest version, v0.27.0
  * Don't let quote thumbnails get taller than the quote itself
  * Convert dock_icon.js to TypeScript
  * Fix sticker creator upload warning
  * Upgrade to Electron 11
  * Remove implicit `any` from Redux store creation
  * Remove unnecessary query param for /v1/certificate/delivery endpoint
  * Convert logging infrastructure to TypeScript
  * Fix missing avatars in groups
  * Bugfix: show images in quotes at right size
  * Fix typing bubble in group chats
  * Remove some unnecessary files from builds
  * Upgrade blueimp-load-image to v5.14.0
  * Remove new temporary SQLCipher build files from bundled app
  * Add margins to group call overflow area
  * Hide title bar on macOS
  * Don't render links (or link previews) for blocked or unapproved conversations
  * Fix comment typo
  * Fix error on quit when trying to message closed window
  * Don't cache node_modules in CI
  * Remove redundant lint checks from CI
  * Upgrade libsignal-client to fix CI issues
  * Add aria-label to incoming call bar buttons
  * Add an assertion when updating conversations; update cleanData
  * Fix alignment of "about"
  * Upgrade Sinon to latest version, v9.2.4
  * On macOS, fix incoming call bar
  * When initializing Redux, add 2 missing properties to conversations slice
  * Allow PSD uploads over 6MB
  * Replace "more" icon in header
  * Fix horizontal jitter on loading screen
  * Fix "URI malformed" crashes on Windows
  * Mark discoveredUnregisteredAt as optional
  * Disable search keyboard shortcuts when main header isn't shown
  * Shorten searchConversations SQL query
  * Upgrade protobufjs to 6.10.2
  * Revoke object URLs in two error cases
  * Create <Button> component and use it in <GroupV2JoinDialog>
  * Add "new conversation" composer for direct messages
  * Disabled <Button>s should not use cursor: pointer
  * Fix typo in buildGroupProto error message
  * Update conversation header design
  * Add conversation header button hover states
  * Use missingCaseError in <CallingPipRemoteVideo>
  * Support for creating New Groups
  * Update group limits error message
  * Update font values per Design's recommendations
  * In <ContactPills>, use new "scrollToBottom" helper
  * Disallow group names longer than 32 extended graphemes
  * macOS: make conversation and main header draggable
  * New Group administration: update title and avatar
  * Error if encrypted group title is too long
  * In Redux action, log error on failure to create group
  * Trim group titles when creating or editing
  * Storybook: allow optional chaining
  * New Group administration: Add users
  * Enable New Group settings for everyone; remove desktop.gv2Admin feature flag
  * Increase font sizes for body 2, subtitle, and caption
  * In left pane and "add group member", sort E164-only contacts to the bottom
  * Fix styling for left pane: muted conversations and message requests
  * Group settings screen: fix focus styling for panel rows
  * Improve types in `ConversationView#showConversationDetails`
  * Speed up `yarn dev` TypeScript transpilation
  * Respect users's "reduced motion" preference for smooth scrolling
  * Check for conflicts with group IDs
  * Increase readability of disappearing messages info text in dark mode
  * Refresh profiles on app start (at most every 12 hours)
  * Style disabled <GroupTitleInput>
  * Clean up isSearching selector
  * Auto-scroll the left pane less frequently
  * Keeping profile data around longer in the face of errors
  * Attempt to fix flakiness with window title assertion
  * Fix main header sizing issues on Linux
  * Fix error on message details screen with audio messages
  * Move audioPlayer duck test
  * Prefer author ID to phone number for message menu trigger ID
  * Hide long message attachments in quotes
  * Fix bug where we'd remove profileKeyCredentials incorrectly
  * Add type to ConversationModel's contactCollection
  * Remove redundant listenTo calls in ConversationModel#fetchContacts
  * Add BORDERLESS and GIF attachment flags to proto
  * Add "_test" suffix to environment test file
  * Add enum parser utility
  * Clean up iterable utilities
  * Don't set or read reaction target phone number
  * Minify SVGs and PNGs to save 95 kilobytes
  * In conversation hero, show “No group in common” if you have no common groups and no phone number
  * Add Zod for runtime and compile-time type checking, use it in logging code
  * Add types for <ConversationHeader>'s mute options
  * Move refresh_sender_certificate.js to TypeScript
  * Periodically refresh both sender certificates
  * Fix replies to image-only messages
  * Pressing Esc in left pane composer menu should go back
  * Improve left pane UI when loading search results
  * Storage service: save new AccountRecord fields to disk
  * Don't let users leave groups if they're the only admin
  * Use UUID-only sender certificate when applicable
  * Remove ability to set or read author E164 for new quotes
  * Remove unused isAccepted property from ConversationType
  * Add conversation hero to <Timeline> stories
  * Add affirmative and destructive secondary button variants
  * Reject reactions with invalid number of graphemes
  * Put GroupTitleInput.scss in the right place
  * Fetch sender certificates on-demand
  * Upgrade Sharp to v0.28.1
  * Add reusable <Modal> component, use with <Alert>
  * Remove old comment about await in loop
  * Fix getUnprocessedCount error message
  * Merge branch 'jost-s-bugfix/keep-message-menu-button-visible' into development
  * Merge branch 'hiqua-no_lower_limit_query' into next-beta
  * Merge branch 'hiqua-fix_hanging_search' into next-beta
  * Merge branch 'WhyNotHugo-python3' into next-beta
  * Ensure storage is ready before starting sender certificate service
  * Fix secondary-affirmative button text color
  * Show common groups in contact modal
  * Fix 1:1 message to/from in search results
  * DRY up ConversationView callbacks
  * Profile name spoofing dialog
  * Modernize <Avatar> component code, fix an overflow bug
  * Don't let users select loading message text
  * Add type for ConversationModel `profileAvatar`
  * Fix hidden trash icons in group details screen
  * Rename ConversationModel#getAvatarPath for clarity
  * Upgrade Prettier from v2.1.2 to v2.2.1
  * Don't create an unnecessary array in conversation batcher
  * Remove CDS feature flag
  * <Message> shouldn't be a PureComponent. It re-renders every time
  * Make <Avatar> blurrable
  * Take an author object in <Message>
  * Don't mark conversations as unregistered unless there's no UUID
  * Mark links with a password as "sneaky"
  * Ensure group details screen has the latest data
  * Initial support for job queue
  * Blur avatars of unapproved conversations
  * Show "no groups in common" warning for relevant message requests
  * Main header: ensure that your avatar is unblurred
  * Remove 25 trivial WhatIsThis types
  * Render disappearing message timers generically
  * Remove lineNumber from lint exceptions
  * Fix sendToIdentifier error message
  * Use ES2020 type definitions
  * Fix blurred avatars in message details
  * When incoming message should've been sealed sender, reply with profile key
  * Fix render loop in <ConversationHero>
  * <SmartTimeline> doesn't need to "filter" 3 of its smart components
  * lint-deps should skip storybook-static/
  * Upgrade Grunt to v1.4.0
  * Upgrade Lodash to latest version, v4.17.21
  * Fix HTML ID of step for clear-data template
  * Make it more difficult to blur avatars
  * Center non-square avatar pictures
  * Fix non-default disappearing message timers on group details screen
  * Fix "open conversation menu" keyboard shortcut
  * Shorten spell check preferences string
  * Fix inaccurate numbers on group details screen
  * Remove many instances of deprecated url.parse
  * Fix crash when quickly closing debug log window
  * Remove useless set of message recipients
  * getMessageById query should only select necessary field
  * Iterables: add and use `filter`
  * Use timestamp instead of full model for tap-to-view age outs
  * Remove unsupported auto-launch setting on Linux
  * Add type to WebAPI error message
  * Add `concat` iterable utility
  * Improve UI performance for no-op profile fetches
  * Fix composition input layout with lots of whitespace
  * Fix <Modal> footers with long-text or lots of buttons
  * Update Babel dependencies to allow `import type`
  * Remove 4 unused database functions
  * Message Requests: Add new "Report spam and block" button
  * Group name spoofing warning
  * <Modal>: fix button footer for "important" modals
  * Add license headers to all files in stylesheets/components/
  * Typing bubble avatar should not use cursor: pointer
  * Don't show name collisions for system contacts
  * Fix error in <Timeline> stories
  * Fix sending of group messages to empty groups
  * Clean up aptly.sh
  * Fix link preview race condition
  * Fix globbing bug in aptly script
  * Update RingRTC to v2.10.4
  * aptly.sh: comment out one-time commands
  * Fix `<CallScreen>` stories
  * Edit group title/description: fix focus issues
  * Call toasts should be atop call headers
  * Add hover and focus states to modal X button
  * Compute provisioning URL in separate function
  * Upgrade Backbone to v1.4.0
  * Remove unused `window` option from ConversationView constructor
  * Fix isGroupV2 type error
  * Add types to ConversationView where trivial
  * Link previews: clean up AbortSignal types
  * Remove references to non-existent `messageExpired` action
  * Ensure we always set expiration timer
  * Remove deleted messages from Redux search state
  * Fix unmounting of inbox view
  * Disappearing message cleanups
  * Emojify and linkify group descriptions
  * Backfill missing expire times for incoming messages
  * Upgrade from Electron v13.1.2 to v13.1.3
  * MessageController: return all messages by sent at, not just 1
  * Use POJO instead of MessageModel in ConversationView quote logic
  * Fix React warning when mounting `<App>`
  * Clean up MessageModel group_update
  * Remove redundant prop from `<MessageDetail>` props type
  * Format HTML files with Prettier
  * Update translations
  * v5.7.0-beta.1
  * Enable devtools for beta users
  * Group calling: show avatar if we haven't received video yet/in awhile
  * Fix: clean up batcher timeouts in all cases
  * Add type for second parameter of createSentMessage
  * Upgrade zkgroup to v0.7.3
  * Add `reduce` iterables utility
  * Skip double save with sync message that has errors
  * A couple cleanups in createSentMessage
  * Officially support the system tray on Windows
  * Officially support the system tray on Linux, in beta only
  * Add "viewed" receipt type to protos
  * Fix types when creating ephemeral messages for DOE and reactions
  * Improve readability of image captions
  * Move message selector tests to the right place
  * Improve type for ConversationModel#setProfileAvatar
  * Don't expire incoming expiration timer updates
  * Clean up "can reply" logic, add tests
  * Disable consistent-return lint rule in TypeScript
  * Disable tooltip on emoji
  * Convert ConversationModel tests to TypeScript
  * Handle incoming "viewed" sync messages
  * Fix undesired maximize on startup
  * Upgrade Electron to v13.1.6
  * Upgrade to TypeScript v4.3.5
  * Clean up app/*.js when running clean-transpile
  * Speed up a link preview fetch test
  * Add `array-type` TypeScript ESLint rule
  * Update installation instructions in readme
  * Audio messages: move countdown under waveform
  * Refactor outbound delivery state
  * Update sealed sender icon
  * Remove delete button from message details screen
  * Make message metadata non-selectable
  * New file with prettier-only revisions for `git blame`
  * Refactor outbound delivery state, take 2
  * Message details: group by send status, including viewed state
  * Combine DeliveryReceipts and MessageReceipts modifiers
  * Update translations
  * v5.11.0-beta.1
  * Remove unused expiration-change event
  * Show read/viewed even after read receipts disabled
  * Remove unused privacy.d.ts file
  * Rename "view sync" to "view once open sync"
  * Remove unused Mocha test coverage tool
  * Use different timeline timer icon in dark mode
  * Fix padding on group title input in left pane
  * Upgrade Sinon to v11.1.1
  * Upgrade @typescript-eslint dependencies to squash warning
  * Pull down Transifex languages more reliably
  * Add stories for <CallingNotification>
  * Retry outbound read syncs for up to 24 hours
  * Fix disabled timer icon in group details
  * Show "unplayed" dot on outgoing audio messages
  * Fix send sync message bugs
  * Show window titlebar in test
  * Replace MessageModel#isUnread with isMessageUnread utility
  * Mark many of SendMessage's arguments as readonly
  * Show additional data in debug log header
  * Decrease GPU usage when window is invisible
  * Remove unused getExpiresAt function
  * Remove the word "receipt" from read syncs code
  * Remove "delete for everyone" option from failed messages
  * Remove unused ConversationModel#getName
  * Convert the loading window to TypeScript
  * Fix tooltip placement bugs by upgrading Popper
  * Remove `tar` dependency\
  * @mentions notifications
  * Fix React warning in `<CallingButton>` stories
  * Fix extra prop in <AvatarPopup>
  * Use `aws` in `$PATH` for aptly deploy
  * Incoming call bar design updates
  * Add more logging for view-once message interactions
  * Show "unplayed" dot on incoming audio messages
  * Better housekeeping for link previews
  * Fix broken link previews
  * Update screensharing icon
  * Make isEditingAvatar impossible unless you're on the right step
  * ConversationView: some simple type improvements
  * Handle maxGroupCallRingSize remote config flag
  * Send viewed receipt when you start listening to an audio message
  * Update RingRTC to v2.11.0
  * Update better-sqlite3 types
  * Improve @mentions tokenization
  * Update call lobby UI to match new designs
  * Attempt to fix `<ConversationHero>` re-rendering
  * Call lobby: don't flip avatar when video is off
  * Conversation header: fix check if anyone else is in the call
  * `<ConversationHero>`: only call `onHeightChange` when certain props change
  * Receive rings for group calls
  * Keep reaction poppers visible at all times
  * Make group call participant titles unselectable
  * Speed up `lint-deps` slightly
  * Upgrade p-queue to v6.6.2
  * Cancel link preview loading when unloading conversation view
  * Add type for ConversationModel#getGroupV1Info
  * Preserve blob content type when stripping EXIF data
  * Fix icon clipping on calling header buttons
  * Restore "wave" typing indicator animation
  * Let users ring members when starting a group call
  * Log errors when jobs fail
  * Add `durations` utility for computing durations
  * `ConversationView` shouldn't load link previews after unload
  * Fix unintentional removal of group call without ringer
  * Update translations
  * ESLint: allow `for..of`
  * Add "how to apply these terms to your new programs" section to license
  * Update release notes for v5.16 release
  * v5.16.0-beta.1
  * Fix incorrect comment in `JobQueue#add`
  * Speed up left pane message preview for long messages
  * Handle signal.me links
  * Improve performance when rendering many emoji
  * Handle missing `Retry-After` header with challenge errors
  * Handle `null` values in read sync jobs
  * Remove unnecessary `Array.from` from `markConversationRead`
  * Upgrade @typescript-eslint dependencies to v4.30.0
  * Retry outbound "normal" messages for up to a day
  * Update `groupMediaItemsByDate` test to (hopefully) improve reliability
  * Hide "leave group" button if you've already left
  * Update RingRTC to v2.12.0
  * Properly remove `data` from written draft attachments
  * Strip Exif data without Sharp
  * Fix rendering of long names in `<ProfileChangeNotification>`
  * Remove extra license header comment from a story
  * Fix rendering of long names in `<DeliveryIssueNotification>`
  * Use `missingCaseError` in `groupMediaItemsByDate`
  * Move `getMessageById` next to `getMessagesById`
  * Add stories for timeline notifications with long names
  * When a job fails, respect the `Retry-After` header if applicable
  * Don't ring large groups
  * Support `??` operator in Storybook
  * Prevent outbound group ring if the feature flag is disabled
  * Make sure RingRTC has our UUID
  * Fix when outbound message expire timers are set
  * Styling adjustments to timeline notifications
  * Fix error in `<ConversationListItem>`
  * Ensure messages are sent in order, even with errors
  * Update reaction picker visuals
  * Fix reactions i18n key
  * Let users customize the preferred reaction palette
  * Make <ReactionPicker> skin tone story more obvious
  * Save skin tone changes in reaction picker
  * Fix outbound ring cancelation in lobby
  * Update to new provisioning URL scheme
  * Fix comment above `StorageAccessType`
  * Preferred reactions: store raw emoji, gate on feature flag
  * Handle missing conversation in SQL migration 41
  * Update eslint-plugin-mocha to 9.0.0
  * Attach GV2 info to sync messages, if present
  * Design updates to calling lobby
  * To fix Storybook, make `<Message>` take `renderReactionPicker`
  * Show recent emoji in the customize reaction emoji picker
  * Log message send errors, if present
  * Move `MAX_MESSAGE_SIZE` assertion
  * Respect "rules of hooks" in `<SmartCustomizingPreferredReactionsModal>`
  * Add "call back", "call again" buttons to timeline
  * Allow duplicates in reaction palette
  * Make the dots in the reaction picker's "more" button circles
  * Remove `FontFace` type definitions
  * Fix `<UniversalTimerNotification>` stories
  * Visual tweaks for reaction customization
  * Read and write preferred reactions to storage
  * Remove unnecessary props from `<ContactName>`
  * Update title text for reaction customization
  * Remove unnecessary `any` casts from `ts/Crypto.ts`
  * Remove unnecessary disables of `consistent-return` lint rule
  * Upgrade electron-mocha to v10.1.0
  * Improve `yarn test-electron` experience
  * Make `onHeightChange` a required prop of `<ConversationHero>`
  * Recompute hero row size when it appears
  * Support emoji 13.1
  * Fix lint error in <Linkify> stories
  * Ensure `getLastConversationPreview` never returns expired messages
  * Improve types for `ConversationType`'s `lastMessage`
  * Improve staged attachment designs
  * Fix `<Modal>` scroll event handler
  * Upgrade RingRTC to v2.13.1
  * Notification improvements
  * Properly initialize session reset send states
  * When a group call starts, show an OS notification
  * Fix compile error: use `bytesToUuid` in calling service
  * Draw attention even if notifications are otherwise disabled
  * Fix inversion of audio notification preference
  * Remove unused "messageRetry" send type
  * Improve handling of 413 HTTP responses
  * Upgrade zkgroup to v0.8.1
  * Poll for devices when joining a group call
  * Import `AudioDevice` and `VideoFrameSource` directly from RingRTC
  * Add alt text for link screen QR code
  * Upgrade RingRTC to v2.13.2
  * In prerelease, enable background throttling when not on a call
  * Remove redundant incoming call bar code
  * Use new audio device module in alpha and beta
  * Enable customization of preferred reactions for everyone
  * Don't show "group call started" notifications for muted conversations
  * Remove unused "inactive" class from inbox view
  * Update v5.19 release notes
  * Upgrade zkgroup to v0.8.2
  * Remove unused `new-conversation` class
  * Defend against destroyed window when updating zoom factor
  * Fix license header file enumeration
  * Increase Spectron start timeout for reliability
  * Fix render loop in `<Modal>`, clean up ref merger code
  * Fix border around keyboard-focused sticker messages
  * Fix inverted sticker creator dropzone active text
  * Enable storage service for everyone
  * Don't show group call start notifications more than once
  * Show "99+" in left pane unread count, instead of high values
  * -webkit-line-clamp now works for RTL text; remove comments
  * Add icon to the left pane archive button
  * Improve sticker creator drop zone contrast
  * Update translations
  * Update release notes for v5.20.0
  * v5.20.0-beta.1
  * Persist `overlay` overflow in conversation list
  * Fix race condition in `usePageVisibility` hook
  * Bullet-proof tray icon against nonexistent icon file
  * Hide participant list button on direct calls
  * Move large input remaining count to avoid scrollbar
  * Add additional logging in notification service
  * Fix viewed status icon in left pane
  * Fix avatar focus highlight
  * WebAPI: Require options in `getProfile`
  * Revert calling ringtone change
  * Introduce a new design for the left pane
  * Improve reaction types
  * Tweak selected conversation color in light mode
  * Change left pane border color in light mode
  * Log when message lacks `sent_at` or `timestamp` on send
  * Remove unused `profile-name` CSS
  * Update left pane status icon colors
  * Assign fallback to avatar color, fixing "New group" icon
  * Tweak conversation list header placement
  * Update muted icon in conversation list
  * Stop wrapping archived conversation count
  * Fix jumpy outgoing messages
  * Only enable background throttling in development
  * Left pane spacing tweaks
  * Tweaks to left pane snapping logic
  * Remove left pane width transition
  * Respect proxies when fetching link previews
  * Fix spacing in message search results
  * Fix Storybook text knobs double-escaping text
  * Improve logging of group call peeking failures
  * Disable start/call button if offline
  * More chat list unread count tweaks
  * Remove media query from `<Message>`
  * DRY out path getters
  * Fix `LeftPaneComposeHelper` type
  * Improve readability of unread indicator
  * Prefer `import type` when importing types
  * Fix avatar type in conversation details panel
  * Ignore emoji when removing reactions
  * Remove unnecessary cast in `UUID.prototype.toString`
  * Let Storybook stories fetch theme
  * One-digit unread badges should be round
  * Update translations
  * Update "What's New" for 5.23 (and any other bugfix-only releases)
  * v5.23.0-beta.1
  * Retry outbound reactions for up to a day
  * Clean up timeout in `waitForOnline`
  * Fix incorrect fallback for conversation details avatar lightbox
  * Various search UI improvements
  * Display user badges
  * Don't enqueue viewed receipt jobs for outgoing messages
  * Update translations
  * Update "What's New" for v5.24 release
  * v5.24.0-beta.1
  * Fix line-height on install screen
  * Fix send state "updated at" timestamp for receipts
  * Message details: Render a fuller timestamp for outbound send state
  * Remove release notes prior to v5.23
  * Disable `class-methods-use-this` lint rule
  * Fix `ConversationController` load race condition
  * Add feature flag for ADM2 on Windows
  * Group calls: when window is invisible, stop requesting video after 20 seconds
  * Use TypeScript's `ResizeObserver` types instead of `any`
  * Show your preferred badge in the left pane and avatar popup
  * Add "should show badges" feature flag
  * Update avatar badge placements to match designs
  * Remove caption editor
  * Show user badges in contact modal
  * Upgrade Prettier to 2.4.1
  * Update name/description heights in badge dialog
  * Format code with prettier
  * Add recent Prettier upgrade to `git blame` ignore file
  * Upgrade Reselect to 4.1.2
  * Enable `noImplicitOverride` TypeScript compiler option
  * Add user badges to typing bubbles, refactor typing logic
  * Shrink badge image on badge dialog screen
  * Show badges on message avatars where applicable
  * Show user badges on message details screen
  * Add "become a sustainer" button and view to badge dialog
  * Remove unused `<ContactListItem>` component
  * Add badges to @-mentions picker
  * Disable pointer events for avatar badges
  * Add badges to all conversation lists
  * Show badges in reaction viewer
  * Show badges in beta (behind a new feature flag)
  * Add badges to safety number change dialog
  * Shrink "Become a Sustainer" font size in badge dialog
  * Fix a translation description field
  * "Search in $conversationName$" is now "Search chat"
  * Update design for clicking on badges
  * Rev user badges feature flag
  * Tweak badge image logic for new server responses
  * Show badges on group invites screen
  * Add badges to avatars in group dialogs
  * Lighten modal background in dark mode
  * Tweak avatar badge sizing/placement
  * Show badges in contact spoofing dialog
  * Hide "become a sustainer" button if you're already a sustainer
  * Require badge props in `<Avatar>` to ensure no missing spots
  * Add "can resize left pane" feature flags
  * Clean up contact utility file name
  * Hide "delete for everyone" button for pending messages
  * Clean up `AccountManager#registerSecondDevice`
  * Upgrade humanize-duration to 3.27.1
  * Remove Fabric's optional dependencies
  * Don't request video for invisible group call participants
  * Retry delivery and read receipts for up to 24 hours
  * Always show audio mute icon in group calls
  * Remove crop rect from media editor on export
  * Media editor: Remove buggy "click outside canvas" logic
  * Update collapsed left pane designs to minimize empty space
  * Media editor: add explicit "done" button to tools
  * Prevent display sleep while on a call
  * Remove unused `getAllPrivateConversations` SQL function
  * Convert `IdleDetector` to TypeScript
  * Use `assert.isRejected` instead of custom `assertRejects`
  * Increase height of group call participant info gradient
  * Update TypeScript ESLint dependencies
  * Add release notes for v5.27.0-beta.1 release
  * Media editor: saving an image with a pending crop applies that crop
  * Update translations
  * Increase SystemTrayService test timeout to help CI reliability
  * v5.27.0-beta.1
  * Remove ADM2 feature flag
  * Enable media editor for everyone
  * Fix Storybook by transforming TypeScript earlier
  * Redesign device link screens
  * Wait for `ConversationController` load in receipt and sync jobs
  * Remove old `desktop.screensharing2` feature flag
  * Remove several @ts-ignores
  * Increase font size of last step of link flow
  * Use Signal's spellcheck dictionary files
  * Fix capitalization in media editor variable name
  * Quiet React warning in mute modal
  * Fix media editor undo state bugs
  * Improve "send anyway" experience when starting app
  * Update release notes for 5.28 release
  * Update translations
  * v5.28.0-beta.1
  * Switch to qrcode-generator library
  * Add "Need help?" link to link screen
  * Switch to low QR code error correction
  * Increase contrast of attachment close button in dark mode
  * Remove M1 support from 5.28 release notes
  * Respect changing PPI during screen share
  * Log read sync and view sync timestamps
  * Add workaround for fullscreen debug log causing unresponsive app
  * Group calls: mute in the lobby if joining a large call
  * Move menu tests to TypeScript
  * Update base config logging, removal, and tests
  * Use durations utility in parseRetryAfter
  * Update license year in README
  * Add comments explaining Fabric listeners
  * Fix "did reaction fully send?" logic
  * Format `ts/**/.eslintrc.js` with Prettier
  * Convert remaining main process tests to TypeScript
  * Remove "can resize left pane" flags
  * Fix test-node warning about empty folder
  * Shorten calling "automatically muted" string
  * Fix crash when changing your username
  * Fix disabling spellcheck with `<Input>`
  * Render QR code with SVG, not canvas
  * Capitalize "Now" in message metadata
  * Remove `react-docgen-typescript` dependency
  * Prohibit Chai `expect` or `should`; prefer `assert`
  * Removed "received at" from message details for outbound messages
  * Properly handle read syncs while offline
  * Update badge placement on 52x52 avatars
  * Fix stuck safety number modal overlay
  * Remove white border around QR code in dark mode
  * Timeline date headers
  * Tweak floating header fade-out times
  * Fix timeline item sizing bug, and test timeline logic
  * Remove floating date header remote config flags
  * Two CI tweaks
  * Tweaks to floating date header fading
  * Simplify spellcheck download URL, disable spellcheck in most windows
  * Increase fallback `Retry-After` time to 1 minute
  * Fix "mark conversation read" optimization
  * Fix left pane timestamps not updating
  * Remove duplicate helper function from `missingCaseError`
  * Fix emoji picker crash
  * Use `isSameDay` and `isToday` utilities
  * Open all Signal links in app
  * Fix timeline crash when deleting the oldest visible message
  * Fix timeline scrolling bug
  * Add "don't mark stale" GitHub label
  * Speaking indicator for group calls
  * Peek group calls when opening conversations and leaving calls
  * Update google-libphonenumber to 3.2.27
  * Change dark mode QR code screen to make scanning easier
  * Remove duplicated react-virtualized type
  * Log if `<Timeline>` row count is 0
  * Switch from deprecated `node-sass` to `sass`
  * Disable "Call Again" if already on a call
  * Build both Sass files at once
  * Timeline: Add alternate height measurement cache
  * Fix group creation when clicking create button
  * Fix node-fetch redirect issue for VoIP URLs
  * Fix Moment locales failing to load
  * Don't mark messages read if a call is fullscreen
  * Update release notes for v5.33.0-beta.1 release
  * Update translations
  * Call details screen disable call buttons if call is active
  * v5.33.0-beta.1
  * Fix typo in Storybook action name
  * Fix z-index on group calling overflow scroll buttons
  * Upgrade to Electron 17.0.1
  * Remove `<Timeline>` logging when row count is 0
  * Use browser time formatting instead of Moment
  * Media Editor: reset object position and rotation 
  * Increase max size of resized stickers
  * Remove old release notes (v5.26 through v5.31, inclusive)
  * Show local speaking indicator for group calls
  * Add option to auto-remove unused lint-deps exceptions
  * Add "clean up timer if necessary" utility
  * Clean up `Element#scrollIntoViewIfNeeded` type
  * Upgrade React and ReactDOM to 16.14.0
  * Remove `as any` workaround from smart components
  * `<Message>`: avoid state change when cleaning up reaction root elements
  * Put "is speaking?" threshold in remote config; lower default
  * Remove React Virtualized from `<Timeline>`
  * `<MessageTimestamp>`: make `timestamp` prop required
  * Simplify `prettier` invocations (`yarn format`, `yarn lint`)
  * Assume everyone is GV2-capable
  * Move link preview and MIME tests to TypeScript
  * Collapse message bubbles when applicable
  * Fix floating date header image border overlap
  * Upgrade node-forge to 1.2.1
  * Don't try generating link previews for `debuglogs.org`
  * On conversation open, scroll to unread indicator if present
  * Fix timeline not scrolling to bottom reliably
  * Fix incorrect icon for dark theme message buttons, on hover
  * Fix warning in `useNowThatUpdatesEveryMinute`
  * Simplify positioning of timeline warnings
  * `<Timeline>` only needs whether someone is typing, not who
  * Fix marking tall messages read
  * Left-align audio message countdown and right-align metadata
  * Revert buggy timeline layout refactor
  * Fix audio capture spacing
  * Fix RTL message layout issue
  * If not enough messages are loaded (on tall screens), fix jankiness
  * Increase space between non-grouped message bubbles
  * Update `author` name in package metadata
  * Upgrade webpack-cli to 4.92 and webpack-dev-server to 4.7.4
  * Fix minor errors in link preview comments
  * Improvements to group calling video requests
  * `isMuted` -> `isConversationMuted`
  * Improve logic for app badge count
  * Remove old `Whisper.Database` module
  * Rewrite `WallClockListener` as `onTimeTravel`
  * Convert i18n tests to TypeScript
  * Remove unused settings module
  * Convert `Whisper.View` tests to TypeScript
  * Try making stream timeout tests more reliable
  * Convert sticker tests to TypeScript
  * Convert message cleanup services to TypeScript
  * Convert message schema migrator to TypeScript
  * Remove unused debug module
  * Convert IndexedDB code to TypeScript
  * Convert libphonenumber utilities to TypeScript, removing unused ones
  * Remove reference to stickers_test.js
  * Convert "reliable trigger" to TypeScript
  * Convert app loading message code to TypeScript
  * Remove unused `GroupMemberConversation` type declaration
  * Convert `protocol_wrapper.js` to TypeScript
  * Convert `ReactWrapperView` to TypeScript
  * Remove unused `eslint-disable`s
  * Remove unused `activeConfirmationView`
  * Disable text selection on deleted-for-everyone messages
  * Update comment about maximum number of server locales
  * Remove call for public translations
  * Stop exporting `BLESSED_PACKS`
  * Always respect DOE from your own devices
  * Prefer `type` to `interface` in `.d.ts` files
  * Lint .d.ts files
  * Prevent text selection on left pane header
  * Make 1 the minimum registration ID
  * "cancelation" → "cancellation" in test title
  * Better handle group call ring race conditions
  * Blocked/unapproved convos: no clickable link preview images
  * Percent-encode URL path when reporting spam
  * Remove old CA
  * Remove unused APNG fixture

  [ Pavel ]
  * Make checkboxes dark in dark theme

  [ Alvaro ]
  * Increased fuse search distance from 100 (default) to 150
  * Don't create preview icon for links with no image (quotes)
  * Adding some <Emojify/> that were missing
  * Increased the distance to support contacts that may have even longer titles
  * Make ESC key dismiss MediaEditor and TextStoryCreator modals
  * Made the emoji autocomplete aligned with the :word
  * Added a playback speed button on voice notes
  * Added last-message's author to group conversation list in left pane
  * Increased conversation header clickable area
  * Fixed joining ongoing video call by a non-admin on an announcement-only group
  * Fixed playback-speed button bug and updated layout
  * Fixed positioning of emoji popper - avoids range error
  * Added the time remaining for disappearing messages and stories
  * Consecutive playback and per-conversation playback rate
  * Animated voice-note controls and used image x for playback rate
  * Fixed story link preview tooltip fonts and avoid scaling them as the story scales
  * Fixes expirationTimer i18n
  * Added missing fonts to _fontfaces.scss
  * Filtered out sender from story Sent To list
  * Don't scroll to the bottom of story replies
  * Clamped story meta to a maximum width of the view port width
  * Implemented ability to quickly add a user to a group
  * Fixed Avatar storyRing and blur on storybook
  * Handled ESC to go from stories to chats
  * Reverting left-alignment of toasts
  * Re-arranged story viewer components to render meta above arrow-buttons
  * Better handling of long about messages in story viewer selector
  * Disabled arrow-key navigation while displaying replies modal
  * Remove unused name on Avatar
  * Refactored and cleaned up Modal and friends
  * Don't fallback to client-fanout on timeout, and more logs
  * markStoryRead: More logging in unusual cases
  * Fixed padding on call settings modal
  * Voice-note animation fixes
  * Removed Note to Self story ring
  * Story - add caption
  * Clicking a group in groups-in-common takes you to that conversation
  * Fixed bug that was causing story playback to not play all unread
  * Added story preview and confirmation dialogs to send story
  * Fixed auto-focus on stories pane
  * Disabled story replies when no longer a member of the group
  * Show 'Views off' when read receipts are off
  * Drop expired stories from selector
  * Exact prefix for 2-char emoji search, search short_names
  * Fixed story replies modal and calling pip interactions
  * Using the group story timestamp when adding to the conversation job queue
  * Implement group story reply deletion
  * Show and sort active groups when sending a story
  * Allow receiving group stories from senders with profileSharing=false
  * Fixed all connections count and renamed MY_STORIES_ID and EditMyStoriesPrivacyModal
  * Implemented group story reaction delete/DOE
  * Design tweaks to add-story-button hover
  * Fixed scrollbars on replies modal
  * Added debug log entry before enqueuing DOE job
  * Extract ListView controller from ConversationList
  * Story replies indicator
  * Made StoryDataType sourceDevice required
  * Added story identifier when debug logging
  * Only validate replies on stories from self
  * Filtered stories to self to fix StoryViewer progress lines
  * Added a max-height to story link preview
  * Clear selected contacts when creating a custom story
  * Added clearer debug logging to createOrLookup
  * Removed gv1-migration
  * Auto-select a newly created distribution list or group when sending story
  * Narrowed down avatar sizes
  * Set the minimum for avatar size for click-to-view to 80
  * Excluded a bunch more files from the release
  * Reverting deletion of en/messages.json keys
  * Don't ring incoming call for a large group
  * Moved isConversationTooBigToRing to the SmartCallManager
  * Don't use the term gift
  * Adding ListTile and CircleCheckbox components
  * Drop unread indicator limit and fix overflow issue
  * Switched ForwardMessageModal to use ListTile
  * Formatting voice recorder error
  * Removed hard limit on unprocessed messages in cache
  * Added logging for RetryPlaceholders.findByMessageAndRemove
  * Moved 'encoding' package from 'devDependencies' back to 'dependencies'
  * Adjusted the border-radius and border of quotes to better match the container
  * Fixed voice notes to download with mp3 extension
  * Fix i18n warning on empty string
  * Removed deletion of over-attempts-unprocessed from saveUnprocessedSync
  * Updated prettier version to 2.8.0
  * Drain jobs cleanly on shutdown
  * Voice notes mini-player
  * Fixes to voice notes playback
  * Highlight speaker on group calls
  * Voice notes drafts
  * Fixed render loop on voice notes draft
  * Support for avif image format
  * Wait for audio to play before pausing

  [ Daniel Zhang ]
  * Clarify directory for additional storage profiles
  * Fix electron documentation link
  * Fix appData; Remove NODE_CONFIG_DIR
  * Clarify config subdirectory

  [ lamemakes ]
  * Updated message for attaching multiple non-image files
  * Added a check for the group member length to prevent lonely ringing
  * Double clicking emoji reaction no longer brings up replies
  * Fixed empty copying overwriting clipboard
  * Added falsy check for ops
  * Fixed draft removal upon sending a sticker

  [ norstbox ]
  * Fix conversation pill alignment in search input

  [ Ming Tang ]
  * Force en-us locale for test-node

  [ Alvaro Carrasco ]
  * v5.59.0-beta.1
  * Merge remote-tracking branch 'cgillesp/main'
  * Updated strings
  * v5.63.0-beta.1
  * Updated strings
  * v6.0.0-beta.1
  * Merge signalapp/Signal-Desktop#5807
  * Merge signalapp/Signal-Desktop#5609
  * Updates strings
  * v6.2.0-beta.1
  * Update strings
  * v6.4.0-beta.1
  * Release notes for v6.9.0-beta.1
  * Update strings
  * v6.9.0-beta.1

  [ veekas ashoka ]
  * Fix keyboard search when left pane is narrow
  * Remove getGlobalSearchValue helper function

  [ Davis Family ]
  * Disable ctrl+alt+/ from showing shortcut guide

  [ HACKERBIRDS ]
  * Fix margin of the send button object
  * Merge branch 'signalapp:main' into pr-2-sendbutton
  * Use suggested padding fix

  [ Will Bradley ]
  * Focus the text input box after successfully attaching a file

  [ Iñaqui ]
  * Get call settings/turn servers after call creation to reduce pre-glare

  [ Dimitris Apostolou ]
  * Fix typos
  * Fix typos

  [ jojomatik ]
  * Fix developer setup section for windows
  * Linkify additional TLDs
  * fix: use correct case for `CallingButton` label
  * fix: reduce zoom button size to image dimensions

  [ Hugo Osvaldo Barrera ]
  * Use a node-gyp version which supports Python3
  * Reply to a message by double clicking on its row

  [ David Sanders ]
  * Fix HTML ID of step
  * Quote HTML attribute values in template
  * Fix typo in method name
  * Fix leaking web workers when recording new audio message
  * Make window draggable on macOS during device setup
  * Have settings window update on theme changes
  * Respect system theme in debug log modal
  * Fix microphone permission checking for audio recording
  * Fix several race conditions in react-contextmenu
  * Simplify permissions popup IPC
  * Fix EACCES error code name
  * Fixes location of context menu when opened by keyboard

  [ Kishan Bagaria ]
  * remove protos dir from files

  [ Nikita Karamov ]
  * Replace mkdirp with native fs.mkdir

  [ Merlijn Sebrechts ]
  * Point snap users to the correct issue url

  [ Patrick Demers ]
  * Stop propagation of `keyDown` in `<StopPropagation>`
  * do not spit url between Read More chunks by expanding chunk to end of url

  [ Gillespie ]
  * Made sticker picker padding smaller so it doesn't overflow.

  [ jamiebuilds-signal ]
  * Fix StoryViewer rendering "You"
  * Fix storyviewer title for groups
  * Enable brace-style eslint rules
  * Improved reliability of strictAssert

  [ Frazer Smith ]
  * ci: update github actions
  * ci: fix invalid runner name
  * ci(backport): update copyright year

  [ mooons ]
  * Generalize macOS arm64 platform name

  [ Vladislav Gorenkin ]
  * Fix several shortcuts not working with non-EN keyboard layouts
  * Open first search candidate on pressing "enter" key

  [ Dennis Ameling (he/him) ]
  * Update node-gyp to 9.0.0
  * Use windows-latest CI runners
  * Apply reasonCategory to exceptions

  [ Payton Quinn ]
  * Fix dark mode for call settings

  [ Jon Chambers ]
  * Accept HTTP/429 as a "rate-limited" status code

  [ Andreas Schneider ]
  * ts:scripts: Use SOURCE_DATE_EPOCH env if available

  [ Peter Thatcher ]
  * Calling support
  * Fix incoming call ringtone by awaiting the playout
  * Disable background throttling for smoother outgoing call video
  * RingRTC: Update to v2.6.0
  * Send screnshare even in an audio call
  * Allow screenshare video frames to be more stale

  [ Quentin Hibon ]
  * Remove Debian dependency libappindicator1
  * Remove es_419 localization
  * Mention git-lfs in contribution instructions
  * Fix enveloppe header in search results
  * Do not search if normalized query is empty
  * Add test
  * Allow one-character search queries
  * Update ts/test-both/state/selectors/search_test.ts
  * Update ts/test-both/state/selectors/search_test.ts
  * fix
  * Toggle window visibility on tray icon click
  * Update CONTRIBUTING.md with new Python version
  * Mention packaging in bug report template
  * Make emoji text matching case-insensitive
  * Fix logging typo
  * Fix CONTRIBUTING.md link in README

  [ Will Golledge ]
  * Fix "in contacts" tooltip exceeding desired boundary

  [ Mr-Update ]
  * Update messages.json
  * Update messages.json
  * Update messages.json

  [ Jonathan Fung ]
  * Allow media grid item images to fill container

  [ zznidar ]
  * Update Android version instructions in GitHub issue template

  [ dependabot-preview[bot] ]
  * Bump acorn from 6.3.0 to 6.4.1
  * Bump http-proxy from 1.17.0 to 1.18.1
  * Bump markdown-to-jsx from 6.10.3 to 6.11.4
  * Bump dot-prop from 4.1.1 to 4.2.1
  * Bump ini from v1.3.4 to v1.3.7
  * Upgrade url-parse to v1.5.1
  * Upgrade ua-parser-js to v0.7.28
  * Upgrade handlebars to v4.7.7
  * Upgrade ssri to v6.0.2
  * Upgrade y18n to v3.2.2
  * Upgrade elliptic to v6.5.4
  * Upgrade underscore to v1.12.1
  * Upgrade websocket-extensions to v0.1.4
  * Upgrade hosted-git-info to v2.8.9
  * Upgrade bl to v1.2.3
  * Bump ws from 6.2.1 to 6.2.2
  * Upgrade dns-packet to v1.3.4
  * Upgrade merge-deep to v3.0.3
  * Bump tar from 4.4.8 to 4.4.15

  [ Rik Smeets ]
  * Don't close emoji picker when Ctrl key is pressed

  [ Aaron ]
  * Update link to Git rebase tutorial

  [ Sujal Gupta ]
  * Unescape HTML encoded entities in link preview

  [ Jacob Kiesel ]
  * Add launch-on login option

  [ Kevin J. Sung ]
  * set positionFixed in emoji Popper to prevent flipping
  * edit CSS to fix attachment filename being truncated
  * edit CSS to fix attachment filename being truncated

  [ Jost Schulte ]
  * Fix typos in TypeScript and SCSS files
  * Clarify warning text for local message deletion
  * Fix pip sliding down on click (#5147)
  * Reduce media min width for message reactions

  [ Sasha Chedygov ]
  * Prefer higher resolution link preview images

  [ AsamK ]
  * Fix race condition which often prevented sending group call started message

  [ Kasia Kosturek ]
  * getInitials: handle more cases

  [ rhklee ]
  * Remove backslash from search queries

  [ Alex Hirsch ]
  * Tray: Use 32x32 icon on Windows

  [ Jack Lloyd ]
  * Use the libsignal-client for curve operations
  * Bump to using 0.3.0 release of the libsignal-client library
  * Fingerprint using SignalClient library

  [ manuel-91 ]
  * GUI: Open settings window centered above mainwindow (#4880)

  [ Ewout ter Hoeven ]
  * CI: Maintenance, update checkout, setup-node and cache to v2 (#4813)

  [ Zachary DeRose ]
  * Adjust MIMEType Predicate Signatures (#4832)

  [ Chris Gaszynski ]
  * Fix blinking message options when hovering the message and moving a mouse horizontally. (#4944)

  [ 007 ]
  * Fix message input emoji focus close (#4727)
  * fix: allow hyphen on search term (#4731)

  [ Jacob Pyke ]
  * Updated emoji completion to allow capital letters

  [ david yang ]
  * Add keyboard shortcut to match other MacOS Chat Apps (#4719)

  [ Harrison Bronfeld ]
  * Bug fix escape 'about page' is breaking on fullscreen mode [macOS] (#4619)

  [ Idan Moral ]
  * Fixed a comment typo in Linkify.tsx (#4825)

  [ john gravois ]
  * guide feature requests to community forum in README (#4947)

  [ Ben Busby ]
  * Mention git-lfs prerequisite for developer setup (#4754)

  [ Vladimir Skuratovich ]
  * Prefer audio device 0 if no device preference has been saved
  * Notify RingRTC of Failed HTTP requests

  [ Vin Howe ]
  * Add menu option for copying supported images in lightbox (#4614)
  * Fix MIME check for JPEG in lightbox copy handler (#4643)

  [ Chris Svenningsen ]
  * Convert <Avatar /> component to Storybook
  * Migrate Caption Editor to Storybook
  * Migrate AvatarPopup to Storybook
  * Migrate AddNewLines to Storybook
  * Migrate AttachmentList to Storybook
  * Migrate countdown to storybook
  * Migrate Intl to Storybook
  * Migrate LeftPane to Storybook
  * Migrate ContactDetail to Storybook
  * Migrate ExpireTimer to Storybook
  * Migrate Emojify to Storybook
  * Migrate Lightbox to Storybook
  * Migrate LightboxGallery to Storybook
  * Migrate EmbeddedContact to Storybook
  * Migrate Linkify to Storybook
  * Migrate LastSeenIndicator to Storybook
  * Migrate ResetSessionNotification to Storybook
  * Migrate ReactionViewer to Storybook
  * Migrate Image to Storybook
  * Migrate ImageGrid to Storybook
  * Migrate MessageBody to Storybook
  * Migrate Message to Storybook
  * Migrate Quote to Storybook
  * Delete unused Quote.md
  * Migrate MessageDetail to Storybook
  * Remove react-styleguidist
  * Image: Keep images from overflowing out of rounded corners
  * StagedAttachment handles its own text wrapping CSS
  * Initial move towards new ESLint config supporting TS
  * Apply new ESLint rules to legacy code
  * Migrate base ts to eslint
  * Migrate components to eslint
  * Migrate conversations to ESLint
  * migrate components stickers to eslint
  * Upgrade explicit-module-boundary-types to error
  * ConversationController: Remove static keyword
  * Migrate to eslint
  * Add mock window.log to Storybook
  * Migrate messages, conversations, conversation_view, background to TS
  * Read Pinned Chats
  * Bring back conversation.leaveGroup for GV1 scenarios
  * Pinned Chats
  * Consolidate checks for v2 Groups
  * Provide fallback if pinnedConversationIds not already set
  * A few Delete For Everyone fixes
  * Do not show headers in LeftPane without multiple Conversation types
  * Fix a few pinned chat sync issues
  * Fix shortcuts with pinned chats
  * Fix enter/ctrl+enter in expanded composer
  * Fix emoji completion; don't show when typing times
  * Mark conversation as unread
  * Ensure emoji picker can insert without composition box focus
  * Send @mentions
  * Fix several composer bugs
  * Remove fuzzy @mention search
  * Bring up picker on backspace into mention 
  * New contact popup when clicking on group member or avatar
  * Ensure emoji completion always takes effect
  * Trim trailing newlines from outgoing messages
  * CompositionInput: Proper RTL support

  [ Sidney Keese ]
  * Migrate composition area to storybook
  * Migrate composition input to storybook
  * Migrate ShortcutGuide to Storybook
  * Migrate EmptyState to Storybook
  * Migrate DocumentListItem to Storybook
  * Migrate Emoji to storybook
  * Migrate StartNewConversation to storybook
  * Migrate MessageBodyHighlight to storybook
  * Migrate MediaGallery to Storybook
  * Migrate MediaGridItem to Storybook
  * Migrate MainHeader to Storybook
  * Migrate Spinner to Storybook
  * Migrate MessageSearchResult to Storybook
  * Migrate AttachmentSection to Storybook
  * Migrate TimerNotification to storybook 
  * Migrate SafetyNumberNotification to Storybook
  * Migrate ConversationListItem to Storybook
  * Migrate StickerButton, StickerManager, StickerPicker to storybook
  * Migrate Typing/Unsupported/Verification components to Storybook
  * Migrate Timeline, TimelineLoadingRow to storybook
  * Migrate StagedXXX components to Storybook
  * Migrate Timestamp to Storybook
  * Migrate ScrollDownButton to Storybook
  * Storybook: persist pane knob values in localstorage
  * ESLint Migration
  * Migrate util, types, state, sticker-creator to ESLint
  * Migrate textsecure to eslint
  * Remove TSLint
  * Delete For Everyone Send
  * Reactions: skin tone support
  * Stop event propagation on reaction skin tone selection
  * Replace Draft with Quill for composition area
  * Focus input after choosing to reply to message
  * Allow scroller to be adjusted by quill
  * Update unread count when marking as unread
  * Improve emoji blot and override clipboard behavior
  * Ensure incoming pinned conversations are not archived
  * Clean up transitional pinned chats
  * Fix mention blot to enable native keyboard navigation
  * Composition area: Only paste HTML that originated in Signal
  * Trim the whole of a message's text
  * Allow link-previews to trigger without needing a space
  * Composition: Only try to convert html from text/signal

  [ Brandon Outlaw ]
  * MacOS – Add shortcut for Window -> Show (#4632)

  [ nsunderland1 ]
  * Don't enable webcam on audio call startup (#4602)

  [ hashes4merkle ]
  * Fix typos in messages.json (#4471)
  * Fixing spelling errors (#4615)

  [ Romain Ricard ]
  * Fix max size for animated stickers (#4625)

  [ jimio-signal ]
  * Update copyright and funding info
  * Move github FUNDING file to .github
  * Point to support flow instead of github

  [ iomintz ]
  * drop minimum sticker count to 1 (#4057)
  * WebAPI.initialize: add missing validity check for proxyUrl (#4565)

  [ Oren Magen ]
  * Bug fix escape 'about page' is breaking on fullscreen mode [macOS] (Issue #4540) (#4573)
  * Improve instructions for the "staging environment" part in CONTRIBUTING.md (Issue #2164) (#4570)

  [ Grace Shaw ]
  * Defer to default keybindings for alt + enter
  * Fix debug log "Copy" button text wrapping for localization (#4507)

  [ Ken Powers ]
  * Contributing.md: Update production instructions.
  * New Light/Dark theme mixins
  * Stickers
  * Add "system" theme setting for MacOS
  * Fuzzy-Searchable Emoji Picker
  * Support additional sticker states
  * Upgrade electron to v4.2.2
  * Use selector for filtered recent emojis.
  * Use isShortName function
  * Enable keyboard navigation in EmojiPicker.
  * Maintain last-known cursor position for inserting emojis
  * Don't convert emoji text unless the shortname is valid
  * Ensure long contact names do not push contents outside of the window
  * Send message when pressing enter in the emoji picker
  * Upgrade emoji-datasource to 4.1.0
  * Tune emoji search
  * Use individual images in emoji picker rather than a spritesheet
  * Tokenize fuzzy search for emoji
  * Increase window min-height for the new Emoji picker
  * Preload emoji images in queue
  * Run `yarn format`
  * Fix file size limitation
  * New composition area with emoji typeahead
  * Emoji Typeahead Enhancements (Feedback)
  * Animate in-conversation panels on show/hide
  * One emoji image set for picker, composition, message bubble
  * Composition Input: use state ref
  * Fix ctrl-m shortcut for Windows and shift-del shortcut for Linux
  * Get rid of Roboto font override in composition input
  * Fix emoji autocompletion absorbing non-spaced emojis
  * Large Message Composition
  * Keyboard shortcut to toggle large composition mode
  * Larger hit target for large composition mode toggle
  * Fix composition area link previews with multiline text
  * Only pop emoji autocomplete for strict set of characters
  * Split search actions between discussions and messages
  * Move expand composition area button into a notch
  * Reduce composition area buffer height
  * Make bottom buffer constant for composition area
  * Fix sticker preview modal scrolling
  * Trim text coming out of CompositionInput
  * Fix linting exceptions
  * Fix a number of emoji bugs in message composer
  * Fine-tune editing logic within message composition box
  * Ensure second line of message body is never visible in LeftPane
  * Revert custom caret navigation logic
  * Trim text coming out of CompositionInput
  * Composition Input: If string is `:` alone, do not recurse
  * Drop reaction messages
  * Add sticker introduction tooltip image
  * Sticker Creator
  * Fix xdg-open and protocol handler for windows/linux
  * Build both sticker creator and main app in CI
  * Stickers: Ensure icon for 'blessed' pack is displayed
  * Sticker creator updates: new 200 sticker max, WebP supported
  * Fix styleguide: upgrade deps, lock core-js to version babel needs
  * Add release to .eslintignore
  * Sticker Creator: New toaster implementation, better error handling
  * Don't warp stickers in the preview modal
  * Upgrade Prettier
  * Handle text overflow in sticker preview modal
  * Hide frame in settings window
  * Handle non-square stickers via 'contain'
  * Partial Revert "Conversation: Wait for database fetch to add incoming messages"
  * Increase minimum window width to 680px
  * Render incoming Reactions
  * Add version to WebAPI initialize call in sticker creator preload
  * Set correct fromId on reactions in all circumstances
  * Stop propagation in ReactionViewer
  * Send Reactions
  * ReactionViewer: Handle an entirely removed category
  * Indicate when reaction is from the current user
  * Update to new message bubble reactions design
  * Remove reaction send flag
  * Remove sticker send flag
  * Reaction Viewer: Fix class names
  * Remove "you" qualifier from ReactionViewer and ContactName
  * Add "all" tab to ReactionViewer
  * StoryBook: Fully support themes in pop-up components
  * Show clicked-on reaction in ReactionViewer
  * Storybook: Basic messages and messages with reactions
  * Lint fixes
  * Add sanitize.css to all windows and styleguide
  * Add more logging for reactions handling
  * Prevent replies/reactions on messages with errors
  * Fix gallery image alignment
  * Don't linkify invalid URLs
  * Upgrade to Electron 8
  * Ensure proper file permissions on startup
  * Emojify group title updates
  * Reactions: Go directly to all tab, show 'You' for current user
  * Disable spellcheck for non-English Linux users
  * Passive UUID support
  * Show "you" instead of "me" in the group members list
  * Sticker Creator: Don't pop sticker preview over the close button
  * Passive UUID fixes
  * Handle multiple out of order reactions
  * Use Electron Spellchecker
  * Debug Logs: gzip before upload
  * CompositionInput: Fix high CPU usage
  * Setup: Only display one QR code at a time
  * Check targetTimestamp when looking for out-of-order reactions
  * Use multiple spellCheckDirty messages
  * Check for author id rather than conversation id
  * Introduce dialog for long database migrations 
  * Fix TypeError: Cannot read property 'isVisible' of undefined
  * Don't start Signal if DB version is greater than we expect
  * Use new icon design for tray icons with alert
  * Handle UUID properly in group message processing
  * Do not trigger window-all-closed unless main window has been created
  * Delivery receipts: Ensure that message.delivered_to is used for merge
  * Fix incoming group messages appearing from the group
  * Spellcheck: Fallback to all xx-YY locales when xx isn't available
  * Port StickerPreviewModal to storybook
  * Do not recognize aiff files as audio
  * Linkify URLs containing `@`
  * Fix application of incoming view syncs
  * Add more safeguards to isTrustedIdentity
  * Receive support for DOE messages
  * Use bindActionCreators in StickerCreator
  * Debug Log: Copy URL instead of open in browser
  * Composer: Improve expand tab hover behavior
  * Pre-alpha: React with any emoji, behind flag
  * Remove emojification on message send
  * Always use sender certificates including UUID
  * Use new "any emoji" icon in light mode
  * Allow Sticker Creator ConfirmDialog buttons to grow
  * Disable skin tones for reaction emoji
  * Remove the scroll bar on the about screen for Windows
  * getProfile: Pull information from sendMetadata properly
  * Enable React with any Emoji
  * Add more logging around attachment queueing
  * Help Menu changes
  * Prevent duplicate message history disclaimers
  * Hardcode language for /requests/new support page, remove for others
  * Message Requests
  * Harden UUID-handling code paths
  * Support for Contact Discovery Service

  [ Danny Lin ]
  * Add setting to toggle notification attention drawing (#4457)

  [ u32i64 ]
  * Fix some typos in messages.json (#4447)

  [ Jan Janik ]
  * GroupNotification: Fix 'joined group' pluralization (#4380)
  * Close/cancel draft "reply to" on Escape (#4387)

  [ 82ba10b5e8dc ]
  * Ensure window exits fullscreen before closing (#4376)
  * Ensure scrollbar is hidden in about window (#4383)

  [ Nat Talbot ]
  * Avatar color on ReactionViewer is now Contact Color, not Grey (#4325)
  * Harmonized filenames with Android version (#4324)

  [ Noelle Leigh ]
  * Remove unnecessary CSS property from header (#4227)

  [ Gabriel Goller ]
  * Remove scrollbar on about page (#4147)
  * remove icon-gen script; not used anymore

  [ Corey Rice ]
  * If no theme setting, default to 'system' theme (#4128)

  [ Oskar Nyberg ]
  * Prevent electron-builder from adding native modules to asar on macOS (#4169)

  [ Ace Cassidy ]
  * remove old unused shell scripts (#4029)

  [ blckfalcon ]
  * Upgrade linkify-it to 2.2.0 (#3870)
  * Fix focus on CompositionInput (#3973)
  * Windows: Fix context menu when spellchecker is off (#3996)

  [ Chris Varenhorst ]
  * Mention `git-lfs` in the contributor doc (#3927)

  [ Tom Huzij ]
  * Restore macOS full screen shortcut (#3939)

  [ Herohtar ]
  * Don't compare a numeric value with a string when using the identity operator (#2989)
  * Make notification initials consistent with everything else (#3006)
  * Change tray icon click to always show/focus window (#2984)
  * Use later button as cancel behavior (#3896)

  [ josh-signal ]
  * Upgrade emoji support to Unicode v12

  [ Victor Sheremetov ]
  * Fixing issue #2689 with broken right click when spell check is disabled (#2708)

  [ AJ Jordan ]
  * Don't lock the Node version so strictly
  * Fix typo (#3345)
  * yarn.lock: Change http reference to https (#3373)

  [ Tim Ruffing ]
  * Improve performance of _getLeftPaneList (#3398)
  * Improve query performance using explicit INDEXED BY (#3550)

  [ Xashyar ]
  * Adding Appveyor SVG Status Badge (#2978)
  * Issue Template, Small Edits (#2975)
  * License Year Update (#3852)

  [ jjkaufman ]
  * Show message sent time (not received time) in search results (#3769)

  [ Razzeee ]
  * Add InstantMessaging and Chat categories for deb package (#3439)

  [ Disconnect3d ]
  * Fix SUPPORTED_MEDIA_DOMAINS regex whitelist (#3459)

  [ Buck Doyle ]
  * Make manual emoji text entry case-insensitive (#2353)
  * Update search for colon-syntax emoji to ignore case (#3443)

  [ Peter Uithoven ]
  * Add desktopName to package.json to fix linux badge (#3390)
  * Add desktopName to package.json to fix linux badge (#3390)

  [ Michael Walker ]
  * Add pinterest domain and asset domains for link preview support

  [ Mohammed Arabiat ]
  * Restore build-release command properly

  [ Botond Horvath ]
  * Hide from Dock on macOS when the tray icon is enabled and the window is closed

  [ Gabe Stocco ]
  * Adding right click listener for URLs and Text Selections (#3197)

  [ Derek Meer ]
  * Hides the "Hide menu bar" option on MacOS (#2903)

  [ sachaaaaa ]
  * Fix arguments in MessageSenderWrapper (#2671)

  [ Opportunity ]
  * Add font fallback candidates for CJK characters (#2698)

  [ Johannes Bittner ]
  * Gruntfile.js: add .tsx files to transpile watch task (#2963)

  [ Jonathan Canfield ]
  * Remap zoom to Command+= on macOS (#3296)

  [ 2-4601 ]
  * Add a trifle of i18n to KeyVerificationView
  * Fix two strings that didn't use term 'linking'
  * Update README.md
  * Add templates for issues and pull requests
  * Update issue and pull request templates
  * Fix typo of quality argument in image compression
  * Add translation and localization instructions
  * i18n 'Secure session ended'
  * i18n 'Received message with unknown identity key'
  * i18n 'Error handling incoming message'
  * i18n 'Permanently delete this conversation?'
  * Add Signal version number hint to issue template
  * Fix 2nd person conjugation in exp. timer messages
  * i18n 'Theme'
  * Remove gconf dependency from deb package (#3174)

  [ Vanja Cosic ]
  * Make non-message components of UI non-selectable (#3078)
  * Get rid of the white flash when the app starts up (#3083)

  [ Bradley Sinclair ]
  * Ensure encrypting device name does not die on empty device name (#3066)

  [ RiseT ]
  * Use singular form for per-conversation safety numbers
  * Update Transifex link in pull request template (#3082)

  [ Hugo Torzuoli ]
  * Update Licence Year (#3009)

  [ vitya1 ]
  * Link labels with checkboxes in settings pane (#2704)

  [ tinyboxvk ]
  * Pull request template: Fix link to Transifex project (#2534)

  [ Joshua Lund ]
  * Minor documentation cleanup - bug templates, readme, etc. (#2507)

  [ Matthias Beaupère ]
  * Auto-scroll to selected conversation when reordering them (#2498)

  [ riyapenn-signal ]
  * Add another Windows 7 dev setup requirement (#2398)

  [ jython234 ]
  * Modify OS.isWindows to check platform before version (#2407)

  [ Daniel Gasienica ]
  * Sync Protocol Buffers with `libsignal-service-java` (#2046)
  * Move ESLint environment configuration into `.eslintrc` (#2051)
  * Auto-orient image attachments based on EXIF metadata
  * Security: Replace Unicode order overrides in attachment names
  * Update links to community forum (#2083)
  * Hotfix: Ignore iOS group expire timer sync resets (#2086)
  * Upgrade to Electron 1.8.2 / Node.js 8.2.1 (#2066)
  * Update `yarn.lock` after manual `package.json` changes (#2097)
  * Auto-fixes: UX Improvements (#2077)
  * UX Improvements: Global Menu & Copy Changes (#2078)
  * Ensure consistent builds using `yarn --frozen-lockfile` (#2098)
  * Remove ‘Ctrl+,’ keyboard shortcut on Windows & Linux (#2099)
  * Rename `enabled` --> `isEnabled`
  * Extract `hasNotifications`
  * NOTE: Improve i18n pluralization
  * Remove new message audio notification
  * Use system notification sounds
  * Improve debug log for notifications
  * Add `OS` module
  * Add `Settings` type
  * Hide notifications audio setting on Linux
  * Add `sinon` dev dependency
  * Add tests for `Settings.shouldShowAudioNotificationSetting`
  * Rename `shouldShowAudioNotificationSetting`
  * Only play audio notification on supported platforms
  * Persist flashing of taskbar on Windows until window is focused
  * Revert to disabled notification sound on <= Windows 7
  * Extract `isAudioNotificationEnabled` constant
  * Reduce log noise / size
  * :art: `shouldUpdate` --> `needUpdate`
  * Make `isEnabled` an instance variable
  * Replace custom notification sound with system sound (#2108)
  * Whitelist `js/logging.js` for ESLint
  * Whitelist `js/views/debug_log_view.js` for ESLint
  * Apply ESLint auto-fixes: `js/logging.js`
  * Apply ESLint auto-fixes: `debug_log_view.js`
  * Allow `node` environment for `js/logging.js`
  * Disable ESLint `strict` rule for module
  * Whitelist globals
  * Fix lint errors
  * Remove Vim modeline
  * Fix lint errors
  * Remove explicit ESLint `browser` directives
  * Remove triple parens
  * Merge #2111 from gasi: Autofix: Move Debug Logs From GitHub Gists to debuglogs.org
  * Add `superagent` dependency
  * Ensure `isFocused` always returns boolean
  * Make dialog title consistent with menu bar item
  * Upload debug logs to debuglogs.org
  * Show log in a monospaced font
  * Make `DebugLogView::submit` async
  * Add ES2015 modules to JSHint ignore list
  * Rename ‘File a Bug’ to ‘Report an Issue’
  * Add `got` dependency
  * Add `form-data` dependency
  * Add `debuglogs` module
  * Replace `superagent` with `got` for debug logs
  * Remove `superagent` dependency
  * Document why `key` comes first
  * Document workaround for `got` `FormData` bug
  * Merge #2112 from gasi: Move Debug Logs From GitHub Gists to debuglogs.org
  * Add `electron-unhandled` dependency
  * Log uncaught errors / promise rejections in main process
  * Reduce scope of disabled `more/no-then` rule
  * Add `ensure-error` dependency
  * Add `Errors.toLogFormat`
  * Extract `Errors.addGlobalHandler` procedure
  * Rename `Errors` to `GlobalErrors` for clarity
  * Expose `Signal.Types.Errors`
  * Use `Errors.toLogFormat` in `backgrounds.js`
  * Extract `Errors.redactSensitivePaths`
  * Redact all private information from logs
  * Extract `Privacy` module
  * Add tests for `Privacy` module
  * Remove privacy redaction from `Errors.toLogFormat`
  * Escape special characters in file path
  * Avoid `ensure-error` for privacy reasons
  * Use forked `electron-unhandled`
  * Add `eslint-plugin-mocha`
  * Disallow exclusive tests, i.e. `.only`
  * Remove `ensure-error` and `clean-error` dependency
  * Remove unused `require`
  * Merge #2110 from gasi: Log Uncaught Errors & Unhandled Promise Rejections In Main Process
  * Ensure conversation panel fills screen vertically
  * Merge pull request #2144 from signalapp/ios-theme-conversation-panel-height
  * Add `Attachment.removeSchemaVersion`
  * Skip invalid attachments and make function sync
  * Add `SchemaVersion` type
  * Add `Message.withInheritedSchemaVersion`
  * Fix log line
  * Allow `Attachment.fileName` to be `null`
  * :art: `withInheritedSchemaVersion` to `inheritSchemaVersion`
  * Whitelist `js/database.js` for ESLint
  * Move schema versioning from `Attachment` to `Message`
  * Add `idb` fork with `upgradeDBFromTransaction` support
  * Prefix private functions with underscore
  * :art: Format ternaries
  * Add version 17 migration
  * Expose `Signal.Migrations` namespace
  * Run version 17 migration upon startup
  * Simplify log statement
  * Use `while` loop for IDB cursor iteration
  * Initialize schema as first step in `upgradeSchema`
  * Upgrade message schema before sending
  * Use `Errors.toLogFormat`
  * Update schema version history
  * Measure duration of migration
  * Rewrite migration 17 without `idb`
  * Use `async` / `await` to improve readability
  * Remove `idb` dependency
  * Create IndexedDB index from `schemaVersion` to `Message` (#2128)
  * Ensure first message is not cut off in iOS theme
  * Merge pull request #2153 from signalapp/ios-theme-conversation-panel-position
  * Request translation changes to be made via Transifex
  * Request translation changes via Transifex (#2157)
  * Add `fs-extra` as direct dependency
  * Add `tempy` as dev dependency
  * Add `string-to-array-buffer` as dev dependency
  * Add `writeAttachmentData` module
  * Switch from hashed to random attachment file names
  * :art: Use `Buffer.from`
  * Remove `tempy` dependency
  * Add `Attachment.migrateDataToFileSystem`
  * Add `context` to `Message.upgradeSchema`
  * Wire up `writeAttachment`
  * Add `Message` schema version 3
  * Shorten prefix to 2 characters
  * Return relative path from `writeAttachmentData`
  * Improve identifier names
  * Verify `makeAttachmentPointer` and `encryptAttachment` arguments
  * Add `to-arraybuffer` dependency
  * Move `writeAttachmentData` into `Attachments`
  * Load attachment data before sending message
  * Initialize schema version during `Message` construction
  * Set `schemaVersion` in `handleMessage`
  * Remove duplicate ESLint ignore entry
  * Remove Vim modeline
  * Whitelist `js/views/message_view.js` for ESLint
  * Load attachment data before rendering
  * :art: Use `camelCase` for mutable variable
  * Remove Vim modeline
  * Use `assert.deepEqual` instead of Lodash `isEqual`
  * Add test for `Attachments.readData`
  * Add `Attachments.deleteData`
  * Add `Attachment.deleteData`
  * Delete attachment files on disk upon message delete
  * Prevent potential NPE
  * Prevent macOS Spotlight indexing of attachments folder
  * Make `MessageView::onUnload` synchronous
  * Use Lodash `omit` instead of `delete`
  * Remove `tmp` as dev dependency
  * Add `stringToArrayBuffer` utility
  * Use new `stringToArrayBuffer` function
  * Use double quotes for identifiers in error messages
  * Wire up `Message` / `Attachment` migration functions on startup
  * Remove `string-to-arraybuffer` dependency
  * Migrate attachments from IndexedDB to file system (#2129)
  * Add `desktop-idle` dependency
  * Implement basic `IdleListener`
  * Start idle listener on startup
  * Rename `IdleListener` to `IdleDetector`
  * Switch to using `requestIdleCallback`
  * Remove `desktop-idle` dependency
  * Remove attachment validation
  * Add `MessageMigration` module
  * Improve ``Message.upgradeSchema` preconditions
  * Wire up background message migration
  * :art: Use `window.requestIdleCallback`
  * Add `Signal.Workflow` namespace
  * Upgrade 2 messages every 30 seconds
  * Explicitly make `onDestroy` have `void` return type
  * Upgrade Message Schema (Data) in Background (#2162)
  * Run background script after DOM is parsed
  * Make namespace generation clearer
  * Add initialization view
  * Improve user messaging during initialization
  * Reduce threshold until optimization appears to 1s
  * Remove type annotation
  * Show Optimization Message During Database Migration (#2165)
  * Rename `createTemporary` to `dangerouslyCreateAndAdd`
  * Strengthen precondition of `ConversationController.getOrCreate`
  * Avoid `dangerouslyCreateAndAdd` in `MessageView` test
  * Fix search view conversation reset bug
  * Fix contact overwrite in search view (#2191)
  * Relax Node.js version requirements (#2203)
  * Split database migrations into pre- and post-attachment migration
  * Extract `runMigrations`
  * Explicitly run post-attachment migrations
  * Extract `deferredToPromise`
  * Close database after migration
  * Remove redundant log message
  * Manually close database connection after migration
  * Prefer `exports`
  * Replace `wrapDeferred` with `deferredToPromise`
  * Add log message for dummy migration 18
  * Use double quotes for identifiers in error messages
  * Add `createCollection` function
  * Implement `MessagesDataMigrator.processAll`
  * Reduce work for verifying transaction completion
  * Run attachment to disk migration on startup
  * Implement `MessageDataMigrator.processAll`
  * Avoid `no-param-reassign` violation
  * Match `items` storage format to Backbone adapter
  * Extract `NUM_MESSAGES_PER_BATCH`
  * Document `MessageDataMigrator` module design
  * Improve identifier names
  * Remove usage of `storage` module
  * Disable JSHint for `background.js`
  * Abort processing if there are no more messages
  * Remove hard-coded database connection settings
  * Log total number of processed messages
  * Log `targetSchemaVersion`
  * Improve log message
  * Use `camelCase` for non-constructors
  * Log closing connection of database
  * Close database connection via Backbone IDB adapter
  * Extract `database` and `settings` modules
  * Rename `closeDatabase` to `closeDatabaseConnection`
  * Extract `getMigrationVersions`
  * Add `database.getVersion`
  * Skip migrations that have already been applied
  * Allow attachment migration run on higher database version
  * Remove outdated documentation
  * Move migrations to `Signal.Migrations`
  * Add `settings.deleteItem`
  * Remove last processed index after attachment migration
  * Add `sleep` module
  * Expose `Signal.Database` module
  * Expose `Signal.Settings` module
  * Reduce attachment migration batch size to 1
  * Add debug module
  * Define constant after creating idle detector
  * Document disadvantage of fetching messages without index
  * Add `disk-usage.sh` script for testing
  * Remove Backbone references for attachment migration
  * Remove unused `createCollection`
  * Add `Database.getCount` function
  * Capture how many messages we have to process
  * Extract IIFE into separate function
  * Destructure Lodash `require`s
  * Temporarily disable post-attachment migration migrations
  * Migrate attachments on startup (#2193)
  * Conditionally run post-attachment migrations
  * Improve `storage.fetch` error message
  * Document why batch size is one
  * Use `done` to match JavaScript iterators
  * Fix error message formatting
  * Add public domain files for generating test data
  * Generate attachments from local files
  * Make `migrations` private
  * Clarify implications of introducing new migrations
  * Prefer ISO date formatting
  * Add support for attachment background migration without index
  * Remove whole database migrations
  * Replace startup with attachment background migration
  * Reduce excessive logging about database status
  * Support database upgrades in `Database.open`
  * Allow database name override in migrations
  * Run tests using `yarn` instead of `npm`
  * Improve formatting
  * Run migrations before clearing database during tests
  * Clear database before message view tests
  * Fix bug in termination condition
  * Replace `getAll` with cursor
  * Improve termination condition
  * Rename `count` to `numMessagesPerBatch`
  * Run ESLint on `preload.js`
  * Use `create*` prefix to clarify curried functions
  * Migrate attachments in background without index (#2208)
  * Fix lack of focus when reselecting the same conversation (#2032)
  * Add `@sindresorhus/is` dependency
  * Add `Signal.Startup` module
  * Sync read receipt configuration upon relink
  * Request Configuration Sync After Relink (#2218)
  * Prefer double quotes over backticks for identifiers
  * Rename `writeAttachmentData` to `writeNewAttachmentData`
  * Add `Attachments.createWriteForExisting`
  * Add `Message.createImporter`
  * Rename `backupToDirectory` to `exportToDirectory`
  * Import and upgrade messages upon save
  * Add precondition for `writeAttachment`
  * Load attachments before writing them upon export
  * Add `Message.createAttachmentLoader`
  * Impliclity decrypt data if `key` is present
  * Consistently use `ciphertext` instead of `encrypted`
  * Initialize schema version upon import
  * Clarify error origin
  * Rename `createImporter` to `createAttachmentDataWriter`
  * Rename `willHaveAttachmentsSavedOnFileSystemDuringUpgrade`
  * Add `start-backup` script
  * Support Attachments On File System During Export + Import (#2212)
  * Prefer `path` over `Path`
  * Prefer `is.*` over Lodash `is*` functions
  * Redact URL encoded file paths in stack traces
  * Redact stack traces with forward and backslashes
  * Add test for regular `_redactPath`
  * Redact file paths with escaped slashes
  * Add ESLint `quotes` rule
  * Use single quotes for identifiers
  * Redact More Variants Of Paths In Stack Traces (#2229)
  * Add `link-text` dependency
  * Add `@types/lodash`
  * Add `@types/chai`
  * Add `@types/mocha`
  * Add custom type definition for `link-text`
  * Add `yarn test-ts`
  * Add `HTML` module for rendering messages
  * Improve auto-linking of URLs in messages
  * Add `linkify-it` dependency
  * Fork `link-text` module
  * Remove escaping from `linkText`
  * ESLint auto-fix `link_text`
  * Compile and lint TypeScript on AppVeyor
  * Explicitly point to TSLint configuration
  * Compile TypeScript files on Travis CI
  * Simplify testing and linting
  * Use generic array syntax for consistency
  * Use project for TSLint
  * Add TSLint rules
  * Run Node.js tests early
  * Organize npm scripts
  * Include compiled TypeScript JavaScript files in build
  * Bump timeout of `debuglogs` test
  * Rename `ts/test` to `ts/styleguide`
  * Improve URL Auto-Linking In Messages (#2240)
  * Fix TS error regarding `SharedArrayBuffer`
  * Fix TS warning about `appendChild`
  * Fix TS error regarding `window`
  * Add basic `Message` type definition
  * Configure EditorConfig for TypeScript
  * Add basic `Attachment` type definition
  * Add `MIME` type
  * Expand `Message` type definitions
  * Remove unused import
  * Add basic implementation of `Conversation.updateFromLastMessage`
  * Expose `Signal.Types.Conversation`
  * Reset last message after message has expired
  * Add Microsoft contributed TSlint rules: `tslint-microsoft-contrib`
  * Enable TSLint Mocha rules
  * Set dynamic parameter last
  * Bind to `Conversation` lazily to prevent style guide errors
  * Remove Conversation Message Preview After Message Has Expired
  * Use `is` instead of Lodash `is*`
  * Port `MIME` module to TypeScript
  * Add `MIME.isImage` and `MIME.isVideo`
  * Add `@types/lodash`
  * Add `GoogleChrome` module
  * Add `Attachment.isVisualMedia`
  * Separate required from optional `Message` keys
  * Add `Message.initializeAttachmentMetadata`
  * Add schema version 4: Attachment metadata
  * Wire up ‘View All Media’ menu item
  * Add migration for media gallery indices
  * Move TS test for message migration
  * Render media gallery placeholder panel
  * Use existing `ReactWrapper`
  * Move test file
  * Add `filesize` dependency
  * Move `@types/*` dependencies to `devDependencies`
  * Expose Lodash in style guide
  * Add scaffolding for media gallery
  * Add `missingCaseError` function
  * Use short format for dates
  * Add translations for section headers in media gallery
  * Use arrow function over `.bind`
  * Remove unused style
  * Add `groupMessagesByDate`
  * Render attachments grouped by date
  * Calculate dates in UTC
  * Allow line breaks in long `import` statements
  * Limit line length
  * Move `private` method below `public` ones
  * Add `prettier`
  * Enable strict `null` checks
  * Enable strict type checking features
  * Fix translation description
  * TSLint: Align various syntax elements
  * TSLint: Enforce indentation with 2 spaces
  * TSLint: Enforce UNIX line breaks
  * Remove duplicate `@types/lodash` dependency
  * Add `yarn format` to autoformat code
  * Add trailing commas to autoformatted code
  * :art: Autoformat code
  * Autoformat TSX files
  * Implementing grouping messages by date
  * Skip metadata initialization for `verified-change` messages
  * Style attachment section headers
  * Add `@types/jquery`
  * Move top-level functions to `Signal.Util`
  * Index messages with attachments using a boolean
  * Add basic Backbone type definitions
  * Add type definition for `deferredToPromise`
  * Add TSLint Prettier overrides
  * TSLint: Allow multiline JS in JSX for CSS-in-JS
  * Autoformat using Prettier
  * Add `MapAsync` type definition
  * Add `arrayBufferToObjectURL` module
  * Add `Collection.fetchVisualMediaAttachments`
  * Add `Signal.Backbone`
  * Integrate visual media attachment gallery
  * Create `UserMessage` type
  * Extract `Message.loadWithObjectURL`
  * Remove unused `i18n`
  * Load 50 attachments for media gallery
  * Improve `IndexableBoolean` type
  * Skip loading videos into memory for performance
  * Rename media gallery items
  * Replace Backbone with React lightbox
  * Make `ReactWrapperView` globals explicit
  * Port lightbox icon buttons
  * Add `Lightbox` to style guide
  * Extract Backbone Lightbox view module
  * Wire up attachment saving
  * Close lightbox on escape key press
  * Remove legacy Backbone lightbox
  * Add note about inline styles
  * Add right arrow SVG
  * Add arrow controls
  * Show lightbox image as large as possible
  * Rename `save` to `onSave`
  * Click lightbox to close
  * Make visibility of previous/next buttons opt-in
  * Add `ItemClickEvent`
  * Open media gallery item in lightbox
  * Add `shouldShowSaveAsButton` option
  * Hide ‘Save As…’ button in media gallery
  * Show all lightbox controls in style guide
  * MVP: Only show media tab
  * MVP: Only show images in media gallery
  * Update schema documentation
  * Lazily bind `Signal.Components.MediaGallery`
  * Remove TODOs
  * Update test for attachment metadata
  * :art: Fix TSLint errors
  * Remove use of `LoadingIndicator`
  * Document changes for MVP
  * :art: Fix lint error
  * Move `filesize` from Bower to npm
  * Use `dash-case` for CSS class names
  * Use `componentWillUnmount`
  * Remove obsolete TODO
  * Simplify `withSection`
  * Simplify expression
  * Clarify naming
  * Remove implied `strict` compiler options
  * :art: Fix formatting
  * Add required `Message.id: string`
  * Document the use of CSS vs inline styles
  * Prefer custom styles over `strong`
  * Use :us: spelling
  * Show lightbox controls based on presence of handlers
  * Prevent NPE
  * :art: Autoformat code
  * Fix type errors
  * Prefer `GoogleChrome.is*` over `MIME.is*`
  * Fix formatting
  * Watch TypeScript files in Grunt
  * Disable media gallery access until feature is complete
  * Update backup test fixture
  * Use `IndexablePresence` for `hasFileAttachments` and `hasVisualMediaAttachments`
  * Omit undefined keys when comparing IndexedDB data
  * Remove dead code
  * Organize `global`s
  * Media Gallery: Phase 1 (#2236)
  * Remove duplicate entry from .gitignore (#2271)
  * Organize `global`s
  * Re-enable media gallery access
  * Implement `Conversation.fetchFileAttachments`
  * Show ‘Documents’ tab
  * Include videos in media gallery
  * Load documents for media gallery
  * Organize ESLint file list
  * Implement `Attachment.save`
  * Whitelist `assert` global for tests
  * Replace Backbone `saveFile` with `Attachment.save`
  * Use `pointer` cursor for `DocumentListItem`
  * arrayBufferToObjectURL: Ensure `data` is `ArrayBuffer`
  * Implement click to save for document list
  * Allow saving of attachments from media gallery lightbox
  * Remove newlines
  * Load more documents than media
  * Implement video support in lightbox
  * Show hand cursor on media grid items
  * Prevent default event on icon button clicks
  * Implement basic lightbox with gallery support
  * Move navigation controls to the bottom
  * Extract `saveURLAsFile`
  * Alphabetize `Message` properties
  * Persist `has*Attachments` properties for incoming messages
  * Fix type signature
  * Use `saveURLAsFile`
  * Define `AttachmentSchemaVersion3`
  * Remove lightbox on unload
  * Add `getAbsoluteAttachmentPath`
  * Add explicit boolean
  * Display attachments from disk
  * Implement keyboard navigation for `Lightbox`
  * Add `EmptyState` component
  * Remove unnecessary newline
  * Fix layout of media gallery
  * Wire up media gallery empty state
  * Center lightbox navigation controls
  * Implement background migration using index
  * Avoid exposing `AttachmentTS`
  * Fix media gallery layout in iOS theme
  * Remove unnecessary `AttachmentTS` reference
  * Add another permutation of `EmptyState`
  * Only revoke object URLs we created
  * Pre-process media for `LightboxGallery`
  * Remove unused reference
  * :art: Format using ESLint
  * Skip attachment migration for new users
  * Media Gallery: Phase 2 (MVP) (#2291)
  * Increase migration conversion speed by a factor of 3x
  * Increase attachment migration conversion speed (#2314)
  * Add `eslint-config-prettier`
  * Override ESLint rules not applicable to Prettier
  * Adjust ESLint rules for Prettier
  * ESLint: Ignore generated files
  * Organize ignored files
  * Run Prettier on all source files
  * Prettier: Ignore generated files
  * Format all source code using Prettier
  * Apply manual fixes for ESLint errors
  * Remove Vim mode lines
  * Remove `@prettier` pragmas
  * Prettier: Ignore JSON and CSS
  * Add `.prettierrc.js`
  * Include Prettier as part of `yarn lint`
  * Remove comment about 90 character line length limit
  * Decouple `yarn format` from `yarn format-check`
  * Run `yarn lint-windows` without Prettier for AppVeyor
  * Prettier (All The Things) (#2303)
  * Document that JPEG auto-orient strips EXIF metadata
  * Strip Image Metadata (#2313)
  * Update README copyright year to 2018 (#2279)
  * Document installation on Windows 7
  * Document how to reload app using developer tools
  * Document Windows 7 Developer Setup (#2321)
  * Remove unused `retryDescription` localized string
  * Remove unused `messageCaption`
  * Remove documentation about Bower dependencies
  * Document how to pull translations
  * Use sequential numbering for ordered list
  * Document Translations Setup + Remove Unused Strings (#2329)
  * Split `global`s into third-party and own
  * ESLint: Add `js/notifications`
  * Declare globals for `drawAttention` and `isFocused`
  * Rename `SETTINGS` to `SettingNames`
  * Add `Notifications.getStatus`
  * Use `Notifications.getStatus`
  * Log whether OS supports native notifications
  * Use native notifications on all platforms
  * Remove `node-notifier`
  * Add `@types/sinon`
  * Add `@types/semver`
  * Port `Settings` and `OS` to TypeScript
  * Disable audio notifications on Windows 7 and lower
  * Use Native Notifications on Windows 7 (#2330)
  * Log `Conversation::updateLastMessage`
  * Remove newlines from group IDs
  * Use structured log
  * Use structured logs
  * Improve Logging For Disappearing Messages (#2332)
  * Use 2 spaces for indentation
  * Add `Settings.isNotificationGroupingSupported`
  * Disable notification grouping on Windows 7
  * Log notification grouping support
  * Windows 7 Notifications: Disable Grouping (#2338)
  * Prettier: Update ignore list
  * Prettier: Format CSS, SCSS, and JSON
  * Prettier: Format all stylesheets
  * Prettier: Format JSON configuration files
  * Prepend comments for infix comments in argument list
  * Adjust `tsconfig.json` formatting for Prettier
  * Prettier: Format CSS, SCSS, and JSON (#2339)
  * Add `MIME.APPLICATION_OCTET_STREAM`
  * Extract common MIME types
  * Add `protobufjs` dependency
  * Add `yarn build-protobuf` command
  * Add `Attachment.isVoiceMessage`
  * Use `Attachment.isVoiceMessage`
  * Organize `global`s
  * Expose `Signal.Types.Attachment` to style guide
  * Expose `SignalService` to style guide
  * Use `SignalService` vs `textsecure` for protobuf
  * Gruntfile: :abc:-ize `watch` targets
  * Gruntfile: Remove dependency on `npm`
  * Compile protocol buffers as part of `yarn grunt dev`
  * Normalize package naming
  * Run all build steps in CI
  * Remove generated protobuf as part of `yarn clean-transpile`
  * Add `yarn clean-protobuf` command
  * Remove unused `WhisperTextProtocol.proto`
  * Compile protocol buffers first
  * Improve naming
  * Compile all protocol buffers
  * Use protocol buffer module for `libtextsecure`
  * Revert "Use protocol buffer module for `libtextsecure`"
  * Standalone Protocol Buffers (#2347)
  * Classify all images and videos as visual media
  * Add `Attachment.isFile` definition
  * Add tests for `Attachment.isVisualMedia`
  * Derive `Message.CURRENT_SCHEMA_VERSION`
  * Add new MIME types
  * Message schema 6: Change classification of media and documents
  * Port `colorSVG` from Sass to TypeScript (React)
  * Display icon for unsupported file formats
  * Consolidate styles
  * Fix `LightboxGallery` style guide entry
  * Hide separator for last document list entry
  * Rename `DocumentListItem::isLast` to `shouldShowSeparator`
  * Wrap JSX siblings in container
  * Style guide: Fix empty state
  * Add `AttachmentSection` to style guide
  * Media Gallery: Fix Media + Documents Attachment Classification (#2351)
  * Simplify closing emoji panel on escape key down
  * Close Emoji Panel on Escape Key Press (#2357)
  * Notification improvements
  * Remove last notification before creating new one
  * Log read sync reception and remove notification

  [ tommypacker ]
  * Close emoji panel on escape press

  [ Nick Weingartner ]
  * Update hover color for horizontal dots in android dark theme

  [ Ayman Nedjmeddine ]
  * Updated copyright year to 2018

  [ Balázs Keresztury ]
  * Removed duplicate entry from .gitignore

  [ Bisaloo ]
  * Fix beta install instructions for debian-based linux (#2262)

  [ colefranz ]
  * issue-2023: move opened event out of selected conversation check
  * issue-2023: introduce unit tests for inbox view

  [ Navdeep Singh ]
  * Fix #2125 Prevent multiple settings modals

  [ Steven Leiva ]
  * 'Restart' -> 'Restart Signal' button in update dialog (#2024)

  [ Martino Pilia ]
  * Add a tray icon to the application (#1676)
  * Add badge for unread messages to the tray icon (#1934)

  [ Jesse Li ]
  * Add .deb specific dependencies (#1858)
  * Document building/testing releases in Contributing.md (#1867)

  [ Jon Roberts ]
  * a slightly more reasonable min-width (#1863)

  [ Lilia ]
  * Merge pull request #107 from zmanian/FixTravisBuildsOnPullRequests
  * Fix race handling contact sync with verified info (#1419)
  * Fix bouncy bubble widths (#1447)
  * Fix horizontal scrolling in convo/message lists (#1448)
  * Add transifex config to git (#1477)
  * Certificate pinning via node XMLHttpRequest implementation (#1394)
  * Make os notifications respect our sound setting (#1445)
  * Profiles (#1453)
  * Trigger empty event on keepalive timeout (#1466)
  * Handle provisioning messages with no profile key (#1470)
  * Better install view error handling (#1472)
  * Transifex config specific to electron, updated translations (#1478)
  * Upgrade emoji support (#1482)
  * Fix RangeError on non-file drag/drop events (#1498)
  * Log call messages instead of throwing error (#1504)
  * Remove duplicate definition of getSyncRequest (#1530)
  * Re-enable fullscreen on OSX (#1525)
  * Ensure locale is 'en' when NODE_ENV=test (#1527)
  * Fix audio notifications on linux (#1526)
  * Use cdn endpoint for auto update (#1538)
  * Standardize artifact names - include platform name (#1539)
  * Feature: Blue check marks for read messages if opted in (#1489)
  * i18n group updates (#1549)
  * Move to node fetch API for web requests instead of XHR (#1552)
  * Don't check for auto updates on linux (#1592)
  * Fix setSignedPreKey request - don't expect a JSON response (#1595)
  * Fix json parsing exceptions obscuring server errors (#1605)
  * Emoji picker (#1608)
  * Update libphonenumber (#1598)
  * Add support for Emoji 5 (#1797)

  [ johannes karoff ]
  * add urgency hints for linux platform (#1820)

  [ Andrey D ]
  * Update readme.md to use signal.org URLs (#1814)

  [ Vangelis ]
  * Added top level menu shortcuts, pull labels from messages.json (#1702)

  [ Caner Elci ]
  * Fixed drawAttention() position to comply with user's settings (#1612)

  [ lilia ]
  * Minor updates to curve255.js
  * Make booleans stringable
  * Avoid jsonifying undefined data
  * Fix the clickies
  * Refactor Server API functions
  * Add FakeWhisperAPI for serverless development
  * Fix infinite recursion in ensureStringed(Array)
  * Make popup a little nicer to look at
  * Work on message styling
  * Fix crashing send button
  * Fix click handler
  * Lilia's Webcrypto branch rebased and a few very tiny tweaks
  * Fix exception in options.js on first run
  * Generate and submit registrationId, fixes #25
  * Fix undefined URL_BASE in background.js
  * Fix subscribeToPush is not defined
  * Backbone message storage and views
  * Save messages from 'Compose' UI
  * Rename some things to be a little more semantic
  * DRY up PushMessageContentProtobuf construction
  * Minor css tweak
  * Fix broken registration flow
  * Fix Uncaught ReferenceError: isRegistrationDone is not defined
  * Fix a couple things broken in d9bf0a4
  * Thread model and UI improvements
  * Fix incoming message display/storage
  * Fix double display of outgoing messages
  * Refactor conversation list view
  * Such tests. Very mocha. Much chai. Amaze!!!
  * Add a note about running tests locally
  * Fix typo and add links to mocha and chai docs
  * Correction to url
  * Use separate message collections for each thread to facilitate lookup and lazy loading
  * Fix whitespace, lint
  * Let thread collection double as contacts db
  * Condense some code using Backbone.View's event framework
  * Use mustache template for message rendering
  * Use $.find so these locals can go away
  * Rename file
  * Don't make a new collection on every call to thread.messages()
  * New layout/design
  * Move ui init out of nacl callback and remove some lines that no longer apply
  * Make header and footer/form work without overflowing
  * Cull dead code
  * Let list view changes the color of selected conversations
  * Parse the template before binding render to an event
  * Refactor conversation view into two classes
  * Remove old convo compose view
  * rm stale css
  * Don't reopen a currently selected conversation
  * Close an open conversation before opening another
  * Don't recreate views unnecessarily
  * Someday we'll have images for contacts
  * Fix message sending
  * with love from tyler
  * get frontend rendering with new markup/css
  * Get messages sending with new ui
  * Format thread timestamps
  * This element is constant, so let's bootstrap it
  * bootstrap tags input
  * Refactor components for the main content section
  * Get single recipient message composition working again
  * Fix some markup issues
  * Get overflow scrolls working
  * remove extra insertion, it's already happening
  * Rm old css
  * use new index page for popup
  * Encapsulate page layout js
  * Move new convo stuff to its own file
  * Refactor away this poorly named and overloaded file
  * Add a page for testing views.
  * Add list view tests
  * Views already have a #remove()
  * Make conversations open when they are created
  * Reorganize message view test a bit
  * Fix nacl not loading
  * Remove some low-value makup
  * Fix whitespace in popup.js
  * There's no need to wrap this function inside a function afaict
  * Fix new group ui not showing
  * Update records list in BBLocalStorage on fetch
  * Switch to staging. -ca is now production
  * Relaxes verification code validation
  * Function-wrap options.js
  * Remove erroneous comment re: MDN copyright
  * Move phonenumbery utils to libphonenumber object
  * Refactor options page and style using bootstrap
  * Small frontend fixes for the new group view
  * Fix bug in groupId generation
  * More frontend groups fixes
  * Fix references to GroupContext Type ENUM values
  * Fix exception when protbuf-encoding groupIds
  * Open a group's view after it's created
  * Remove reference to undefined function
  * Avoid background thread overwriting outgoing messages
  * Convert incoming timestamps into numbers
  * Group ids should be strings (or stringables)
  * Don't validate presence of thread id
  * Make initial timestamp on a thread match the 1st message
  * Use textsecure.messaging to create groups
  * Add phone number utils to background page
  * Stringify incoming group ids
  * Group ids are stored in groupId
  * Group ids should be converted to ArrayBuffers for transport
  * Store group ids as strings
  * If for some reason a group has no name, provide a default
  * Put groupid back in id field also
  * Quickfix for wonky tagsinput
  * Fix strange loop in sendMessageProto
  * Fix group loop
  * Standardize some whitespace
  * Refactor textsecure.protos -> textsecure.protobuf
  * Open the most recent conversation on load
  * Shorten websocket time out. Fixes #67
  * Require a mandatory websocket reset once a minute
  * wip new message phone number validation
  * Send acks instead of closing and opening the socket
  * Fix new message number validation
  * Decorate incoming group messages
  * Highlight the selected thread
  * Small message form tweaks
  * Disable the real webcrypto
  * Webcrypto won't go down without a fight
  * Autoscroll conversation views
  * Basic frontend support for image attachments
  * Add support for cbc encryption
  * Well that's handy
  * Fix attachment ids
  * No, jQuery, don't processData!
  * Fix CBC encryption, test
  * Fix buffer concatenation
  * render attachments
  * Save outgoing attachments
  * Add importKey to webcrypto.js
  * Finish up webcrypto integration, Fixes #72
  * Remove unused *MACWithVersionByte functions
  * remove another unused function
  * Unused function
  * Move storage objects to their own files
  * Remove unused popup.html
  * Fix view test nacl path
  * Update message view test
  * Default avatars
  * Clean up test files
  * Don't warn on missing message bodies
  * Switch to bower dependencies
  * Grunt preen and concat
  * Pass protobuf attachment ids as strings
  * Use jquery with native transport support
  * Switch mocha and chai to bower components
  * rm old jquery
  * Add mustache to bower
  * Remove old underscore
  * Move qrcode lib to bower
  * Fix overly hidden elements on registration page
  * README updates
  * Let npm install bower
  * README note about deps and wrap some lines
  * Missed qrcode source
  * Rename bower_components
  * Preen mocha and chai. todo: fix concat
  * Make the concat list explicit
  * Switch tagsinput to bower
  * Switch crypto js to bower via google code svn
  * Switch libphonenumber to bower
  * Fix cryptojs hmac implementation
  * Update ByteBuffer.js
  * Bowerize backbone.localstorage
  * Add attachment inputs to new conversation form
  * Initialize session.currentRatchet.previousCounter
  * Remove 1mod8
  * Refactor crypto.js and native client interface
  * Removed now unused copy of getRandomBytes
  * Split crypto_test into crypto, protocol and helpers tests
  * Abstract out curve25519 tests
  * Abstract nativeclient callback logic
  * Wrap some long lines
  * Simplify a test
  * Add sass stylesheets
  * Build unminified manifest.css from sources
  * Remove unused stylesheets
  * Remove curve25519.js
  * Remove stray curve25519.js include
  * Add emscripten-compiled curve25519 module
  * Remove stray debugging test
  * Clean up after crazy emscripten fueled rager
  * Hooray for options
  * Finish abstracting native client
  * Fixup curve25519 module
  * Avoid breaking changes in qrcode library
  * Update libphonenumber
  * Remove obsolete argument
  * Move protocol test to end of suite and extend timeout
  * Build CryptoJS components into webcrypto.js
  * Simplify webcrypto type conversion
  * Do fewer string conversions in tests
  * Fold nacl-common into components
  * Fix options page stylesheet path
  * Registration ux tweaks
  * "Fix dirty hack" (runtime.reload) in chromium.js
  * Fixes #71 Autoscroll
  * Nicer timestamps with momentjs
  * Namespace registration helpers
  * Merge Whisper.Messages into Whisper Threads
  * Add some license headers
  * Misc cleanup threads
  * New websocket protocol
  * Add secure environment vars for travis
  * Remove nativeclient from test page
  * Move message and conversation storage to IndexedDB
  * Save incoming messages and pass to frontend asynchronously
  * Consolidate message callbacks
  * Destroy all globals
  * Fix scroll when re-opening a conversation
  * Get rid of Layout global
  * Fix tests
  * Store attachments as binary blobs
  * Rebind events when opening a previously opened conversation
  * WebSocket-Resources / websocket refactor
  * Add stringview license info and script tags
  * Add support for deleting a conversation
  * Shorten keep alive interval. Closes #97
  * Incoming request bodies are no longer base64
  * Keepalive endpoint
  * Indentation
  * Don't store conversationType on messages
  * Support for lower-level queries on indexedDB
  * Rewrite ReplayableErrors
  * Frontend support for ReplayableErrors
  * DRY up registration event callbacks
  * Handle incoming identity key changes
  * DB/Index Redux
  * Fix tests
  * Delivery receipts
  * Move index querying logic to /models
  * Fix message view using the wrong attribute
  * Fixup OutgoingIdentityKeyError handling
  * Fixup delivery receipts
  * Fix undefined proto.source
  * Fix bug overwriting existing conversation names
  * Normalize send-path error handling
  * Scratch that, reverse it.
  * Don't refreshGroups in tryMessageAgain
  * Fix arguments to sendMessageProto in tryMessageAgain
  * If we happen to get a group message with no update, use a blank name
  * Catch and save Bad Mac errors on the incoming message model
  * Tolerate extra whitespace in the registration code field
  * Don't require a conversation name
  * Simplify pushMessageContent handler slightly
  * Always listen for (re-)registration events
  * Re-enable sauce for PR's
  * Render group updates
  * Group avatars
  * Handle incoming group avatars on group creation
  * Fix build: Revert "Update some of the testvectors to v3"
  * Use a newer chrome version
  * restore default avatars
  * Add rudimentary ui for sending a group update
  * Less jquery, more templating in conversation view
  * Add license to file input view
  * Add a view for attachment previews
  * Quick fix for phone input style
  * Rename event
  * Fire an event on phone number validation
  * Add license headers
  * Update README, add CONTRIBUTING
  * Micro refactor group update setup in message view
  * Remove search bar
  * Micro edits to README and CONTRIBUTING
  * Update contributing.md re: websocket error message
  * Free allocated memory
  * Allocate 64 bytes for curve25519 sigs
  * Rebuild curve25519 for free
  * Rebuild libtextsecure also
  * Move index2 to index
  * Abstract chrome browser action and windows stuff
  * Cleanup inbox view
  * Add fonts so we don't have to hit googlefonts
  * Restore default avatars on the index
  * Fixup conversation page styles and functionality
  * Fix file input click zone
  * Move templates from index to converation pages
  * Hide file modal until it's needed
  * Make chat window titles match contact list
  * Set up index.scss
  * add missing new group update view to conversation page
  * Fixup attachment preview
  * Add backbone typeahead component
  * Implement typeahead (first pass)
  * Tweak contact style in typeahead
  * Customize typeahead tokenizer
  * Refactor typeahead into new conversation view
  * Let typeahead surface groups with matching members
  * Start on support for messaging a brand new contact
  * Move index styles to their own file
  * Label new-contact block
  * Initially hide newConversationView
  * Setup loading gif on conversation list
  * Restore delivery receipt checkmark
  * Remove stubborn width calculation
  * Remove obsolete note on test page
  * Stop matching typeahead against group members
  * Don't show new contact unless input may be a phone number
  * Make conversation panel work with a new contact
  * Style elements for compose flow
  * Add back button to compose view
  * Sort contacts by name in compose flow
  * Don't let contact details wrap in skinny windows
  * Break up grunt watch tasks
  * Style conversation menu
  * Reset the typahead before showing it
  * Remove unused variable
  * Move openConversation handler to InboxView
  * Add title bar label to new conversation view
  * Auto-focus new conversation input field
  * Adjust conversation menu styles
  * Listen for escape key anywhere in the inbox
  * Save and open new contact on click
  * Remove listener for model open event
  * Add hidden group update form to new conversation view
  * Add index on conversation type
  * Format phone numbers before saving conversations
  * Trigger a checkbox event from conversation list items
  * Remove unneeded comparator
  * Only load contacts (not groups) in the typeahead
  * Hook up group creation flow UI
  * Break up a long line
  * Sort contact selector by title
  * Improve typeahead contact selector experience
  * Put spaces between joined members in group updates
  * Add new icon
  * Fix tests
  * Shrink some styles
  * Change title bar color
  * Reorganize stylesheets and global styles
  * Fix list view scrolling
  * Restyle menu icon
  * New messages auto-update the inbox & conversation
  * Remove file modal from conversation page
  * Shrink more styles
  * Stop clobbering conversation attributes
  * Remove unused variable
  * Fix double-opening exsisting conversations from typeahead
  * Hide our own avatar for consistency with Android
  * Make 'New Message' view match new title bar style
  * Fix whitespace in manifest
  * Show phone numbers in contact selector
  * Validate conversation type
  * Remove unneeded var, add todo
  * Wrap model phonenumber validation in try/catch
  * WIP pill view for selected recipients
  * Draw attention to invalid numbers
  * Dry up new contact init and handling
  * Don't add new convos to inbox until a message is sent
  * Remove bootstrap tagsinput
  * Update favicons
  * Swap in unminified typeahead code
  * Conversations must have an id before saving
  * Untangle select vs open events
  * Avoid adding empty-string numbers to recipients
  * Fixup opening existing private conversations
  * Resize inbox listview after it finishes loading
  * Don't create a group without a name
  * Clear selected files after each sent message
  * Move inbox collection to the background page
  * Fix tests
  * Consolidate window logic in panel controller
  * Simplify list view resizing
  * Fetch messages in the background
  * Render the message list view.
  * Remove uneeded render
  * Remove unneeded listeners
  * Add some resizes
  * Get scrolling right on conversation load
  * Fix identity key error rendering
  * Remove unused variables
  * Fixes #152
  * Fix provisioning flow
  * Add SyncMessageContext
  * Handle incoming sync messages
  * Fix textsecure.closeSession
  * Hide sender names in private conversations
  * Fixes #161
  * Wire up end session and leave group
  * Render end session messages correctly
  * Style end session messages
  * Render leave-group messages correctly
  * Refactor message view
  * Sync outgoing messages
  * Refactor content message class names
  * Fix inbox comparator
  * Fix list_view.js and message_view.js whitespace
  * Fix list_view-related error in background page
  * Open conversation on receiving a message w/ errors
  * Fix bug loading conversation upsidedown
  * Flesh out font faces
  * Revisit resize and scroll logic once more
  * Remove resize logic in favor of pure css
  * Fix some jshints
  * Remove an extension.trigger
  * Fix missing delivery receipt checkmarks
  * Add background.js to jshint
  * jshint all the things
  * Remove unused code
  * Constrain .end-session style to the .message-list
  * Close conversation menu when clicking outside it
  * Return end session messages to the frontend
  * Preserve whitespace in _concat files
  * Remove obsolete script tags
  * Add grunt watch tasks to rebuild libs
  * Refactor title bar text style
  * Refactor back button style
  * Add message detail view
  * Render group members in the message detail view
  * Remove obsolete native client divs
  * Always overflow: auto
  * Add key verification screen
  * Fix broken file input view
  * Add audio and video players
  * Fixup file size warning
  * Give video elements black backgrounds
  * Lazy init file input's FileReader
  * Fix attachment previews for audio/video files
  * Fix file inputs on inbox view
  * Attachments should be in spans, not divs
  * Add missing images
  * After clearing messages, leave conversation open
  * Remove unused view
  * Update CONTRIBUTING.md
  * s/End Session/Reset Session/
  * Use blob urls to display attachments
  * DRY up audio and video views
  * Trigger update events after attachments load
  * Turn up the volume on README warnings
  * Add blueimp lib for html5's canvas-based image scaling
  * Add canvas.toBlob polyfill
  * Automatically compress and scale large images
  * Adjust widths of bubbles and chat window
  * Scale large images even if they are small
  * Unravel image processing recursion and fix bugs
  * DRY up a common view pattern
  * Remove unneeded function
  * Clean up older views, mostly whitespace
  * Use consistent boiler plate throughout js files
  * Tighten up send btn icon size
  * Fix multiple from address in message detail
  * Stop re-rendering attachments on delivery receipt
  * Tweak delivery receipt and timestamp display
  * Break a long line
  * Fix tests
  * Adjust message bubble tail position
  * Remove unneeded if-gaurd
  * Update test config to run against latest Chrome
  * Restyle registration page
  * Auto-link urls in message bodies
  * Rename Whisper.View#attributes
  * Curtail over-zealous websocket reconnects
  * Clean up inbox/compose view rendering and swapping
  * DRY up scrollable pattern
  * Bump keepalive to 60s
  * Add twemoji as a component
  * Render emoji in conversation and inbox views.
  * Add js-emoji as a component
  * Support :emoji_name: syntax for emoji text input
  * Reset keepalive timer if we're about to send
  * Don't send keepalive if socket has closed
  * Show an error if a conversation window fails to init
  * Always reconnect the socket except when there is an error
  * Unread counts
  * Plumb contact avatars into conversations
  * Don't scale or compress gifs
  * Fix tests
  * Fix crash when sending :invalid_emoji:
  * Close the inbox if the background page is refreshed
  * Refactor RecipientsInputView from NewConversationView
  * Tweak menu styles
  * Improve group update ui/ux
  * Unbind frontend listeners when window closes
  * Update CONTRIBUTING.md
  * Move most scripts to the background page
  * Recompile curve25519 with emcc 1.29.0
  * Let jscs ignore libtextsecure.js
  * Only init emoji map once.
  * Break long links in message bubbles / Fixes #204
  * Add device storage method to wipe an identity
  * Remove libaxolotl dependency on textsecure/errors.js
  * Trigger desktop notifications
  * Simplify avatar rendering
  * Popout inbox
  * Tweak replayable errors
  * Extract app-level logic from libtextsecure
  * Divorce identity wipe from tryAgain functions
  * Improve identity key conflict ux
  * Move handlePushMessageContent to message model
  * Fix standalone registration page
  * Allow unknown groups
  * Reset the name field on new group form
  * Improve notification contents
  * Move icon.png to /images
  * Add missing error.png
  * Set up production build task
  * Fix registration page styling
  * Fix copy task
  * Fix empty notification on key conflicts
  * Revert "Popout inbox"
  * In rare cases, a group has no members
  * Fix bug in panels controller
  * Focus text input when opening a conversation
  * Tighten up CSP
  * Make badge count accurate
  * Fixes #198 Squished avatars
  * Css source maps
  * Nicer looking end-session and group control messages
  * Remove extraneous listener
  * Fix message detail contacts for incoming group message
  * Re-render control messages if necessary
  * Smoother group create experience
  * Collapse two views into one
  * Fix resolveConflicts for groups
  * Remove dead code
  * Include outgoing control messages in message history
  * Allow empty group avatar file input
  * Allow key conflict resolution for group updates
  * Fix crash in message detail view
  * Don't trigger notifications for sync messages
  * Remove libtextsecure's jquery dependency
  * Restore delivery receipt checkmarks
  * Account for -1 HTTPError code
  * Fix NaN badge
  * Update CONTRIBUTING.md
  * Run key generation in a worker
  * Set unread count badge when background page is refreshed
  * Let the key worker close itself when done
  * Registration UX improvements
  * Update stylesheet
  * Use view.$ shorthand for scoped jquery searches
  * Add missing semicolon
  * Remove libaxolotl concat task
  * More helpful error logging
  * Wrap libts, don't leak into global namespace
  * Fix unsafe eval warning on registration page
  * Change progress dialog header
  * More error logging
  * Add missing resolve
  * Rename worker script file
  * Fix registerKeys using array indices for key ids
  * Generate key_worker.js
  * Don't jscs the generated key_worker.js
  * Delete the database once, before tests run
  * Reorder database.js include
  * Reorder database.js include in test
  * Remove unsued argument from getDeviceObject
  * Move browserAction call
  * Remove redirect to index from registration.done()
  * Add textsecure.MessageReceiver
  * Move throwHumanError to api.js
  * Rename textsecure.websocket and make it internal-only
  * Add mock-socket for testing socket stuff
  * Add TextSecureWebSocket tests
  * Fix tests
  * Add more websocket tests
  * Fix api.js
  * Add css transition to smooth progress bar animation
  * s/TextSecure/Signal on options page
  * Update libaxololt to a087b9e746e67995f16e077183cc0
  * Integrate libaxolotl async storage changes
  * Add textsecure.refreshKeys
  * Add textsecure.AccountManager
  * Use a worker to facilitate key generation
  * Fixup refreshPreKeys and call it whenever a prekey is deleted
  * Rename textsecure.api and make it internal-only
  * Async getSessionsForNumber
  * Async putSessionsForDevice
  * Async remove identity
  * Convert all storage.devices methods to be asynchronous
  * Move Session storage to axolotlstore
  * Move identity key storage functions to axolotl store
  * Move Session Storage to indexedDB
  * Store identity keys in indexeddb
  * Add getDeviceIds to axolotlstore
  * Add removeSession
  * Don't save device objects to disk
  * Close the provisioning socket
  * Store sessions by encodedNumber
  * Make libtextsecure group storage asynchronous
  * Fix up refreshGroup
  * Move group storage to axolotl store
  * AxolotlStore stores groups in indexeddb
  * Remove general get/put/remove methods from AxolotlStore
  * Update extension name and description
  * Use production server in /dist
  * Include bootstrap via sass
  * Resize icon to various resolutions
  * Get notification permission on install
  * Tweak key conflict error messages
  * Fix manifest
  * Update manifest to be a chrome packaged app
  * Make getBackground async
  * App windows cannot be refreshed
  * Load protobufs asynchronously. Fixes #223
  * Move local identitykey and registrationid to indexeddb
  * Port textsecure.storage.impl to indexeddb
  * Remove remaining traces of localStorage
  * Signaling key is now an array buffer
  * Don't resolve the background page til storage is ready
  * Load notifications script from background page
  * Adapt window management to chrome app window api
  * Convert beforeunload listeners
  * Fix registration page
  * Fix tests
  * Remove manifest attributes
  * Crash fixes for chromium
  * Check for registration when launched
  * Fix image corruption in /dist
  * Correct production server url
  * Remove obsolete build file
  * Update libaxolotl
  * Fix sync message timestamps
  * Fix for out-of-order message/receipt arrival
  * Fix null conversationId on group sync messages
  * Process group updates before sync delivery receipts
  * Do not include destination on group sync messages
  * Update open conversations on sync messages
  * Make conversation windows taller
  * Ignore sync contexts on messages not from ourselves
  * Set conversation type when creating from sync message
  * Update inbox after sending a message
  * Fix preen config
  * Modify default grunt task to include copy
  * Wait for storage on launch
  * Draw attention to windows on new messages
  * Delay conversation creation til post-decrypt
  * Keep inbox window open, but allow it to be hidden
  * Apply custom chrome to conversation windows
  * Style tweaks for new window chrome
  * Fix file inputs
  * Really close conversation windows
  * Fix sending messages with no attachments
  * Change inbox title
  * Fix for inbox sometimes not reappearing
  * Render conversation titles
  * Window ids should be strings
  * Wake up once a minute to check for messages
  * Fixes #240
  * Don't display notifications for open windows.
  * Fix the build
  * Fix bugs with handling large image attachments
  * Merge inbox and panel controllers
  * Render messages light blue until finished sending // Fixes #219
  * Display sent_at timestamps instead of received_at
  * Fix tests
  * Fix 'Delete messages'
  * Fix key verification screen
  * Update inbox after destroying a conversation
  * Decrease auto-scaling size
  * Remove weirdly sized icons
  * Switch to signal icon
  * List views persist sroll offset by percentage
  * Add openInbox link to conversation menu. Fixes #246
  * Update the window title when a group title or contact name changes
  * Pass windows around to let file inputs work
  * Scale and crop avatars to 256 square thumbnails.
  * Fix close session
  * Fix 410 handling
  * Fix string vs number comparison
  * Support late-addition of default image to file input
  * Update inbox when group avatars change
  * Handle single-error rejections when sending messages
  * Fix window border
  * Fix socket status indicator
  * Supress change event on avatarUrl initialization
  * Support custom placeholder on recipients input
  * Polish group update ux
  * Stop hiding inbox instead of closing
  * Group update recipient typeahead excludes exisiting members
  * Reset recipient typeahead after selecting a recipient
  * Implement sync protocol changes
  * Update json formatting for legacy message requests
  * Remove plaintext message test case
  * Conversations do not require timestamps
  * Add tests and bug fixes for ContactBuffer
  * PushMessageContent is now DataMessage
  * Wrap message receiver for minimum api exposure
  * Don't set attributes redundantly
  * Bug and test fixes for contact sync
  * Default avatar support
  * Fix avatar test
  * Fix avatars in conversation view
  * Fixup auto-expand
  * Remove old curve25519 build task
  * Add support for device name
  * Add contact sync request protocol
  * Sort contacts by name ignoring case
  * Work on auth error handling / reinstall
  * Add error dialog for too many devices
  * Support for group sync
  * Handle group sync for existing groups
  * Fix reinstalls
  * Display gray # instead of colored + for no-name contacts
  * Add short_name manifest attribute
  * Fixes #275 default group image
  * Mark conversation read on window focus event
  * Fix group update avatar handling
  * Place message body after attachments
  * Fixes #286 Allow selection of message text
  * Fix tests, let templating handle html escaping
  * Reload contacts when resetting a recipients input
  * Fix standalone registration
  * Fix decrypt error handling
  * Update notification code to new avatar format
  * Fix outgoing identity key conflict handling
  * remove unused argument
  * Fix messages stuck in pending state
  * Invert pending/sent model
  * Fix phantom outgoing messages
  * Use input instead of keyup/change events
  * Ellipsize long conversation window titles
  * Fix initial input focus in compose view
  * Mark group creation messages as sent
  * Reload harder
  * Mark messages sent after resolving outgoing key conflicts
  * Add transparent padding to 128px icon // Fixes #251
  * Convert throwHumanError to custom error type
  * DRY up Promise creation in api.js
  * Dispatch all network errors, not just auth errors
  * Namespace events
  * Use Promise.reject for simplicity
  * Tweak error icon
  * Cleanup 'Too many devices' dialog
  * Close stale windows on background refresh
  * Save outgoing group updates
  * Change default value for active_at
  * Fix up array buffer comparison
  * Convert to array buffer
  * Remove usage of extension.trigger
  * Turn off idb query logging
  * Remove redundant identity key updates
  * Mark end session messages sent
  * Let key verification view use array buffers
  * Reconnect once a minute if internet is down
  * Move/refactor keepalive logic and add disconnect timer
  * Update libaxolotl, un-revert b790f828491681c8a5
  * Update libaxolotl, remove one string conversion
  * Update libaxolotl, handle untrusted identitykey
  * Display the new key for verification after a conflict
  * Plumb keys into outgoing conflicts
  * Add missing semicolons
  * Let textsecure devices throw on identity key change
  * Refactor outgoing identity key conflict handling
  * Move makeAttachmentPointer
  * Add identity key conflict tests
  * Set lastmessage text on convo's with no timestamp
  * MessageReceiver accepts a server websocket url
  * Remove nonexistant variable
  * Don't auto-reconnect provisioning socket
  * Keepalive provisioning socket
  * Work on message receiver tests
  * Fix up websocket options handling
  * WebSocketResource exposes socket.close()
  * Accept close code/message via websocket/resources
  * Add auto-disconnect config to keepalive constructor
  * Integrate keepalives into websocket resources
  * Make handleRequest optional in WebSocketResources
  * Update tests
  * Add default response message to websocketresources
  * Update consumers of WebsocketResources
  * Fix test
  * Add keepalive reset test
  * Increase saucelabs test timeout
  * Fix up sauce config
  * Fix multiple calls to done
  * Migrate to new travis infrastructure
  * Let grunt-saucelabs wait a little longer for status
  * Add minimum window dimensions
  * Change default for keepalive autodisconnect config
  * Use new provisioning socket keepalive path
  * Fixup saucelabs
  * Request group sync when pairing
  * Update contact colors
  * Don't try to sync after single device registration
  * Use the correct number of contact colors
  * Fix bug with 0th contact color
  * Fix bug in identity key conflict edge case
  * Handle identity key errors when retrying decrypt
  * Resolve conflicts in series
  * Fix bug in message model
  * Update contributing.md
  * Add group member list // Closes #279
  * Update compose typeahead after fetching
  * Assume unknown recipients are single-device
  * Wait for contact sync before opening inbox
  * Change websocket closed message
  * Restore two column layout
  * Remove css maps from git
  * Fix heade text style
  * Mark read when opening a conversation
  * Fix up socket status display
  * Retool various sub-screens to fit two-column layout
  * Add a worker
  * Quiet notifications if the window is open
  * Bug fixes for group create flow
  * Add spinner for long-loading message lists
  * Only add loading class from inbox
  * Make conversation list fill gutter
  * Redelegate events for new contact view
  * Fix for new contact button bug
  * Refactor for less model duplication
  * Clear unread on focus iff convo is open
  * Clean up notification and unread indicator behavior
  * Remove unused function
  * Refactor and remove old window mgmt code/globals
  * Fix scroll stickiness while hidden
  * Fix lint warnings
  * Change colors and backgrounds
  * Make sure newly active conversations are added to the inbox
  * Fix new conversation with no lastMessage
  * Restyle conversation menu button
  * Make checkmark black // Fixes #338
  * After destroying messages, remove the conversation view
  * Compose flow style tweaks
  * Tweak dev and default grunt tasks
  * Move worker initialization to background.js
  * Tweak recipient input style
  * Add bottom border to conversation header
  * Make all mustache templates available as partials
  * Add contact list view
  * Fix conversation resize bug
  * Make it easier to reference templates
  * Clean up shared compose/group update ui
  * Fix conversations opening from the background
  * Fix suggestion list template
  * Remove erroneous license file and headers
  * Update CONTRIBUTING.md
  * On delivery receipts, reload messages only
  * Whitespace
  * Use generic collection for conversation contacts
  * Use generic Backbone collection for inbox
  * Remove global updateInbox, used scoped version
  * Refactor inbox collection listeners
  * Improve reconnect logic
  * Fix reconnect bugs from previous commit
  * Don't notify on sync messages
  * Use isPrivate helper
  * Render identicons in notifications
  * Disable socket level reconnect
  * Let message models manage blob urls for attachments
  * Improve notification behavior
  * Don't reset inboxWindowId
  * Fetch group contacts before fetching new messages
  * Upsize svg identicons
  * Avoid excessive re-rendering of the inbox list
  * Don't fetch messages from the background
  * Include image previews in notifications
  * Fix double selected states
  * Restyle new-contact element
  * Fixup change:active_at handling when setting null
  * Remove unused function
  * Remove inactive models from inbox collection
  * Add background color on key verification screen
  * Resolve multiple conflicts independently
  * Fix exception while creating a conversation
  * Include ourselves in member list for a new group
  * Mark relevant convos active/unread on key conflict
  * Fix new threads not appearing at top of inbox
  * Add code for submitting debug logs
  * Show notifications if the window is minimized
  * Opening a conversation should focus the window
  * Automatically mark the open conversation read
  * Add UI for submitting debug logs
  * Make debug log handle multiple arguments
  * Fix broken group avatar preview
  * Log more errors
  * Use online event listener to reconnect more smrtly
  * Render emoji in conversation title // Fixes #359
  * Promote groups to top of inbox when we update them
  * Let messages fetch references to senders
  * Delete old code
  * Fix disappearing contact info
  * Move ConversationController to its own file
  * Log all http requests at start and end
  * Stop calling updateInbox all the time
  * Fix tests
  * Create requires an object
  * Remove global updateInbox method
  * Remove double-check of unread count
  * Contact sync should update existing contacts
  * Remove script-tag for nonexistant test
  * Revert "Remove global updateInbox method"
  * Pass the signaling key into decryptWebSocketMessage
  * Don't auto-populate the relay field
  * Don't hardcode the attachment host
  * Refactor MessageReceiver for storage/server independence
  * MessageReceiver is an event target
  * Restyle compose button
  * Update minimal window dimensions
  * Mark leave group messages as sent
  * Include url in http response logging
  * Add more websocket debug logging
  * Log when we start waiting for an online event
  * Fix websocket event handler name
  * Simplify event arguments
  * Fix leave group bug
  * Log outgoing errors
  * Log outgoing errors individually
  * Fix event name
  * Remove unused callback arguments
  * Expose messageReceiver.close
  * Don't save/log websocket error
  * Reorder functions
  * Log error stack traces
  * More logging
  * DRY up group update sending
  * Refactor sendMessageToDevices
  * Refactor relay consistency check
  * Use foreach instead of a loop
  * Remove check for .humanError property
  * Remove refreshGroup
  * Refactor initial sync codepath to application layer
  * Move function declarations out of storage.onready
  * Move notification listeners to background
  * Add comments
  * Refactor index.js
  * Fix stuck pending messages state
  * Allow one more retry if we get a 409
  * Un-nest libtextsecure errors
  * Stop keepalive when socket closes
  * Refactor contact rendering in message detail view
  * Change http logging
  * Save all errors
  * Close the socket/keepalive when going offline
  * Move error messages to message detail view
  * Display a default message for incoming message errors
  * Save outgoing error codes when messages fail
  * Fix sync messages not getting displayed on arrival
  * Workaround for #363 Multiple open sessions bug
  * Fix test failure
  * Add comment
  * Abstract message error handling
  * Lint
  * Refactor TextSecureServer for storage
  * Add MessageSender
  * Disable keepalive if we disconnect the socket
  * Add websocket error and close event handlers
  * Fix dropping the first websocket message
  * AccountManager takes a url
  * Let background page instantiate AccountManagers
  * Let makeAttachmentPointer resolve falsey arguments
  * Move handleAttachment and processDecrypted
  * Remove deleted file from concatentation list
  * Throw on bad server url
  * Refactor sendmessage for prototypality
  * Move tryMessageAgain to MessageReceiver
  * Add replayable network errors
  * DRY up tryMessageAgain
  * Fix registration
  * Don't throw on duplicate members in a group update
  * Simplify filter predicate
  * Fix standalone registration
  * Fix tryMessageAgain
  * Pass bytebuffer to axolotlInstance
  * Don't throw if sender is not a group member
  * Fix disappearing conversation bug
  * Don't throw errors from background
  * Fix up post-conflict resolution error processing
  * Remove error class when no more message errors
  * Handle saving errors when none exist already
  * Don't double-render key conflict errors
  * Don't throw on unknown groups
  * Fix MessageSender prototype
  * Fix libtextsecure tests
  * Fix conversation model test
  * Remove attachment host string replace
  * More work on replayable errors
  * Use reject instead of throw
  * Let keepalive listen to socket events
  * Fix non-disappearing resend button
  * Don't show myself in the message detail contacts list
  * Add parens and line breaks
  * Refactor sendMessageToDevices
  * Collapse multiple retry buttons
  * Automatically retry failed http requests
  * Improve stack traces on HTTPErrors
  * Disable keepalive tests
  * Add search field to inbox
  * Hide buttons for group creation, update, and leave
  * Remove stray log statement
  * Restore native window chrome
  * Ensure that tokens get updated on initial save
  * Initial restyle
  * Remove unnecessary check in gruntfile
  * Conversation list style tweaks
  * Remove gray background from message detail
  * Move jquery from libtextsecure components
  * Restyle debug log
  * Mark delivered messages as sent
  * Use cursor: pointer on image attachments
  * Small refactor of attachment views
  * Make new-contact use cursor: pointer
  * Slow your roll, socket status updates
  * Fix saving TypeErrors
  * More small tweaks
  * Simplify keepalive resets
  * Shorten the search box
  * Fix overlapping name and timestamp
  * Serialize message sending per-recipient
  * Refactor contents of sendMessageProto
  * Handle exceptions when fetching keys for devices
  * Make sure group updates get emojified
  * Remove unused localStorage adapter
  * Messages bubbles with errors are clickable
  * Reconnect provisioning socket
  * Process incoming messages in order
  * Avoid opening message-detail twice
  * Validate argument lengths in crypto.js
  * Update libaxolotl
  * Use check/double check for sent/delivered
  * Change key conflict error message
  * Sinewave animation for pending requests
  * Add missing images
  * Refactor pending/sent/delivered state markup & css
  * Update libaxolotl
  * Change selector for opening a file input
  * Change target for appending file previews
  * Restyle attachment previews
  * Remove send button
  * After choosing a file, focus the message field
  * Focus the message field when conversation opens
  * Create notifications if window is not focused
  * Serialize requests for keys
  * Check for device keys in memory before requesting more
  * Fix blank lastMessage for non-text messages
  * Convo list shows 'Media message' when appropriate
  * Catch cancelation of confirmation dialog
  * Refactor and fixup key requests
  * Clear session store when re-registering
  * Remove api TODO comments
  * Don't reconnect if close was called
  * Create install flow
  * Fix container height in message detail screen
  * Fix displaying contact names as 'Unknown Group'
  * Resolve conflicts one at a time
  * Fix re-rendering when resolving conflicts with media
  * Update message bubble timestamps as needed
  * Clear timestamp timeouts if the window closes
  * Fix incoming key conflict behaviors
  * Reject messages sent to groups with no members
  * Save group members when creating groups from non-updates
  * Update README and CONTRIBUTING
  * Refactor new message notification and frontend updates
  * Clean up references to appWindow
  * Use larger icon on register.html
  * Fix invisible message detail scrollbar
  * Auto-populate device name
  * Validate number before showing step 4
  * Fix typo in install flow
  * Install flow accessibility tweaks
  * Fixes #394
  * Fix the build
  * Use onClosed instead of onSuspend
  * Add regression test for #270
  * Clear the lastMessage when deleting a conversation
  * Better anti-aliasing on red error mark
  * Replace sinewave with ellipse
  * Fix twitter link in install flow
  * Add missed css recompile
  * Add avatars to conversation headers
  * Display unreadCount badges in conversation list
  * Fix protocol version check
  * Limit max widths of various elements
  * Tweak selected state
  * Update conversation header avatar if it changes
  * Change search box placeholder
  * Fix unread badge for longer numbers
  * Remove the gradient
  * Update libaxolotl
  * Remove unused styles
  * Terminate cursor cleanly when using limit and index
  * Implement infinite scrolling message lists
  * Move some initial setup to the 'opened' event
  * Fix scroll position jumping when images load
  * Clear message collections when the window is closed
  * Save ReferenceErrors on messages
  * Update libaxolotl
  * Don't let unreadCount become negative
  * Reset unreadCounts
  * Simplify meta/timestamp styles
  * Update install copy
  * Remove unused file // FREEBIE
  * Remove missing js include
  * Serialize search queries
  * Ignore search queries that are all whitespace
  * Remove unnecessary jquery insertion
  * Add minimum chrome version
  * Remove cryptojs
  * Update libaxolotl
  * Use secure endpoints for dependencies
  * Validate attachment urls
  * Fix key conflict with self after master device re-install
  * Populate registrationIds on deviceObjects
  * Refactor messageSender/OutgoingMessage
  * Change return type from sending messages
  * Let the application layer send sync messages
  * Post debug logs as non public gists
  * Remove unused variable
  * Validate json responses
  * Show a hint on startup if the inbox is empty
  * Use constant time mac comparison
  * Update libaxolotl
  * Remove unused function
  * Restyle first run hint
  * Show all contacts when inbox is empty
  * Handle invalid responses better
  * Always return a promise from sendSyncMessage
  * Add hint for users with no groups or contacts
  * Render conversation placeholder hint in place
  * Fix selected state transition on firstRun
  * Bump version to 0.1.0
  * Save message timestamp for resending
  * Update CONTRIBUTING.md
  * Update name/description in app manifest
  * Tweak breakpoint width for conversation avatar
  * Bump to 0.1.1
  * Change welcome screen copy
  * Bump to 0.1.2
  * Update README
  * Silently remove read messages from existing notifications
  * Serialize notification updates
  * Bump version to 0.1.3
  * Update README
  * Don't save a MessageCounterError
  * Handle group quit sync messages
  * Save single errors returned from send functions
  * Display phone number in conversation header
  * Add link to blog post / beta signup in README
  * Remove duplicate case statement
  * Inline a one-line function only used in one place
  * Style search clear element
  * Add missing image file
  * Normalize message input font size
  * Don't request background page from background page
  * Log global errors
  * Update readme
  * Log invalid attachment urls
  * Log incoming invalid attachment urls also
  * Don't surface invalid attachment urls to the user
  * Update libaxolotl
  * Display nicely formatted phone numbers
  * Create contact by number with no country code or +
  * Let search match on full e164 format numbers
  * Clean up open-event logic with new convos and search results
  * Create contact from number with common punctuation
  * Fix searching for numbers with parens or dashes
  * Remove unused code
  * Refactor number parsing and validation
  * Remove id from search tokens
  * Add migration to update search tokens
  * Provide user feedback when number is invalid
  * Add model-level search tests
  * Fix message view tests
  * Normalize views' template fetching pattern
  * Fix standalone registration
  * Ignore delivery receipts from myself
  * Fix race between sync messages and receipts
  * Bump version to 0.1.4
  * Mark message sent iff at least 1 recipient got it
  * Clear dock/taskbar attention on window focus
  * Make fingerprints selectable
  * Fix no delivery receipts on close session messages
  * Clean up css style
  * Resize paperclip.png
  * More verbose logging in message receiver
  * Don't wake up to check messages if not registered
  * More logging
  * Bump version to 0.1.5
  * Discard unsupported files
  * Return early from previewImages for unsupported files
  * Add dist to .gitignore
  * Correct log statement
  * Remove received_at from message detail on outgoing messages
  * Add fullscreen permission // Fixes #538
  * Fix test
  * Fix up unsupported attachment rendering
  * Update libtextsecure
  * Fix autolinking for urls with non-English characters
  * Prepare for i18n
  * i18n ConversationView
  * i18n EndSessionView
  * i18n MessageDetailView
  * i18n ConfirmationDialogView
  * i18n GroupMemberListView
  * i18n KeyVerificationView
  * i18n InboxView
  * i18n SocketView
  * i18n FileSizeToast
  * i18n UnsupportedFileTypeToast
  * i18n AttachmentView
  * i18n KeyConflictView
  * i18n ContactView
  * i18n KeyConflictDialogue
  * Prefer single quotes
  * i18n DebugLogView
  * Update project/repo names in package.json
  * Add German and Finnish
  * Bump to 0.1.6
  * Add transifex link to README
  * Ignore .tx/
  * tx pull
  * Rename variable for consistency
  * Add new languages
  * Refactor for clarity
  * Move envelope decode before ack
  * Add Spanish, Russian, Swedish, and Turkish
  * Stop ask to re-link forever
  * Fix key conflict dialog i18n
  * Fix display of empty group updates
  * Refresh group contacts when rendering member list
  * Migrate registration state
  * Add SyncRequest class
  * DRY up event target implementations
  * Fix crash when removing a listener
  * Fire group sync completion event despite errors
  * Throw exception on bad args to SyncRequest
  * Add Portuguese and Romanian
  * tx pull
  * Bump to 0.1.7
  * Redo previous migration
  * Fix sync request argument check
  * Bump to 0.1.8
  * Quick fix for inbox not opening on launch
  * Bump to 0.1.9
  * Log when we draw attention to the window
  * Don't render placeholder markup unless necessary
  * Tweak copy for key verification view
  * Use inherited font-family on the message input
  * tx pull
  * Log invalid number inputs
  * Change copy when resetting a session
  * Populate placeholders across locale files
  * Update our own key on re-install
  * Update libphonenumber
  * Fix typo
  * Remove locale-patch from default grunt task
  * Fix jshint errors
  * Update translations
  * Reduce conversation bottom padding
  * Update translations harder
  * Add tooltip to reload button
  * Remove unused template
  * Remove unused code
  * Fix confirmation dialog z-index
  * Add timestamp update interval test
  * Update chai
  * Fix "Delete Messages" not deleting all messages
  * Rebuild libtextsecure test components w/ new chai
  * Bump to 0.1.10
  * Update chai
  * Remove bootstrap
  * Remove unused requires in Gruntfile
  * Update emojijs
  * Remove unused component
  * Update momentjs
  * Log envelopes and session end events
  * Make debug log persistent
  * Fix migrations
  * Make end session consistent with android
  * Process end session flags in sync messages
  * Rebuild components
  * Remove unused view
  * Add signal agent to server requests
  * Update translations
  * Fix handleSentMessage
  * Add missing bind in messageReceiver
  * Fix syntax error
  * Create a helper class for constructing messages
  * Add sendMessage to handle sending from Message class
  * Let group messages use new Message class
  * Handle attachment upload errors
  * Display a message when provisioning socket fails
  * Only update notification on add
  * Update translations
  * Bump to 0.1.11
  * Remove spurious storage.fetch from migration
  * Make migrations more robust
  * Remove empty css rule
  * Bump to 0.1.12
  * Fix debug log growing uncontrollably
  * Serialize calls to sendSyncMessage
  * Refactor delivery receipt processing
  * Process delivery receipts from yourself
  * Clicking on message status icon opens detail view
  * Make network errors & resend button more prominent
  * Move identity conflicts to top of message detail
  * Display key conflict dialog inline
  * Move error indicators on message bubbles
  * Tweak conflict style
  * Remove duplicate display of network errors
  * Add session store logging
  * Refactor Contact and Conflict views
  * Run jshint on more things
  * Add Notification Settings
  * Fix storage.put
  * Disallow trailing whitespace
  * Fix minor style errors
  * Rebuild test.js
  * Bump to 0.2.0
  * Add missing view file
  * Bump to 0.2.1
  * Fix up translatable string
  * Dedupe modal styles
  * Center conversation tile in the main pane
  * Put debug log in a modal
  * Capitalize menu items
  * Remove obsolete style rules
  * Make window unscrollable // Fixes #692
  * Fix menu overlap issue
  * Make debug log as big as possible
  * Fix debug log submission loading UX
  * Ignore attempts to post empty debug logs
  * Update translations
  * Bump version to 0.2.2
  * Update copyright year in README
  * Capitalize menu items in English
  * Track groups I've left
  * Omit left groups from search
  * Add tests for filtering left groups from search
  * Don't show left groups in list of all contacts
  * Clear old key conflict errors after failed replay
  * Do post-send tasks when resolving conflicts
  * Add libtextsecure support for syncing read messages
  * Derive global unread count from individual counts
  * Track and sync unread messages
  * Clear notification when the last one is removed
  * Clear key conflict before replaying it
  * Reorder grunt watch tasks
  * Add logging for clearing taskbar attention
  * Fix initial post-sync timestamps
  * Set destination on end session messages for syncing
  * Add validation to Message class
  * Refactor media uploading step
  * Add missing semicolons
  * Bump version to 0.3.0
  * Fix getUnread query
  * Fix unread message lookup in markRead
  * Don't send empty read status reports
  * Fix markRead when messages have not been loaded yet
  * Rename a function
  * Bump version to 0.3.1
  * Add logging when opening inbox
  * Add log statement when opening provisioning socket
  * Update translations
  * Add explanation for i18n placeholder
  * Add more notes on translatable strings
  * Another translation note
  * Update translations
  * Move pt locale to pt_PT
  * Disable unsafe character check in jshint
  * Update translations
  * Bump version to 0.3.2
  * Fix conversation list ordering
  * Remove messages from notifications when read
  * Update twemoji to v2.0.5
  * Fix tests
  * Update CONTRIBUTING.md
  * Warn if writing to storage too early
  * Allow promises to handle identity removal failure
  * Fix exception when drawAttention is called too early
  * Fix session corruption due to database races
  * Remove emoji logging
  * Restore notifications heading
  * Update translations
  * Fix up locale-patch
  * Fixes #663 Conversation list loads in reverse order
  * Perform components concatenation missed in ec6948
  * Update libaxolotl
  * Remove unnecessary conversion from test
  * Move, rename, and simplify toArrayBuffer helper
  * Use built-in string conversion on protobuf
  * Pass ciphertext as ArrayBuffer instead of string
  * Use forEach instead of loop
  * Update libaxolotl
  * Turn off session logging
  * Log sending read receipts
  * DRY up early receipt processing
  * Serialize sending and adding messages to a convo
  * Update translations
  * Bump version
  * Load all inbox convos before rendering
  * Tweak storage logging statement
  * Don't mark read on sync messages
  * Delete last timestamp on a convo when deleting messages
  * Remove newContact attribute
  * Show all contacts all the time
  * New layout
  * Restyle conversation panel
  * Align header buttons and touch up styles
  * Move restart button into global menu
  * Fix crash on read receipt event if no listeners
  * Replace message list loading spinner with bar
  * Tighten up left pane layout style
  * Make avatar letters bigger
  * Change left pane header color
  * Highlight bottom bar when focused
  * Fix global menu close handler
  * Adjust font colors
  * Apply 0.5s transition on header colors
  * Increase message list padding
  * Change right header color
  * Use url xor color on avatar, never both
  * Add x padding on message detail container
  * Let groups have blue headers
  * Conversation subscreens share a header
  * Clean up bottom bar styles
  * Ignore clicks on the placeholder and its contents
  * Tweak styles on key verification view
  * Add missing images
  * Add bg color on default group avatar
  * Fix welcome text centering
  * Move back button to the left
  * Fix menu behavior
  * Add padding to right of conversation input
  * Style resend button as an inline link
  * Fix oddly shaped disconnected icon
  * Add top padding to panel containers
  * Fix i18n in tests
  * Nest key verification inside conflict dialogs
  * Consolidate panel container styling
  * Remove unusued event handlers
  * Reorder object members
  * Make panel scrollbar track persistent
  * Incoming bubbles have sender's color background
  * Clean up timestamp/status alignment
  * Tighten spacing between bubbles
  * Fix border-color on inactive conversation header
  * Update style and copy on key changes
  * Simplify menu markup, tweak styles
  * Bump version to 0.5.0
  * Fix conversation list self-resorting
  * Fix sorting on incoming key conflicts
  * Fix sorting of the last element
  * Clean up search outline
  * Bump version
  * Add debug logging
  * Bump version
  * Log on prekey messages
  * Use normal font size in search bar
  * Differentiate active vs selected conversation states
  * Vertically center contact names
  * Decrease bubble radius
  * Tweak conversation list active state
  * Icon upgrade
  * Tweak button sizes and menu style
  * Harmonize border radii
  * Remove background color from new contacts
  * Use svg for paperclip icon
  * Remove unused style
  * Remove unused template
  * Harmonize x/close buttons
  * Remove unused image
  * Remove unused argument
  * Update libaxolotl
  * Update translations
  * Add build support for expiring old releases
  * Add frontend support for expiring releases
  * Bump version
  * Fix read sync on duplicate messages
  * Update libaxolotl
  * Fix up contact list height off by 4px
  * Add alt tags to menu buttons for screen readers
  * Remove commented out button
  * Make close buttons part of the tab order
  * Add alt tags to close buttons
  * Use aria-hidden on avatars
  * Apply button hover effect on focus as well
  * Use button for file input / paperclip
  * Update translations
  * Apply paperclip hover state on focus
  * Bump version
  * Remove /native
  * Update install copy
  * Log when fetching messages
  * Break up long line
  * Use helper function
  * Move mixins to a separate file
  * Remove unused file, stale comments
  * Make debug log link focusable/selectable
  * Add link to github on debug log
  * Move debug log styles to their own file
  * Device names must be 50 chars or less
  * Debounce updates to notifications and other events
  * Log unread message timestamps
  * Refactor delivery receipt tracking
  * Refactor read state tracking
  * Clear window attention if all messages are marked read
  * Add magnifying glass to search field // Fixes #737
  * Add missing search icon
  * Bump version
  * Fix file input bug introduced in 28c602a
  * Fix reference error in MessageReceiver from fe82e4
  * Unpad message-container on message detail screen
  * Always update lastMessage on incoming messages
  * Don't let timestamps wrap
  * Fix errant change event handler from firing
  * Maintain scroll position when textarea resizes
  * i18n 'Media message'
  * More consistent timestamps
  * Darken the scrollbar on hover
  * Bump version
  * Fix error icon
  * Update protocol libs
  * Rename AxolotlStore
  * Change libsignal-protocol filenames
  * Update libsignal protobuf package name
  * Update libsignal-protocol
  * Rename axolotlInstance
  * Rename axolotl storage
  * Fix comment
  * Rename axolotl to libsignal
  * Change filename
  * Fix tests
  * Fix reference errors in isStringable
  * Update translations
  * Add keepalive logging
  * Bump version
  * Add isTrustedIdentity to SignalProtocolStore
  * Update libsignal-protocol
  * Tests for isTrustedIdentity
  * More descriptive tests
  * Unnest before statements
  * Update libsignal-protocol / Update prekey format
  * Update translations
  * Bump version
  * Update libsignal-protocol
  * Update translations
  * Bump version
  * Remove tempKeys
  * Remove trivial wrapper method
  * Rename device_storage_test.js
  * Update libsignal-protocol v0.4.0
  * Update translations
  * Bump version
  * Integrate libsignal.SessionCipher
  * Bump version
  * Update libsignal-protocol v0.5.0
  * Bump version
  * Update libsignal-protocol v0.6.0
  * Remove getRegistrationId and encryptMessageFor from protocol_wrapper
  * Remove processPreKey from protocol_wrapper
  * Remove decryptWhisperMessage from protocol_wrapper
  * Remove handlePreKeyWhisperMessage from protocol_wrapper
  * Remove closeOpenSessionForDevice from protocol_wrapper
  * Remove hasOpenSession from protocol_wrapper
  * Get device ids instead of objects
  * Remove unused jobqueue
  * Update libsignal-protocol v0.7.0
  * Update libsignal-protocol v0.8.0
  * Use SignalProtocolAddress in MessageReceiver constructor
  * MessageReceiver uses SessionCipher to retry conflicts
  * Bump version
  * Move hard-coded worker url out of libtextsecure
  * Update libsignal-protocol v0.9.0
  * Bump version
  * Update libsignal-protocol v0.10.0
  * Update libsignal-protocol v0.11.0
  * Remove relay check from sendmessage
  * Use deviceIds/addresses instead of encodedNumbers
  * Remove unused function
  * Move device storage methods to outgoing message
  * Dedupe methods
  * Remove unneeded property from device object
  * Update libsignal-protocol v0.12.0
  * Update libsignal-protocol v0.13.0
  * Bump version
  * Fix websocket event name
  * Remove timestamp logging
  * Don't allow retry on unregistered user errors
  * Define UnregisteredUserError class
  * Restyle error icons, move them outside the bubble
  * i18n unregistered user errors
  * Hide unregistered user errors in groups
  * Remove unused style
  * Make error messages clickable
  * Remove tool tip from unregistered user errors
  * Error icons only use pointer-cursor when clickable
  * Process all incoming conflicts before outgoing ones
  * Bump version
  * Remove devices with no keys
  * Update libsignal-protocol v1.0.0
  * Update libsignal-protocol v1.1.0
  * Bump version
  * Add button for re-importing contacts from phone
  * Display numbers in group member list
  * Add min-width on video elements
  * Open images in a lightbox
  * Update libsignal-protocol v1.1.1
  * Bump version
  * Handle sync request where no groups are sent
  * Update translations
  * Disable keepalive logging
  * Log on session save failure
  * Refactor attachment saving for DRYness
  * Pressing escape closes the lightbox
  * Update libsignal-protocol v1.1.2
  * Scope media pausing to the open conversation
  * Bump version
  * Fix lightbox
  * Bump version
  * Fix _lightbox.scss
  * Fix style
  * Make welcome screen prettier
  * Bump version
  * Fix dir=auto for convos with blank timestamps
  * Bump version
  * Reduce log noise from delivery receipts
  * Log when updating notifications
  * Reduce log noise from prekey messages
  * Don't sort if already sorted
  * Use port 4433 on staging
  * Update libsignal-protocol v1.1.3
  * Log on notification removal
  * Bump version
  * Only create notifications for unread messages
  * Pluralize minute in localized timestamp strings
  * Add momentjs locales
  * Remove untranslatable strings from locale file
  * Add descriptions to timestamp i18n strings
  * Update translations
  * Remove duplicate description field
  * Move window.chrome reference to chromium.js
  * Fix timestamp tests
  * Update translations
  * Update momentjs
  * Use momentjs for timestamp localization
  * Log on failure to fetch storage
  * Bubble up InvalidStateErrors and log them
  * Update translations
  * Bump version
  * Allow localization of month-day format string
  * Update libsignal-protocol v1.1.4
  * Update translations
  * Add voice notes
  * Disable voice notes
  * Localize the app description in the webstore
  * Update libsignal-protocol v1.1.5
  * Add support for new fingerprint format
  * Remove unused view
  * Make font sizes relative
  * Change font size on ctrl+scroll
  * Address large font size edge cases
  * Update translations
  * Fix lint
  * Rename component
  * Fix closing recorder when clicking away
  * Update translations
  * Bump version
  * Refactor css to support theming
  * Add settings ui for theme
  * Tune up ios bubble style
  * Fix svg icon colors
  * Fix ios control messages
  * Theme-ify header colors and styles
  * More themeing
  * Remove Android requirement from install flow
  * Cleanup colors and focus/active input states
  * iOS bubble tails
  * Add subtle border to ios attachments
  * Upgrade emoji support and switch to apple emoji
  * Customize emoji conversion
  * Remove unused code
  * Strip unicode null from deviceNames
  * Update translations
  * Fix tests
  * Fix search tests
  * Revert "Remove Android requirement from install flow"
  * Partial revert of "Update translations"
  * Fix bubble selection style and toast z-index
  * Bump version
  * Fix selection style
  * Render emoji in group name in group updates
  * Fix padding on key-conflicts
  * Fix size of microphone icon
  * Simplify invert-text-color mixin
  * Make group updates and other control messages selectable
  * Generalize toast view template
  * Add support for syncing colors
  * Add support for syncing blocked numbers
  * Fix lint
  * Remove title attr from socket status
  * Make contact sync button quieter
  * Update translations
  * Add server fallback port 8443
  * Log websocket urls
  * Add port 80
  * Bump version
  * Fix sender name color on android
  * Update translations
  * Bump version
  * Make timestamp text selectable
  * Update display when contact colors change
  * Fix undefined websocket port
  * Update translations
  * Bump version
  * Fix text wrapping on long urls in ios theme
  * Set theme based on master device userAgent
  * Move chrome-specific calls to chromium.js
  * Refactor registration event
  * Upgrade libsignal-protocol v1.1.6
  * Let key verification view lazy-load keys
  * Fix tests
  * Update translations
  * Bump version
  * Remove stale comment
  * Add test fixtures
  * Fix tests
  * Remove Android requirement from install flow
  * Bump version
  * Fix wrong link to app store on install flow
  * Support i18n with multiple links
  * Update translations
  * Bump version
  * Add protocol support for disappearing messages
  * Add an index on message.expireTimer
  * Support for incoming expiring messages
  * Use read receipt envelope to infer startExpirationTime
  * Ensure that expired messages are removed from the frontend
  * Render animated hourglass when messages are expiring
  * Hourglass can start at any percentage
  * Breakout timer rendering into its own view
  * Add support for expiration timer updates messages
  * Add clock svg style
  * Invert button styles
  * Bail early when processing timer updates
  * Frontend for timer updates and timer indicator
  * Apply expireTimer to outgoing messages
  * Send timer update messages when changing the timer
  * Sync expirationStartTimestamp on outgoing messages
  * Insert timer update messages when inferring timer changes
  * Do not trigger notifications for timer updates
  * Disable disappearing messages
  * Populate conversation snippet for timer updates
  * Update conversation snippets automatically
  * Convert expirationStartTimestamp to number
  * Allow null expireTimer in sendmessage
  * Fix destination on synced timer updates
  * Fix truncated text in conversation list on timer update
  * Fix handling sent messages sans expirationStartTimestamp
  * Use 'You' instead of your own phone number
  * Fix group timer updates
  * Insert inferred timer updates before the corresponding message
  * Fix messages being inserted in the wrong place
  * Remove log message
  * Add Events to SignalProtocolStore
  * Implement non blocking option
  * Add frontend for safety numbers approval setting
  * Ensure new installs default to non-blocking
  * Insert keychange advisories
  * Switch from fingerprints to safety numbers
  * Add qr codes
  * Fix style for qr code
  * Remove dead code
  * Delete extra space
  * Update libsignal-protocol 1.1.7
  * Fix wrong contact in some timer updates
  * Ignore expireTimer on session reset messages
  * Fix message insertion for the first element inserted
  * Bump version
  * Fix re-appearing disappearing message ui
  * Bump version
  * Remove log message
  * DRY
  * Style fix
  * Remove refs to appWindow
  * Remove dead code
  * Update translations
  * Fix tests
  * Change Identity to Safety Numbers in conversation menu
  * Split up themes into separate files
  * Improve capitalization consistency in menus
  * Fix some localization descriptions
  * Update translations
  * Fix string
  * Adjust hourglass vertical alignment
  * Enable disappearing messages
  * Update translations
  * Bump version
  * Fix missing hourglass on some expiring messages
  * Simplify and correct message metadata alignment
  * Remove unneeded rule
  * Fix necrobumping convos on key change
  * Bump version
  * Reduce CPU load from css animations
  * Update translations
  * Bump version
  * Remove dead code
  * Hide verification QR code
  * Update translations
  * Bump version
  * Bump video min-width to include all controls
  * Update verification screen copy
  * Update translations
  * More identity key -> safety numbers changes
  * Yet more identity key -> safety numbers changes
  * Use timeout-based animation for hourglasses
  * Update translations
  * Update libphonenumber
  * Bump version
  * Update translations / Fixes #963
  * Don't load group contacts unnecessarily
  * Revert "Don't load group contacts unnecessarily"
  * Reduce load from delivery receipt processing
  * Update translations
  * Bump version
  * Dark theme tweaks
  * Darken material colors in dark theme
  * Use shades of gray for left pane focus effect
  * Make dark theme links lighter and less saturated
  * Update translations
  * Bump version
  * Validate/reformat phone numbers in contact syncs
  * Merge timer update functions
  * Use correct type on timer updates
  * Fix wrong variable name
  * Add timestamps to attachment filenames
  * Fix key change advisory style in dark theme
  * Lint
  * Add id attr to key change advisory elements
  * Move key change advisory content to the model
  * Tweak key change advisory insertion
  * Update conversation lastMessage from database
  * Update translations
  * Bump version
  * Add bithub badge to readme
  * Add audio to prod build
  * Add debug logging for #1030
  * Support future compatibility for new timer options
  * Confirm device name with enter key
  * Group updates never have body or attachments
  * Support for undefined preKey
  * Update libsignal-protocol 1.1.8
  * Update translations
  * Bump version
  * Serialize prekey refreshes & other account mgmt
  * Add creation timestamps to signed keys
  * Return created_at and keyId with signed prekeys
  * Support for server endpoint to set signed key
  * Add loadSignedPreKeys to SignalProtocolStore
  * Add replayable error for signed key failure
  * Add signed key rotation and deletion routines
  * Add signed key rotation scheduler
  * Remove dead code
  * Revert "Remove unregistered group members"
  * Update translations
  * Fix tests
  * Bump version
  * Fix fetchExpiring
  * Add logging for install and update events
  * Log when we see a 0 registrationId
  * Set expireTimer to null to unset
  * Update libsignal-protocol-javascript 1.1.9
  * Fixup account manager task queue
  * Provisioning socket events don't block AccountManager tasks
  * Drop unneeded binds
  * Fix key change errors while retrying key change errors
  * Reduce unnecessary updates on conversations at startup
  * Add CallMessage protos
  * Avoid querying groups on delivery receipts if possible
  * Remove spurious update to conversation on delivery receipts
  * Restore setting lastMessage in handleDataMessage
  * Rework expiring messages management
  * Fix unresolved promise in removeSession
  * Log session deletions
  * Drop chrome.runtime.onMessage events
  * Update translations
  * Bump version
  * Fix timers after suspend/resume/pause
  * Add migration to clean up old expiring messages
  * Update translations
  * Bump version
  * Remove unused object store reference
  * Update translations
  * Bump version
  * Remove unused html file
  * Stop parsing attachment ids from attachment urls
  * Add attachment digests
  * Don't hardcode the attachment server url
  * Update translations
  * Bump version
  * Add text-security css class
  * Update libsignal-protocol-javascript 1.1.10
  * Update translations
  * Bump version
  * Handle unknown request types
  * Update translations
  * Bump version
  * Fix blank window after unlink
  * Simplify openConversation
  * Tweak network status styles
  * Update libsignal-protocol
  * Log missing signed prekey ids
  * Namespace global listeners to Whisper
  * Remove some global refs to window.events
  * Rename window.events to Whisper events
  * Only re-render network status when it changes
  * Display info in network status when unlinked
  * Network status listens to some global events
  * Refactor install view
  * Tweak socket event logging
  * Fix tests
  * Bump version
  * Use appendChild instead of append
  * Update translations
  * Bump version
  * Cleanup attachment attributes
  * Add support for attachment file names
  * Populate attachment file size
  * Improve unsupported file type handling
  * Save 'video/quicktime' files as .mov
  * Update tests
  * Fix tests
  * Update jshint
  * Fix tests again
  * Fix attachment size
  * Brighten dark theme microphone icon
  * Use ISO format in log message
  * Don't fallback to file view for images
  * Bump version
  * Move Whisper.events out of views and tests
  * Allow sending arbitrary files
  * Bump version
  * Update translations
  * Fix missing emojis in production build
  * Bump version
  * Fix empty bubble on accepting a new key
  * Update translations
  * Bump version
  * Remove self-listener in conversation model
  * Log key change advisory creation
  * Improve keychange notice reliability/perf
  * Early read receipts should start expiration timers
  * Enable voice notes
  * Add voice note flag to protobufs
  * Flag voice note attachment protos as such
  * Update attachment style
  * Remove unneeded promise wrapper
  * Clean up key change listener tests
  * Conversation view blocks sending to left groups
  * Sync end session messages
  * Update translations
  * Mark groups left on synced "You left the group"
  * Remove unused function
  * Update translations
  * Disable voice notes again
  * Bump version
  * Fix display name for ios voice messages
  * Enable voice notes again
  * Update translations
  * Bump version
  * Add descriptions to i18n messages about network status
  * Fix some corner casese with last seen indicator
  * Tweak scroll to bottom bottom color
  * Restyle last seen indicator
  * Move refresh prekeys out of SignalProtocolStore
  * Add log to see if we ever fetch while fetching
  * Reuse a variable
  * Update translations
  * Bump version
  * Remove out of date test
  * Fix being re-added to a group you previously left
  * Stop sending legacy DataMessages
  * Update translations
  * Remove error.png, unused since 53407918
  * Inline some functions in OutgoingMessage
  * Don't recompute outgoing message padding
  * Remove legacy property from OutgoingMessage
  * Add database migration
  * Add support for getProfile to TextSecureServer
  * Add getProfile to MessageSender
  * Add isBlocking/isNonBlockingApprovalRequired
  * Update saveIdentity
  * Unwrap removeIdentityKey from calls to saveIdentity
  * Pass in non/blockingApproval args to saveIdentity
  * Update isTrustedIdentity for directional trust
  * Update libsignal-protocol
  * Fetch profiles whenever conversations are opened
  * Fix tests
  * Add tests for all the new isTrusted behaviors
  * Update tests for saveIdentity
  * Handle identity errors on decrypt
  * Fix libsignal-protocol using wrong direction flag
  * Remove blockingApproval
  * Add verified status
  * Add identityKey model validation
  * Add new methods to identity store
  * Account manager calls saveIdentityWithAtttributes
  * Default nonblockingApproval to false
  * Let removeIdentityKey delete the entire record
  * Preserve UNVERIFIED status on key change
  * Rename model IdentityKey -> IdentityRecord
  * Normalize whitespace in storage tests
  * Update identity store tests
  * Support for sending and receiving verification sync messages
  * Fix test page template
  * Fix indentation
  * Update setVerified to take an optional key argument
  * Add special handling for verification sync
  * Apply special handling to verification sync messages
  * Test new setVerified behavior
  * Test processVerifiedMessage
  * Fix a test
  * Handle identity key change errors on encrypt
  * Archive sessions on key changes after profile fetch
  * Archive sessions whenever an identity key changes
  * Randomly pad all sync messages
  * Update protos with support for null messages
  * Handle verified state from contact syncs
  * Support for receiving null messages
  * Send null messages to mask verified syncs
  * Fix failed identity key sync from contact sync
  * Update libsignal-protocol
  * Add archiveSiblingSessions
  * Fix deadlock in saveIdentity
  * Ensure all sessions are archived on profile fetch
  * Fix tests
  * Update translations
  * Update swedish translations
  * Hello Electron
  * Populate required fields in package.json
  * Add electron and electron-builder dev dependencies
  * Configure electron-builder
  * Quick fix for undefined references to chrome.*
  * Use relative paths
  * Merge index.html into background.html
  * Fix file dialog
  * Auto-update hourly
  * Set AUMID to appId
  * Exclude some files from inclusion in packaged app
  * Enable sandbox
  * Ensure app is single-instance
  * Add productName to package.json
  * Get install flow working in main window
  * Scope install styles to install element
  * Separate development and production environments
  * Fix restart
  * Quick fix for i18n
  * Fix debug log
  * Fix inbox styles
  * Fix autoUpdater error in development
  * Generate ico and icns from png
  * Fix lightbox
  * Fix exceptions on window close
  * Add standard menus
  * Don't auto-open devtools in prod
  * Setup publishing to s3
  * Fix missing icons on linux
  * Fix pre-populated device name
  * Remove spaces from windows installer name
  * Fix focus detection
  * Bump to 1.0.1
  * Log on preload
  * Database logging cancels persistent debug log storage
  * Configure app/build using node config
  * Update CONTRIBUTING.md
  * Use default output dir: ./dist
  * Add local config overrides to .gitignore
  * Fix scroll overflow in installer layout
  * Adjust initial window size
  * Move focus listeners to their own file
  * Remove onLaunched handler
  * Open links in the default browser
  * Fix i18n of timer options
  * Fix setUnreadCount
  * Refactor app view
  * Remove check for open windows
  * Add local.json to gitignore
  * Update CONTRIBUTING.md
  * Rename window.env to window.config
  * Ensure that package.json environment > NODE_ENV
  * Build expiration date
  * Use local var `environment` rather than `NODE_ENV`
  * Log on app ready
  * Override environment vars in production
  * Fix release script
  * Fix aptly path
  * Update default grunt task
  * Bump version
  * Add CSP
  * Log user data directory
  * Flatten database migrations
  * Ignore .DS_Store
  * Get standalone registration working in development
  * Delete unused files
  * Add node version to debug log
  * Use built-in url parsing in preload script
  * Use relative path for file.svg
  * Fix saving attachments
  * Bump version
  * Add spellcheck
  * Make icons more consistent
  * Correction to comment in aptly.sh
  * Add yarn.lock
  * yarn upgrade
  * Upgrade dev dependencies
  * yarn upgrade icon-gen
  * yarn upgrade electron-builder
  * Fix opening a conversation from notification
  * Add .yarnclean
  * yarn add --dev electron-publisher-s3
  * Add asar for inspeting asar contents
  * Generate icons with electron-icon-maker
  * yarn remove icon-gen
  * Closing the window hides the window on mac
  * Remove unused method
  * Set badge count
  * Draw attention to the window on new messages
  * Allow multi-instance in development
  * Remove unused method
  * Collect references to Whisper.events
  * Make standalone registration more accessible
  * Hide initially empty error in standalone view
  * Remove dead code
  * Prevent window navigation
  * Conversation view handles drag n drop events
  * Bump version
  * Setup for mas build
  * Don't makeSingleInstance in a MAS build
  * Add some logging to main process startup sequence
  * Restore missing contactsync listeners
  * Don't check for updates in the MAS build
  * More main process logging
  * Exclude some build files from native modules
  * Add Show option under the Window menu
  * Remove number validation from install view
  * Change mac output dir in asar script
  * Add bundleVersion to mac config
  * Add icon path for linux
  * Add ability to unhide the window from the renderer
  * Unfurl notifications
  * Tweak default notification content
  * Remove platform-specific links from install flow
  * Bump bundleVersion for app store
  * Switch to iPhone image in installer
  * Bump bundleVersion
  * Fix scroll reset after clicking on a notification
  * WIP Travis build
  * Temporarily remove sauce from the build
  * Add appveyor
  * Switch to grunt-sass + node-sass-import-once
  * Fix setting environment var on windows
  * Fix windows build, don't clean yml
  * Rename script
  * Configure deployment from appveyor
  * Build only .zip on mac
  * Disable build script publishing in ci
  * Bump to 1.0.5
  * Inline setUnreadCount
  * Remove dead code
  * Remove extension.notification
  * Fix menu on non-darwin
  * Limit hidden window behavior to osx
  * CI builds zip for all platforms
  * Reset bundleVersion
  * Add task to download releases from s3
  * More release scripting in npm
  * CI builds and uploads all targets
  * Make 'Restart Signal' actually restart Signal
  * Remove remaining call to extension.notification.update
  * Add spectron
  * Add spectron tests to grunt:test-release
  * Fix linux
  * Remove mac artifactName config
  * Restructure prep-release script slightly
  * Prepopulate phone number on standalone page
  * Fix build bucket path
  * Fix relative paths
  * Bump to 1.0.6
  * Fix file icons on android theme
  * Add spellcheck smoke test
  * Unpack hunspell dictionaries on windows and linux
  * Exclude hunspell source from packaged apps
  * Add release test for auto updater config
  * Bump to 1.0.7
  * Add grunt todo
  * Point aptly at ./release instead of ./dist
  * Fix scroll to bottom arrow icon
  * Fix code fencing in CONTRIBUTING.md
  * Fix $name$ in confirmation dialogs
  * Add View -> Debug Log to menu bar
  * Make debug log available from the installer
  * Remove the old debug log menu item
  * Fix exception in install view
  * Remove manifest.json from Gruntfile
  * Fix timeouts

  [ Heather Booker ]
  * Specify font-family for identicon in notification
  * Fix copy pasta of timestamp_m to timestamp_h in locales (#1582)

  [ John Jago ]
  * Add GPLv3 LICENSE file (#1309)

  [ Nicholas Rizzio ]
  * Remove references to BitHub (#1576)

  [ Axel ]
  * Add setting to hide menu bar (#1551)

  [ Michael Kirk ]
  * scroll only when needed (#1441)

  [ David Balatero ]
  * Make node_modules cache dependent on package.json
  * Enforce a minimum window size
  * Show dialog box when there's an update for download
  * Add a fallback message when no locale is set
  * Ignore dev-app-update.yml
  * Ensure we are grabbing the right build artifact
  * Use app interface to get the version
  * Force app to quit on Mac when we auto update
  * Refactor external source files to live in app/
  * Refactor configuration out into reusable files
  * Refactor locale to only expose the data we care about
  * Rename autoupdate -> auto_update, remove redundancy
  * Couple of semicolons to match style

  [ beernutz ]
  * Update to work around flashing icon issue (#1384)

  [ armata ]
  * fix dark theme button hover color

  [ Sebastian Malek ]
  * fix #1241: registration page readability issue
  * align country list text to left

  [ Ikarulus ]
  * Added a dark theme
  * Changed debug log color in dark theme
  * Removes orange borders glitch (visible in dark design)
  * Moving the error badge to the right corner in ios theme
  * fixed #1163, dark theme flaw
  * changes due to feedback
  * add hover event
  * add message length warning for android clients
  * fix typo
  * changes due to feedback

  [ Unknown ]
  * Add scroll-down-button hover-effect
  * Effect for Android-dark theme
  * Hover-effect for new messages
  * Forgot &
  * Update CSS

  [ Zane ]
  * Update copyright year

  [ r-clancy ]
  * Increase max GIF size to match Signal-Android.
  * Add support for opening the inbox via a shortcut - fixes #1134.

  [ Ivan Markin ]
  * Replace unclear floppy image with down arrow as Save-As button
  * Fix duplicate x icon (cancel) on active search field.

  [ Sam Vevang ]
  * move main application view over to messageReceiver namespace
  * set up a new view for displaying the network status

  [ alecglassford ]
  * Make search clear button ("x") persist w/o hover

  [ Jon Long ]
  * Update TextSecure Staging URL instructions
  * Improve Responsiveness on Install Screen
  * Add text under the logo on the first screen

  [ hniestl ]
  * Update logo

  [ haffenloher ]
  * Ignore missing members in incoming group updates
  * Increase image constraints to 6 MB / 4096 px
  * Throw UnregisteredUserErrors in getKeysForNumber()
  * Remove unregistered group members

  [ beejaygee ]
  * Add copy and paste for images

  [ Blake Griffith ]
  * 'off' -> 'disable notifications' in settings
  * i18n notification's settings dialog
  * Improve notification's settings messages.
  * Test message.*ImageUrl methods.
  * Add tests for message.getContact
  * Add attachment_views_test.js tests

  [ karissa ]
  * Add a few missing translatable strings to conversation search view

  [ Asa Ayers ]
  * Add an option to play audio notifications

  [ Bernhard Steindl ]
  * Push picture max edge to 2048 and max size to 4 MB

  [ Thomas Guillet ]
  * Prevent expiration timer update on group update

  [ WanderMore ]
  * Add link to iOS build instructions

  [ Benedikt Constantin Radtke ]
  * Fixed fastforwarding closing videos' fullscreen mode
  * Localized the message detail view's timestamps
  * Fixed bubble timestamp update timer breakdown

  [ Lucas Amorim ]
  * Updates README with link for Signal for iOS

  [ paolo.ingls@gmail.com ]
  * Fixed bug920

  [ Paolo Inglese ]
  * Font size should be adjustable

  [ Benedikt Radtke ]
  * Added Save-As dialog for unsupported filetypes
  * Fixed media pausing behaviour when clicking the conversation list
  * Added basic localization for timestamps

  [ bitim ]
  * Add RTL languages support for messages
  * Better RTL languages support:
  * Committing corresponding changes to the scss files

  [ Jake McGinty ]
  * change attachment icon
  * Spiffed out icon
  * update release status in README

  [ Sam Lanning ]
  * Implement i18n for Install Flow
  * Improve implementation of i18n for Install Flow following comments on #611
  * Automatically patch translations with placeholders
  * Create tx task which performs 'tx pull' followed by 'locale-patch'
  * Improve Confirmation Dialog
  * Added more gray color variables (to compensate for inconsistent compiling)
  * Tidied up_conversation.scss a little for the conversation view.
  * Replace conversation panel js resizing with flex styling.
  * Consolidate .message-list styling
  * Fix avatar floating over debug log
  * Updated twemoji to v1.4.2
  * Add title text for emoji in messages.

  [ codedust ]
  * Fix text selection color of outgiong message bubble contents
  * Fix text color and text selection color of outgoing links
  * Fix multiple spaces not beeing displayed in message bubbles
  * Remove 'Textsecure' from error message in api.js
  * Fix a bug that causes 100% CPU load in timestamp_view.js

  [ Lorenz Hübschle-Schneider ]
  * Display relative timestamps in conversation list

  [ jakob ]
  * Show help text for unknown contact identity

  [ José Pedro Arvela ]
  * Remove border around window

  [ Karel Bilek ]
  * Fixing upper bounds on contact search (fixes #545)
  * Dispatch an event after processing a group sync

  [ Matt Corallo ]
  * Initial Checkin
  * Minor tweaks and first step towards websocket
  * Untested Code
  * rm useless thing
  * Fix MAC
  * Working registration
  * Updates
  * Missing background.html
  * Working background push.
  * Badge UI
  * (potentially) working device object storage
  * Entirely untested plane work.
  * Random fixes, stuff
  * moar stuff
  * Fixup dir structure
  * Updates, NaCL
  * ECDHE through NaCL
  * add nacl-common.js
  * Lots of updates post-test-cases
  * Fix up initial ratchet stuff
  * Add README describing current state.
  * Updates, more tests, etc
  * Abstract out lots of CryptoJS
  * Few more steps
  * Pass tests
  * Genericify initSession (and break it for alice)
  * Untested send-encrypted support
  * Passing test-cases (fscking type conversions...)
  * Commit pnacl binaries (TODO: revertme at some point...)
  * Optional curve25519 in js
  * Add js
  * Unmiified js files, mostly
  * Merge pull request #1 from liliakai/master
  * Merge pull request #3 from liliakai/clickies
  * Merge pull request #2 from liliakai/master
  * New protos with group messaging stuff
  * Merge pull request #4 from liliakai/refactor
  * tabstabstabstabstabs
  * Fix up a few things so registration works
  * Things:
  * Send-to-self works =D
  * Merge pull request #6 from liliakai/master
  * ping server to keep connection open
  * Fix popup refreshing on send
  * Merge pull request #7 from liliakai/master
  * Fix NaCL priv calc code
  * Add bit for !identityKey and commit wip test-cases
  * Merge pull request #8 from liliakai/master
  * Merge pull request #9 from Ventero/password
  * Another step forward
  * generic-ize
  * I like stack traces, also, fix identity key bit fiddle crap
  * Fix ALL the things!
  * Regenerate bins for fixed ephemeral bit
  * LGPL license (I'd like to be an axolotl/TS JS lib in the future)
  * tweak ui things a tiny bit
  * Add TODO file showing what still needs to be done
  * Add TODO
  * Fix now-broken test cases and change lots of things over to promises
  * Fix/test pre key generation
  * Move crypto things to js/crypto.js
  * More wholesale conversion to promises
  * Refactor some low-level crypto things
  * Remove TODO.txt now that I found time to put in github issues.
  * Merge pull request #23 from liliakai/fix
  * last(?) round of crypto.js AB-type-conversion changes, new tests
  * FINALLY report crypto, etc errors to console thanks to promises...
  * promises, type conversion errors
  * Fix decryption of large messages (eg w/ attachments)
  * Fix old chain deletion
  * Also delete chain key
  * Multi-session storage for close/regular message race conditions
  * Stop an attacker from closing a session that isn't theirs (#29)
  * Merge remote-tracking branch 'lilia/master'
  * THOUGH SALL USE TABSTOP AND SHIFTWIDTH 4 (so that indents read right)
  * Clean up session retreival (fixes #30)
  * Check registration ID on prekeymsg
  * Fixup last commit
  * Update to jQuery 2.1.1 + jQuery pull #1525
  * Fix interpretation of prekeymsg.registrationId
  * Commit broken attachment loader (S3 403s I can't figure out...)
  * Fix attachments
  * Some initial helpers.js namespaceing
  * More namespacing
  * Fix NaCL (maybe it should be removed?)
  * Merge pull request #31 from codedust/master
  * Move message saving out of helpers.js
  * Fix, display (image) attachments
  * textsecure.storage, chromium.js
  * Merge pull request #34 from James-Firth/master
  * textsecure.protos
  * s/getEncodedNumber// (with XXXs)
  * Some number verification refactor stuff
  * Re-create some of d9bf0a4, which was broken and reverted in 1e6720
  * Fix some bugs recently introduced
  * Fix decoding/protos/tests
  * Redo registration process
  * Add human readable version of errors
  * One more tiny error refactor
  * Request new keys (largely untested)
  * Fix new function(){}() typo (thanks codedust on GitHub)
  * Few typos blocking registration
  * More typos from me being too tired
  * Save sessions in deviceObjects, test using fake_api, minor tweaks
  * Fix longstanding(?) attachment bug
  * Retry API, standardize <script> list
  * Merge pull request #45 from codedust/extractchrome
  * sendMessage refactor, initial group stuff (breaks message storage)
  * Merge pull request #47 from rpicard/minify-deps
  * Fix CryptoJS minify
  * Fix options
  * closeSession
  * Group API
  * Some group update verification
  * Group updates to match real protocol and get better checking
  * Keep track of number->groups, add TODO to refresh, other tweaks
  * Refresh groups on (probably) new identity key (maybe more often?)
  * Better TODO wording
  * Update README (closes #42)
  * Close chainKey.key
  * Fix missing baseKey
  * Merge pull request #49 from codedust/numberValidation
  * Remove useless function
  * Report testing done
  * mkdir nacl
  * Update curve25519-donna
  * Add ed25519 copied directly from TextSecure
  * Fix unused variable
  * Rebuild
  * USE_NACL = true
  * JS ed25519
  * HMAC Update for Protov3
  * Update WhisperTextProtocol for v3
  * Compare equality w/o getString (in the future)
  * Generate signed keys (breaks registration)
  * Use staging server (ie update to server keys v2) and protocolv3
  * v3 steps
  * Fix undefined variable in for's (browser update to strict mode?)
  * Fix null flags in v3
  * First cut of ALICE test vectors
  * Add verification tags, make alice tests strict(ish) again
  * Fix pending verifications
  * Fix session lookup in duplicate prekeymessage case
  * First steps towards BOB test vectors
  * Fix tester
  * Move AXOLOTL test vectors to js/testvectors.js
  * Move test shuffling to js/testvectors.js
  * I lied, there is no verification tag
  * Add identity keys to MAC, begin updating test cases
  * Update BOB test cases
  * Add a BOB test-case around session closure
  * Add closeSession tests as Alice and fix re-requesting prekeys
  * Refactor a bunch of stuff re: session closing, add test cases
  * Add qrcode from https://github.com/davidshimjs/qrcodejs
  * Add entirely untested secondary device init
  * Fix not-allowed inline scripts error
  * Fix a missing function and dont blow up on delivery receipts
  * Update readme
  * Remove ping, update to latest spec proposal
  * Add missing blanket-js file
  * Fix blanket for plugin (http://stackoverflow.com/questions/23022686)
  * Fix blanket popup
  * Fix tests by returning promises
  * Add missing localStorage.clear()
  * Remove unused function
  * Give up on webcrypto :(
  * rm useless GPL, license testvectors under X11 (ie 3-c MIT + advertising provision)
  * Fix borked spacing in webcrypto.js
  * Add (untested) AES-CBC switch from v3 (fs loss resulted in old tested version being lost)
  * Remove AES-CTR entirely
  * Remove now-broken axolotl test
  * s/\t/    /g in sendmessage.js
  * s/\t/    /g in testvectors.js
  * s/\t/    /g in fake_api.js
  * s/\t/  /g in test/index.html
  * Remove last \t in protocol.js
  * Remove last \t in crypto_test.js
  * s/\t/  /g in stylesheets/options.css
  * s/\t/  /g in {background,options}.html
  * s/\t/    /g in manifest.json
  * Bring padding calculation in-line with android
  * Bring protocol_test back in-line with new APIs
  * Update some of the testvectors to v3
  * Re-add v3 testvectors with fixed sauce
  * Merge pull request #120 from WhisperSystems/testvectors
  * Revert "Don't refreshGroups in tryMessageAgain", making a better one
  * Replace numer->group with group->number->registrationId tracking
  * Replace refreshGroups with singular refreshGroup on send
  * Merge pull request #108 from TheBlueMatt/refreshgroup
  * Add isNumberSane to textsecure.utils for basic validation
  * Switch to isNumberSane in group storage
  * Remove unused function in _test.js
  * Move js files around for libtextsecure split
  * Split tests between libtextsecure and main
  * Give libtextsecure its own components (with way fewer deps)
  * Compile curve25519/webcrypto into libtextsecure.js
  * Skip NaCL if we're not running from chrome-extension:
  * Also run sauce tests in firefox
  * Merge pull request #123 from WhisperSystems/libts
  * Remove NaCL!
  * Regenerate components/libts
  * nacl -> native
  * Fix re-concat on build task
  * Merge pull request #126 from WhisperSystems/nonacl
  * Fix group send (fixes #129)
  * Update to real server provisioning API
  * Mostly done device-bringup stuff
  * Moveish the first files to libaxolotl/
  * Move group storage into window.axolotl
  * Naively move textsecure.crypto into axolotl.crypto
  * Move protocol protobufs to libaxolotl/, handling DeviceControl
  * Move key updating and retry handling to libtextsecure
  * Move attachment/websocket [en|de]cryption to libtextsecure
  * Use axolotl.api for a few more things in libaxolotl/protocol.js
  * s/textsecure.protocol/axolotl.protocol/
  * Re-run concat
  * Re-add jquery as it is needed for our test runners
  * Move prekey sigcheck to libaxolotl
  * Copy getRandomBytes from libaxolotl to libtextsecure
  * Remove all external non-test deps on libaxolotl/crypto
  * Naively move device/session storage to wrapper
  * Move groups storage back to libtextsecure
  * Return a function instead of a session in decryptWhisperMessage
  * Add missing validity check to device storage
  * Encapsulate message sending to hide parameter
  * Re-run concat
  * Rewrite most of the device storage stuff
  * Actually store on removeDeviceIds
  * Move test vectors to libaxolotl
  * Split out identity key storage from session storage
  * [de]serialize sessions storage in device storage
  * De-duplicate registrationId in deviceObject
  * Add missing TODO
  * Re-run concat
  * Move jquery dep from libaxolotl to libaxolotl tests
  * Merge pull request #154 from WhisperSystems/fixolotl
  * Merge pull request #155 from WhisperSystems/closeSession
  * Merge pull request #167 from WhisperSystems/sync
  * Dont send group-update right before we quit the group
  * Ignore END_SESSION on messages with a sync context
  * Check END_SESSION messages in processDecrypted
  * Remove non-existant device messages
  * Remove axolotl.storage usage from libtextsecure
  * Move libaxolotl out-of-tree
  * Remove now-unused X11 license file
  * Replace load/decode/index around our own number with helpers
  * Merge (un)encrypted storage layers
  * Prefix libaxolotl-stored objects with "libaxolotl"
  * Create a textsecure.storage.impl to be overriden if desired
  * Remove stale comments in axolotl_wrapper
  * Move session-storage logic to storage/devices from axolotl_wrapper
  * Do not rely on deviceObject.sessions anywhere in sendmessage
  * Store session information separately
  * Merge pull request #227 from WhisperSystems/devices
  * Send message ACKs immediately after recv, instead of after process

  [ Felix Epp ]
  * Add user-agent string to DebugLog // fixes WhisperSystems/Signal-Desktop#404
  * Fix #583 from/to label translatable

  [ David Baldwynn ]
  * Added error message for unsupported attachment type (issue #419)
  * Added test case for unsupported type

  [ Wasseranomalie ]
  * Let container-div fit in key-verification-window

  [ OdysseasKr ]
  * Mark conversation as read if open and window focused
  * Add drag and drop for attachments
  * Add styling for the file input area
  * Add drag and drop support for text
  * Fix code styling

  [ mad-de ]
  * Change input type of search field to "search"
  * Set search-cancel-pointer to hand
  * Set textarea size to 100 % - button

  [ Harald Wagener ]
  * Update CONTRIBUTING.md

  [ Georg Semmler ]
  * Fix #402

  [ Max Muth ]
  * Added Bug, Ideas and Fund Sections to the Readme

  [ ody ]
  * Fix global unread message counting
  * Add unread count in window title
  * Add updating of window title on launch

  [ Jani Monoses ]
  * Update CONTRIBUTING.md
  * Fix some error messages' wording.

  [ Odysseas ]
  * Add feature to open image attachments
  * Tweak conversation list style

  [ Deirdre Connolly ]
  * Update attachment size limits to match mobile clients

  [ adambar ]
  * Improve behaviors around long messages display
  * 239 Auto-expand message area when typing
  * Remove message textarea resize handle; fix resizing after submit
  * Fix for message box auto-sizing behavior on resize; menu z-index fix
  * Fix for potential memory leaks
  * Fix for conversation & inbox windows closing callbacks never called.
  * Allow line breaks in messages. Closes issue #291
  * Include Ctrl+Enter as one the shortcuts that insert line break instead of submitting the message
  * Trim the message before sending - disable sending whitespace characters only
  * Maintain bottom-most scroll position when resizing conversation area.
  * Maintain bottom-most scroll position when resizing conversation area, once again.
  * Fix for too eager scrolling to bottom when the scroll isn't actually stick to the bottom before resizing the window

  [ McLoo ]
  * Tweak app icons a bit

  [ Tara Vancil ]
  * Add tests for message and conversation models
  * Add tests for messages model.

  [ Patrick Connolly ]
  * Replaced frontend getString calls broken in d3c158f.

  [ Florian Groh ]
  * Register Input Handling

  [ James Firth ]
  * Updated README
  * Fixed typo so list is a proper bullet list now.
  * Random things from James-Firth incl update icon
  * Updated Registration Instructions

  [ Riley Shaw ]
  * Add Sass task to watch and dev
  * Start on panels
  * Get conversations loading through localStorage
  * Prevent duplicate conversations and refocus on click (still buggy)
  * Update styles to material design to match Android client (first pass)
  * Simplify panel state management and message passing

  [ Emily Chao ]
  * Refactor phone number input view
  * Restyled country dropdown
  * Restyled message attachments

  [ Joe Bandenburg ]
  * Add JSCS and run as grunt test task

  [ Markus Rothe ]
  * README.md: make links clickable

  [ Zaki Manian ]
  * Do not run saucelabs tests on pull requests because they will fail

  [ Dave Sescleifer ]
  * Added ✓ to delivered messages
  * Fixed date format
  * Contact name now overflows into ellipsis
  * Fixed timestamps and added last message to the gutter

  [ Daniel Reichert ]
  * Add basic test coverage of toArrayBuffer function
  * Move Base64 functions to their own file
  * Add test coverage of isEqual function
  * Update name and repository in package.json

  [ Arlo Breault ]
  * Use FileReader to base64 encode attachments
  * Run tests on Sauce Labs
  * Add the build status
  * Expose test results to sauce

  [ Sumit Bindal ]
  * Fixing lint errors

  [ Arnaud Benard ]
  * Fixes #61 - Order by timestamps with tests

  [ liliakai ]
  * Merge pull request #32 from jerkey/patch-1
  * Merge pull request #38 from liliakai/threads
  * Merge pull request #46 from codedust/optionsCssImprovements
  * Merge pull request #66 from aprescott/initial-setup-instructions

  [ Adam Prescott ]
  * Add some initial development setup instructions.

  [ Marco ]
  * fixed 'TypeError: Promise.resolve is not a constructor' in Firefox
  * moved some chromium-specific code into chromium.js (using extension.navigator namespace)
  * improved some css for options.html
  * phased out some more inline styles
  * improved number validation (based on google's libphonenumber)

  [ Robert Picard ]
  * Minify CryptoJS dependencies
  * Update dependencies in popup.html and test.html
  * Covert spaces to tabs

  [ jerkey ]
  * fixed a typo in options.html

  [ Ventero ]
  * Correctly extract string data for password.

 -- Cédric Bellegarde <cedric.bellegarde@adishatz.org>  Sat, 02 May 2026 14:05:44 +0200

