Whisperfish

Rating: 
4.98039
Your rating: None Average: 5 (51 votes)

Whisperfish is an advanced but unofficial Signal client. Whisperfish should be in a usable state for many users, but is still considered beta quality software; make sure to always have the latest version! Also, check our Wiki and feel free to contribute to it! Currently, mimimum supported SailfishOS version is 3.4. We intend to keep compatibility with 3.3 for as long as humanly possible. The build for SailfishOS 3.x is located in a separate OpenRepos application.

Do not ever contact the Signal developers about a Whisperfish issue. You will annoy them and make them dislike us. Contact us instead (see below).

    

Known issues and implemented features

Lot's of stuff should work. Check the forum for an up-to-date known issues list.

Devices linked before beta.25 need an automatic relinking for PNI to activate, but this is currently unimplemented.

Contribute: get in touch, report issues and translate!

   

 

If the app behaves strangely or slow (I have a strong dislike for slow software) to you, please get in touch on Matrix #whisperfish:rubdos.be or on Libera.Chat #whisperfish, file an issue, or send an email to whisperfish [at] rubdos [dot] be, or post on the SailfishOS Forum topic. If it works well already, alse let me know! That's good for morale.

Development and progress

 

Follow the progress of the rework in the 0.6 milestone on Gitlab. If you are interested in contributing, contact me on Gitlab. If you want to discuss development, join the discussion on Matrix #whisperfish:rubdos.be.

There are nightly builds (in form of RPM) available on Gitlab. Nighlies eat batteries for breakfast, break up with your girlfriend, and use magic to turn phones into bricks. If you want to use them, please come and chat on Matrix or IRC. Whenever there is a version that makes sense, and has a low probability of tearing apart the very fabric of the universe, it'll be here on Open Repos!

Donations

 

Thanks for the support, feel free to buy us a coffee! Liberapay allows for donations via PayPal or credit card. While we do appreciate the donations, please consider matching your donation towards Signal themselves. They need it more than we do! Also consider donating to Weblate, because they provide their translation hosting service to us and many other SailfishOS applications at no cost!

Licence note

The original Whisperfish 0.5.0, by Andrew, was released under GPLv3+. Since we are using the upstream code of Signal themselves, partly licensed under AGPLv3+, the whole of Whisperfish 0.6.0 falls under AGPLv3+.

Screenshots: 
Application versions: 
AttachmentSizeDate
File harbour-whisperfish-0.6.0-0.alpha_.1.armv7hl.rpm2.19 MB08/07/2020 - 11:14
File harbour-whisperfish-0.6.0-0.alpha_.1.i486.rpm2.34 MB08/07/2020 - 11:14
File harbour-whisperfish-0.6.0-0.alpha_.2.i486.rpm5.75 MB20/09/2020 - 18:58
File harbour-whisperfish-0.6.0-0.alpha_.2.armv7hl.rpm5.3 MB20/09/2020 - 18:58
File harbour-whisperfish-0.6.0-0.alpha_.3.i486.rpm6.33 MB01/11/2020 - 20:33
File harbour-whisperfish-0.6.0-0.alpha_.3.armv7hl.rpm5.78 MB01/11/2020 - 20:33
File harbour-whisperfish-0.6.0-0.alpha_.4.aarch64.rpm6.21 MB17/11/2020 - 16:05
File harbour-whisperfish-0.6.0-0.alpha_.4.armv7hl.rpm6.17 MB17/11/2020 - 16:05
File harbour-whisperfish-0.6.0-0.alpha_.4.i486.rpm6.75 MB17/11/2020 - 16:05
File harbour-whisperfish-0.6.0-0.alpha_.5.aarch64.rpm6.13 MB21/11/2020 - 14:54
File harbour-whisperfish-0.6.0-0.alpha_.5.i486.rpm6.66 MB21/11/2020 - 14:54
File harbour-whisperfish-0.6.0-0.alpha_.5.armv7hl.rpm6.1 MB21/11/2020 - 14:54
File harbour-whisperfish-0.6.0-0.alpha_.6.aarch64.rpm6.1 MB21/12/2020 - 18:34
File harbour-whisperfish-0.6.0-0.alpha_.6.i486.rpm6.62 MB21/12/2020 - 19:04
File harbour-whisperfish-0.6.0-0.alpha_.6.armv7hl.rpm6.07 MB21/12/2020 - 19:04
File harbour-whisperfish-0.6.0-0.alpha_.7.aarch64.rpm6.17 MB12/01/2021 - 12:38
File harbour-whisperfish-0.6.0-0.alpha_.7.i486.rpm6.68 MB12/01/2021 - 13:08
File harbour-whisperfish-0.6.0-0.alpha_.7.armv7hl.rpm6.14 MB12/01/2021 - 13:08
File harbour-whisperfish-0.6.0-0.alpha_.8.aarch64.rpm6.86 MB09/02/2021 - 13:11
File harbour-whisperfish-0.6.0-0.alpha_.8.i486.rpm7.45 MB09/02/2021 - 14:16
File harbour-whisperfish-0.6.0-0.alpha_.8.armv7hl.rpm6.74 MB09/02/2021 - 14:16
File harbour-whisperfish-0.6.0-0.alpha_.9.aarch64.rpm6.82 MB19/03/2021 - 12:11
File harbour-whisperfish-0.6.0-0.alpha_.9.i486.rpm7.42 MB19/03/2021 - 12:24
File harbour-whisperfish-0.6.0-0.alpha_.9.armv7hl.rpm6.72 MB19/03/2021 - 12:25
File harbour-whisperfish-0.6.0-0.beta_.1.aarch64.rpm5.55 MB25/04/2021 - 15:26
File harbour-whisperfish-0.6.0-0.beta_.1.i486.rpm5.91 MB25/04/2021 - 15:52
File harbour-whisperfish-0.6.0-0.beta_.1.armv7hl.rpm5.78 MB25/04/2021 - 15:52
File harbour-whisperfish-0.6.0-0.beta_.3.i486.rpm5.88 MB07/06/2021 - 13:40
File harbour-whisperfish-0.6.0-0.beta_.3.aarch64.rpm5.5 MB07/06/2021 - 13:40
File harbour-whisperfish-0.6.0-0.beta_.3.armv7hl.rpm5.69 MB07/06/2021 - 13:40
File harbour-whisperfish-0.6.0-0.beta_.4.i486.rpm6 MB23/07/2021 - 16:31
File harbour-whisperfish-0.6.0-0.beta_.4.armv7hl.rpm5.8 MB23/07/2021 - 16:31
File harbour-whisperfish-0.6.0-0.beta_.4.aarch64.rpm5.58 MB23/07/2021 - 16:31
File harbour-whisperfish-0.6.0-0.beta_.5.i486.rpm6.01 MB28/07/2021 - 15:15
File harbour-whisperfish-0.6.0-0.beta_.5.armv7hl.rpm5.79 MB28/07/2021 - 15:15
File harbour-whisperfish-0.6.0-0.beta_.5.aarch64.rpm5.59 MB28/07/2021 - 15:15
File harbour-whisperfish-0.6.0-0.beta_.6.armv7hl.rpm5.91 MB17/09/2021 - 10:23
File harbour-whisperfish-0.6.0-0.beta_.6.aarch64.rpm5.71 MB17/09/2021 - 10:23
File harbour-whisperfish-0.6.0-0.beta_.6.i486.rpm6.19 MB17/09/2021 - 10:23
File harbour-whisperfish-0.6.0.beta_.7-0.sf4_.aarch64.rpm15.25 MB12/11/2021 - 15:52
File harbour-whisperfish-0.6.0.beta_.7-0.sf4_.armv7hl.rpm15.49 MB12/11/2021 - 15:52
File harbour-whisperfish-0.6.0.beta_.7-0.sf4_.i486.rpm16.4 MB12/11/2021 - 15:52
File harbour-whisperfish-0.6.0.beta_.7-0.sf3_.aarch64.rpm15.25 MB12/11/2021 - 17:31
File harbour-whisperfish-0.6.0.beta_.8-0.sf3_.aarch64.rpm7.4 MB27/03/2022 - 10:30
File harbour-whisperfish-0.6.0.beta_.8-0.sf4_.aarch64.rpm7.4 MB27/03/2022 - 10:30
File harbour-whisperfish-0.6.0.beta_.8-0.sf4_.armv7hl.rpm7.56 MB27/03/2022 - 10:30
File harbour-whisperfish-0.6.0.beta_.8-0.sf4_.i486.rpm8.01 MB27/03/2022 - 10:30
File harbour-whisperfish-0.6.0.beta_.9-0.sf3_.aarch64.rpm6.38 MB12/05/2022 - 11:43
File harbour-whisperfish-shareplugin-0.6.0.beta_.9-0.sf4_.aarch64.rpm14.63 KB12/05/2022 - 11:43
File harbour-whisperfish-0.6.0.beta_.9-0.sf4_.aarch64.rpm6.42 MB12/05/2022 - 11:43
File harbour-whisperfish-shareplugin-0.6.0.beta_.9-0.sf4_.armv7hl.rpm13.77 KB12/05/2022 - 11:43
File harbour-whisperfish-0.6.0.beta_.9-0.sf4_.armv7hl.rpm5.6 MB12/05/2022 - 11:43
File harbour-whisperfish-shareplugin-0.6.0.beta_.9-0.sf4_.i486.rpm15.2 KB12/05/2022 - 11:43
File harbour-whisperfish-0.6.0.beta_.9-0.sf4_.i486.rpm8.32 MB12/05/2022 - 11:43
File harbour-whisperfish-0.6.0.beta_.10-0.sf4_.armv7hl.rpm5.71 MB12/07/2022 - 16:43
File harbour-whisperfish-0.6.0.beta_.10-0.sf4_.aarch64.rpm6.5 MB12/07/2022 - 16:43
File harbour-whisperfish-0.6.0.beta_.11-0.sf4_.armv7hl.rpm5.8 MB25/08/2022 - 18:17
File harbour-whisperfish-0.6.0.beta_.11-0.sf4_.aarch64.rpm6.64 MB25/08/2022 - 18:17
File harbour-whisperfish-0.6.0.beta_.11-0.sf4_.i486.rpm8.58 MB25/08/2022 - 18:17
File harbour-whisperfish-0.6.0.beta_.12-0.sf4_.armv7hl.rpm5.8 MB27/10/2022 - 12:43
File harbour-whisperfish-0.6.0.beta_.12-0.sf4_.aarch64.rpm6.64 MB27/10/2022 - 12:43
File harbour-whisperfish-0.6.0.beta_.12-0.sf4_.i486.rpm8.58 MB27/10/2022 - 12:43
File harbour-whisperfish-0.6.0.beta_.13-0.sf4_.i486.rpm8.74 MB10/12/2022 - 17:22
File harbour-whisperfish-0.6.0.beta_.13-0.sf4_.aarch64.rpm7.09 MB10/12/2022 - 17:22
File harbour-whisperfish-0.6.0.beta_.13-0.sf4_.armv7hl.rpm5.5 MB10/12/2022 - 17:22
File harbour-whisperfish-0.6.0.beta_.14-0.sf4_.i486.rpm8.76 MB29/12/2022 - 11:17
File harbour-whisperfish-0.6.0.beta_.14-0.sf4_.aarch64.rpm7.18 MB29/12/2022 - 11:17
File harbour-whisperfish-0.6.0.beta_.14-0.sf4_.armv7hl.rpm5.52 MB29/12/2022 - 11:17
File harbour-whisperfish-0.6.0.beta_.15-0.sf4_.armv7hl.rpm6.16 MB13/03/2023 - 00:00
File harbour-whisperfish-0.6.0.beta_.15-0.sf4_.aarch64.rpm7.52 MB13/03/2023 - 00:00
File harbour-whisperfish-0.6.0.beta_.15-0.sf4_.i486.rpm9.06 MB13/03/2023 - 00:00
File harbour-whisperfish-0.6.0.beta_.16-0.sf4_.i486.rpm9.09 MB23/03/2023 - 19:24
File harbour-whisperfish-0.6.0.beta_.16-0.sf4_.armv7hl.rpm6.17 MB23/03/2023 - 19:24
File harbour-whisperfish-0.6.0.beta_.16-0.sf4_.aarch64.rpm7.53 MB23/03/2023 - 19:24
File harbour-whisperfish-0.6.0.beta_.17-0.sf4_.aarch64.rpm7.6 MB18/04/2023 - 14:47
File harbour-whisperfish-0.6.0.beta_.17-0.sf4_.armv7hl.rpm6.25 MB18/04/2023 - 14:47
File harbour-whisperfish-0.6.0.beta_.17-0.sf4_.i486.rpm9.18 MB18/04/2023 - 14:47
File harbour-whisperfish-0.6.0.beta_.18-0.sf4_.armv7hl.rpm6.4 MB01/06/2023 - 14:24
File harbour-whisperfish-0.6.0.beta_.18-0.sf4_.aarch64.rpm7.71 MB01/06/2023 - 14:24
File harbour-whisperfish-0.6.0.beta_.18-0.sf4_.i486.rpm9.32 MB01/06/2023 - 14:24
File harbour-whisperfish-0.6.0.beta_.19-0.sf4_.armv7hl.rpm6.41 MB03/06/2023 - 13:25
File harbour-whisperfish-0.6.0.beta_.19-0.sf4_.aarch64.rpm7.72 MB03/06/2023 - 13:25
File harbour-whisperfish-0.6.0.beta_.19-0.sf4_.i486.rpm9.33 MB03/06/2023 - 13:25
File harbour-whisperfish-0.6.0.beta_.20-0.sf4_.armv7hl.rpm6.43 MB08/08/2023 - 08:26
File harbour-whisperfish-0.6.0.beta_.20-0.sf4_.aarch64.rpm7.75 MB08/08/2023 - 08:26
File harbour-whisperfish-0.6.0.beta_.20-0.sf4_.i486.rpm9.39 MB08/08/2023 - 08:26
File harbour-whisperfish-0.6.0.beta_.21-0.i486.rpm11.87 MB16/10/2023 - 14:22
File harbour-whisperfish-0.6.0.beta_.21-0.armv7hl.rpm8.34 MB16/10/2023 - 14:22
File harbour-whisperfish-0.6.0.beta_.21-0.aarch64.rpm9.93 MB16/10/2023 - 14:22
File harbour-whisperfish-0.6.0.beta_.22-0.aarch64.rpm13.52 MB11/01/2024 - 01:51
File harbour-whisperfish-0.6.0.beta_.22-0.armv7hl.rpm9.86 MB11/01/2024 - 01:51
File harbour-whisperfish-0.6.0.beta_.22-0.i486.rpm13.41 MB11/01/2024 - 01:51
File harbour-whisperfish-0.6.0.beta_.22-0.aarch64.rpm13.52 MB12/07/2024 - 20:41
File harbour-whisperfish-0.6.0.beta_.22-0.armv7hl.rpm9.86 MB12/07/2024 - 20:41
File harbour-whisperfish-0.6.0.beta_.22-0.i486.rpm13.41 MB12/07/2024 - 20:41
File harbour-whisperfish-0.6.0.beta_.23-0.aarch64.rpm13.78 MB04/02/2024 - 12:01
File harbour-whisperfish-0.6.0.beta_.23-0.armv7hl.rpm10.04 MB04/02/2024 - 12:01
File harbour-whisperfish-0.6.0.beta_.23-0.i486.rpm13.75 MB04/02/2024 - 12:01
File harbour-whisperfish-0.6.0.beta_.24-0.i486.rpm13.86 MB07/03/2024 - 13:09
File harbour-whisperfish-0.6.0.beta_.24-0.armv7hl.rpm10.13 MB07/03/2024 - 13:09
File harbour-whisperfish-0.6.0.beta_.24-0.aarch64.rpm13.88 MB07/03/2024 - 13:09
File harbour-whisperfish-0.6.0.beta_.25-0.i486.rpm14.52 MB01/04/2024 - 10:21
File harbour-whisperfish-0.6.0.beta_.25-0.armv7hl.rpm11.59 MB01/04/2024 - 10:21
File harbour-whisperfish-0.6.0.beta_.25-0.aarch64.rpm14.39 MB01/04/2024 - 10:21
File harbour-whisperfish-0.6.0.beta_.26-0.i486.rpm14.62 MB02/07/2024 - 17:47
File harbour-whisperfish-0.6.0.beta_.26-0.armv7hl.rpm11.69 MB02/07/2024 - 17:47
File harbour-whisperfish-0.6.0.beta_.26-0.aarch64.rpm14.51 MB02/07/2024 - 17:47
File harbour-whisperfish-0.6.0.beta_.27-0.i486.rpm14.63 MB12/07/2024 - 11:47
File harbour-whisperfish-0.6.0.beta_.27-0.armv7hl.rpm11.71 MB12/07/2024 - 11:47
File harbour-whisperfish-0.6.0.beta_.27-0.aarch64.rpm14.52 MB12/07/2024 - 11:47
File harbour-whisperfish-0.6.0.beta_.28-0.aarch64.rpm14.53 MB12/07/2024 - 20:40
File harbour-whisperfish-0.6.0.beta_.28-0.i486.rpm14.61 MB12/07/2024 - 20:40
File harbour-whisperfish-0.6.0.beta_.28-0.armv7hl.rpm11.71 MB12/07/2024 - 20:40
File harbour-whisperfish-0.6.0.beta_.29-0.aarch64.rpm14.43 MB19/09/2024 - 00:33
File harbour-whisperfish-0.6.0.beta_.29-0.armv7hl.rpm11 MB19/09/2024 - 00:33
File harbour-whisperfish-0.6.0.beta_.29-0.i486.rpm14.43 MB19/09/2024 - 00:33
File harbour-whisperfish-0.6.0.beta_.30-0.armv7hl.rpm10.73 MB28/10/2024 - 10:50
File harbour-whisperfish-0.6.0.beta_.30-0.i486.rpm13.19 MB28/10/2024 - 10:50
File harbour-whisperfish-0.6.0.beta_.30-0.aarch64.rpm12.56 MB28/10/2024 - 10:50
File harbour-whisperfish-0.6.0.beta_.31-0.armv7hl.rpm10.72 MB29/10/2024 - 18:32
File harbour-whisperfish-0.6.0.beta_.31-0.i486.rpm13.19 MB29/10/2024 - 18:32
File harbour-whisperfish-0.6.0.beta_.31-0.aarch64.rpm12.57 MB29/10/2024 - 18:32
File harbour-whisperfish-0.6.0.beta_.32-0.armv7hl.rpm10.75 MB17/11/2024 - 12:43
File harbour-whisperfish-0.6.0.beta_.32-0.i486.rpm13.22 MB17/11/2024 - 12:43
File harbour-whisperfish-0.6.0.beta_.32-0.aarch64.rpm12.59 MB17/11/2024 - 12:43
Changelog: 

Whisperfish 1.0.0 (planned)

The milestone on GitLab for this release (th

Many big plans!

Whisperfish 0.6.0 (planned)

The milestone on Gitlab for this release

Features

  • Feature parity with, and modernized version of Whisperfish 0.5.

Whisperfish 0.6.0-beta.32

Small improvements

  • Allow retrying attachment downloads from the UI
  • Try to reduce notification flooding on startup
  • Update emoji support to Emoji 15.1
  • Don't reset the text field on incoming messages
  • Improve logging

Whisperfish 0.6.0-beta.31

Some small fixes

  • Fix text field not showing up.
  • Send note-to-self messages as sync messages to show up on the "right side" of sync conversations

Whisperfish 0.6.0-beta.30: Prague edition.

Fixes issues with groups not updating, and linking not working. Includes a custom-built webrtc library.

  • Fix linking and initial link synchronisation (implement master key and other sync messages)
  • Fix wrong indication/disambiguation in UI between session resets and identity resets
  • Some initial patches to get WF to compile on OBS (some day, Chum!)
  • More compact logs
  • Expiry timer versions (disable expiry timer changes in groups for now)
  • Read receipts
  • Cleaner migration paths when `rsync`-ing Whisperfish data directories from nemo to defaultuser phones
  • Rewrite Qt model logic to allow asynchronous model updates
  • Fix a lot of UI glitches; a.o., unread count on cover
  • Introduce a whole lot of new UI glitches; please report them!
  • Initial voice/video call boiler plate
  • "Missed voice call" / "Missed video call" notifications for direct calls (no group calls)
  • Message requests
  • Fix sending attachments, including to Apple users (implement attachment V4 protocol)

Whisperfish 0.6.0-beta.29

(Mostly, finally) implement PNI

Should fix many crashes

Changes

  • Implements PNI endpoint receiving, PNI-sent endpoint receiving
  • Performance improvement for blurhash rendering
  • Empty GV2 update message fixes
  • libsignal bump
  • Use Speech Note automatic model instead of English

Whisperfish 0.6.0-beta.28

Massive UI performance improvement (works around recomputing session fingerprint basically every time you stare at the screen.)

Whisperfish 0.6.0-beta.27

Fixes for voice note transcription, blurhash performance improvement, registration fixes.

Whisperfish 0.6.0-beta.26

Voice note updates

Changes

  • Contact linking to Sailfish contacts (useful for username/ACI contacts)
  • Ignore playlists in audio player
  • Correction in attachment deletion on deleted messages
  • Graceful failure on body range errors
  • Recording of voice notes
  • Local transcription of (English) voice notes using Speech Note

Whisperfish 0.6.0-beta.25

PNI support, fixes registration

Changes

  • Support PNI (except for pre-beta-25 linked devices)
  • Nicely display service messages (joined group, changed group, ...)
  • Fix an edge case crash in message mark up rendering
  • Fix a crash on PNI-only contacts
  • Fix audio message playback with a headset connected
  • Generate blurhash when sending pictures
  • Fix broken shareplugin

Whisperfish 0.6.0-beta.24

Faster

(registration is still broken)

Changes

  • Fixes for expiring messages
  • Fixes for rendering spoilers containing URLs
  • Sending multiple attachments in a single message
  • A lot of performance improvements
  • Typing messages are back!
  • Fix a bug with deleted formatted messages

Whisperfish 0.6.0-beta.23 "FOSDEM release"

Sever cool new features! I tagged this during the Sailfish OS dinner on FOSDEM-Saturday :-)

(registration is still broken!)

Changes

  • Implement disappearing messages (a huge effort by direc85 and myself)
  • Implement message style rendering (mentions, bold/italics/...)
  • Implement receiving message edits
  • Preparatory work for phonenumber privacy (PNP/PNI)
  • Delete message notifications on remote message deletion
  • Some other small clean ups that were long overdue

Whisperfish 0.6.0-beta.22

Several cool fixes and features.

Changes

  • Fix a crash when downloading certain attachments
  • Update from Rust 1.52 to Rust 1.75 to allow for many many many new cool things!
  • Inline voice message player (highly overengineered!)
  • Show identified delivery status in debug mode for group messages on per-recipient basis
  • Fix a crash when messages are received on deleted group sessions
  • Performance improvements on loading sessions and receiving read receipts
  • Fix RUSTSEC-2020-0071 RUSTSEC-2021-0139 RUSTSEC-2021-0146 RUSTSEC-2021-0145 RUSTSEC-2021-0127 CVE-2023-42444 and CVE-2023-42447 (although unaffected by any of these)
  • Update Emojis to version 15
  • Some initial work for receiving stories and distribution lists
  • Fix deleting messages with attachments
  • Decrypt attachments on a threadpool instead of on the executor (fixes lag/unresponsiveness on receiving attachments)
  • Update libsqlite/sqlcipher to 3.41/4.5.0
  • Rework logging subsystem for more concise and more useful logs

Whisperfish 0.6.0-beta.21

Several small fixes

Changes

  • Embedded QR code scanner for device linking on Sailfish 4 and higher.
  • More relaxed parsing of SMS-based confirmation codes
  • Don't close keyboard when using send or enter
  • Detect and  handled deleted contacts in groups
  • Some fixes relating to attachment fetching, including a crash
  • Update blurhash decoding, should be a lot faster
  • More correct message for empty session view
  • Disable sending messages in UI for unregistered contacts
  • Fix marking of unregistered contacts
  • Hide archived conversations in cover page
  • Add cargo-deny to catch CVE's in the future
  • Add setting to hide recipient phone number in conversation page
  • Fix relating to profile fetching
  • Correctly handle nullable E164's and other nullable fields
  • Vendor OpenSSL: no more separate build for SailfishOS 3!
  • Fix reaction UI not updating, among other UI fixes to reactions

Whisperfish 0.6.0-beta.20

Post-quantum end-to-end encryption, registration fix, and much more.

Changes

  • Post-quantum (Kyber) key-exchange
  • Fix build version number in CI/About page (maybe, I hope)
  • Fix the info row lock size in developer mode
  • Fix muting conversations
  • Fix disappearing messages timer resets
  • Store attachment pointers in database, preparation work for attachment download retries.
  • New, more fine grained notification privacy options
  • Show blur hash while attachments are downloaded
  • Emoji-react to messages (hold message, swipe away, then tap the emoji)
  • Fix logs on panic
  • Implement a captcha test page
  • Handle remote message deletions, implement remote message deletion
  • Show original attachment file name, if available
  • Implement attachment exporting
  • Fix unidentified sending mode resets on profile key reception
  • Fix registration and linking for new registration protocol

Registration

Signal overhauled their registration procedure. In my eyes, the new API flow has been redesigned to allow for registrations without phone number in the future. Signal has, meanwhile, introduced usernames, which will allow you to hide your phone number from contacts and groups. I hope to get this into Whisperfish soon™ too.

Post-quantum key exchange

Signal recently introduced post-quantum key exchanges for their end-to-end encryption protocol. This is, as far as I know, the first broad and permanent real-world deployment of post-quantum cryptography, and follows the very recent NIST standardization of Kyber. Signal is yet to announce this change officially, but it has been in production for two weeks. I expect Signal to roll out a rekey event for all sessions, and at that time announce the roll-out.

The deployment is a hybrid of X25519 and Kyber. This means that if the new Kyber system is horribly broken next week, your sessions will still be secure in the classical sense.

Practically speaking, the current change means that every new session with a contact will be protected against capture-now-decrypt-later attacks by (currently non-existing) cryptographically-relevant quantum computers, under the condition that Kyber remains as secure as it is thought to be.

I expect Signal to trigger session renewals or rekeying events to additionally protect existing sessions from the “quantum threat”.

Whisperfish 0.6.0-beta.19

Hotfix for the refactoring bug introduced in beta 18

Whisperfish 0.6.0-beta.18

Fixes group updating, since Signal changed their API calls, first steps toward PNI support

Changes

  • Database refactoring, phone numbers and UUID are now strong types
  • Fixes a hang on unregistered startup
  • Fix group update API calls
  • Show roles of group members
  • Graceful handling of ^C
  • Show translation contributors in About.qml, automatically update the About.qml page
  • Fix self-recipient bugs
  • Reset page stack when closing in daemon mode
  • Add PNI column to recipient (currently unused)
  • Fetch self-PNI
  • Fix archive/pinned UI bugs
  • Fix profile image display when clicking notifications for groups
  • Fixes related to message notification counter
  • Split storage module into separate crate, preparation for more refactoring
  • Show the profile picture in the sharing dialog
  • Fix RTL support in cover
  • Fix detail attachment display for non-image/video attachments
  • Fix the "show more" tag placement for long text messages
  • Many small fixes

Whisperfish 0.6.0-beta.17

Sealed sending release!

Changes

  • Fixes the profile page not loading
  • Fix multiple settings page and profile page issues
  • Implement automatic identity key reset
  • Implement draft messages
  • Fix captcha display and submission
  • Ignore NullMessages and implement PlaintexContent
  • Implement sealed sending
  • Cleaner logging thanks to minimized Display implementations for database types
  • Log Qt and QML via simplelog
  • Keep identity key in memory, instead of reading from storage
  • Stop trying to send messages to unregistered users, store registration state in db
  • Consider empty sessions as read, fixes incorrect unread message count
  • Expose logging settings in Settings page
  • Bump emoji.js

Whisperfish 0.6.0-beta.16

Fix an issue during registration, and some QoL improvements

Changes

Whisperfish 0.6.0-beta.15

Overhauls the QML binding system. This should fix all UI inconsistencies, except for a few that are now introduced.

Changes

Whisperfish 0.6.0-beta.14

Bugfix release for most of the bugs we introduced in beta.13, and some fixes for changes upstream.

Changes

  • Attempt to handle HTTP 428 by responding with a reCAPTCHA challenge
  • Handle device mismatches (fixes sending to contacts that change their linking setup)
  • Attempt at fixing a crash at startup related to profile uploading
  • Fix a crash when opening an empty session
  • emoji.js now supports out-of-date emoji packages as fallback
  • Fix typing notification display of names in certain conditions
  • Marking as read fix for mismatched sessions
  • Cleaner formatting for linked device display

Whisperfish 0.6.0-beta.13

Profile fetching and updating, avatar displaying, sender key and unidentified sender support at receiver side, and much more.

Changes

  • Disable defunct "send new message" functionality
  • Don't crash when Signal desktop sends a SyncMessage about a story.
  • Use move_rows instead of reinserting upon new message reception
  • Big refactoring work by Lucien XU
  • Send messages via the Websocket instead of the PushService
  • Display avatars
  • Display Signal profile names, with preference for local contact names in settings
  • Implement displaying and sending quotes
  • Use Emoji font for displaying reactions when configured as such
  • Move (signed) prekeys, identities, sessions into database
  • Implement sender keys and unidentified sending at the receiver side for much improved privacy
  • Many, many, other tiny and big things.

Whisperfish 0.6.0-beta.12

Hotfix release for the new Signal root certificate

Changes

  • Update root CA certificate for Signal production server (4096 bits RSA instead of 2048!)
  • Multiple fixes for SailfishOS 3.4
  • Fix storage migration corner case
  • Fix some registration issues
  • Fix cover scrolling behaviour
  • Big update of libsignal-protocol version
  • Misc layout and input field improvements
  • Refactored some storage and Sailfish platform code

Whisperfish 0.6.0-beta.11

Mostly bugfixes for bugs that we introduced in beta.10, but also implements Whisperfish as secondary device. This release is basically completely due to direc85 and Gabriel Margiani; thank you both!

Changes

Whisperfish 0.6.0-beta.10 (code sprint edition!)

Many quality-of-life updates and technical debt fixes, thanks to the code sprint of Matti and Ruben!

Changes

Whisperfish 0.6.0-beta.9

Fixes for stuff in beta.8, mostly.

Changes

  • Fix for emoji reaction parsing that could cause a crash
  • Fix a crash when manually refreshing a group
  • Fix config file location after the Sailjail implementation
  • Fix creating debug symbols in CI and offline, run LTO on CI. Debug symbols are now hosted alongside nightl RPMs (and probably also here, let's see how the CD copes)
  • Add new config paths to MyBackup paths

Whisperfish 0.6.0-beta.8

A bunch of quality-of-life updates, and SailfishOS 4.4 compatibilty! Direc85 did a lot of work in this release. If you consider donating to me for Whisperfish, please also consider buying direc85 a coffee.

Changes

Whisperfish 0.6.0-beta.7

Edition "omg OpenSSL".

Changes

Whisperfish 0.6.0-beta.6

Edition "invert the event loop". Write-up here: https://github.com/woboq/qmetaobject-rs/issues/102#issuecomment-919798690

Features

 

Fixes

Whisperfish 0.6.0-beta.5

Fixes

  • Reception of messages with attachments, but without accompanying text
  • Show contact/payment/deletion/group call update messages as "unimplemented" instead of empty.

Whisperfish 0.6.0-beta.4

Features

  • MyBackup compatibility, thanks to Nathan!
  • Display group changes and message timer changes in chat.

Fixes

  • Fix usage of configured attachment path
  • Fix the many empty messages sent by Android and iOS clients for profile key pushes

Translations

  • Add Lithuanian, by Gediminas Murauskas
  • Updates to Greek, French, Turkish, Dutch, and Vlaams. Thanks to all contributors!

Whisperfish 0.6.0-beta.3

Emergency release for the HTTP-500 "nothing can be send" bug and the BadKeyType bug.

Fixes

Whisperfish 0.6.0-beta.2 (yanked)

Emergency release for the HTTP-500 "nothing can be send" bug.

Features

Fixes

Whisperfish 0.6.0-beta.1

The milestone on Gitlab for this release

Features

Translations

  • We have a Weblate account now!
  • Portuguese translation, thanks to Yield and Antonio Maretzek!
  • Czech translation, thanks to PawelSpoon!
  • Turkish translation, thanks to Oğuz Ersen!
  • Nowegian translation, thanks to Allan Nordhøy!
  • Many, many, many, MANY cleanup operations on Dutch, German, French, and Spanish, thanks to Nathan, Dryo, and J. Lavoie!

Fixes

  • More stable reconnection management. Flight mode and network changes should now work as expected.
  • Access contacts through the Nemo QML interface instead of raw contacts.db. This interface will probably be more stable than the raw SQLite, and keeps compatibility across 3.x and 4.x.
  • A "privileged file" allows us to read contact lists again on SailfishOS 4.0
  • More or less fixed video playback
  • Fix lingering notifications on session activation, thanks to flypig!
  • JPEG rotation is now correct in Whisperfish (but not yet on Android), thanks to Mirian Margiani.
  • Image zoom is more intuitive for images that are almost the same size as the screen, thanks to Mirian Margiani.

Whisperfish 0.6.0-alpha.9

Fixes startup on upgraded contact database.

Whisperfish 0.6.0-alpha.8

Features/fixes

Whisperfish 0.6.0-alpha.7

Features

Fixes

  • Create the correct attachments download directory, should fix attachments downloading for new installations.
  • Some phone numbers (notably with dashes, parantheses or dots) did not show up with names.
  • New members in a group show up, group renames come through.
  • Group members show up as names, not phone numbers, thanks to Thomas Michel.
  • Fixes copying message to clipboard, thanks to Thomas Michel.
  • Auto-focus password field, thanks to Markus.

Whisperfish 0.6.0-alpha.6

Features

  • The conversation page got a complete overhaul in design. I hope you like it.

Fixes

  • Fix a race condition during registration, which may corrupt the settings file.
  • Sent messages update the session view
  • More names show up correctly in session view (please file an issue if it's still buggy!)
  • Session sections
  • Sent attachments show up as thumbnails
  • Some translation work in the (currently disfunctional) Device List page

Whisperfish 0.6.0-alpha.5

Features

  • Sending new messages to a single contact, clean-up of contact selection
  • Started French language translation
    • French translation finished (thanks Thibaut Vandervelden)
  • Spanish translation got a lot of clean-up (thanks carlosgonz)
  • Settings page looks a lot nicer

Fixes

  • Settings page revamped, looks a lot cleaner
  • attachment_dir was not set on settings init.
  • Contact DB fix for non-nemo users (new 3.4 installs, alternate users)
  • Show build ID in about screen
  • Notifications with vibration and sound

Whisperfish 0.6.0-alpha.4

The milestone on Gitlab for this release

Features:

Under the hood:

  • Partial support new UUID-based identifiers
  • Initial tooling for future database migrations
  • Pre-key refreshing
  • Attachment failure log (set attachment_log=true in harbour-whisperfish.conf)

Whisperfish 0.6.0-alpha.3

The milestone on Gitlab for this release

  • Sending direct and group messages, notably no attachments.

Whisperfish 0.6.0-alpha.2

The milestone on Gitlab for this release

  • Receiving messages and their attachments

Whisperfish 0.6.0-alpha.1

The milestone on Gitlab for this release

  • GUI performance improvement

Comments

treeman's picture

Hi Ruben. I scrolled several threads on openrepos, github, tjc... but i didn't found out how to create groups.
Am i to stupid or isn't it possible to add another contact (recipient) to a new or existing conversation?
Thanks a lot.

rubdos's picture

Hi! No stupidity involved. You can in principle use Signal Desktop to create groups, but I think that too broke recently.

treeman's picture

Thanks for this hint. Indeed there is no possibility to create groups yet. I've tried in Linux and Windows without success.
By the way: great work ☺

illyrion's picture

I just tried to install Whisperfish. I followed all the steps described for deleting the Android installation on the same devixe. However, no connection established. What is strange: Whisperfish seems to recognize my account, because I have to enter a password when I start Whisperfish. Maybe there is spmething I have to delete in order to fully uninstall Whisperfish?

rubdos's picture

Known issue, sorry! You can install beta 8 manually, start it once, and then go back to beta 10. We will fix this in beta 11 soon.

RamBoo's picture

I had another phone for using signal and I guess it messed up my whisperfish when it connected to internet. Thanks for the advice!

RamBoo's picture

What to do when it says on the settings "connection status - disconnected" and wont send any messages?

rubdos's picture

That sounds like a deactivated registration. Did you register on the Android or iOS application? If so: you can only have one single active registration on a phone.

If that's the case, and if you want to use Whisperfish again, you'll need to follow https://gitlab.com/whisperfish/whisperfish/-/wikis/Frequently-Asked-Ques... and before that you need to turn-off the registration lock in the Android Signal settings. Cfr. https://gitlab.com/rubdos/whisperfish/-/issues/148 and https://gitlab.com/rubdos/whisperfish/-/issues/149

rob_k's picture

How to paste a captcha string that is so long, that it won't fit in one terminal line?

rubdos's picture

I haven't been able to reproduce that it doesn't fit in one line myself. I'm not sure why it would not work.

Either way, there's a few things you can do. I've changed the wiki with a simple one: instead of first ssh-ing into the device, you run ssh with the command in one go.

ssh nemo@[target] harbour-whisperfish --verbose --captcha '<THE URL HERE>'
skyjumper's picture

That command format worked a treat for me - thanks !

rob_k's picture

Very promising, the workaround for the captcha. Unfortunately I get:

[2022-03-27T16:01:41Z INFO  harbour_whisperfish] Start main app (with autostart = false)
[D] unknown:0 - Using Wayland-EGL
library "libGLESv2_adreno.so" not found
library "eglSubDriverAndroid.so" not found
[2022-03-27T16:01:41Z INFO  harbour_whisperfish::gui] QmlApp::application loaded - version v0.6.0-beta.8
[W] __cpp_closure_14317703314545309294_impl:182 - Failed to load translator for ("en-GB") Searched "/usr/share/harbour-whisperfish/translations" for "harbour-whisperfish"
[W] unknown:0 - "Query failed: no such function: icu_load_collation Unable to execute statement\nSELECT icu_load_collation('en_GB', 'localeCollation')"
[W] unknown:0 - "Failed to configure collation for locale en_GB:  "
[W] unknown:0 - "Query failed: no such function: icu_load_collation Unable to execute statement\nSELECT icu_load_collation('en_GB', 'localeCollation')"
[W] unknown:0 - "Failed to configure collation for locale en_GB:  "
[W] unknown:0 - "Failed to attach key memory region for qtcontacts-sqlite-np: QSharedMemory::attach (shmget): doesn't exist"
[W] unknown:0 - "Failed to open contacts transient store"
[W] unknown:0 - "Unable to open synchronous engine database connection"
[W] unknown:0 - QSqlQuery::prepare: database not open
[W] unknown:0 - "Failed to prepare distinct display label group selection query:  \n SELECT DISTINCT DisplayLabelGroup FROM DisplayLabels ORDER BY DisplayLabelGroupSortOrder ASC"
[2022-03-27T16:01:42Z INFO  harbour_whisperfish::worker::setup] SetupWorker::run
[2022-03-27T16:01:42Z INFO  harbour_whisperfish::worker::setup] identity_key not found
[2022-03-27T16:01:42Z INFO  harbour_whisperfish::config::settings] Setting default settings.
[D] unknown:0 - Starting favorites query at 380 ms
[D] unknown:0 - Favorites queried in 566 ms
[D] unknown:0 - Starting metadata query at 659 ms
[D] unknown:0 - All queried in 682 ms

BTW command seems too long, so I pasted the url in two parts:

harbour-whisperfish --verbose --captcha 'signalcaptcha://signal-recaptcha-v2.6LfBXs0bAAAAAAjkDyyI1Lk5gBAU
WfhI_bIyox5W.registration.03AGdBq26REl5yIhRF5VqfWBQC2CPssc_NFGqbtKbphMJql1Sfxj3B9148A6KjJB-EM3CDGlGmkAEw282do6-QZgfd82gjosrld
BdFhw4ooqPJ-1JjJoBssQAmq1YacN7zYdUurvrKd8zZwbNFNUl0awd7SN0mZZfrnZkW_QTolDZrEE9SSep64M1NEoewypc4KeoBPrBfTLMFMgje61-mzuVIF-Fa2V
RryUk5GXkV4pQ_jAuJx-pfUfURKCzmjbuNFO3lS9uKpo_TNOlnC559Y9bpl8G2XoVXjVWHxz2jJkHcbpk-F9TubydZx9BfVvVqqygASueiONpKtjmFVFxre2JpWJg
C8UpKIx4yIVUvxySdFDPfITof7iNXsAvwa7sHXaaLxoLV96cNTK8krX5UNUVA6eavUan-BFMJGRsVr9_Xa1hdfkqM28PkjCeSxZENsIYgS6SxdcgWKenUB-JL6aXH
-0iorvD5riB6fSJFH6LC7mgZ7bU41CfWJBwy_mRRU1nibIxJc9wuwvBp1qP0q6TOGil8unX1wD1RFzOXdOKrQY3NcqG_4K4sGeu0iKwbk4zu0NFKtbkNJPEAWnPfq
cMTCIf9xwD8V-sfqfexR-V93P8kKO-byFAhw2efmKcJNlS2w2hrb-_uJhqFamkzWmK7iVReUaYsXrBHjymD5lknExFz4syJnqZVdN6jGSCFRCBifviMMa6Q2u0Szp
ivEbvqMX1kwrjtn2InWZVJD7GPfsaAcRBhEdR8sHvS8JLSDT5esOsa0CzYDcXWeFUQzPjs2D16EKtBSbfi8pWd-E4bBeu-sdtM4msaQvaTgan-qeIL4oc7yXQXZiy
67V51c6Wk4vnLRIc_H_cHDdQ-AbolduA_8n3FlB9ks
> 21qpNRhumL2zRde-Xw9e2D_cgjyMCKQPJOjW0gRMD2cAe_zq0EfO9cO4vX47DZdaUNanTptI3G05I33UCWm3yMsEUCbZCGmsTeCKphqBxyTbML3ixSc8CXtkVct
hWMnGh2Hg0TjuKAUiP23L8YIp3HwWG1ovxqLODISa6ShSaG31jedBMUaixEEJJjksWbIbXlOx8w0aRs_W4Pyonidx-uBDiPuwhIGI7f1CYPUHVaN3NlbBzRwcqkm7
RWLsh_SkDwj7Npk3WAmr0SavREosFtLHhAT75w4OpRSJNW9zQ'

 

rubdos's picture

There seems to be a newline in the captcha string you pasted on terminal; that should really not be there. That gets misinterpreted and rejected by Signal.

rossholmes's picture

Messed up something probably. I'm trying to register, but when, I entered my phone number, selected text verification method, and the app crashed upon I chose Continue. Any idea?

rubdos's picture

Yes. Registration is currently broken in SailfishOS 4.2 and 4.3, without any workaround: https://gitlab.com/whisperfish/whisperfish/-/issues/366

Our hope is that SailfishOS 4.4 fixes it, or gives us another clue about what's up.

Termitebug's picture

Hi! Would it be possible to unlock GUI-password with sailfish-sercrets for convenience's sake? For now, I'm copy-pasting from ownKeepass the unlock password. This is just a feature request and if it cannot be done I'm okay with that answer.

rubdos's picture

It's a feature request and it's certainly possible some day. Feel free to upvote here: https://gitlab.com/rubdos/whisperfish/-/issues/2

ric9k's picture

Hi,
Thank you for Whisperfish.
Is there a way to use whisperfish if I register to signal on another device?
Thanks,

rubdos's picture

In Signal, one "device" is the main device (this is currently always a phone), and you can link as many secondary devices as you want (which is currently either an Apple iPad or a computer). Whisperfish currently only supports being the main device. If you want to use multiple devices, you need to register Whisperfish as main device and link all other devices to Whisperfish.

Currently, Whisperfish registration is broken since SailfishOS 4.3.

delocoyo's picture

What is the channel in matrix? I cant find it.

rubdos's picture

I didn't see the notification for this comment; sorry! The channel is #whisperfish:rubdos.be

If you cannot find it, you can leave me your Matrix username and I can invite you in!

delocoyo's picture

when will be possible to use whisperfish for a newer user?

delocoyo's picture

Thanks rubdos.

delocoyo's picture

Hej. I have not install other whisperfish conto now. The probkem is that I cant reach the captcha, and it breaks

rubdos's picture

Yes, registration is currently broken due to the reCAPTCHA again indeed. I hope to fix it some time soon.

delocoyo's picture

I just got a xz2c with 4.2 , and I cant install whisperfish in it. I had an xperia 10II and with 4.2 was working without problems?

rubdos's picture

What are the symptoms, what is going wrong? You cannot install it with Storeman, or you cannot register?

aviarus's picture

Downgrading openssl and installing beta 6 worked

aviarus's picture

is it  possible to copy the settings from smoother device? i copied  .local/share/harbour-whisperfish from an old  sfos 3.4 device that cannot update and loaded the saved messages but the icon stayed red. now  i thought  i could  hop over the reiteration on  a 4.3 device but it gives the same strange result with the Last provided version here and also with the Last nightly build from  gitlab

rubdos's picture

You need to copy over both ~/.local/share/harbour-whisperfish and ~/.config/harbour-whisperfish for this to work. Don't try to run the same config on two devices, make sure to disable the old divive (by renaming both directories on the old device, for example)

Pages