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
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
rubdos
Thu, 2021/01/14 - 00:36
Permalink
Looks like they now enforce GroupsV2, so I'll move that up the priority list.
pvcn
Wed, 2021/01/13 - 13:03
Permalink
Thanks for the update! Do i understand the release notes right that opening attachments now works, but only if i deinstall whisperfish and reinstall it again?
rubdos
Wed, 2021/01/13 - 14:04
Permalink
There should be no need to reinstall. If it still does not work, please get in touch, because it should just work™.
huggymann
Mon, 2021/01/11 - 23:10
Permalink
Hello
I am one of the Installations where attachment (image in this case) is not working. By tapping on the attachment a new empty page is coming. Dont know what should have been coming instead. If i click on open the app crashes and i go back to sailfish app overview immediately.
I wrote also on freenode. But in browser . Is there a sailfish app?
rubdos
Tue, 2021/01/12 - 17:47
Permalink
Figured this out over chat, and meanwhile, alpha.7 should've solved this for everyone else!
miglincit
Fri, 2021/01/08 - 10:08
Permalink
I just installed Whisperfish but there is no registration porocess ?!
rubdos
Fri, 2021/01/08 - 11:16
Permalink
Hi! Could you check that you have the latest version, alpha.6? Have you had a previous installation of Whisperfish? What do you see instead of the registration? Thanks for your feedback, much appreciated! If you want to have a quicker response, have a chat on Matrix or IRC, e.g. via https://webchat.freenode.net/#whisperfish .
delocoyo
Wed, 2020/12/30 - 03:47
Permalink
I see. Maybe you can get help from the community? You have done a great job in a short time. Keep rocking rubdos
rubdos
Wed, 2020/12/30 - 13:03
Permalink
Thanks! Yes, I have a lot of help, especially half a year ago. Currently, the most import aspect is testing and getting things a lot more stable :-)
We're having a small chatting community on Matrix and Freenode, feel free to come say hi!
delocoyo
Fri, 2020/12/25 - 21:02
Permalink
I have tried the las verdion, and I am impress. Thanks a lot rubdos. my question is if at somepoint the videl or the calling will be presrnt at some point, so I can stop uding android one. Thank u soooo much
rubdos
Sat, 2020/12/26 - 15:01
Permalink
I do want video calling and audio calling at some point in the future, but it'll be a lot of work. Track it here: https://gitlab.com/rubdos/whisperfish/-/milestones/5
delocoyo
Tue, 2020/12/22 - 16:30
Permalink
I cant find those directories
rubdos
Tue, 2020/12/22 - 18:33
Permalink
Could you send me an email on whisperfish [at] rubdos [dot] be, or come on Matrix or IRC (see description)? We'll sort it out there.
huggymann
Tue, 2020/12/22 - 00:04
Permalink
Hello. I habe the app installed but forgot my password and would lile to completely re Setup the app. Even after uninstall and install, it is in the Same state, asking me for pw and shows that i have connected with my mobile number. Am i stupid? Could you help me?
rubdos
Tue, 2020/12/22 - 00:12
Permalink
Hi! No, you're not stupid at all. The data is in `.local/share/harbour-whisperfish` and `.config/harbour-whisperfish`. If you delete those two directories, you can re-register. I have not yet made a reset button.
I've made a note about a "reset"-feature here: https://gitlab.com/rubdos/whisperfish/-/issues/155
Rene666
Wed, 2020/12/09 - 13:24
Permalink
Hello, I've installed the Whisperfish. I cannot send or receive messages. When sending, there are always inadmissible recipients. Can you help me? Thank you
Hallo, ich habe mir die Whisperfish installiert. Ich kann weder senden noch Empfangen von Nachrichten. Beim versenden kommt immer unzulässige Empfänger. Können Sie mir helfen? Danke
rubdos
Wed, 2020/12/09 - 13:40
Permalink
Hi! Could you get in touch with me over e-mail? I do not write German myself, but I can read it pretty well, so feel free to write me in German. whisperfish [at] rubdos.be will arrive well :-)
You can also join on the Matrix or IRC channel, as described in the app description.
If at all possible, I'd like to see a trace log of Whisperfish until right after you log in with your password. You can get this by running `RUST_LOG=trace harbour-whisperfish > whisperfish.log`, then logging in, closing the app, and sending me the resulting log file (whisperfish.log in your home directory). You may want to open the log file and censor out the connect URL half way through, you can find it by looking for your own phone number.
If the above is not clear, just get in touch, and I'll walk you through it!
pvcn
Thu, 2020/12/03 - 08:42
Permalink
Thank you very much for your work on this! Updated a few days ago, but push notifications don't work, just got a lot of old messages after reboot...
rubdos
Thu, 2020/12/03 - 13:45
Permalink
Hmm, they should work. Can you get in touch via Matrix/IRC/mail? Then we can sort it out! Feel free to drop a message at me [at] rubdos [dot] be if you're not on Matrix/IRC.
pvcn
Fri, 2020/12/04 - 20:37
Permalink
Ok, thanks, i just wrote you a mail to whisperfish[at]rubdos.be
NGC_Ollie
Fri, 2020/11/27 - 01:52
Permalink
Ok, you got me, I installed alpha5. Thanks for that, works like a charm, a huge improvement, especially the groups. Only tiny bits I found:
- when I switch from a dark to a light ambiance the font stays in the dark mode.
- sometimes I'm unable to see my last messages in the groups when on the conversations overview. I don't really care about that, but it's good to know.
- Image preview from pics I sent stay as a filled rectangle, no preview. But it sends, that's important!
Would you like to have issues/tickets on github or do you prefer comments like this?
rubdos
Fri, 2020/11/27 - 10:49
Permalink
Issues on Gitlab work the best, indeed. We're aware of the second issue (there's a merge request for that in progress), but number one and three are currently undocumented. Filing at https://gitlab.com/rubdos/whisperfish/-/issues/new would be thoroughly apperiated!
I'm glad you like the new version :-)
NGC_Ollie
Thu, 2020/11/26 - 09:29
Permalink
Actually there is no main show stopper, so you're right, beta might be considerable, since 0.5 gets more and more unstable. I need a smooth transition from 0.5 to 0.6, that's all, because I use WF since ages and I don't want to lose all conversations. I need that app on a daily basis, because I avoid any messenger like whatsapp, Telegram or worse.
rubdos
Thu, 2020/11/26 - 14:59
Permalink
FWIW, the only known issue on Whisperfish 0.6 alpha.5 is during registration. If you currently run 0.5, I think you'd be happy to try out alpha.5 already. I'm using it as daily, together with many others. 0.6 uses the exact same db and storage as 0.5, the compatibility was my first priority.
EDIT: wrt to 0.5 compatibility, 0.6 only supports the encrypted database ON, unencrypted database is untested (at least by me), but should be easy enough to implement. Let me know if you have any peculiar settings, because we've mainly tested default settings!
NGC_Ollie
Mon, 2020/11/23 - 16:59
Permalink
Ok, I love WF, it's the last reason why I can deactivate the Android layer. Thanks a lot for maintaining this app. I didn't install it yet, because I'm a sheepish chicken, but as soon as 0.6 is stable I'll drown you with feedback.
rubdos
Mon, 2020/11/23 - 20:54
Permalink
The "stable" label is something I'm very careful with, won't be there for a while. The meaning of "stable" will be the feature parity with 0.5. I think you might want to consider stepping in at beta.1 or beta.2, I expect those to be mostly bug-free (but not feature complete). We haven't had very many bugs yet, and those bugs we had, were easily mitigated.
I am interested in hearing what the main blockers or would-be features are for you! Thanks for the feedback :-)
broncheoli
Sun, 2020/11/22 - 22:00
Permalink
Dear rubdos,
first of all, thanks for developing this app, I will pay you some money for your effort.
I have a problem. I had signal installed to try it out. After some installing and deleting Whisperfish, I also deleted Signal. No problem so far. I now wanted to newly register with wisperfish but the dialog refuses to show up. I deleted WF and also deleted the folder under ~/.config with no luck, after reinstalling WF no register-dialog. What more do I have to delete to start from scratch?
Thanks in advance, broncheolus.
broncheoli
Sun, 2020/11/22 - 22:58
Permalink
I found the solution. I also deleted the WF folder under ~/.local/share/. Everything works fine now. Thanks. :-))
rubdos
Mon, 2020/11/23 - 12:00
Permalink
For future reference: deleting ~/.local/share/harbour-whisperfish indeed resets the complete application state. Resetting the settings is possible too, by removing ~/.config/harbour-whisperfish/*. The latter contains settings like your phone number and registration UUID.
lispy
Fri, 2020/11/20 - 19:48
Permalink
Hmm...login worked, but how do I add contacts? The adressbook is empty.
Pages