Commit Graph

236 Commits

Author SHA1 Message Date
Evgeny Poberezkin 9f93e87f56 Merge branch 'stable' 2026-05-30 16:01:27 +01:00
Narasimha-sc 5aace8401c core: fix /start remote host parser when iface name contains a space (#7025)
* core: fix /start remote host parser when iface name contains a space

The iface= field used jsonP (which calls takeByteString and strict-decodes
the entire remaining input as JSON). When port= followed iface=, the strict
decode failed on the trailing data and the text1P fallback stopped at the
first space inside the JSON-quoted interface name (e.g. "Ethernet 2"),
leaving unparseable junk and producing "Failed reading: empty".

Replace jsonP with a bounded quotedP that consumes only up to the closing
quote, leaving port=… for the next parser.

* plan: document fix for /start remote host iface-with-space parser bug
2026-05-30 07:33:10 +01:00
Evgeny Poberezkin 507a4de61c Merge branch 'stable' 2026-05-28 23:19:54 +01:00
Evgeny 68abd805d4 rfc: namespace (#7001)
* rfc: namespace

* update rfc

* markdown for names

* record type, app "upgrade" alerts

* update api types

* rfc: change namespace syntax - now it is the usual namespace

* update bot types

* move types to simplexmq

* core: refactore markdown

* update simplexmq

* better names

* new names

* update nix content hashes

* fix

* change valid name function

* update simplexq, update valid name conditions

* fixes

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

* update simplexmq

* fix localization

* simpler

* refactor

* refactor

* fix

---------

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-05-28 08:44:43 +01:00
spaced4ndy 037c05cd29 core: fix races on member removal / delivery of their messages (#7010) 2026-05-26 09:07:26 +00:00
spaced4ndy 12fbf61f32 core, ui: require update for public groups (#7009) 2026-05-26 09:03:41 +00:00
spaced4ndy c017c25d0f core, ui: member full delete with messages (#6994) 2026-05-25 10:43:36 +00:00
Evgeny fe6b5186e1 core: update simplexmq (receiving services) (#6212)
* core: update simplexmq

* update agent api

* update simplexmq

* core: add flag to User to use client services

* update simplexmq

* cli command to toggle service for a user

* test, fix

* query plans, core/bot api types

* remove local package reference

* increase server queue size in tests

* show client service status in users list

* update query plans

* cli: fix redraw slowness (#6735)

* cli: add pland to fix redraw slowness

* updtae doc

* cli: decouple key reading from processing via TQueue

* schema and bot types

---------

Co-authored-by: sh <37271604+shumvgolove@users.noreply.github.com>
2026-05-25 10:37:13 +01:00
spaced4ndy 2b48b55190 core: deliver member profiles via relay (#6953) 2026-05-22 20:52:01 +00:00
spaced4ndy 92e9640e4f core, ui: relay reject rejoin (#6978) 2026-05-18 09:06:25 +00:00
Evgeny 7497b90e7c core, ui: allow indefinite deletion from history for public channel/group owners/moderators (#6972)
* Revert "core: forward compatible support for owners/admins/moderations deleting channel and public group messages without limitations (#6962)"

This reverts commit 08108ebabb.

* core, ui: allow indefinite deletion from history for public channel/group owners/moderators

* style

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

* refactor

* show error on deletion

* better alerts

* test

* plan

* simplify test

* bot api docs

* refactor

* test that removed from history is not delivered to the new subscribers

* fix, refactor

* fix

* rename

* rename predicate in UI

* rename

* do not forward channel deletions from history

* remove redundant check

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-05-13 15:24:52 +01:00
spaced4ndy 24859e1281 core: announce added relay (#6956) 2026-05-12 12:36:23 +00:00
Evgeny 08108ebabb core: forward compatible support for owners/admins/moderations deleting channel and public group messages without limitations (#6962)
* plan: delete channel messages

* core: allow deletion of own messages in public groups in channels to moderators-owners

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-05-11 15:00:37 +01:00
Evgeny Poberezkin ce891e4501 core: code style 2026-05-11 10:41:49 +01:00
spaced4ndy 828b8e8715 core: single relay checks interval (#6952) 2026-05-08 09:12:33 +00:00
spaced4ndy 6f8a07e4ea core, ui: relay management - add, remove relays, synchronization to relay list (#6917) 2026-05-08 07:19:16 +00:00
spaced4ndy 8f66a0cc98 core: fix relay request worker retry limit (#6931)
* core: fix relay request worker retry limit

* update plan

* update plan

* update plan

* wip

* schema

* wip

* wip

* schema

* update

* remove comment

* rework

* schema

* update

* schema

* update

* plans

* corrections

* add 1 second

* remove + 1

* add +1 to schedule

* changes

* updated schemas

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2026-05-02 11:31:03 +01:00
spaced4ndy 66064c38f8 core: don't create subscriber profile item update / create in support scope (#6910) 2026-04-28 18:08:39 +00:00
Evgeny 63c278818e core: support chats in channels, send as owner in support chats (#6870)
* core: test support chats in channels, CLI defaults to sending as member in support chat

* ui: enable support chats in channels

* use correct scope when sending from UI

* more readable

* remove test output

* show member support chat in channels

* preference for support chats

* ios: types for support preference

* mp: support preference types

* show support preference in UI

* fix ios

* make support preference optional in JSON parser

* update string

* change strings, pass parameters to prefs

* refactor kotlin

* take support preference into account

* refactor core

* do not show broadcast placeholder in support scope

* move role check, add pref check on update

* support preference test (failing)

* fix version

* fix tests

* warning alert when enabling chats with admins

* revert on dismiss

* update text and icons

* query plans

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-04-26 14:37:16 +01:00
Evgeny 504ef253cb core, ui: item about no e2ee in public channels (#6886)
* core, ui: item about no e2ee in public channels

* fix, refactor

* all tests

* update bot api types

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-04-25 20:49:26 +01:00
Evgeny 53a225a0c9 directory: periodically update subscriber counts for registered channels and re-verify links and ownership (#6879)
* directory: update subscriber counts for registered channels and re-verify links and ownership

* refactor

* rename

* mapM_

* refactor

* refactor

* refactor more

* more

* different approach

* rename

* test

* bot api types

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-04-25 10:20:26 +01:00
Evgeny f3547878cc directory: support public channels and relay-based groups (#6840)
* directory: support public channels and relay-based groups (plan)

* types

* amend types

* directory types, resolve known link

* implementation, test fails

* fix test

* fix test

* more test

* minimal test

* more test

* debug test

* clean up

* remove debug logs

* refactor

* use group/channel terms correctly

* remove unsupported commands

* manage profile update

* owner left the channel

* more tests, correct response to sent link

* re-registration

* /help and /link commands

* correct listing for channels

* fix test

* fix bot api

* refactor

* do not include link data in GLPKnown

* refactor

* diff

* undo refactor

* simplify

* remove harness test

* remove flip

* add v6.5 app requirement for channels

* add website support

* update bot api types

* correct member count, fix test

* members -> subscribers

* add link to channel description

* fix css

* move version note

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-04-23 13:30:26 +01:00
spaced4ndy 2eb25d124f core, ui: better error on failed channel creation (#6825) 2026-04-20 08:17:42 +00:00
spaced4ndy 27cab1a575 core, ui: channel relay leave (#6779) 2026-04-17 08:27:41 +00:00
Evgeny 30ae0d864c core: share links to channels and verify shared links when connecting (#6810)
* core: share links to channels and verify shared links when connecting

* refactor

* improve

* refactor case

* simplify

* exctract encodeChatBinding

* share api

* corrections

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

* tests

* verify signature in the tests

* drop signature if context does not match on reception

* try to test "fake" forward

* fix

* fix direct chat sharing test

* channel test

* sign link

* rename api

* refactor view

* chal link item CLI view, tests

* clean up

* share channel in channel as channel

* query plan

* fix test

* refactor

* whitespace

* simpler

* refactor

* dont use partial field update

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-04-16 23:48:19 +01:00
spaced4ndy ac6f8b76ac core: flatten MsgContainer type to match wire JSON format (#6808)
* core: refactor MsgContainer

* comment

* simplify

* refactor

* corrections

* update

* clean up

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2026-04-15 20:28:31 +01:00
spaced4ndy 424b869750 core: don't save owner key as passed by relay, if owner record doesn't exist (#6806) 2026-04-14 11:15:12 +00:00
spaced4ndy 79a9860159 core: fix group link update overwriting owners (#6804)
* core: fix group link update overwriting owners

* fix

* rename
2026-04-14 10:02:02 +01:00
Evgeny 673f5e374b core: refactor unnecessary functions away (#6796)
* core: refactor unnecessary functions away

* fix

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-04-13 09:21:14 +01:00
Evgeny 6f21826579 core, ui: chat item to show message error (#6785)
* core: chat item to show message error

* ui: chat item for removed messages

* remove local maven repo

* command to test dropped messages

* update nix config

* show parse errors

* error texts, simplexmq

* alert messages

* simplexmq, alert

* better parsing

* better parsing

* simplify

* correct message

* remove test api

* do not check size twice, bot types

* send error in relays

* do not create error item in relays

* diff

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-04-11 19:40:33 +01:00
spaced4ndy 7194755f8d core: fix channel profile updates breaking link (#6762) 2026-04-09 10:23:46 +00:00
Evgeny 5050e4858e core: preset chat relays (#6748)
* core: preset chat relays

* refactor

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-04-04 16:50:07 +01:00
spaced4ndy b690f89a99 core: don't create member announcement chat item in channels (#6744) 2026-04-03 16:31:31 +00:00
Evgeny 8167f7c2ab core: add fields to chat relay profiles; remove unique name requirement; update relay profile in relay address link data (#6743)
* core: add fields to chat relay profiles

* wip

* wip

* fix

* fix

* fix

* enable tests

* schema

* api

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
2026-04-03 12:42:43 +00:00
spaced4ndy 5241a2d7f3 core: fix withStore usage in subscriber 2026-04-02 21:13:23 +04:00
spaced4ndy a14a66db14 core, ui: chat relay test (#6736) 2026-04-02 15:36:36 +00:00
spaced4ndy 42fe94752c core, ui: public group profile wip (#6734) 2026-04-01 14:17:27 +00:00
spaced4ndy dfd8e224f6 core, ui: prohibit to invite contact to channel (#6731) 2026-03-31 11:31:09 +00:00
spaced4ndy eddb42bd63 core: fix ghost channel record in chat list on failed/cancelled channel creation (#6728) 2026-03-30 12:42:28 +00:00
spaced4ndy 929783eb6c core: relay key and member id as immutable relay link data (#6713) 2026-03-30 10:48:39 +00:00
Evgeny 1e042718a3 core: shared group ID in group profile for relayed groups (#6716)
* rfc: add shared group ID to profile (the same as linkEntityId and sha256(rootKey))

* implement group ID

* fix

* update simplexmq

* line

* toGroupKeys

* fix test

* fix bot api

* check group ID in other cases

* fix

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
2026-03-30 08:25:54 +00:00
spaced4ndy 30386178ec Revert "core: relay key and member id as immutable relay link data (#6711)"
This reverts commit d665b1f5d8.
2026-03-28 14:03:09 +04:00
spaced4ndy d665b1f5d8 core: relay key and member id as immutable relay link data (#6711) 2026-03-28 09:51:50 +00:00
Evgeny 674a545a33 core: signed messages status (#6699)
* XOcore: signed messages status

* remove empty lines

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

* EOL

* only mark verified as verified

* update API types

* todos

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-03-24 20:05:09 +00:00
spaced4ndy 58f47cbadf core, ui: channel subscriber count (#6696) 2026-03-24 10:54:32 +00:00
Evgeny Poberezkin 5fc7560df9 Merge branch 'master' into chat-relays 2026-03-21 18:07:26 +00:00
spaced4ndy b38fc62281 core: chat relays announce new members to owners (with keys); forward x.grp.mem.restrict; sign and verify x.grp.leave and x.info (member profile update) (#6690) 2026-03-19 19:47:02 +00:00
sh 2df13dad36 core: add custom data commands, fix groups parser (#6691)
* core: add custom data commands, fix groups parser

- Add APISetGroupCustomData and APISetContactCustomData to ChatCommand,
  with parsers (/_set custom #, /_set custom @) and processors
  following the APISetChatUIThemes pattern
- Fix APIListGroups parser missing space ("/_groups" -> "/_groups ")
  to align with auto-generated cmdString
- Add chatCommandsDocsData entries for APISetGroupCustomData,
  APISetContactCustomData, and APISetUserAutoAcceptMemberContacts

* core: named fields for codegen, run codegen

- Use named record fields for APISetGroupCustomData,
  APISetContactCustomData, APISetUserAutoAcceptMemberContacts
  (required for chatCommandsDocsData field resolution)
- Fix OnOff field name to "onOff" (avoids clash with User field)
- Remove APISetUserAutoAcceptMemberContacts from undocumentedCommands
- Regenerate COMMANDS.md and commands.ts

* nodejs: add ChatApi wrappers for custom data and apiGetChat

- apiSetGroupCustomData, apiSetContactCustomData
- apiSetAutoAcceptMemberContacts
- apiGetChat (manual wrapper, APIGetChat undocumented)
2026-03-19 09:10:19 +00:00
Ed Asriyan b8178d01a8 core: fix /_groups command (#6660)
* core: fix `/_groups` command

add missing space after `/_groups`. fixes #5195

* remove space in CLI commands (they would break parser)

---------

Co-authored-by: Evgeny <evgeny@poberezkin.com>
2026-03-19 09:08:14 +00:00
spaced4ndy 74fe5340f7 core: verify signed messages in channels (fix member keys not saved); sign deletion message for deleted member; relay member key (#6683) 2026-03-18 13:34:14 +04:00