signal-cli/CHANGELOG.md
2021-12-05 16:12:33 +01:00

16 KiB

Changelog

[Unreleased]

Attention: Now requires Java 17 and libsignal-client version 0.10

Added

  • The daemon command now provides a JSON-RPC based socket interface (--socket and --tcp)
  • New daemon command flag --receive-mode to configure when messages are received
  • New daemon command flag --no-receive-stdout to prevent outputting messages on stdout
  • New command listAccounts that lists all registered local accounts
  • New command removeContact
  • Extend send command to allow sending mentions (--mention) and quotes (--quote-timestamp, --quote-author, --quote-message, --quote-mention)
  • New dbus method sendViewedReceipt (Thanks @John Freed)
  • New dbus methods unregister, deleteAccount
  • New dbus events MessageReceivedV2, ReceiptReceivedV2, SyncMessageReceivedV2 that provide an extras parameter with additional message info as a key/value map
  • New dbus object Configuration to read and update configuration values (Thanks @John Freed)
  • Payment info in json receive output (Thanks @technillogue)
  • -c alias for --config (Thanks @technillogue)

Changed

  • libzkgroup dependency is no longer required
  • Renamed -u and --username flags to -a and --account to prevent confusion with upcoming Signal usernames. The old flags are also still supported for now.
  • Respect phone number sharing mode and unlisted state set by main device
  • Adapt register command to reactivate account if possible. By default the unregister command just deactivates the account, in which case it can be reactivated without sms verification if the local data is still available. If the account was deleted (with --delete-account) it cannot be reactivated.
  • dbus-java now uses Java 16 native unix sockets, which should provide better cross-platform compatibility

Fixed

  • Registering an existing unregistered account now works reliably in daemon mode
  • Fixed an issue with loading some old config files without UUID
  • More reliable send behavior if some recipients are unregistered

[0.9.2] - 2021-10-24

Fixed

  • dbus listNumbers method works again

Changed

  • Improved provisioning error handling if the last steps fail
  • Adapt behavior of receive command as dbus client to match normal mode
  • Update captcha url for proof required handling

[0.9.1] - 2021-10-16

Attention: Now requires native libzkgroup version 0.8

Added

  • New command updateConfiguration which allows setting configurations for linked devices
  • Improved dbus daemon for group handling, groups are now exported as separate dbus objects
  • Linked devices can be managed via dbus
  • New dbus methods sendTyping and sendReadReceipt (Thanks @JtheSaw)
  • New dbus methods submitRateLimitChallenge, isRegistered, listDevices, setExpirationTimer, sendContacts, sendSyncRequest, uploadStickerPack, setPin and removePin (Thanks @John Freed)
  • New dbus method getSelfNumber

Fixed

  • Do not send message resend request to own device
  • Allow message from pending member to accept group invitations
  • Fix issue which could cause signal-cli to repeatedly send the same delivery receipts
  • Reconnect websocket after connection loss

Changed

  • Use new provisioning URL sgnl://linkdevice instead of tsdevice:/
  • The gradle command to build a graalvm native image is now ./gradlew nativeCompile

[0.9.0] - 2021-09-12

Attention: Now requires native libsignal-client version 0.9

Breaking changes

  • Removed deprecated --json parameter, use global parameter --output=json instead
  • Json output format of listGroups command changed: Members are now arrays of {"number":"...","uuid":"..."} objects instead of arrays of strings.
  • Removed deprecated fallback data paths, only $XDG_DATA_HOME/signal-cli is used now For those still using the old paths ($HOME/.config/signal, $HOME/.config/textsecure) you need to move those to the new location.

Added

  • New global parameter --trust-new-identities=always to allow trusting any new identity key without verification
  • New parameter --device-name for updateAccount command to change the device name (also works for the main device)
  • New SignalControl DBus interface, to register/verify/link new accounts
  • New jsonRpc command that provides a JSON-RPC based API on stdout/stdin
  • Support for announcement groups
  • New parameter --set-permission-send-messages for updateGroup to create an announcement group
  • New sendReceipt command to send read and viewed receipts
  • Support for receiving sender key messages, mobile apps can now send messages more efficiently with server-side fan-out to groups with signal-cli members.
  • Support for reading data from remote Signal storage. Now v2 groups will be shown after linking a new device.
  • New submitRateLimitChallenge command that can be used to lift some rate-limits by solving a captcha

Fixed

  • Store identity key correctly when sending a message after a recipient has changed keys

[0.8.5] - 2021-08-07

Added

  • Source name is included in JSON receive output (Thanks @technillogue)

Fixed

  • Allow updateContact command to only set expiration timer without requiring a name parameter

[0.8.4.1] - 2021-06-20

Fixed

  • Incorrect error handling in register command

[0.8.4] - 2021-06-13

Attention: Now requires native libsignal-client version 0.8.1

Added

  • New parameters for updateGroup command for group v2 features: --description, --remove-member, --admin, --remove-admin, --reset-link, --link, --set-permission-add-member, --set-permission-edit-details, --expiration
  • New --admin parameter for quitGroup to set an admin before leaving the group
  • New --delete parameter for quitGroup, to delete the local group data
  • New 'sendTyping' command to send typing indicators

Fixed

  • Fixed issue that prevented registration with invalid locales
  • Prevent last admin of a group from leaving the group
  • All commands now show a short description with --help
  • Now a hint is shown if messages aren't received regularly
  • Group edit conflicts are now resolved automatically

[0.8.3] - 2021-05-13

Fixed

  • Upgrading from account files with older profiles
  • Building native image with graalvm

[0.8.2] - 2021-05-11

Added

  • A manual page for the DBus interface (Thanks @bublath, @exquo)
  • Remote message delete command (Thanks @adaptivegarage)
  • sendSyncRequest command to request complete contact/group list from master device
  • New --delete-account argument for unregister (Dangerous)
  • New --family-name argument for updateProfile

Fixed

  • Sending reaction to group (Thanks @adaptivegarage)
  • Displaying of address for messages from untrusted identities
  • Handling of recipient number or uuid changes (e.g. after account deletions)
  • Only respond to sync requests from master device
  • Display of quit group messages

Changed

  • Unlimited strength crypto is now enabled automatically for JREs that require it (Thanks @i-infra)
  • Only one identity key is stored per recipient and updated from profile (to match app behavior)
  • updateContact, block and unblock are now disabled for linked devices
  • After registering an empty profile is created so new groups can be joined immediately
  • If message decryption fails due to a broken session, the session is automatically renewed
  • Rework account storage for better reliability
  • Improved device linking flow
    • Allow relinking existing account
    • Encrypt/Decrypt device names

[0.8.1] - 2021-03-02

Added

  • New dbus commands: updateProfile, listNumbers, getContactNumber, quitGroup, isContactBlocked, isGroupBlocked, isMember, joinGroup (Thanks @bublath)
  • Additional output for json format: shared contacts (Thanks @Atomic-Bean)
  • Improved plain text output to be more consistent and synced messages are now indented

Fixed

  • Issue with broken sessions with linked devices

Changed

  • Behavior of trust command improved, when trusting a new identity key all other known keys for the same number are removed.

[0.8.0] - 2021-02-14

Attention: For all signal protocol functionality an additional native library is now required: libsignal-client. See https://github.com/AsamK/signal-cli/wiki/Provide-native-lib-for-libsignal for more information.

Added

  • Experimental support for building a GraalVM native image
  • Support for setting profile about text and emoji

Fixed

  • Incorrect error message when removing a non-existent profile avatar

[0.7.4] - 2021-01-19

Changed

  • Notify linked devices after profile has been updated

Fixed

  • After registering a new account, receiving messages didn't work You may have to register and verify again to fix the issue.
  • Creating v1 groups works again

[0.7.3] - 2021-01-17

Added

  • getUserStatus command to check if a user is registered on Signal (Thanks @Atomic-Bean)
  • Global --verbose flag to increase log level
  • Global --output=json flag, currently supported by receive, daemon, getUserStatus, listGroups
  • --note-to-self flag for send command to send a note to linked devices
  • More info for received messages in json output: stickers, viewOnce, typing, remoteDelete

Changed

  • signal-cli can now be used without the username -u flag For daemon command all local users will be exposed as dbus objects. If only one local user exists, all other commands will use that user, otherwise a user has to be specified.
  • Messages sent to self number will be sent as normal Signal messages again, to send a sync message, use the new --note-to-self flag
  • Ignore messages with group context sent by non group member
  • Profile key is sent along with all direct messages
  • In json output unnecessary fields that are null are now omitted

Fixed

  • Disable registration lock before removing the PIN
  • Fix PIN hash version to match the official clients. If you had previously set a PIN you need to set it again to be able to unlock the registration lock later.
  • Issue with saving account file after linking

[0.7.2] - 2020-12-31

Added

  • Implement new registration lock PIN with setPin and removePin (with KBS)
  • Include quotes, mentions and reactions in json output (Thanks @Atomic-Bean)

Fixed

  • Retrieve avatars for v2 groups
  • Download attachment thumbnail for quoted attachments

[0.7.1] - 2020-12-21

Added

  • Accept group invitation with updateGroup -g GROUP_ID
  • Decline group invitation with quitGroup -g GROUP_ID
  • Join group via invitation link joinGroup --uri https://signal.group/#...

Fixed

  • Include group ids for v2 groups in json output

[0.7.0] - 2020-12-15

Added

Support for groups of new type/v2

  • Sending and receiving
  • Updating name, avatar and adding members with updateGroup
  • Quit group and decline invitation with quitGroup
  • In the listGroups output v2 groups can be recognized by the longer groupId

Attention: For the new group support to work the native libzkgroup library is required. See https://github.com/AsamK/signal-cli/wiki/Provide-native-lib-for-libsignal for more information.

Fixed

  • Rare NullPointerException when receiving messages

[0.6.12] - 2020-11-22

Added

  • Show additional message content (view once, remote delete, mention, …) for received messages
  • --captcha parameter for register command, required for some IP ranges

Changed

  • Profile keys are now stored separately from contact list
  • Receipts from normal and unidentified messages now have the same format in json output

Fixed

  • Issue where some messages were sent with an old counter index

[0.6.11] - 2020-10-14

  • Fix issue with receiving message reactions

[0.6.10] - 2020-09-11

  • Fix issue when retrieving profiles
  • Workaround issue with libzkgroup on platforms other than linux x86_64

[0.6.9] - 2020-09-10

  • Minor bug fixes and improvements
  • dbus functionality now works on FreeBSD
  • signal-cli now requires Java 11

Warning: this version only works on Linux x86_64, will be fixed in 0.6.10

[0.6.8] - 2020-05-22

  • Switch to hypfvieh dbus-java, which doesn't require a native library anymore (drops requirement of libmatthew-unix-java)
  • Bugfixes for messages with uuids
  • Add --expiration parameter to updateContact command to set expiration timer

[0.6.7] - 2020-04-03

  • Send command now returns the timestamp of the sent message
  • DBus daemon: Publish received sync message to SyncMessageReceived signal
  • Fix issue with resolving e164/uuid addresses for sessions
  • Fix pack key length for sticker upload

[0.6.6] - 2020-03-29

  • Added listContacts command
  • Added block/unblock commands to block contacts and groups
  • Added uploadStickerPack command to upload sticker packs (see man page for more details)
  • Full support for sending and receiving unidentified sender messages
  • Support for message reactions with emojis
  • Internal: support recipients with uuids

[0.6.5] - 2019-11-11

Supports receiving messages sent with unidentified sender

[0.6.4] - 2019-11-02

  • Fix rounding error for attachment ids in json output
  • Add additional info to json output
  • Add commands to update profile name and avatar
  • Add command to update contact names

[0.6.3] - 2019-09-05

Bug fixes and small improvements

[0.6.2] - 2018-12-16

  • Fixes sending of group messages

[0.6.1] - 2018-12-09

  • Added getGroupIds dbus command
  • Use "NativePRNG" pseudo random number generator, if available
  • Switch default data path: $XDG_DATA_HOME/signal-cli ($HOME/.local/share/signal-cli) Existing data paths will continue to work (used as fallback)

[0.6.0] - 2018-05-03

  • Simple json output
  • dbus signal for receiving messages
  • Registration lock PIN
  • Output quoted message

[0.5.6] - 2017-06-16

  • new listGroups command
  • Support for attachments with file names
  • Support for complete contacts sync
  • Support for contact verification sync
  • DBus interface:
  • Get/Set group info
  • Get/Set contact info

[0.5.5] - 2017-02-18

  • fix receiving messages on linked devices
  • add unregister command

[0.5.4] - 2017-02-17

  • Fix linking of new devices

[0.5.3] - 2017-01-29

  • New commandline paramter for receive: --ignore-attachments
  • Updated dependencies

[0.5.2] - 2016-12-16

  • Add support for group info requests
  • Improve closing of file streams

[0.5.1] - 2016-11-18

[0.5.0] - 2016-08-29

  • Check if a number is registered on Signal, before adding it to a group
  • Prevent sending to groups that the user has quit
  • Commands to trust new identity keys (see README)
  • Messages from untrusted identities are stored on disk and decrypted when the user trusts the identity
  • Timestamps shown in ISO 8601 format

[0.4.1] - 2016-07-18

  • Fix issue with creating groups
  • Lock config file to prevent parallel access by multiple instances of signal-cli
  • Improve return codes, always return non-zero code, when sending failed

[0.4.0] - 2016-06-19

  • Linking to Signal-Desktop and Signal-Android is now possible (Provisioning)
  • Added a contact store, mainly for syncing contacts with linked devices (editing not yet possible via cli)
  • Avatars for groups and contacts are now stored (new folder "avatars" in the config path)

[0.3.1] - 2016-04-03

  • Fix running with Oracle JRE 8
  • Fix registering
  • Fix unicode warning when compiling with non utf8 locale

[0.3.0] - 2016-04-02

  • Renamed textsecure-cli to signal-cli, following the rename of libtextsecure-java to libsignal-service-java
  • The experimental dbus interface was also renamed to org.asamk.Signal
  • Upload new prekeys to the server, when there are less than 20 left, prekeys are needed to create new sessions

[0.2.1] - 2016-02-10

  • Improve dbus service
  • New command line argument --config to specify config directory

[0.2.0] - 2015-12-30

Added an experimental dbus interface, for sending and receiving messages (The interface is unstable and may change with future releases).

This release works with Java 7 and 8.

[0.1.0] - 2015-11-28

Add support for creating/updating groups and sending to them

[0.0.5] - 2015-11-21

  • Add receive timeout commandline parameter
  • Show message group info

[0.0.4] - 2015-09-22

[0.0.3] - 2015-08-07

[0.0.2] - 2015-07-08

First release