2336 Commits

Author SHA1 Message Date
Site Reliability Enby
fd8bb3be02
Merge ad827fbd0aae7a498293ebdb948144158a2e8345 into c146224493ad41a6f6ce14e17d75c590564b5c8f 2026-09-17 21:53:00 +00:00
Site Reliability Enby
ad827fbd0a
Merge branch 'master' into notification-profiles 2026-09-17 17:52:56 -04:00
Dmytro Lomako
c146224493
Add --attachment-dimensions and --attachment-blurhash to send (#2120)
* Accept caller-supplied attachment dimensions

Forward positional WIDTHxHEIGHT metadata supplied by the caller. Validate dimensions before sending and retain automatic image detection for omitted entries.

* Accept caller-supplied attachment BlurHashes

Forward positional BlurHashes supplied by the caller alongside attachment dimensions. Reject BlurHashes whose length doesn't match their size digit.

* Skip image probing when dimensions are supplied

Caller-supplied dimensions replace the probed values, so don't buffer and decode the image to measure it.
2026-09-17 16:58:40 +02:00
Site Reliability Enby
b0795591f6
Merge branch 'master' into notification-profiles 2026-09-15 18:10:46 -04:00
AsamK
a255a7fecf Update graalvm metadata
Fixes #2118
Fixes #2113
Fixes #2108
Fixes #2101
Fixes #2086
Fixes #2044
2026-09-14 14:19:27 +02:00
AsamK
752f63a5e6 Update graalvm metadata 2026-09-14 13:16:56 +02:00
SiteRelEnby
0c08d120c7
Avoid regex backtracking in duration parsing
Consume the duration text token by token instead of validating the
whole string with a nested-quantifier regex, which could backtrack
exponentially on crafted input.
2026-09-12 11:57:34 -04:00
SiteRelEnby
8534a14602
Add notification profile commands
New listNotificationProfiles command to show the notification profiles
of the account and the current manual override, and a new
setNotificationProfile command to manually turn a profile on for a
duration or until a point in time, turn it off, or clear the manual
override. The override is written to the account storage record and
synced to the other devices, the same way the official clients do it.

Durations accept compact forms (90m, 1h37m), words (2 hours 30 minutes),
h:mm and ISO-8601. End times accept times of day, dates, ISO timestamps,
unix timestamps and "forever".
2026-09-12 11:57:33 -04:00
SiteRelEnby
8e40310f4c
Sync notification profiles via storage sync
Notification profiles are stored as their own record type in the
storage service. Until now they were treated as unknown records, which
also meant they were dropped from the manifest on every force push.

Store them locally in a new notification_profile table and handle them
like the other synced record types (sticker packs in particular), so
they survive force pushes and can be read locally.
2026-09-12 11:57:09 -04:00
AsamK
52a0f6415e Prepare next release 2026-09-10 19:58:04 +02:00
AsamK
22b028bbb9 Bump version to 0.14.8 v0.14.8 2026-09-10 19:56:41 +02:00
AsamK
ff689b577b Fix storage sync edge cases 2026-09-10 19:26:02 +02:00
AsamK
ccd7c77a9d Mark --poll-author parameter as required
Fixes #2111
2026-09-10 17:35:10 +02:00
AsamK
76fee5dda2 Fix handling of unknown storage id types that become known
Fixes #2112
2026-09-10 17:31:00 +02:00
AsamK
45cbe82d7f Update dependencies 2026-09-10 16:59:23 +02:00
AsamK
089139909b Update libsignal-service 2026-09-10 16:53:14 +02:00
AsamK
f9dbf6bfff Suppress unchecked warnings 2026-09-10 16:34:10 +02:00
AsamK
6b7b94fe1f Update gradle 2026-09-10 16:34:00 +02:00
AsamK
2c03e5fd8d Reformat files 2026-09-10 16:26:57 +02:00
AsamK
7cc0cc3e0e Prevent storage service loops on ACI identity key changes 2026-09-10 16:26:41 +02:00
AsamK
48731286eb Prevent storage sync loop on PNI-only records with different identity keys 2026-09-10 16:19:21 +02:00
AsamK
3c17e01c37 Fix storage sync issues 2026-08-21 21:39:51 +02:00
AsamK
9605c94f09 Improve contact merging 2026-08-21 20:47:35 +02:00
AsamK
d2f5696df1 Update libsignal-service 2026-08-21 20:35:42 +02:00
AsamK
81e513d6b7 Implement storage sync loop detector 2026-08-21 18:46:03 +02:00
AsamK
dbf11fd006 Update graalvm build tools 2026-08-21 18:37:35 +02:00
Bazyli Brzóska
7e802166a3
fix(json): expose data message metadata (#2104) 2026-08-17 12:40:27 +02:00
Bazyli Brzóska
0f88410465
feat(json): expose voice-note attachment metadata (#2100)
Include isVoiceNote in receive JSON and JSON-RPC attachment payloads. Add regression coverage for true and false serialization.
2026-08-10 10:38:27 +02:00
Javair Ratliff
13819c8f09
Support the GroupsV2 "end group" (terminate) feature (#2098)
* Show and enforce the terminated state of a group

A group admin can permanently terminate a group. Afterwards the group is
read-only for everyone, not even an admin can send messages or start calls;
members keep access to the existing history. Other clients silently drop
messages sent to a terminated group.

Read the DecryptedGroup.terminated flag through GroupInfo.isTerminated() and:

- surface it in listGroups (json and plain text) and as the DBus IsTerminated
  group property
- refuse to send to a terminated group locally (messages, reactions, typing and
  group stories) rather than send one that other clients ignore
- drop incoming messages addressed to a terminated group

* Add terminateGroup command to terminate a group for everyone

Let a group admin permanently terminate a GroupV2 group via the
TerminateGroupAction (Groups.proto field 28, change epoch 7) the pinned library
already exposes as GroupsV2Operations.createTerminateGroup().

- GroupV2Helper.terminateGroup builds and commits the change
- GroupHelper.terminateGroup resolves/refreshes the group (v2 only), sends the
  update to members and syncs storage, with the same conflict-retry as
  updateGroup
- exposed through Manager.terminateGroup, the terminateGroup CLI/JSON-RPC command
  and the DBus Group.terminateGroup method

---------

Co-authored-by: FailSpy <FailSpy@users.noreply.github.com>
2026-08-08 17:16:49 +02:00
AsamK
85580d1ff6 Fix graalvm issue with image dimension probing
Fixes #2096
2026-08-04 13:16:58 +02:00
AsamK
f8ea8ed314 Update graalvm build tools 2026-08-04 13:14:29 +02:00
AsamK
472784e614 Replace unmaintained release actions 2026-08-02 08:45:09 +02:00
AsamK
db97731f63 Update redhat-actions in workflow 2026-08-02 08:45:09 +02:00
AsamK
ff9f2028ae Prepare next release 2026-08-02 08:45:09 +02:00
AsamK
9ee5262876 Prepare next release 2026-08-01 10:07:44 +02:00
AsamK
b01b6b370d Fix build pipeline v0.14.7 2026-08-01 09:38:01 +02:00
AsamK
890f798a03 Bump version to 0.14.7 2026-08-01 09:30:18 +02:00
AsamK
3c319f8b4a Reformat files 2026-08-01 09:24:09 +02:00
AsamK
fd3f572499 Use nickname for displaying recipient names 2026-08-01 09:21:52 +02:00
AsamK
854cb35d15 Explicitly store pni signature verified 2026-07-31 13:20:34 +02:00
AsamK
e78521bb5c Always set e164 in sync if available 2026-07-31 13:09:00 +02:00
AsamK
86ad7bf53f Always set the read receipts setting during provisioning if available 2026-07-31 13:08:13 +02:00
AsamK
de5daf0ad4 Cleanup incomplete account data after unsuccessful link
Fixes #2080
2026-07-31 09:01:08 +02:00
AsamK
ecc76ec52b Improve handling of pni change number messages 2026-07-30 22:44:06 +02:00
AsamK
6fa1d1bf90 Fix marking sender as needs pni signature 2026-07-30 22:44:06 +02:00
AsamK
d29f6c1641 Fix removing self from pending group invite via PNI 2026-07-30 22:44:06 +02:00
AsamK
b3e3eda4f7 Use upstream provisioning functionality 2026-07-30 22:44:06 +02:00
AsamK
1e59c6f6cc Readd job to update github dependency graph 2026-07-30 17:39:40 +02:00
AsamK
457658aca0 Update dependencies 2026-07-29 22:33:49 +02:00
AsamK
2cf5e25e9e Implement sticker pack sync 2026-07-29 22:33:49 +02:00