Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

nickGivenName and nickFamilyName not retrieved for non-contact recipient #1664

Closed
brad2014 opened this issue Jan 3, 2025 · 4 comments
Closed
Labels
Milestone

Comments

@brad2014
Copy link

brad2014 commented Jan 3, 2025

The signal-cli listContacts subcommand does not present the nickGivenName and nickFamilyName as set by Signal-Android for non-contact recipients.

Versions

signal-android: 7.28.4
signal-cli: 0.13.11

To reproduce:

  1. On android, identify a signal chat recipient that is not in the contact list (i.e. they did not share their phone number in their profile). Under recipient->menu->Chat Settings->Nickname edit the values of First Name, Last Name, and Note.

  2. On a linux host that has a linked signal-cli "device", run:

% signal-cli --output=json -u [REDACTED] receive | jq > received.json
% signal-cli --output=json -u [REDACTED] listContacts -a | jq > contacts.json
  1. Extract the recipient record from contacts.json.

Actual Behavior

  1. received.json does not have a record corresponding to the update message (apparently it is not emitted).

  2. The recipient record in contacts.json does reflect the updated note field, but the nickGivenName and nickFamilyName remain set to the profile.givenName and profile.familyName. The edits to these fields made on the Android are not received and saved.

Expected Behavior

  1. received.json should contain an output record corresponding to the contact update.

  2. contacts.json should contain the recipient record with the values for nickGivenName, nickFamilyName, and Note present as they were set on the Android.

@AsamK AsamK added the bug label Jan 14, 2025
@AsamK
Copy link
Owner

AsamK commented Jan 14, 2025

Thanks for reporting.

  1. There should be a message with "syncMessage":{} in the received.json, that indicates that a STORAGE_MANIFEST fetch request has been received, which triggered a storage sync.
  2. That's a bug.

@AsamK AsamK closed this as completed in 7a25ae5 Jan 14, 2025
@AsamK AsamK added this to the next-version milestone Jan 14, 2025
@brad2014
Copy link
Author

Thank you. Regarding item 1, perhaps I misunderstand, as the protocol for sharing and syncing contact profiles is confusing to me. Are contact profile updates not included in the output of the "receive" command? The bug I am reporting is that they are not but they should be. As part of or following the syncMessage, I expected to see within received.json something that shows the content of the updated profile in received.json:

... { "profile": { "note": "Here is the updated note for this profile!" }} ...

If the "triggered storage sync" you mention occurs within the execution of the signal-cli receive command, then perhaps rather than the bug, I am making a Feature Request that a signal-cli receive option flag (e.g. --include-profile-updates) be added that also includes the incoming messages that alter the profile content of stored contacts, for example if one wanted to retain an audit trail of contact profile updates.

@AsamK
Copy link
Owner

AsamK commented Jan 14, 2025

That's a feature request. The contact and profile updates are not part of the received messages. They're instead retrieved in encrypted form from the Signal servers.

That would be part of some new notifications feature, that notifies about contact/profile changes.
And also identity and group updates, like the somewhat related #826 and #1219.

@brad2014
Copy link
Author

Thanks I'll file separately (just to note it), and follow those issues you mention also.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants