Kaidan issueshttps://invent.kde.org/network/kaidan/-/issues2024-03-26T15:45:14Zhttps://invent.kde.org/network/kaidan/-/issues/470Qt6/KF6 migration2024-03-26T15:45:14ZPlata HillQt6/KF6 migrationIs there a plan for Qt6/KF6 migration? Is someone working on it already?Is there a plan for Qt6/KF6 migration? Is someone working on it already?https://invent.kde.org/network/kaidan/-/issues/469New Stateless File Sharing version with backwards compatibility2024-03-21T22:14:19ZLinus JahnNew Stateless File Sharing version with backwards compatibilityUpdate [XEP-0447: Stateless file sharing](https://xmpp.org/extensions/xep-0447.html) to v0.3.1.
- [x] QXmpp: Implement new fallback element <br/>https://github.com/qxmpp-project/qxmpp/pull/608
- [ ] Add IDs to QXmppFileShare
- [ ] Add a...Update [XEP-0447: Stateless file sharing](https://xmpp.org/extensions/xep-0447.html) to v0.3.1.
- [x] QXmpp: Implement new fallback element <br/>https://github.com/qxmpp-project/qxmpp/pull/608
- [ ] Add IDs to QXmppFileShare
- [ ] Add attached sources to QXmppMessage
- [ ] DB: Add new file IDs from XEP
- [ ] Implement attaching of new sources to files
- [x] Send extra fallback messages for old clients: !1119
Fixes/adjustments to the XEP:
- [x] XEP-0428: Change schema int types to xs:unsignedInt
<br/>https://github.com/xsf/xeps/pull/1335Linus JahnLinus Jahnhttps://invent.kde.org/network/kaidan/-/issues/451Online/Offline status display2024-02-19T16:11:50ZMelvin Keskinmelvo@olomono.deOnline/Offline status displayI would like to have a discussion about whether to display the online/offline status of contacts.
If at least one device of a contact is connected to the server, the user is seen as *online*.
Otherwise, the user is *offline*.
There are...I would like to have a discussion about whether to display the online/offline status of contacts.
If at least one device of a contact is connected to the server, the user is seen as *online*.
Otherwise, the user is *offline*.
There are different opinions and use cases needed to be considered.
The intention of displaying the online status is to influence a sender's behavior.
In which way depends on the status, the sender and the relation between the sender and the recipient.
The online/offline status could be shown in
1. the contact list (`RosterPage`),
2. the conversation (`ChatPage`) or
3. in the contact details (`ContactDetailsHeader` or `ContactDetailsContent`).
Here are some questions that should be discussed:
1. Should the online/offline status be displayed at all? If so, why (mention use cases) where and how should it be displayed?
2. Should an extended status (such as *Do not disturb*) be displayed? If so, why (mention use cases) where and how should it be displayed?
Please feel free to add your ideas here!https://invent.kde.org/network/kaidan/-/issues/440KDE review2024-02-16T18:47:05ZLinus JahnKDE review**KDE Review checklist**
- [x] If from outwith KDE, have completed [Incubator](https://community.kde.org/Incubator)
- [x] The [REUSE Specification - Version 3.0](https://reuse.software/spec/) shall be applied when stating licenses and w...**KDE Review checklist**
- [x] If from outwith KDE, have completed [Incubator](https://community.kde.org/Incubator)
- [x] The [REUSE Specification - Version 3.0](https://reuse.software/spec/) shall be applied when stating licenses and when adding license files to a project. Each source file either must contain SPDX identifiers or licence headers to state under which terms the software may be used, modified and redistributed. See [Licensing Policy](https://community.kde.org/Policies/Licensing_Policy#License_Statements)
- [x] Passing CI job for Reuse linting
- [X] A [Messages.sh file](https://techbase.kde.org/Development/Tutorials/Localization/i18n_Build_Systems#Writing_a_Messages.sh_script) which extracts all the i18n() translations
- [X] A metainfo.xml file (previously appdata.xml) with AppStream data [AppStream Guidelines](https://community.kde.org/Guidelines_and_HOWTOs/AppStream )
- [ ] A screenshot in [product-screenshots](https://invent.kde.org/websites/product-screenshots)
- [X] Check the code with some sanity tools like [clazy](https://kde.org/applications/development/org.kde.clazy) or [clang-tidy](https://clang.llvm.org/extra/clang-tidy), if not already done as part of CI runs.
- [ ] Documentation appropriate to the project: API documentation, user documentation (including docbook or other format documented by the Documentation team)
- [ ] A [bugs.kde.org](https://bugs.kde.org) product
- [ ] Passing [Gitlab CI build jobs](https://mail.kde.org/pipermail/kde-devel/2021-September/000717.html)
- [ ] Passing [KDE neon](http://build.neon.kde.org/) build
- [ ] App packages in [Flatpak](https://develop.kde.org/docs/packaging/flatpak/), [Snap](https://community.kde.org/Guidelines_and_HOWTOs/Snap), [AppImages and Windows](https://community.kde.org/Craft) etc as appropriatehttps://invent.kde.org/network/kaidan/-/issues/452Register Manually text distorted2024-01-27T16:42:50ZCieski IzabRegister Manually text distortedCurrent Fedora KDE, installed with flatpak. Very first startup of Kaidan.
![Screenshot_20230511_231255](/uploads/a71e93524c53643b5ec83c8131d4d166/Screenshot_20230511_231255.png)Current Fedora KDE, installed with flatpak. Very first startup of Kaidan.
![Screenshot_20230511_231255](/uploads/a71e93524c53643b5ec83c8131d4d166/Screenshot_20230511_231255.png)https://invent.kde.org/network/kaidan/-/issues/464Account Migration (moving to a new account on the same or another server)2024-01-27T16:40:50ZMelvin Keskinmelvo@olomono.deAccount Migration (moving to a new account on the same or another server)Kaidan should provide a mechanism to migrate a user's account.
That means, it should be possible to move all data from an old account to a new one.
At best, neither the user nor the contacts should notice more than a new chat address (JI...Kaidan should provide a mechanism to migrate a user's account.
That means, it should be possible to move all data from an old account to a new one.
At best, neither the user nor the contacts should notice more than a new chat address (JID).
Especially, as we have seen providers shutting down their services while new providers are starting their XMPP services in the past, account migration via the client would be handy for users.
The tool https://migrate.modernxmpp.org migrates an account via a JavaScript page. The goal is to have such a feature directly within Kaidan to make the process even simpler.
We strive to make the migration as easy as possible.
There are other use cases as well:
* A server does not support what a user needs.
* A server is included in a spam blocklist.
* A user wants to set up an own server or needs to move to a public one.
QXmpp should be involved in order to even migrate data that clients such as Kaidan do not handle yet. E.g., [bookmarks](https://xmpp.org/extensions/xep-0402.html) for [XEP-0045: Multi-User Chat (MUC)](https://xmpp.org/extensions/xep-0045.html) since MIX (Kaidan's upcoming group chat implementation) does not need/use bookmarks.
# Account Creation and Data Migration
1. Create manager in QXmpp called `QXmppAccountMigrationManager` for requesting all server-side data from the old account and submitting them to the new one while using the existing managers (e.g., QXmppRosterManager, QXmppVCardManager etc.)
1. Add option *Migrate account data* to account details
1. Export data via `QXmppAccountMigrationManager::exportAccountData()` and cache it to submit it later
1. Create new account via Kaidan's registration dialog (manual/automatic registration)
1. Apply the account settings (set via the account details) of the old account to the new one
1. Ask the user whether to remove the old account only from Kaidan or to delete it from the server as well
1. Set the new JID via the `ClientWorker`
1. Import data to new account via `QXmppAccountMigrationManager::importAccountData()`
1. Tell user what has been migrated and what not
## Data to Migrate
Here are some data types listed that could be migrated.
- [ ] [Roster](https://www.rfc-editor.org/rfc/rfc6121#section-2) including recreation of presence subscriptions
- [ ] [vCard](https://xmpp.org/extensions/xep-0054.html) including avatar and nickname
- [ ] [Bookmarks](https://xmpp.org/extensions/xep-0402.html)
- [ ] [PubSub](https://xmpp.org/extensions/xep-0060.html) nodes (excluding OMEMO nodes)
- [ ] Private [MIX](https://xmpp.org/extensions/xep-0369.html) channels
- [ ] Messages (maybe only client-side data or later via MAM, but how to handle the changed account JID and encrypted messages)
- [ ] Files (maybe only client-side data or later via MAM, but how to handle the changed account JID and encrypted files)
# Informing Contacts of Migration
1. Implement [XEP-0283: Moved](https://xmpp.org/extensions/xep-0283.html) in `QXmppAccountMigrationManager` (possibly as `QXmppAccountMigrationManager::informContacts()`)Filipe AzevedoFilipe Azevedohttps://invent.kde.org/network/kaidan/-/issues/316Unable to login using self signed certificates on server2024-01-20T08:19:23ZMihai ComanUnable to login using self signed certificates on serverCurrently, login fails if self signed certificate is used on server.
An option to view and confirm trust for self signed certificates would be nice.Currently, login fails if self signed certificate is used on server.
An option to view and confirm trust for self signed certificates would be nice.1.0https://invent.kde.org/network/kaidan/-/issues/455Android support (including F-Droid build)2024-01-06T09:54:25Zjake gAndroid support (including F-Droid build)This page https://www.kaidan.im/download/ lists F-Droid as a source to get Kaidan on your phone, I added the nightly repo, but fdroid has no results when I search for kaidan.This page https://www.kaidan.im/download/ lists F-Droid as a source to get Kaidan on your phone, I added the nightly repo, but fdroid has no results when I search for kaidan.https://invent.kde.org/network/kaidan/-/issues/323XEP-0157: Contact Addresses for XMPP Services2023-12-10T13:02:31ZLinus JahnXEP-0157: Contact Addresses for XMPP Serviceshttps://xmpp.org/extensions/xep-0157.html
The contact addresses should be visible after registering and also in the account settings.
(Suggestion by @borgert)https://xmpp.org/extensions/xep-0157.html
The contact addresses should be visible after registering and also in the account settings.
(Suggestion by @borgert)2.0https://invent.kde.org/network/kaidan/-/issues/445Windows binaries2023-10-28T14:50:15ZMichel Le BihanWindows binariesHello,
Where can I find Windows binaries or how can I build Kaindan for Windows?Hello,
Where can I find Windows binaries or how can I build Kaindan for Windows?https://invent.kde.org/network/kaidan/-/issues/421Use MessageComposition for all kinds of messages from QML2023-10-07T11:44:09ZLinus JahnUse MessageComposition for all kinds of messages from QML`MessageComposition` should probably contain a full `Message` object.
- [ ] Message corrections
The current message from the MessageModel could be fully loaded into the `MessageComposition`, be edited in there and then resent. This w...`MessageComposition` should probably contain a full `Message` object.
- [ ] Message corrections
The current message from the MessageModel could be fully loaded into the `MessageComposition`, be edited in there and then resent. This would solve the issue that we currently don't resend the full edited message (I think currently we only send the new body).
Corrections are currently done through
1. `MessageModel::correctMessage(replaceId, body, spoilerHint)`
2. `MessageModel::sendCorrectedMessageRequested()`
3. `MessageHandler::sendCorrectedMessage(Message msg)`
and should be done via properties of `MessageComposition` & `MessageComposition::send()`.
- [ ] !1067: send "normal" messages without `MessageHandler::sendMessage(to, body, isSpoiler, spoilerHint)`https://invent.kde.org/network/kaidan/-/issues/459Known issues2023-09-16T10:04:41ZTibor CsötönyiKnown issues# Related to displaying / refreshing last message or last draft
* [x] After correcting the last sent message, it's not updated in the related roster item. However, when creating a message draft afterwards, switching chats, then going ba...# Related to displaying / refreshing last message or last draft
* [x] After correcting the last sent message, it's not updated in the related roster item. However, when creating a message draft afterwards, switching chats, then going back, removing the draft and switching chats again, the corrected message is displayed correctly in the roster. The same issue appears when receiving a corrected message. (Solved by !1048)
![grafik.png](/uploads/395326bc989797227768bcce3042c1a1/grafik.png){width="574" height="379"}
* [x] When deleting the last message of a chat, the message date in the roster isn't being updated correctly (Solved by !1048 and !1056)
## Text correction
* [x] When starting to correct a message, then switching to another chat, the message correction will be saved as draft. When going back and sending the draft afterwards, it will be sent as a **new** message instead of a message correction. (Solved by !1052)
* [x] It's not possible to receive more than one text correction by one's chat partner. After the first correction, follow-ups aren't being processed anymore. (Solved by !1048)
# Other issues
* writing `:)` results in the emoji picker being kept popped up but not showing any emoji
* sending files unencrypted (Kaidan -\> Gajim) doesn't work (legacy file sending XEP is not yet implemented)
* after deleting the database, multiple "... has read up to this point" messages pop up (known but reason unknown):
![has read up.jpg](/uploads/5eb27c2bc160f6eb54dab3e787e01cd7/has_read_up.jpg){width="598" height="466"}Tibor CsötönyiTibor Csötönyihttps://invent.kde.org/network/kaidan/-/issues/351Add function to clear history and delete single messages locally2023-08-20T15:54:59ZAl DeAdd function to clear history and delete single messages locallyAt a point you may want to get locally rid of your old messages. (For example, if you sent insane big messages to yourself and the UI does not respond very much any more. :) )
It would be convenient to clear the DB and optionally to als...At a point you may want to get locally rid of your old messages. (For example, if you sent insane big messages to yourself and the UI does not respond very much any more. :) )
It would be convenient to clear the DB and optionally to also remove the received and sent files.1.0https://invent.kde.org/network/kaidan/-/issues/447Unread messages count show wrong number of unread messages2023-08-19T13:55:40ZFilipe AzevedoUnread messages count show wrong number of unread messagesWhen starting with a clean DB, upon opening a chat with a contact, MAM would download history.
When it is retrieved then a badge of unread count is shown both in the roster view and in the chat view when scrolling.
This number is wrong a...When starting with a clean DB, upon opening a chat with a contact, MAM would download history.
When it is retrieved then a badge of unread count is shown both in the roster view and in the chat view when scrolling.
This number is wrong and is even negative.
Also, it never disappear, even after restarting the applicationhttps://invent.kde.org/network/kaidan/-/issues/424Remove database column 'unreadMessages' in table 'roster'2023-07-04T09:37:25ZLinus JahnRemove database column 'unreadMessages' in table 'roster'The following discussion from !892 should be addressed:
- [ ] @lnj started a [discussion](https://invent.kde.org/network/kaidan/-/merge_requests/892#note_544592):
> isn't that also unused?The following discussion from !892 should be addressed:
- [ ] @lnj started a [discussion](https://invent.kde.org/network/kaidan/-/merge_requests/892#note_544592):
> isn't that also unused?Bhavy AiriBhavy Airihttps://invent.kde.org/network/kaidan/-/issues/446Adapt public group chat search to MIX once supported2023-03-07T19:16:44ZMelvin Keskinmelvo@olomono.deAdapt public group chat search to MIX once supportedFilipe AzevedoFilipe Azevedohttps://invent.kde.org/network/kaidan/-/issues/362Token-based authentication2023-03-06T13:00:07ZLinus JahnToken-based authentication### The issues with password-based auth
Using a password is not that nice:
* You can't identify your devices -> you can't list logged in devices
* You can't kick/log out other devices
* The user needs to remember the password somehow...### The issues with password-based auth
Using a password is not that nice:
* You can't identify your devices -> you can't list logged in devices
* You can't kick/log out other devices
* The user needs to remember the password somehow or the password needs to be visible in the App.
* Remembering the password isn't always a good option: Many people forget the password and get locked out of their account.
* Making the password visible isn't a good idea either, others getting your phone in their hands can easily look at your password -- This is not very privacy-aware.
* -> You could use randomly generated passwords to avoid privacy-loss. However, you can never be sure that the password of an account is randomly generated.
* When the password is changed, all other devices need to log in again.
### Requirements for such a token-based auth
* Devices using password-based authentication and devices using token-based auth need to work in parallel with one account.
* All currently active tokens need to be visible to clients
* Maybe privileges for tokens
* A client only having access using token-based auth should be able to give access to another device.
* Generating a new temporary token for the device
* Changing the accounts password and transmitting that
* Time limitations
* devices that are offline for more than e.g. 90 days should be kicked
* devices renew or replace their token by logging in or a special command
### Solutions?
To solve this, we probably need changes to the standards / a new XEP. Possible solutions:
* OAUTH2?
* There's already something for OAUTH in XMPP
* Is listing devices/tokens possible? => Do we need a XEP for that?
* There was a proto XEP about tokens?
* Could that be an option?
---
UPDATE: Solution seems to be FAST with SASL 2 (https://xmpp.org/extensions/inbox/xep-fast.html, https://xmpp.org/extensions/xep-0388.html)2.0https://invent.kde.org/network/kaidan/-/issues/436Ability to change background image2023-03-06T12:55:32ZTibor CsötönyiAbility to change background imageAs a user, I would like to have the ability to change the chat background image.
Until now, the default background is a collection of svg images. It would be great to have the possibility to use a custom background image, e.g., via the a...As a user, I would like to have the ability to change the chat background image.
Until now, the default background is a collection of svg images. It would be great to have the possibility to use a custom background image, e.g., via the app / profile / account settings.https://invent.kde.org/network/kaidan/-/issues/174Don't save password in plaintext2023-02-28T19:11:03ZBhushan ShahDon't save password in plaintext*Created by: LNJ2**Created by: LNJ2*1.0https://invent.kde.org/network/kaidan/-/issues/439Release as part of KDE Gear2023-02-24T13:26:06ZPlata HillRelease as part of KDE Gearwould reduce overheadwould reduce overhead