Commit Graph
961 Commits
Author SHA1 Message Date
shum c3de4aea96 core, tests, plan: keep warp's status on a bad request 2026-08-27 10:28:27 +00:00
shum a139c4d961 core, tests, plan: harden the badge site listener 2026-08-27 10:28:27 +00:00
shum 3421107907 core, tests, plan: serve the badge site over http 2026-08-27 10:28:27 +00:00
shum 13ea3862de core, tests, plan: guard the order invoice write 2026-08-27 10:28:27 +00:00
shum 655e933c56 core, tests: web order, invoice and provider event store 2026-08-27 10:28:27 +00:00
shum 78eac1f913 core, tests: warn about a spent code only when one was sent 2026-08-27 10:28:27 +00:00
shum 946da9c5bf tests: check ledger parity on the worker's append 2026-08-27 10:28:26 +00:00
shum 7e07426e69 core, tests: give the badge timeout its own message 2026-08-27 10:28:26 +00:00
shum 67350cc25b tests, plan: cover every unstorable badge entry type 2026-08-27 10:28:26 +00:00
shum 0747316401 tests, plan: badge client and service integration 2026-08-27 10:28:26 +00:00
shum 2e44faf821 core: fix badge store haddock and tier test notes 2026-08-27 10:28:26 +00:00
shum dee9e1dba7 core, service: fix badge tier and pre-check statement 2026-08-27 10:28:26 +00:00
shum 3a55eefb33 core, plan: wire badge code redemption to service 2026-08-27 10:28:26 +00:00
shum ab2f494f70 core, plan: fix badge worker active-user leak and suspend gate 2026-08-27 10:28:26 +00:00
shum 0f70692ba6 core, plan: badge manager worker for monthly reissue 2026-08-27 10:28:26 +00:00
shum 056755fd98 core, plan: badge commands, responses and client config 2026-08-27 10:28:26 +00:00
shum 380c9b386e core: scope client badge shown-purchase to its user 2026-08-27 10:28:26 +00:00
shum 0ef7baa0b1 core: client badge store, plan: tick C1 2026-08-27 10:28:26 +00:00
shum b1c2191e25 core: fix ledger payment id type and code revocation race 2026-08-27 10:28:26 +00:00
shum 593ae1c768 core: broaden badge service test assertions 2026-08-27 10:28:26 +00:00
shum 0fd6cb24fa core: fix cached badge issue in last funded month 2026-08-27 10:28:26 +00:00
shum 42a16c4e44 core: badge service integration tests 2026-08-27 10:28:26 +00:00
shum aaeab60e1f core: badge service address publication 2026-08-27 10:28:26 +00:00
shum 89e9bf4be7 core: redeem badge codes and issue credentials 2026-08-27 10:28:26 +00:00
shum 05d4724d41 core: fix badge catalog overcharge and double-fetch 2026-08-27 10:28:26 +00:00
shum 599abb58d7 core: badge catalog rpc handler 2026-08-27 10:28:26 +00:00
shum 12829a42d0 core: bound badge throttle map to actual failures 2026-08-27 10:28:26 +00:00
shum a16695326c core: badge service rpc dispatcher 2026-08-27 10:28:26 +00:00
shum 412e5dfb48 core: badge issuer key and signing 2026-08-27 10:28:26 +00:00
shum 0c04c0ac99 test: verify advance boundary independently of its own formula 2026-08-27 10:28:26 +00:00
shum f284120410 core: fix ledger month boundary drift 2026-08-27 10:28:26 +00:00
shum 3ca33fd185 core: consolidate supporter badge test groups 2026-08-27 10:28:26 +00:00
shum a876e8a99e core: badge redemption codes 2026-08-27 10:28:26 +00:00
shum f85c7eee2b core: badge ledger transitions 2026-08-27 10:28:26 +00:00
shum 6f272acef7 core: badge service store layer 2026-08-27 10:28:26 +00:00
shum 1cb6390ce0 core: badge service config file 2026-08-27 10:28:26 +00:00
shum 89e1095842 core: guard badge offer totals and item status encoding 2026-08-27 10:28:26 +00:00
shum 552eec32ea core: badge catalog pricing and seeding 2026-08-27 10:28:26 +00:00
shum 0335c3903a core: badge service web order schema 2026-08-27 10:28:26 +00:00
shum 400d12a647 core: json instances for badge protocol types 2026-08-27 10:28:26 +00:00
Evgeny Poberezkin 78332d0c73 Merge branch 'master' into badges 2026-08-27 07:59:57 +01:00
Evgeny c14770ce51 core: fix test for aborting connection switching (pin to previous version) (#7418) 2026-08-25 13:13:16 +01:00
EvgenyandEvgeny @ SimpleX Chat 17cdef1692 core: include channel link and name when forwarding messages (#7409)
* core: include channel link and name when forwarding messages

* wip

* simplify

* add member ID

* refactor

* refactor

* refactor

* update api types

* store forward source group type

* rename

* api types

* simpler layout

* layout, translations

* refactor ios

* public

* simpler

* refactor kotlin

* padding

* padding

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-08-24 21:36:57 +01:00
ecb008b792 core, ui: auto-accept group invitations per user profile (#7377)
* core, ui: auto-accept group invitations per user profile

Add a per-profile toggle for auto-accepting group invitations, and regroup it
with the existing contact-requests setting under a single Auto-accept section
in Privacy & Security, relabelled "Contact requests in groups".

The join is fully async. processGroupInvitation already had an async accept
path, used when the invitation matches a group link the user opened:
prepareAgentJoin + createMemberConnectionAsync + joinAgentConnectionAsync,
with the outcome reported later against the CFJoinConn command id. Auto-accept
takes that same path instead of going through APIJoinGroup, so it works while
the app is closed and never blocks message processing.

An auto-accepted invitation still records a CIRcvGroupInvitation item in the
chat with the inviting contact, so there is a record of who added the user to
which group.

Two details worth noting for review:

hostContact is reported to clients only for group links. Clients respond to it
by replacing the transient host connection view with the group and removing
that chat - correct for a group link, where the contact is a placeholder, but
wrong for a plain invitation, where it is a real contact.

A resent invitation returns the existing group, because createGroupInvitation
is idempotent on inv_queue_info. The join therefore only runs while the
membership is still GSMemInvited, so a resend cannot open a second connection.

* booldef

* order

* refactor

* update translation key

* query plans

* ios: export translations

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2026-08-19 00:10:54 +01:00
Narasimha-scandEvgeny Poberezkin 0bc35fd1eb directory: identify registration owner by member id to fix incorrect de-listing (#7362)
* directory: identify registration owner by member id to fix incorrect de-listing

The leave/removed/role-changed handlers identified the registration owner by
contact id. A non-owner member can be associated with the owner's contact (via
the contact/member merge), so its departure incorrectly de-listed the group.
Compare by group member id (owner_member_id) instead, falling back to contact
id for registrations recorded before owner_member_id existed.

* fix test, always compare contact ID in owner check

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2026-08-18 22:58:56 +01:00
shandEvgeny Poberezkin cbfdf63f4b core: drop agent versions in simplexmq (#7360)
* core: adapt to dropped agent versions

* refactor

* remove comments

* api types, protocol tests

* fix test

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2026-08-18 22:50:59 +01:00
Evgeny Poberezkin 1160215570 Merge stable 2026-08-18 17:16:21 +01:00
EvgenyandEvgeny @ SimpleX Chat 5e45fe1f0e directory: only create group links after approval (#7356)
* directory: only create group links after approval

* update test

* update messages

* diff

* get group and link in one query

* reduce database reads

* better errors

* typos

* query plans

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-08-18 16:35:37 +01:00
spaced4ndy 4217c9ee84 Merge branch 'master' into badges 2026-08-14 11:31:01 +04:00
spaced4ndy 493fb9cee8 core: limit the number of messages in a batch (#7364) 2026-08-13 10:04:21 +00:00