Skip to content

Conversation

@Schmiddiii
Copy link
Contributor

@Schmiddiii Schmiddiii commented Dec 29, 2025

This attempts to fix all things required to allow using presage as a primary device.

This fixes #328.

TODO:

  • Migration for deleting the device_id column for identites.
  • Answer some more sync requests (does not seem to be strictly needed, but are implemented in Whisperfish):
    • Keys
    • Blocked
    • Configuration: We don't have any way to configure that yet.
    • Contacts (real implementation, no dummy).
  • Figure out why listing devices does not work.

@Schmiddiii Schmiddiii marked this pull request as draft December 29, 2025 16:34
@Schmiddiii
Copy link
Contributor Author

This PR now pretty much depends on #343 as presage is not yet up-to-date with the libsignal-service-rs main branch, and as this PR now depends upon whisperfish/libsignal-service-rs#383 , which still needs to be updated to support the main branch in order to be merged.

@Schmiddiii Schmiddiii force-pushed the primary-device branch 2 times, most recently from 5fbfe37 to 4e0b16c Compare January 2, 2026 12:15
@Schmiddiii
Copy link
Contributor Author

Temporarily depending on a libsignal-service-rs branch that contains both whisperfish/libsignal-service-rs#385 and whisperfish/libsignal-service-rs#383.

@Schmiddiii
Copy link
Contributor Author

Note: The migration present here is actually slightly wrong, and can fail in the case that there are different records with the same address and record but different device ID. See this downstream bug. Sadly, I already shipped the migration to Flare users (I had a beta release with this primary device mode, but then came the hotfix release a few days ago). So I'm not sure if we can fix the migration properly. Or do you have any ideas?

@boxdot
Copy link
Collaborator

boxdot commented Jan 18, 2026

Note: The migration present here is actually slightly wrong, and can fail in the case that there are different records with the same address and record but different device ID. See this downstream bug. Sadly, I already shipped the migration to Flare users (I had a beta release with this primary device mode, but then came the hotfix release a few days ago). So I'm not sure if we can fix the migration properly. Or do you have any ideas?

There is always a way to add another migration, to iterate over all migrations in Rust and skip the wrong migration. If it was already applied, then ok. But next migration must be compatible with it though. If it was not applied, then the next migration can be just applied.

@Schmiddiii
Copy link
Contributor Author

Fixed the broken migration by reverting it in the code and replacing it with a working migration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Signal desktop spinning endlessly trying to sync contacts and groups with linked to presage

2 participants