Signal-desktop: Don't create empty conversations for unused contacts

Created on 12 Sep 2020  路  11Comments  路  Source: signalapp/Signal-Desktop

  • [X] I have searched open and closed issues for duplicates

Bug Description

After installing Signal Desktop and linking the device, an empty conversation is created for all of my contacts. In order to reasonably de-clutter the desktop interface I have to manually click the three dots > "Delete messages" > "Ok", for every single contact. This is an incredibly tedious process so it's not clear why this is the default behavior.

Steps to Reproduce

  1. Add a new linked device
  2. Wait for it to finish syncing contacts & groups

Actual Result:

An empty conversation is created for all of my contacts, even if I have never messaged them before. The only way to hide these contacts is by manually deleting each individual empty conversation.

Expected Result:

Either:

  • No conversations will be shown (since Signal does not transfer conversation history) OR
  • Only those contacts with whom I have an active conversation will be shown

Screenshots

N/A

Platform Info

Signal Version: v1.36.1

Operating System: Windows 10

Linked Device Version: Android 10

Link to Debug Log

debug-log.txt

Feature Request

Most helpful comment

I came here to say this. Could I suggest the following as a short term fix

Current behaviour

  1. Right clicking on a contact name does nothing.

Expected/desired behaviour

  1. Right clicking on a contact name should bring up the same options panel as clicking the three dots.

This would reduce the number of clicks required to remove empty conversations by one third.

All 11 comments

It's done with those empty conversations today because users aren't clear on their ability to use the top-left search bar to find and start a conversation. We do plan to come up with a better introductory interface.

Is there another issue where that plan is being tracked? I would think adding a FAB to start a new conversation like how it's done on mobile would be sufficient.

We don't track work like that publicly.

Damn ok. It has been like this for at least a year so some general indication of when this UX will be fixed would be appreciated.

As a workaround, could someone familiar with the data model share a snippet enter-able via the developer console to delete all conversations? From my brief poking around it seemed like iteratively calling destroyMessages() on the models in getConversations() would accomplish this, but it doesn't seem to have an effect.

You want to set active_at to null for all conversations. Don't forget to save back to the database! :0)

Don't forget to save back to the database! :0)

How does one do this part? I tried performing .set('active_at', null) on a conversation model, and my guesses (based on console autocomplete) were to then run .save() or updateAndMerge() on that model but neither worked.

I'm not trying to dig deep into this codebase, can you just post a full snippet of what you're describing?

window.Signal.Data.updateConversation() is the function you're looking for to save to the database. Good luck!

That didn't work either. I tried deleting a conversation as follows:

conversations = window.getConversations()
c = conversations.models[3]  // fourth conversation
c.set('active_at', null)
window.Signal.Data.updateConversation(c.id)

but nothing changed.

I'm sorry to keep pestering you like this but it would be helpful if you shared a full snippet (like the snippet I shared here) that can be pasted straight into the console.

Look, we're not really in the business of giving full snippets for the console. We really don't want to encourage that behavior, of copying code from anywhere then pasting it and running it there. I can't help you any further.

I came here to say this. Could I suggest the following as a short term fix

Current behaviour

  1. Right clicking on a contact name does nothing.

Expected/desired behaviour

  1. Right clicking on a contact name should bring up the same options panel as clicking the three dots.

This would reduce the number of clicks required to remove empty conversations by one third.

Was this page helpful?
0 / 5 - 0 ratings