Commit Graph

1565 Commits

Author SHA1 Message Date
Evgeny @ SimpleX Chat d9aeb64895 refactor badges 2026-06-11 20:51:22 +00:00
Evgeny Poberezkin 17377bf273 postgres schema 2026-06-11 18:55:08 +01:00
Evgeny Poberezkin 68237e7398 bot types, schema 2026-06-11 18:31:28 +01:00
Evgeny @ SimpleX Chat 64a4c0c9ee update UI, tests 2026-06-11 16:40:02 +00:00
Evgeny @ SimpleX Chat 57b465c630 send badges in more cases 2026-06-11 14:55:32 +00:00
Evgeny Poberezkin 556f99e029 update badge images, add public key 2026-06-10 21:39:47 +01:00
Evgeny @ SimpleX Chat df2226b58d image size, migration 2026-06-10 18:18:29 +00:00
Evgeny @ SimpleX Chat a2d6fcfcd7 Binary 2026-06-10 13:10:27 +00:00
Evgeny @ SimpleX Chat 752dba8bb2 fix commands, ui 2026-06-10 10:54:24 +00:00
Evgeny @ SimpleX Chat f39498e4f6 badge sign in CLI 2026-06-09 20:37:21 +00:00
Evgeny @ SimpleX Chat c636a81a12 generate badge key and sign badge 2026-06-09 17:53:29 +00:00
Evgeny @ SimpleX Chat fb68bc2e8a add badge to profile, test 2026-06-09 15:43:48 +00:00
Evgeny @ SimpleX Chat cca62e949f configurable badge key 2026-06-09 13:01:46 +00:00
Evgeny @ SimpleX Chat ea4db3ac53 refactor badge types to GADT 2026-06-09 07:33:31 +00:00
Evgeny @ SimpleX Chat 75d64d81b8 add extra field 2026-06-08 11:27:21 +00:00
Evgeny @ SimpleX Chat a20fe23f62 Merge branch 'stable' into ep/badges-types 2026-06-08 10:12:15 +00:00
Evgeny 95349430c5 core: support signature verification in p2p groups (forward compatibility) (#7058)
* core: support signature verification in p2p groups (forward compatibility)

* encoding

* mirror encoding

* comment

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-06-07 12:01:40 +01:00
Evgeny Poberezkin dfdd963561 Merge branch 'stable' into ep/badges-types 2026-06-06 21:47:18 +01:00
Evgeny 5b93cb0e3f core: store context to pass configuration parameters (#7057)
* core: store context to pass configuration parameters

* fix directory

* fix test

* comment

* order

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-06-06 20:48:11 +01:00
Evgeny @ SimpleX Chat fd838f05f4 FFI 2026-06-06 11:56:52 +00:00
Evgeny Poberezkin a9e0ac3f07 plan, bot types 2026-06-06 12:52:36 +01:00
Evgeny @ SimpleX Chat ce5fc0a558 badges ffi 2026-06-06 11:50:10 +00:00
Evgeny @ SimpleX Chat 9e4c798b2f correctly set badges in all cases 2026-06-06 10:54:29 +00:00
Evgeny Poberezkin 91d6ecff1a postgresql schema 2026-06-06 10:46:24 +01:00
Evgeny Poberezkin 82c7ce694d refactor 2026-06-06 08:33:18 +01:00
Evgeny @ SimpleX Chat 72bc9a1e28 fix postgresql build 2026-06-06 06:53:06 +00:00
Evgeny Poberezkin afbac2a88c fix bot API, schema 2026-06-05 22:59:03 +01:00
Evgeny Poberezkin 57b4b76148 migration 2026-06-05 06:35:19 +01:00
Evgeny @ SimpleX Chat 2d4e0bbe21 fix migration 2026-06-04 22:14:47 +00:00
Evgeny Poberezkin aeb3162de0 change types 2026-06-04 23:12:15 +01:00
Evgeny @ SimpleX Chat a9bea25b7f process badges 2026-06-04 15:51:51 +00:00
Evgeny @ SimpleX Chat 98ecff7943 badge in profiles 2026-06-04 07:38:53 +00:00
Evgeny @ SimpleX Chat 25bc863676 badges in profiles 2026-06-03 21:24:06 +00:00
Evgeny Poberezkin d43cefaeb9 Merge branch 'stable' into ep/badges-types 2026-06-03 08:50:11 +01:00
Evgeny @ SimpleX Chat 2390f8bebc core: supporter badges using anonymous BBS credentials 2026-06-02 21:46:04 +00:00
Evgeny 83f4f6cd38 core: rename field in protocol (#7038)
* core: rename field in protocol

* update bot apis

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-06-01 21:33:35 +01:00
Evgeny 9bb2bec3fa plan: web previews for channels (#7022)
* plan: web previews for channels

* types for recipient side to support channel web previews and domain names

* fix

* migrations

* update schema and api types

* update schema

* rename migrations

* core: check member role

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-05-31 17:12:12 +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 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 12fbf61f32 core, ui: require update for public groups (#7009) 2026-05-26 09:03:41 +00:00
spaced4ndy 92e9640e4f core, ui: relay reject rejoin (#6978) 2026-05-18 09:06:25 +00:00
Narasimha-sc af24d030fa core, ui: persist "Remove link tracking" setting on database import (#6977)
* core, ui: persist "Remove link tracking" setting on database import

The privacySanitizeLinks preference was stored locally only and absent from
the AppSettings round-trip, so it was lost when migrating to another device
or after a fresh install + DB import. Add the field to the Haskell, Kotlin,
and Swift AppSettings payloads and wire it through iOS group defaults.

* plans: justify privacySanitizeLinks AppSettings round-trip fix
2026-05-16 10:22:57 +01:00
Narasimha-sc 3b4bf92015 core: include trailing "_" and "!" characters in links (#6973)
* core: include trailing "_" and "!" characters in links

* docs: plan for keeping trailing "_" and "!" in links
2026-05-13 16:45:39 +01: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
sh e63c403623 simplex-chat-python: add python library (#6954)
* docs: simplex-chat-python design and implementation plan

* bots: Python wire types codegen

* simplex-chat-python: package scaffold

* simplex-chat-python: native libsimplex loader

* simplex-chat-python: async FFI wrappers

* simplex-chat-python: ChatApi with 49 api methods

* simplex-chat-python: Bot class with decorators and dispatch

* simplex-chat-python: install CLI, example bot, README

* simplex-chat-python: audit fixes

* bots: regenerate API docs and types

Catches up the markdown, TypeScript and Python codegen outputs with two
upstream schema changes:

- APIConnectPlan.connectionLink became optional (from sh/python-lib audit
  fixes); cmdString and EBNF syntax now reflect optional parameter.
- APIAddGroupRelays command and CRGroupRelaysAdded/CRGroupRelaysAddFailed
  responses added in #6917 (relay management). The TS and markdown outputs
  were regenerated when #6917 landed but the Python types module only got
  the new entries with this regeneration.

* core: refresh SQLite query plans after relay_inactive_at migration

The M20260507_relay_inactive_at migration (#6917 / #6952) shifted the
query plans that 'Save query plans' verifies. Regenerated via the test
that owns those snapshots; no behavioral change.

* bots: keep APIConnectPlan connectionLink as required parameter

The prior audit-fixes commit changed the syntax expression to `Optional ...`
because the Haskell field is `connectionLink :: Maybe AConnectionLink`.
That misrepresents the API contract: the `Maybe` is purely an internal
signal for link-parsing failure (the handler returns `CEInvalidConnReq`
on `Nothing`), not API-level optionality. Callers MUST always pass a
connection link.

Revert the syntax expression to `Param "connectionLink"` and add a
comment so the intent is preserved next time someone audits.

Regenerates COMMANDS.md, commands.ts and _commands.py to match.
2026-05-12 12:32:01 +01:00
Narasimha-sc eb4f601c8b core: keep whitelisted query parameters when removing link tracking (#6965)
* core: keep whitelisted query parameters when removing link tracking

In safe mode, "remove link tracking" stripped any query parameter whose
name started with a known tracking prefix in qsSafeBlacklist, ignoring
qsWhitelist. So "list" (e.g. YouTube playlist links) was dropped because
"li" (LinkedIn) is a prefix of it, and github's "ref" was dropped too.
Make the safe-mode filter consult the whitelist, like the other branches.

* docs: plan for keeping whitelisted query parameters when removing link tracking

Design doc for the safe-mode sanitizeUri change (PR #6965): why "?list=" was
stripped from YouTube links, the root cause (safe mode ignoring qsWhitelist),
the fix, what it does/doesn't change, and alternatives considered.
2026-05-12 10:11:26 +01: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