Commit Graph
1634 Commits
Author SHA1 Message Date
Evgeny Poberezkin 39957589e0 Merge branch 'master' into ep/p2p-group-signing 2026-08-01 21:24:34 +01:00
Evgeny @ SimpleX Chat c4675bf89f add key distribution steps, and fix some tests 2026-08-01 19:13:33 +00:00
Evgeny Poberezkin cbae9c5e87 core: 7.1.0.0 (simplexmq 7.1.0.0) 2026-08-01 13:13:40 +01:00
EvgenyGitHubEvgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
e1a349b90f core: support contact addresses with DR keys, service requests (#7310)
* core: use double ratchet keys in contact address (#7278)

* core: use double ratchet keys in contact address

* use PQ from the first message

* query plans

* update simplexmq

* api to rotate keys, option to show full links in CLI

* shorter description

* ui: add error parameters

* disable DR in addresses

* core: parameter for create address command to configure ratchet keys

* add pqRatchet param to address-related commands

* query plan

* fix parser

* fix kotlin

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>

* core: contact request rejection and service requests (#7292)

* update simplexmq

* implement service requests and rejections

* tests

* migration

* fix migration

* add api event and response

* bot api, postgres migration

* nix shas

* bot types, rename property

* update bot type

* sign service requests

* update bots api

* query plan

* update plan

* update simplexmq

* fix test, update bot api

* fix bot api

* resolve name for service request

* refactor

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>

* update simplexmq

* update simplexmq

* test delays

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-08-01 12:51:03 +01:00
EvgenyGitHubEvgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
61012d208e core, ui: extend profile peer type (#7277)
* core, ui: extend profile peer type

* remove comments

Co-authored-by: Evgeny <evgeny@poberezkin.com>

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-07-31 23:53:12 +01:00
Evgeny Poberezkin a7d80ba105 fix bot apis 2026-07-31 16:29:19 +01:00
Evgeny @ SimpleX Chat 51a852c24d only mark as "key sent" when forwarder supports binary encoding 2026-07-31 14:58:47 +00:00
Evgeny Poberezkin 46e6835580 null 2026-07-31 12:47:00 +01:00
Evgeny Poberezkin 4b5864a945 fuse 2026-07-31 12:33:35 +01:00
Evgeny @ SimpleX Chat 53f5b810d4 split 2026-07-31 11:06:31 +00:00
Evgeny @ SimpleX Chat 20983d5baf optimize 2026-07-31 10:56:15 +00:00
Evgeny @ SimpleX Chat 6850037e21 limit attempts for key sending 2026-07-31 09:38:49 +00:00
Evgeny Poberezkin f99473ca6f Merge branch 'master' into ep/p2p-group-signing 2026-07-29 19:40:32 +01:00
EvgenyGitHubEvgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
f1418f9e55 core: drop support of chat versions older than 08/2024 (#7319)
* core: drop support of chat versions older than 08/2024

* fix encoding tests

* skip failing tests

* rename

* fix

* query plans

* remove unused legacy code

* remove more unused

* remove unused

* remove unused names

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-07-29 19:06:20 +01:00
EvgenyGitHubEvgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
64bf358040 core: fix version update on binary chunks (#7320)
* core: fix version update on binary chunks

* pass chat event

* pass encoding

* revert

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-07-28 17:51:01 +01:00
Evgeny Poberezkin 9b90d6198e diff 2026-07-28 11:21:20 +01:00
Evgeny Poberezkin d04d09f5af diff 2026-07-28 11:17:53 +01:00
Evgeny Poberezkin 31ab78c278 clean up 2026-07-28 11:05:08 +01:00
Evgeny Poberezkin 72cd6266d6 move 2026-07-28 10:55:52 +01:00
Evgeny Poberezkin 433a000d21 simplify 2026-07-28 10:53:43 +01:00
Evgeny @ SimpleX Chat 25fa39c94a refactor 2026-07-28 09:28:52 +00:00
Evgeny @ SimpleX Chat 78643c850f simplify 2026-07-28 08:46:40 +00:00
Evgeny @ SimpleX Chat 4e8a5bb6db remove unnecessary condition 2026-07-27 20:01:59 +00:00
Evgeny @ SimpleX Chat 022885d5c1 some refactor 2026-07-27 19:45:51 +00:00
Evgeny Poberezkin b94620bd72 list 2026-07-27 12:34:37 +01:00
Evgeny Poberezkin 98247def0d clean up 2026-07-27 12:24:24 +01:00
Evgeny @ SimpleX Chat db446c2879 sign in relay groups too 2026-07-27 11:12:06 +00:00
Evgeny Poberezkin 1224da4b51 map 2026-07-27 11:58:49 +01:00
Evgeny @ SimpleX Chat f8424270a7 better query 2026-07-27 10:55:55 +00:00
Evgeny @ SimpleX Chat a8b3f9761f refactor 2026-07-27 10:33:28 +00:00
Evgeny @ SimpleX Chat 138a42f582 distribute keys and sign 2026-07-27 09:34:36 +00:00
Evgeny Poberezkin 261d09ba42 add member key 2026-07-26 19:37:21 +01:00
Evgeny Poberezkin 06df6b1ae0 improve 2026-07-26 14:34:55 +01:00
Evgeny Poberezkin bd123f4ec5 core: support message signing in p2p groups 2026-07-26 13:53:57 +01:00
Narasimha-scandGitHub 3726040d84 core: ignore mentions and replies of blocked members (#7303)
Messages of blocked members are hidden, but they still marked chat item
as user mention, showing mention badge and counting group as unread in
"mentions only" notification mode:
- createNonLive passed mentions unfiltered, allowing members blocked by
  admin to mention user - it is the default path, as it is only used
  when full delete is not allowed;
- userReply was set for replies to user messages from blocked members.
2026-07-25 10:42:34 +01:00
EvgenyandGitHub 8320730440 core: prohibit image previews when images are prohibited (#7296) 2026-07-24 10:50:46 +01:00
Narasimha-scandGitHub dc3c106bda core: remove SimpleX Status preset contact (#7231)
* core: remove SimpleX Status preset contact

Preset contact cards are only created at user record creation
(createPresetContactCards), so this affects new profiles only;
existing profiles keep their stored SimpleX Status contact.

Removing the card shifts contact ids allocated after /create user
down by one, hence the test id updates.

* plans: justify SimpleX Status preset contact removal
2026-07-24 09:05:12 +01:00
Narasimha-scandGitHub 177a591466 core: fix member support chats staying marked unread after they're read (#7281)
* core: don't mark member support chat items read when reading group without scope

Reading a group without a scope marked support-scope items read without
decrementing the per-member support_chat_items_* counters, so members stayed
unread in the support list even after their chat was fully read. Restrict the
no-scope group read and its timed-items query to main-scope items.

* plans: support chat unread on no-scope group read

* core: update query plans for group scope read

The main-scope read and timed-items queries now filter on group_scope_tag
and group_scope_group_member_id, so they seek via idx_chat_items_group_scope_stats_all
(5-column) instead of idx_chat_items_groups_user_mention (3-column).

* plans: document query-plan and benchmark performance results

* tests: fix unreliable support item id capture in no-scope group read test

lastItemId returns the latest item by item_ts, which right after createGroup2
can be the group "connected" event rather than the just-sent support message.
The per-item read then targeted the wrong (already-read, main-scope) item and
never decremented the support counters, so the test failed regardless of the
fix (consistently in CI, flakily locally depending on item ordering).

Capture the support item id directly from the member-support scope instead,
keeping the change contained to this test. Verified: the test passes with the
fix and fails when the fix is reverted.

* tests: fix name-shadowing build error in no-scope group read test

The local pattern binding `itemId` shadowed the `itemId` helper imported
from ChatTests.Utils, which -Wname-shadowing (Werror) rejects. Rename the
local binding to `iId`.
2026-07-23 10:17:27 +01:00
spaced4ndyandGitHub 8ec4b424cb core: prohibit to change or assign relay role (#7284) 2026-07-22 19:39:05 +00:00
spaced4ndyandGitHub 49a8664331 core: reject group message forwards from unexpected admins (#7289) 2026-07-22 19:26:28 +00:00
Narasimha-scandGitHub 9586c97439 ui: show XFTP servers used for a file in message info (#7088)
Surface the XFTP servers that hosted a file's chunks in the message info
screen (Android, desktop, iOS), so a user can see which servers they are
downloading from (or, for sent files, uploading to) whenever they want to know.

APIGetChatItemInfo now returns fileXftpServers, derived from the stored file
description (private snd descr for sent items, rcv descr for received items);
extraction is best-effort and never fails the call.
2026-07-22 08:28:54 +01:00
shandGitHub 451bb5148f core: fix missing ": " in CLI display name prompt (#7280) 2026-07-21 09:25:22 +01:00
Evgeny Poberezkin 52f1f7403d core: update query plans 2026-07-20 17:50:22 +01:00
2ea5940e81 core, ui: per-server roles for self-hosted servers (#7254)
* core, ui: plan per-server roles for self-hosted servers

* core: add per-server roles field to UserServer

* core: add nullable role columns to protocol_servers

* core: persist per-server roles

* core: validate server coverage using per-server roles

* test: cover per-server roles resolution and coverage

* multiplatform: per-server role toggles for self-hosted servers

* ios: per-server role toggles for self-hosted servers

* core: per-server role overrides with per-role defaults

* test: cover three-state per-server role resolution

* fix: derive Eq for ServerRolesOverride

* multiplatform: three-state role dropdowns on saved servers

* ios: three-state role pickers on saved servers

* test: per-server roles independent across two servers

* test: enable names role in name-resolution tests

* style: trim comments in per-server roles code

* chore: rename server_roles migration to 20260716 (last)

* core: per-server roles override operator roles, inherit when unset

* multiplatform: per-server role default inherits from operator

* ios: per-server role default inherits from operator

* refactor(servers): tidy per-server roles per review

- dedup no-operator default into ServerRoles.noOperatorDefault (Kotlin/Swift)
- iOS: move roles-section control flow to the call site via a named gate,
  and parse the server address once instead of up to three times
- Kotlin: collapse redundant derivedState; revert defaultOn->default rename
  for cross-platform parity
- drop unused Hashable conformance on Swift ServerRoles
- add agentServerCfgs test for names inheritance from an operator
- remove no-op enableNamesRole calls from dormant DirectoryTests
- fix ChatClient import ordering

* chore(migration): date server_roles migration 20260720

* only show roles when server is enabled, move section above QR code

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2026-07-20 16:35:13 +01:00
spaced4ndyandGitHub 966c9f7947 core: fail compilation on name shadowing (#7283) 2026-07-20 13:20:37 +00:00
spaced4ndyandGitHub ba6f5386c8 core: allow moderators to change member <-> observer roles in groups (#7279) 2026-07-20 12:56:23 +00:00
spaced4ndyandGitHub 93831a0f24 core: signed history in channels, auto-sign based on preference (#7257) 2026-07-17 19:44:51 +00:00
a81baebed5 docs: add Hosting your own Chat Relay guide (#7272)
* docs: add Hosting your own Chat Relay guide

* cli: run headless relay without a terminal

--headless (no -e) now runs via simplexChatCore instead of the terminal
UI, so the relay runs as a systemd service without a TTY (withTerminal
requires one). Drains the event queue logging only errors, and sets
stdout to line-buffering so logs reach the journal.

* docs/chat-relay: debounce service

* Apply suggestions from code review

Co-authored-by: Evgeny <evgeny@poberezkin.com>

---------

Co-authored-by: Evgeny <evgeny@poberezkin.com>
2026-07-17 17:09:38 +01:00
EvgenyGitHubsimplex-chat-agent[bot] <287173099+simplex-chat-agent[bot]@users.noreply.github.com>Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>simplex-chat-agent[bot] <287173099+simplex-chat-agent[bot]@users.noreply.github.com>
6375457685 core: add optional profile description (#7256)
* core: add optional profile description

* bot types

* kotlin ui

* query plans

* postgres schema

* fix ui

* fix UI

* refactor

* description in business chats

* share address

* sign address card when shared by owner

* from owner string

* remove unused string

* refactor

* fix

* ProfileDescriptionText

* refactor modals

* ios ui

* nix config

* correction

Co-authored-by: simplex-chat-agent[bot] <287173099+simplex-chat-agent[bot]@users.noreply.github.com>

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
Co-authored-by: simplex-chat-agent[bot] <287173099+simplex-chat-agent[bot]@users.noreply.github.com>
2026-07-15 17:54:21 +01:00
spaced4ndyandGitHub 0fef34914d core, ui: security code verification in channels (verify member key) (#7255) 2026-07-15 10:46:31 +00:00