]> nmode's Git Repositories - signal-cli/blob - CHANGELOG.md
Update libsignal-service-java
[signal-cli] / CHANGELOG.md
1 # Changelog
2
3 ## [Unreleased]
4 **Attention**: Now requires Java 17 and libsignal-client version 0.11
5
6 ### Added
7 - The daemon command now provides a JSON-RPC based socket interface (`--socket` and `--tcp`)
8 - New daemon command flag `--receive-mode` to configure when messages are received
9 - New daemon command flag `--no-receive-stdout` to prevent outputting messages on stdout
10 - New command `listAccounts` that lists all registered local accounts
11 - New command `removeContact`
12 - Extend `send` command to allow sending mentions (`--mention`) and quotes (`--quote-timestamp`, `--quote-author`, `--quote-message`, `--quote-mention`)
13 - New dbus method sendViewedReceipt (Thanks @John Freed)
14 - New dbus methods unregister, deleteAccount
15 - New dbus events MessageReceivedV2, ReceiptReceivedV2, SyncMessageReceivedV2 that provide an extras parameter with additional message info as a key/value map
16 - New dbus object Configuration to read and update configuration values (Thanks @John Freed)
17 - Payment info in json receive output (Thanks @technillogue)
18 - `-c` alias for `--config` (Thanks @technillogue)
19
20 ### Changed
21 - libzkgroup dependency is no longer required
22 - 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.
23 - Respect phone number sharing mode and unlisted state set by main device
24 - Adapt register command to reactivate account if possible.
25 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.
26 If the account was deleted (with --delete-account) it cannot be reactivated.
27 - dbus-java now uses Java 16 native unix sockets, which should provide better cross-platform compatibility
28
29 ### Fixed
30 - Registering an existing unregistered account now works reliably in daemon mode
31 - Fixed an issue with loading some old config files without UUID
32 - More reliable send behavior if some recipients are unregistered
33
34 ## [0.9.2] - 2021-10-24
35 ### Fixed
36 - dbus `listNumbers` method works again
37
38 ### Changed
39 - Improved provisioning error handling if the last steps fail
40 - Adapt behavior of receive command as dbus client to match normal mode
41 - Update captcha url for proof required handling
42
43 ## [0.9.1] - 2021-10-16
44 **Attention**: Now requires native libzkgroup version 0.8
45
46 ### Added
47 - New command `updateConfiguration` which allows setting configurations for linked devices
48 - Improved dbus daemon for group handling, groups are now exported as separate dbus objects
49 - Linked devices can be managed via dbus
50 - New dbus methods sendTyping and sendReadReceipt (Thanks @JtheSaw)
51 - New dbus methods submitRateLimitChallenge, isRegistered, listDevices, setExpirationTimer, sendContacts, sendSyncRequest, uploadStickerPack, setPin and removePin (Thanks @John Freed)
52 - New dbus method getSelfNumber
53
54 ### Fixed
55 - Do not send message resend request to own device
56 - Allow message from pending member to accept group invitations
57 - Fix issue which could cause signal-cli to repeatedly send the same delivery receipts
58 - Reconnect websocket after connection loss
59
60 ### Changed
61 - Use new provisioning URL `sgnl://linkdevice` instead of `tsdevice:/`
62 - The gradle command to build a graalvm native image is now `./gradlew nativeCompile`
63
64 ## [0.9.0] - 2021-09-12
65 **Attention**: Now requires native libsignal-client version 0.9
66
67 ### Breaking changes
68 - Removed deprecated `--json` parameter, use global parameter `--output=json` instead
69 - Json output format of `listGroups` command changed:
70 Members are now arrays of `{"number":"...","uuid":"..."}` objects instead of arrays of strings.
71 - Removed deprecated fallback data paths, only `$XDG_DATA_HOME/signal-cli` is used now
72 For those still using the old paths (`$HOME/.config/signal`, `$HOME/.config/textsecure`) you need to move those to the new location.
73
74 ### Added
75 - New global parameter `--trust-new-identities=always` to allow trusting any new identity key without verification
76 - New parameter `--device-name` for `updateAccount` command to change the device name (also works for the main device)
77 - New SignalControl DBus interface, to register/verify/link new accounts
78 - New `jsonRpc` command that provides a JSON-RPC based API on stdout/stdin
79 - Support for announcement groups
80 - New parameter `--set-permission-send-messages` for `updateGroup` to create an announcement group
81 - New `sendReceipt` command to send read and viewed receipts
82 - 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.
83 - Support for reading data from remote Signal storage. Now v2 groups will be shown after linking a new device.
84 - New `submitRateLimitChallenge` command that can be used to lift some rate-limits by solving a captcha
85
86 ### Fixed
87 - Store identity key correctly when sending a message after a recipient has changed keys
88
89 ## [0.8.5] - 2021-08-07
90 ### Added
91 - Source name is included in JSON receive output (Thanks @technillogue)
92
93 ### Fixed
94 - Allow updateContact command to only set expiration timer without requiring a name parameter
95
96 ## [0.8.4.1] - 2021-06-20
97 ### Fixed
98 - Incorrect error handling in register command
99
100 ## [0.8.4] - 2021-06-13
101 **Attention**: Now requires native libsignal-client version 0.8.1
102
103 ### Added
104 - New parameters for `updateGroup` command for group v2 features:
105 `--description`, `--remove-member`, `--admin`, `--remove-admin`, `--reset-link`, `--link`, `--set-permission-add-member`, `--set-permission-edit-details`, `--expiration`
106 - New `--admin` parameter for `quitGroup` to set an admin before leaving the group
107 - New `--delete` parameter for `quitGroup`, to delete the local group data
108 - New 'sendTyping' command to send typing indicators
109
110 ### Fixed
111 - Fixed issue that prevented registration with invalid locales
112 - Prevent last admin of a group from leaving the group
113 - All commands now show a short description with `--help`
114 - Now a hint is shown if messages aren't received regularly
115 - Group edit conflicts are now resolved automatically
116
117 ## [0.8.3] - 2021-05-13
118
119 ### Fixed
120 - Upgrading from account files with older profiles
121 - Building native image with graalvm
122
123 ## [0.8.2] - 2021-05-11
124 ### Added
125 - A manual page for the DBus interface (Thanks @bublath, @exquo)
126 - Remote message delete command (Thanks @adaptivegarage)
127 - sendSyncRequest command to request complete contact/group list from master device
128 - New `--delete-account` argument for unregister (Dangerous)
129 - New `--family-name` argument for updateProfile
130
131 ### Fixed
132 - Sending reaction to group (Thanks @adaptivegarage)
133 - Displaying of address for messages from untrusted identities
134 - Handling of recipient number or uuid changes (e.g. after account deletions)
135 - Only respond to sync requests from master device
136 - Display of quit group messages
137
138 ### Changed
139 - Unlimited strength crypto is now enabled automatically for JREs that require it (Thanks @i-infra)
140 - Only one identity key is stored per recipient and updated from profile (to match app behavior)
141 - updateContact, block and unblock are now disabled for linked devices
142 - After registering an empty profile is created so new groups can be joined immediately
143 - If message decryption fails due to a broken session, the session is automatically renewed
144 - Rework account storage for better reliability
145 - Improved device linking flow
146 - Allow relinking existing account
147 - Encrypt/Decrypt device names
148
149 ## [0.8.1] - 2021-03-02
150 ### Added
151 - New dbus commands: updateProfile, listNumbers, getContactNumber, quitGroup, isContactBlocked, isGroupBlocked, isMember, joinGroup (Thanks @bublath)
152 - Additional output for json format: shared contacts (Thanks @Atomic-Bean)
153 - Improved plain text output to be more consistent and synced messages are now indented
154
155 ### Fixed
156 - Issue with broken sessions with linked devices
157
158 ### Changed
159 - Behavior of `trust` command improved, when trusting a new identity key all other known keys for
160 the same number are removed.
161
162 ## [0.8.0] - 2021-02-14
163 **Attention**: For all signal protocol functionality an additional native library is now required: [libsignal-client](https://github.com/signalapp/libsignal-client/).
164 See https://github.com/AsamK/signal-cli/wiki/Provide-native-lib-for-libsignal for more information.
165
166 ### Added
167 - Experimental support for building a GraalVM native image
168 - Support for setting profile about text and emoji
169
170 ### Fixed
171 - Incorrect error message when removing a non-existent profile avatar
172
173 ## [0.7.4] - 2021-01-19
174 ### Changed
175 - Notify linked devices after profile has been updated
176
177 ### Fixed
178 - After registering a new account, receiving messages didn't work
179 You may have to register and verify again to fix the issue.
180 - Creating v1 groups works again
181
182 ## [0.7.3] - 2021-01-17
183 ### Added
184 - `getUserStatus` command to check if a user is registered on Signal (Thanks @Atomic-Bean)
185 - Global `--verbose` flag to increase log level
186 - Global `--output=json` flag, currently supported by `receive`, `daemon`, `getUserStatus`, `listGroups`
187 - `--note-to-self` flag for `send` command to send a note to linked devices
188 - More info for received messages in json output: stickers, viewOnce, typing, remoteDelete
189
190 ### Changed
191 - signal-cli can now be used without the username `-u` flag
192 For daemon command all local users will be exposed as dbus objects.
193 If only one local user exists, all other commands will use that user,
194 otherwise a user has to be specified.
195 - Messages sent to self number will be sent as normal Signal messages again, to
196 send a sync message, use the new `--note-to-self` flag
197 - Ignore messages with group context sent by non group member
198 - Profile key is sent along with all direct messages
199 - In json output unnecessary fields that are null are now omitted
200
201 ### Fixed
202 - Disable registration lock before removing the PIN
203 - Fix PIN hash version to match the official clients.
204 If you had previously set a PIN you need to set it again to be able to unlock the registration lock later.
205 - Issue with saving account file after linking
206
207 ## [0.7.2] - 2020-12-31
208 ### Added
209 - Implement new registration lock PIN with `setPin` and `removePin` (with KBS)
210 - Include quotes, mentions and reactions in json output (Thanks @Atomic-Bean)
211
212 ### Fixed
213 - Retrieve avatars for v2 groups
214 - Download attachment thumbnail for quoted attachments
215
216 ## [0.7.1] - 2020-12-21
217 ### Added
218 - Accept group invitation with `updateGroup -g GROUP_ID`
219 - Decline group invitation with `quitGroup -g GROUP_ID`
220 - Join group via invitation link `joinGroup --uri https://signal.group/#...`
221
222 ### Fixed
223 - Include group ids for v2 groups in json output
224
225 ## [0.7.0] - 2020-12-15
226 ### Added
227 Support for groups of new type/v2
228 - Sending and receiving
229 - Updating name, avatar and adding members with `updateGroup`
230 - Quit group and decline invitation with `quitGroup`
231 - In the `listGroups` output v2 groups can be recognized by the longer groupId
232
233 **Attention**: For the new group support to work the native libzkgroup library is required.
234 See https://github.com/AsamK/signal-cli/wiki/Provide-native-lib-for-libsignal for more information.
235
236 ### Fixed
237 - Rare NullPointerException when receiving messages
238
239 ## [0.6.12] - 2020-11-22
240 ### Added
241 - Show additional message content (view once, remote delete, mention, …) for received messages
242 - `--captcha` parameter for `register` command, required for some IP ranges
243
244 ### Changed
245 - Profile keys are now stored separately from contact list
246 - Receipts from normal and unidentified messages now have the same format in json output
247
248 ### Fixed
249 - Issue where some messages were sent with an old counter index
250
251 ## [0.6.11] - 2020-10-14
252 - Fix issue with receiving message reactions
253
254 ## [0.6.10] - 2020-09-11
255 - Fix issue when retrieving profiles
256 - Workaround issue with libzkgroup on platforms other than linux x86_64
257
258 ## [0.6.9] - 2020-09-10
259 - Minor bug fixes and improvements
260 - dbus functionality now works on FreeBSD
261 - signal-cli now requires Java 11
262
263 **Warning: this version only works on Linux x86_64, will be fixed in 0.6.10**
264
265 ## [0.6.8] - 2020-05-22
266 - Switch to hypfvieh dbus-java, which doesn't require a native library anymore (drops requirement of libmatthew-unix-java)
267 - Bugfixes for messages with uuids
268 - Add `--expiration` parameter to `updateContact` command to set expiration timer
269
270 ## [0.6.7] - 2020-04-03
271 - Send command now returns the timestamp of the sent message
272 - DBus daemon: Publish received sync message to SyncMessageReceived signal
273 - Fix issue with resolving e164/uuid addresses for sessions
274 - Fix pack key length for sticker upload
275
276 ## [0.6.6] - 2020-03-29
277 - Added listContacts command
278 - Added block/unblock commands to block contacts and groups
279 - Added uploadStickerPack command to upload sticker packs (see man page for more details)
280 - Full support for sending and receiving unidentified sender messages
281 - Support for message reactions with emojis
282 - Internal: support recipients with uuids
283
284 ## [0.6.5] - 2019-11-11
285 Supports receiving messages sent with unidentified sender
286
287 ## [0.6.4] - 2019-11-02
288 - Fix rounding error for attachment ids in json output
289 - Add additional info to json output
290 - Add commands to update profile name and avatar
291 - Add command to update contact names
292
293 ## [0.6.3] - 2019-09-05
294 Bug fixes and small improvements
295
296 ## [0.6.2] - 2018-12-16
297 - Fixes sending of group messages
298
299 ## [0.6.1] - 2018-12-09
300 - Added getGroupIds dbus command
301 - Use "NativePRNG" pseudo random number generator, if available
302 - Switch default data path:
303 `$XDG_DATA_HOME/signal-cli` (`$HOME/.local/share/signal-cli`)
304 Existing data paths will continue to work (used as fallback)
305
306 ## [0.6.0] - 2018-05-03
307 - Simple json output
308 - dbus signal for receiving messages
309 - Registration lock PIN
310 - Output quoted message
311
312 ## [0.5.6] - 2017-06-16
313 * new listGroups command
314 * Support for attachments with file names
315 * Support for complete contacts sync
316 * Support for contact verification sync
317 * DBus interface:
318 * Get/Set group info
319 * Get/Set contact info
320
321 ## [0.5.5] - 2017-02-18
322 - fix receiving messages on linked devices
323 - add unregister command
324
325 ## [0.5.4] - 2017-02-17
326 - Fix linking of new devices
327
328 ## [0.5.3] - 2017-01-29
329 * New commandline paramter for receive: --ignore-attachments
330 * Updated dependencies
331
332 ## [0.5.2] - 2016-12-16
333 - Add support for group info requests
334 - Improve closing of file streams
335
336 ## [0.5.1] - 2016-11-18
337 - Support new safety numbers (https://whispersystems.org/blog/safety-number-updates/)
338 - Add a man page
339 - Support sending disappearing messages, if the recipient has activated it
340
341 ## [0.5.0] - 2016-08-29
342 - Check if a number is registered on Signal, before adding it to a group
343 - Prevent sending to groups that the user has quit
344 - Commands to trust new identity keys (see README)
345 - Messages from untrusted identities are stored on disk and decrypted when the user trusts the identity
346 - Timestamps shown in ISO 8601 format
347
348 ## [0.4.1] - 2016-07-18
349 - Fix issue with creating groups
350 - Lock config file to prevent parallel access by multiple instances of signal-cli
351 - Improve return codes, always return non-zero code, when sending failed
352
353 ## [0.4.0] - 2016-06-19
354 - Linking to Signal-Desktop and Signal-Android is now possible (Provisioning)
355 - Added a contact store, mainly for syncing contacts with linked devices (editing not yet possible via cli)
356 - Avatars for groups and contacts are now stored (new folder "avatars" in the config path)
357
358 ## [0.3.1] - 2016-04-03
359 - Fix running with Oracle JRE 8
360 - Fix registering
361 - Fix unicode warning when compiling with non utf8 locale
362
363 ## [0.3.0] - 2016-04-02
364 - Renamed textsecure-cli to signal-cli, following the rename of libtextsecure-java to libsignal-service-java
365 - The experimental dbus interface was also renamed to org.asamk.Signal
366 - Upload new prekeys to the server, when there are less than 20 left, prekeys are needed to create new sessions
367
368 ## [0.2.1] - 2016-02-10
369 - Improve dbus service
370 - New command line argument --config to specify config directory
371
372 ## [0.2.0] - 2015-12-30
373 Added an experimental dbus interface, for sending and receiving messages (The interface is unstable and may change with future releases).
374
375 This release works with Java 7 and 8.
376
377 ## [0.1.0] - 2015-11-28
378 Add support for creating/updating groups and sending to them
379
380 ## [0.0.5] - 2015-11-21
381 - Add receive timeout commandline parameter
382 - Show message group info
383
384 ## [0.0.4] - 2015-09-22
385
386 ## [0.0.3] - 2015-08-07
387
388 ## [0.0.2] - 2015-07-08
389 First release