core icon indicating copy to clipboard operation
core copied to clipboard

Accepting group contact request adds group members to contact list

Open link2xt opened this issue 1 month ago • 7 comments

We have multiple reports over the years that contact list is full of contacts that users don't know and don't want to be there. So far nobody filed any concrete issue about it, so nothing was done.

To do something about it, I am opening this issue with one simple case where unwanted contact is added to the contact list:

  1. Create three profiles: Alice, Bob, Charlie
  2. Add Bob and Charlie contacts to Alice. For this I used vCards: sent vCards for both Bob and Charlie to their "saved messages", saved vCards to disk and then loaded into Alice's profile and clicked on the vCards sent to Alice's saved messages. Could have used QR codes, but vCards is what we use in tests.
  3. At this point Alice has Bob and Charlie in the contact list, this is ok as they were imported from vCards.
  4. Alice creates a group with Bob and Charlie and sends "Hello!" there.
  5. Bob receives contact request message from Alice about this new group. At this point Bob has no contacts in the contact list.
  6. Bob accepts the contact request. Now Bob has both Alice and Charlie in the contact list.

This is on purpose a very narrowly scoped issue. We have other problems (like if the group arrives already accepted because Alice is known, then the contact list does not get Charlie added immediately but Charlie is added as soon as Bob sends anything to the group). But before opening more issues, we need to fix this one with a test and close this issue. Then repeat finding a scenario that results in unwanted contact in the contact list, opening an issue and fixing it with a test. Fixing contact list for existing users is also much less important than not filling the contact list of new users with unwanted contacts.

I also have not looked into why this happens myself, only clicked around in the UI.

link2xt avatar Dec 10 '25 13:12 link2xt

an even worse and simpler case:

  1. User A has a channel
  2. User A share invite link to channel in social media or some private space in other platform
  3. User B click links and join channel
  4. User B now has A in the contact list and without any chat in common since the channel doesn't show members, user B is bothered by that contact in the contact list and ask "who are you and why I have you in my contacts?"

adbenitez avatar Dec 10 '25 15:12 adbenitez

related PR, trying to tweak origin: https://github.com/chatmail/core/pull/2411 - it was closed that time as iOS was using the filter differently. this has changed meanwhile and is no longer a blocker, but beginning of this year, there was few interest in reviving

iirc, idea we could agree on was to not show contacts with low origin, unless incremental search is started

r10s avatar Dec 10 '25 16:12 r10s

an even worse and simpler case:

This is a different problem, file an issue for this. You have already wrote about this in some chat and told it to Hocuri, now it might or might not be on some personal Hocuri's TODO list. This is exactly the problem in the first sentence of this issue, because nobody files issues nothing whatsoever is done about this for years.

link2xt avatar Dec 10 '25 16:12 link2xt

iirc, idea we could agree on was to not show contacts with low origin, unless incremental search is started

Last time we looked at Telegram its search has separate areas for contacts from you contact list (and this is not just everyone you met in any group, but a much shorter list) and a list for global search from public directory. It's questionable whether it is ok to have a different list when "+" is clicked and when you search. I'm not sure about having a contact who does not appear in "+" but appears when you start searching, especially if it is someone with a name similar to the contact you want to see.

Before even thinking about the search, there are more obvious problems revealed by just creating 3 accounts, clicking around a bit and looking into what happens behind the "+" button.

link2xt avatar Dec 10 '25 17:12 link2xt

another idea (maybe too much out of the box thinking): make a contact list from DM chats, if you don't have a DM chat with the contact, then it does not appear in that contacts list. (that would also remove the need for showing contacts in the forward dialog, because all contacts would have chats, see also https://github.com/deltachat/deltachat-desktop/pull/5289)

though there would be questions about how you would find contacts to add to your groups if you haven't manually started a direct chat with them in the past.

Simon-Laux avatar Dec 10 '25 18:12 Simon-Laux

Another option is to not hide contacts coming from accepted groups or ones for which there are no 1:1 chats, but to sort them by Origin first and by last_seen for the same Origin. But then better to have some separator between different origins. Hiding contacts isn't actually helpful, personally i'd like more "useful" contacts just to be shown first.

iequidoo avatar Dec 11 '25 01:12 iequidoo

There could even be seperators between the origins, so people are less confused where the contacts come from.

We still seem to have 3 potential special contact ids that are unused and when those are not enough, we could do sth like daymarkers and just use one extra special id (taking the origin variant from the following contact).

Simon-Laux avatar Dec 11 '25 10:12 Simon-Laux

I was expecting it to be a straightforward fix and not a brainstorm on other issues with contact list and ideas about adding separators, new APIs, sorting contacts etc.

But now that @r10s has put 👍 on https://github.com/chatmail/core/issues/7592#issuecomment-3639660556 and this is what is implemented in https://github.com/chatmail/core/pull/7616 will just wait for @r10s to say something.

I'm fine with any option:

  1. Closing this issue as not planned.
  2. Closing this issue as fixed with a PR that implements a fix for this issue.
  3. Closing this issue as not planned, creating another issue with a different idea whatever is agreed on, then closing it with the PR that fixes that issue.

link2xt avatar Dec 16 '25 18:12 link2xt

See https://github.com/chatmail/core/pull/7616#issuecomment-3662136718

There is no agreement that it is even an issue that all contacts from the group are added to your contact list when it is accepted.

link2xt avatar Dec 16 '25 20:12 link2xt

Created a forum post for further discussion with some test results from other messengers and references to previously closed PRs and issues: https://support.delta.chat/t/separate-collected-contacts-from-the-contact-list/4485

link2xt avatar Dec 17 '25 18:12 link2xt