gajim issueshttps://dev.gajim.org/gajim/gajim/-/issues2023-11-28T07:32:12Zhttps://dev.gajim.org/gajim/gajim/-/issues/11704Cannot remove account from gajim when server is unreachable2023-11-28T07:32:12Zdiode24Cannot remove account from gajim when server is unreachable- ubuntu 23.10 with gajim-nightly
- windows 10 with gajim 1.8.4
I ran into this bug when I had an account on a now defunct server. It seems I cannot remove the account from gajim.
# Steps to reproduce problem
1. in gajim, enable an acc...- ubuntu 23.10 with gajim-nightly
- windows 10 with gajim 1.8.4
I ran into this bug when I had an account on a now defunct server. It seems I cannot remove the account from gajim.
# Steps to reproduce problem
1. in gajim, enable an account that you want to remove from gajim
2. kill gajim
3. disable network connection
4. start gajim
5. try to remove account
6. gajim gets stuck with a message "Trying to remove account..."
Debug log when selecting to remove account:
```
2023-11-28T04:17:49 (I) gajim.client | Starting to disconnect conversations.im1
2023-11-28T04:17:49 (W) nbxmpp.stream | (conversations.im1) Stream can't disconnect, stream state: StreamState.DISCONNECTED
```https://dev.gajim.org/gajim/gajim/-/issues/11692Error: ValueError: Trying to add GroupchatParticipant to BareContact2023-11-26T18:56:25Zkr1vi4Error: ValueError: Trying to add GroupchatParticipant to BareContact## Versions:
- OS: Arch Linux rolling (n/a)
- GTK Version: 3.24.38
- PyGObject Version: 3.46.0
- GLib Version : 2.78.0
- libsoup Version: 3.4.4
- python-nbxmpp Version: 4.5.2
- Gajim Version: 1.8.3
## Traceback
```
Traceback (most recen...## Versions:
- OS: Arch Linux rolling (n/a)
- GTK Version: 3.24.38
- PyGObject Version: 3.46.0
- GLib Version : 2.78.0
- libsoup Version: 3.4.4
- python-nbxmpp Version: 4.5.2
- Gajim Version: 1.8.3
## Traceback
```
Traceback (most recent call last):
File "/usr/lib/python3.11/site-packages/gajim/gtk/application.py", line 388, in _handle_local_options
self._startup()
File "/usr/lib/python3.11/site-packages/gajim/gtk/application.py", line 268, in _startup
MainWindow()
File "/usr/lib/python3.11/site-packages/gajim/gtk/main.py", line 154, in __init__
self._load_chats()
File "/usr/lib/python3.11/site-packages/gajim/gtk/main.py", line 1305, in _load_chats
self._chat_page.load_workspace_chats(workspace_id)
File "/usr/lib/python3.11/site-packages/gajim/gtk/chat_page.py", line 282, in load_workspace_chats
self.add_chat_for_workspace(workspace_id,
File "/usr/lib/python3.11/site-packages/gajim/gtk/chat_page.py", line 254, in add_chat_for_workspace
client.get_module('Contacts').add_private_contact(jid)
File "/usr/lib/python3.11/site-packages/gajim/common/modules/contacts.py", line 182, in add_private_contact
raise ValueError(f'Trying to add GroupchatParticipant {jid}, '
ValueError: Trying to add GroupchatParticipant obshenie@conference.jabber.ru/owl9206, to BareContact obshenie@conference.jabber.ru (conversations.im)
```
## Steps to reproduce the problem
...https://dev.gajim.org/gajim/gajim/-/issues/11682Error when trying to create group chat, disco_info is not None2023-11-11T16:40:07ZDaniel BrötzmannError when trying to create group chat, disco_info is not None```
Traceback (most recent call last):
File "/home/x/.local/lib/python3.11/site-packages/nbxmpp/dispatcher.py", line 475, in dispatch
handler['func'](self._client, stanza, properties)
File "/home/x/DEV/Gajim/gajim/gajim/common/mo...```
Traceback (most recent call last):
File "/home/x/.local/lib/python3.11/site-packages/nbxmpp/dispatcher.py", line 475, in dispatch
handler['func'](self._client, stanza, properties)
File "/home/x/DEV/Gajim/gajim/gajim/common/modules/vcard_avatars.py", line 121, in _presence_received
self._muc_update_received(properties)
File "/home/x/DEV/Gajim/gajim/gajim/common/modules/vcard_avatars.py", line 189, in _muc_update_received
allow_query = contact.room.get_config_value('allow_query_users')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/x/DEV/Gajim/gajim/gajim/common/modules/contacts.py", line 775, in get_config_value
assert disco_info is not None
^^^^^^^^^^^^^^^^^^^^^^
AssertionError
```https://dev.gajim.org/gajim/gajim/-/issues/11680Plugin update notification duplicates2023-11-09T18:18:36Zdiode24Plugin update notification duplicatesIf there is a plugin update available and gajim is kept running long enough, gajim seems to check for updates again and will add a second notification when there already is one for the same update. This also results in the notification c...If there is a plugin update available and gajim is kept running long enough, gajim seems to check for updates again and will add a second notification when there already is one for the same update. This also results in the notification counter increasing.
## Steps to reproduce problem
1. gajim shows a notification of available plugin update
2. do not install update, do not dismiss the notification
3. let gajim keep running for about 24 hourshttps://dev.gajim.org/gajim/gajim/-/issues/11679Improve account button for multiple accounts2024-02-18T16:59:15ZDaniel BrötzmannImprove account button for multiple accountsCurrently, if multiple accounts are set up in Gajim, they are displayed stacked on top of each other in the account side bar to the bottom left. There is no limit, the account side bar grows indefinitely. To improve this situation, and t...Currently, if multiple accounts are set up in Gajim, they are displayed stacked on top of each other in the account side bar to the bottom left. There is no limit, the account side bar grows indefinitely. To improve this situation, and to add convenient features to it, the following approach seems to be best:
If a single account is enabled:
* account's avatar is shown (including status circle of this account)
* left click opens the account's page
* right click opens a status selector for this account's status
If more than one account is enabled:
* a generic avatar icon is shown (status circle shows global status)
* left click opens a popover listing all accounts; clicking an account opens the account's page
* right click opens a status selector for global status
This way, the global status selector in the app page (top left button) can go away.
Connected to #11677, where notifications (e.g. subscription requests) would be shown.https://dev.gajim.org/gajim/gajim/-/issues/11677Add Inbox/Reminders/Notifications Center2024-02-22T21:50:24ZDaniel BrötzmannAdd Inbox/Reminders/Notifications CenterAdd a place where we can display and store items for:
* message reminders (specific messages we want to reply to, but later)
* messages where we have been mentioned in group chats (see #11209)
* subscription requests / unsubscribed (cur...Add a place where we can display and store items for:
* message reminders (specific messages we want to reply to, but later)
* messages where we have been mentioned in group chats (see #11209)
* subscription requests / unsubscribed (currently on the account page)
* group chat invitations / declines (currently on the account page)
* server messages (e g. upcoming maintenance or errors, see #10846)
* Gajim updates (Windows) / Gajim plugin updates
Clicking on a row should start an applicable action, e.g. for reminders, it should jump to the bookmarked message and offer a checkmark button on the message row to dismiss the reminder.
Every item in this section should be easily dismissible, including bulk actions for similar items (e g. dismiss all subscription requests).
Items should be stored in order to be available after a restart (see #11592 and #11591)https://dev.gajim.org/gajim/gajim/-/issues/11674Add support for XEP-0369 Mediated Information eXchange (MIX)2023-11-06T17:51:45ZArya KAdd support for XEP-0369 Mediated Information eXchange (MIX)https://xmpp.org/extensions/xep-0369.htmlhttps://xmpp.org/extensions/xep-0369.htmlhttps://dev.gajim.org/gajim/gajim/-/issues/11671call_manager: AssertionError about account2023-11-02T21:08:40ZDaniel Brötzmanncall_manager: AssertionError about account# Error Details:
- Sentry event: https://sentry.io/gajim-aec982731/gajim/issues/4596333799
- First seen:
2023-11-02T17:24:18+00:00
- Last seen: 2023-11-02T17:24:18+00:00
- Event: 1
- Users: 0# Error Details:
- Sentry event: https://sentry.io/gajim-aec982731/gajim/issues/4596333799
- First seen:
2023-11-02T17:24:18+00:00
- Last seen: 2023-11-02T17:24:18+00:00
- Event: 1
- Users: 0https://dev.gajim.org/gajim/gajim/-/issues/11659AttributeError: 'NoneType' object has no attribute 'set_dispatch_callback'2023-10-26T18:54:56ZDaniel BrötzmannAttributeError: 'NoneType' object has no attribute 'set_dispatch_callback'# Error Details:
- Sentry event: https://sentry.io/gajim-aec982731/gajim/issues/4574916944
- First seen:
2023-10-25T22:35:30+00:00
- Last seen: 2023-10-25T22:35:30+00:00
- Event: 1
- Users: 0# Error Details:
- Sentry event: https://sentry.io/gajim-aec982731/gajim/issues/4574916944
- First seen:
2023-10-25T22:35:30+00:00
- Last seen: 2023-10-25T22:35:30+00:00
- Event: 1
- Users: 0https://dev.gajim.org/gajim/gajim/-/issues/11658Spaces: A way to build a community around multiple group chats2023-11-14T05:55:17ZPostroutineSpaces: A way to build a community around multiple group chats**Please note by far the quickest way to get a new feature is to file a Merge Request.**
## Description of the new feature
When someone want to build a community on XMPP, this community can have multiple MUC and private discussions.
I...**Please note by far the quickest way to get a new feature is to file a Merge Request.**
## Description of the new feature
When someone want to build a community on XMPP, this community can have multiple MUC and private discussions.
In this case:
* New community members need an easy way to join all community MUC at once, group them and also group private discussions
* Community creators need an easy way to create and manage a new community
* Community moderators need an easy way to moderate a community
### For user
Today, a user can use the workspace feature of Gajim. But she/he need to:
* Manually create a workspace
* Join each MUC, one by one
* Move each new private discussion to the workspace
It would be nice to have a more simple way:
* User click on only one link to join a community
* In Gajim (after confirmation) a new workspace is created
* The new workspace have the name and the icon of the community
* Each MUC of the community is added in this workspace
* Each new private discussion with a member of the community is automatically add to the workspace
As I dislike Discord, their "server" system is a good way to create a community.
### For moderators and community creator
Of course, moderators and community creator will need a way to easily moderate an entire community.
Like:
* Create a new community, its list of MUC, type on access and rules
* Banning a user from a community
* Set a way to manage new users, like only accept them after they accept rules
* Automatically exclude users, from a list of domains
* Make a community only on invitation or public
* Set the same settings for each MUC of the community
* Manage moderators for each MUC of the community
* Etc
It's important to provide one simple UI to manage the entire community at the Workspace level. And it's very important to have good moderation tools to avoid harassment.https://dev.gajim.org/gajim/gajim/-/issues/11649ContactInfo entity time: KeyError: 'Quicksy.L-Xg'2023-10-20T17:04:40ZDaniel BrötzmannContactInfo entity time: KeyError: 'Quicksy.L-Xg'# Error Details:
- Sentry event: https://sentry.io/gajim-aec982731/gajim/issues/4558230358
- First seen:
2023-10-19T10:26:47+00:00
- Last seen: 2023-10-19T10:26:47+00:00
- Event: 1
- Users: 0# Error Details:
- Sentry event: https://sentry.io/gajim-aec982731/gajim/issues/4558230358
- First seen:
2023-10-19T10:26:47+00:00
- Last seen: 2023-10-19T10:26:47+00:00
- Event: 1
- Users: 0https://dev.gajim.org/gajim/gajim/-/issues/11648Error when selecting proxy: ValueError: Unknown proxy: VPN.AC Canada2023-10-19T09:56:21ZDaniel BrötzmannError when selecting proxy: ValueError: Unknown proxy: VPN.AC Canada# Error Details:
- Sentry event: https://sentry.io/gajim-aec982731/gajim/issues/4557394722
- First seen:
2023-10-19T01:03:49+00:00
- Last seen: 2023-10-19T01:03:49+00:00
- Event: 1
- Users: 0# Error Details:
- Sentry event: https://sentry.io/gajim-aec982731/gajim/issues/4557394722
- First seen:
2023-10-19T01:03:49+00:00
- Last seen: 2023-10-19T01:03:49+00:00
- Event: 1
- Users: 0https://dev.gajim.org/gajim/gajim/-/issues/11644AttributeError: 'Roster' object has no attribute '_contacts'2023-10-17T14:40:33ZDaniel BrötzmannAttributeError: 'Roster' object has no attribute '_contacts'# Error Details:
- Sentry event: https://sentry.io/gajim-aec982731/gajim/issues/4489767570
- First seen:
2023-09-19T20:26:45+00:00
- Last seen: 2023-09-19T20:26:45+00:00
- Event: 1
- Users: 0# Error Details:
- Sentry event: https://sentry.io/gajim-aec982731/gajim/issues/4489767570
- First seen:
2023-09-19T20:26:45+00:00
- Last seen: 2023-09-19T20:26:45+00:00
- Event: 1
- Users: 0https://dev.gajim.org/gajim/gajim/-/issues/11641'Local' account: LocalpartByteLimit: Localpart must be between 1 and 1023 bytes2023-11-26T21:44:04ZDaniel Brötzmann'Local' account: LocalpartByteLimit: Localpart must be between 1 and 1023 bytes# Error Details:
- Sentry event: https://sentry.io/gajim-aec982731/gajim/issues/4546159911
- First seen:
2023-10-13T17:47:06+00:00
- Last seen: 2023-10-13T17:47:06+00:00
- Event: 1
- Users: 0# Error Details:
- Sentry event: https://sentry.io/gajim-aec982731/gajim/issues/4546159911
- First seen:
2023-10-13T17:47:06+00:00
- Last seen: 2023-10-13T17:47:06+00:00
- Event: 1
- Users: 0https://dev.gajim.org/gajim/gajim/-/issues/11640URL previews2023-11-15T22:21:35ZNicocoURL previewsIf you share a URL in most modern proprietary IM clients, instead of the URL is shown a preview of it, with a title, a description and usually a thumbnail too.
A possible solution to have that in gajim would be to make gajim fetch the co...If you share a URL in most modern proprietary IM clients, instead of the URL is shown a preview of it, with a title, a description and usually a thumbnail too.
A possible solution to have that in gajim would be to make gajim fetch the content of URLs and generate a preview from it. While that's probably reasonable for known contacts and private groups for most users, this is a privacy issue in public groups.
The elegant way to solve that is sender-generated previews. [Cheogram already does that in a custom way](https://wiki.soprani.ca/CheogramApp/LinkPreviews). There is no XEP yet, but it would be nice if gajim parsed and possibly sent these sender-generated URL previews.https://dev.gajim.org/gajim/gajim/-/issues/11635Duplicate messages received in MUC private messages synced with MAM2023-10-17T14:16:35Zlis sineDuplicate messages received in MUC private messages synced with MAM## Versions
* OS: Void Linux
* Gajim version: 1.8.0
* GTK version: 3.24.38
* Python-nbxmpp version: 4.3.0
## Steps to reproduce the problem
1. Join a public channel with a client other than Gajim
2. Close Gajim
3. Someone sends y...## Versions
* OS: Void Linux
* Gajim version: 1.8.0
* GTK version: 3.24.38
* Python-nbxmpp version: 4.3.0
## Steps to reproduce the problem
1. Join a public channel with a client other than Gajim
2. Close Gajim
3. Someone sends you a private message
4. Open Gajim
5. Open the corresponding PM conversation
## Expected behavior
I see the PM history as it is.
## Actual behavior
Each private message received from the person I spoke with, is displayed twice or more.
My own messages are displayed only once.
Here's the what happens on the XML console:
```xml
<!-- Incoming Thu 05 Oct 2023 04:18:04 PM CET (lissine@jabbers.one) -->
<message xmlns="jabber:client" to="lissine@jabbers.one/gajim.XB8U44PB">
<result queryid="1be2a51c-b44e-4b33-9bc8-d1277314a62e" id="2023-10-05-f08621e678e41465" xmlns="urn:xmpp:mam:2">
<forwarded xmlns="urn:xmpp:forward:0">
<delay stamp="2023-10-05T15:17:40Z" xmlns="urn:xmpp:delay" />
<message to="lissine@jabbers.one/Conversations Self-built.0fsZ" id="b0cf05cf-79a9-46a5-a893-e5f586d5a028" xmlns="jabber:client" type="chat" from="slidge@conference.nicoco.fr/lissine" xml:lang="en">
<body>Did you get my message?</body>
<request xmlns="urn:xmpp:receipts" />
<origin-id xmlns="urn:xmpp:sid:0" id="b0cf05cf-79a9-46a5-a893-e5f586d5a028" />
<x xmlns="http://jabber.org/protocol/muc#user" />
<occupant-id xmlns="urn:xmpp:occupant-id:0" id="2bdSV81eaMmWYmRXHUKRX1ZTLZooKxraYMGAgWzlqbw=" />
</message>
</forwarded>
</result>
</message>
<!-- Incoming Thu 05 Oct 2023 04:18:04 PM CET (lissine@jabbers.one) -->
<message xmlns="jabber:client" to="lissine@jabbers.one/gajim.XB8U44PB">
<result queryid="1be2a51c-b44e-4b33-9bc8-d1277314a62e" id="2023-10-05-b8c5715d6c0cce82" xmlns="urn:xmpp:mam:2">
<forwarded xmlns="urn:xmpp:forward:0">
<delay stamp="2023-10-05T15:17:40Z" xmlns="urn:xmpp:delay" />
<message to="slidge@conference.nicoco.fr/lissine" xmlns="jabber:client" type="chat" from="lissine@jabbers.one/Conversations Self-built.0fsZ" xml:lang="en">
<received xmlns="urn:xmpp:receipts" id="b0cf05cf-79a9-46a5-a893-e5f586d5a028" />
<store xmlns="urn:xmpp:hints" />
</message>
</forwarded>
</result>
</message>
```
As far as I can tell, the message was received only once. So this is probably a problem in Gajim's processing.https://dev.gajim.org/gajim/gajim/-/issues/11633MUC PM received via MAM dont show up in conversation list2023-10-05T20:18:20Zlis sineMUC PM received via MAM dont show up in conversation list## Versions
- OS: Void Linux
- Gajim version: 1.8.0
- GTK version: 3.24.38
- Python-nbxmpp version: 4.3.0
## Steps to reproduce the problem
1. Join a public channel with another client (using the same account as Gajim)
2....## Versions
- OS: Void Linux
- Gajim version: 1.8.0
- GTK version: 3.24.38
- Python-nbxmpp version: 4.3.0
## Steps to reproduce the problem
1. Join a public channel with another client (using the same account as Gajim)
2. Close Gajim
3. Someone sends you a private message in the channel
4. Open Gajim
## Expected behavior
The PM conversation appears in the list of chats, with the private messages you missed.
## Actual behavior
If the PM conversation wasn't already in your list of chats, it doesn't show up there.
You need to find out by yourself that you received a PM, and go to the related channel and
and click on the relevant participant
## More info
Tested with channels hosted on ejabberd as well as prosody.https://dev.gajim.org/gajim/gajim/-/issues/11632Message row merging interacts badly with receipts2024-03-28T14:01:34ZNicocoMessage row merging interacts badly with receiptsWhen activating "delivery receipts" in the settings, we get a check mark next to the our name and the message timestamp whenever a device of the recipient sends a XEP-0184 delivery receipt. But if we send two or more messages in a row, t...When activating "delivery receipts" in the settings, we get a check mark next to the our name and the message timestamp whenever a device of the recipient sends a XEP-0184 delivery receipt. But if we send two or more messages in a row, this "check mark" only concerns the first message of the merged messages. I see 3 possible fixes for this:
- "Un-merge" the rows until all have got a receipt. I think this might look weird
- Do not display/remove the checkmark until all merged messages have got their receipts.
- (my favorite) move the checkmark to the right, where the "..." menu appears. This way each individual message can get its checkmark.
What do you think is the best option?https://dev.gajim.org/gajim/gajim/-/issues/11630Improve support for Gateways2023-10-29T15:23:32ZPhilipp Höristphilipp@hoerist.comImprove support for GatewaysIssue to gather ideas how to better support gateways
- [x] Refactor code so all gateway contacts have a gateway icon in the avatar
- [ ] Introduce Gateway Dialog where user can register and check options of gateways
- [ ] When an adhoc ...Issue to gather ideas how to better support gateways
- [x] Refactor code so all gateway contacts have a gateway icon in the avatar
- [ ] Introduce Gateway Dialog where user can register and check options of gateways
- [ ] When an adhoc command is named 'jabber:iq:register', redirect there for the 'register' button
- [ ] Implement 'jabber:iq:gateway' to easily add contact when their legacy user ID
- [ ] Expose 'jabber search' (XEP-0055) on available (?) components in the start chathttps://dev.gajim.org/gajim/gajim/-/issues/11628Do not use local part of JID when private group has no name2023-12-11T10:48:49ZNicocoDo not use local part of JID when private group has no nameConversations (+forks, and probably some other clients) create "private groups" with no proper name, subject, or description, and a gibberish JID local part. Then in their UIs, for the group name they use the list of (other) participants...Conversations (+forks, and probably some other clients) create "private groups" with no proper name, subject, or description, and a gibberish JID local part. Then in their UIs, for the group name they use the list of (other) participants (Dino does that too).
But for the same groups, gajim uses the MUC JID local part, which is ugly and inconsistent.
Would it be OK to align gajim's behaviour with other clients? I think the MUC name in the UI should be, by order of priority:
1. Bookmark name (possibly customized by the user)
2. MUC disco name
3. **If private group, alphabetical list of participants' nicknames** (or maybe if participants are contacts, the names we use for them in our roster? or maybe, their PEP nickname?)
4. Then, only if none of that is available, use the JID local part
Would a MR that does that be accepted?