Commit Graph
984 Commits
Author SHA1 Message Date
Evgeny @ SimpleX Chat 8be9ad8d03 Merge branch 'master' into ep/profile-badges 2026-10-09 07:20:50 +00:00
EvgenyandEvgeny @ SimpleX Chat f924d233e4 core: fix encoding for name proof (#7672)
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-10-09 07:48:04 +01:00
EvgenyandEvgeny @ SimpleX Chat f2b3fe385c core: remove legacy field to support contact connections in groups (#7671)
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-10-09 07:00:27 +01:00
EvgenyandEvgeny @ SimpleX Chat 9c9c86f9c0 core, ui: fix profiles, add error alerts (#7663)
* core, ui: fix profiles, add error alerts

* simplify

* query plans

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-10-08 22:53:59 +01:00
EvgenyandEvgeny @ SimpleX Chat 64d68ff710 core: fix test (#7666)
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-10-08 17:11:46 +01:00
EvgenyandEvgeny @ SimpleX Chat 0c1ffa65bc core: group fixes/improvements (#7660)
* core: group fixes/improvements

* Large messages dropped by relays and hosts (the same 15602 limit was applied, without accounting for forwarding header)
* Members below v18 did not receive forwarded messages or history in p2p groups.
* Join confirmations near the size limit could fail.
* SMP servers are limited to 2 host names each.

* simplify

* remove legacy forwarding and history support

* only restrict p2p groups

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-10-08 15:06:18 +01:00
Evgeny @ SimpleX Chat 9685c3e1bd fixes 2026-10-08 10:51:41 +00:00
Evgeny @ SimpleX Chat ccd6218dc4 fixes 2026-10-08 09:03:57 +00:00
Evgeny @ SimpleX Chat 6e505952b2 Merge branch 'master' into ep/profile-badges 2026-10-08 08:58:38 +00:00
Evgeny @ SimpleX Chat 0f6b833125 many fixes 2026-10-08 06:42:03 +00:00
EvgenyandEvgeny @ SimpleX Chat df95de8a2c tests, fix: execute in parallel, send connected events after creating chat items, fix race when merging multiple members to one contact (#7500)
* tests: execute in parallel

* remove race in terminal

* fix some tests

* stop chat controller on exit

* fix more tests

* fix tests

* query plans

* update simplexmq

* update direct-sqlcipher

* fix tests

* query plans

* ios: update core

* fix tests

* update simplexmq and direct-sqlcipher, fixes

* simplexmq

* update simplexmq

* parallel channel tests

* update tests

* fix tests

* fix tests

* query plans

* fix test

* more tests in CI

* use ram drive in CI

* fix tests, fix directory deleting voice file before it is uploaded

* fix query

* fix query to use index

* link contact and channel owner profile when connecting via a signed link

* update simplexmq, fix ghc 8.10.7

* fix tests

* avoid double stop

* query plans

* fix more test races

* more test fixes

* fix queries

* fixes

* more fixes

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-10-07 08:12:02 +01:00
Evgeny @ SimpleX Chat 1d148109d8 Merge branch 'master' into ep/profile-badges 2026-10-05 11:08:31 +00:00
Evgenyandshum b79223fe5c core: call media key HKDF, expire stale calls (#7642)
* core: call media key HKDF, expire stale calls

* core: expire stale calls in bulk SQL

* core: reduce call tests

* core: remove periodic call cleanup

* core: expire calls with DELETE RETURNING

* core: skip call item update when none expired

---------

Co-authored-by: shum <github.shum@liber.li>
2026-10-04 18:44:52 +01:00
1a969a6cb9 core, ui: remove database backups after key changes (#7628)
* core, ui: remove database backups after key changes

* ui: delete database backups on chat start without delaying encryption marker reset

Keeping encryptionStartedAt set until chat start made DatabaseErrorView show
"The attempt to change database passphrase was not completed" with a Restore
button after every successful passphrase change when the passphrase is not
stored. Restore the marker handling from master and delete backups
unconditionally after chat starts.

* another flag

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
Co-authored-by: Narasimha-sc <166327228+Narasimha-sc@users.noreply.github.com>
2026-10-03 16:56:58 +01:00
EvgenyandEvgeny @ SimpleX Chat 80f8757449 core: remove .exported db files when database is removed (#7615)
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-09-30 10:09:18 +01:00
sh b1dc25dc3e badges: service group with multi-use codes (#7578)
* core: cancel the chat callback on interrupt

* badges: add multi-use codes

* badges: add the managed group

* badges: document multi-use codes and the group

* core: sign test badges with whole-second expiry

* badges: rework tracker and reply texts
2026-09-30 08:48:57 +01:00
EvgenyandEvgeny @ SimpleX Chat be39a42121 core: limit the number of skipped keys during remote access (#7622)
* core: limit the number of skipped keys during remote access

* simplify

* core: restrict body size for XRCP commands and responses, limit decompressed size (#7616)

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

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-09-30 07:16:52 +01:00
EvgenyandEvgeny @ SimpleX Chat 8b804a4fba core: restrict body size for XRCP commands and responses, limit decompressed size (#7616)
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-09-29 23:01:33 +01:00
EvgenyandEvgeny @ SimpleX Chat e863ee4c27 core: limit depth of forwarded messages (#7614)
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-09-29 21:56:03 +01:00
EvgenyandEvgeny @ SimpleX Chat a12552d427 relays: remove of files with base64 padding in the name, log errors (#7611)
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-09-29 19:22:25 +01:00
Evgeny @ SimpleX Chat 6b3695b339 Merge branch 'master' into ep/profile-badges 2026-09-29 10:12:21 +00:00
Evgeny @ SimpleX Chat 4a2243c7fb add test 2026-09-29 10:12:02 +00:00
Evgeny @ SimpleX Chat 4bdeb68cc5 remove proof from cards, send owner public key for channel to relay 2026-09-27 17:00:16 +00:00
EvgenyandEvgeny @ SimpleX Chat 643a9afad6 bots: SimpleX Calculator demo bot (#7583)
* bots: SimpleX Calculator demo bot

* refactor

* use local server in test

* simplify

* icon

* simplify

* expression

* replies

* improve

* log

* update name in bot address

* @simplex-chat/type: 0.12.0

* simplex-chat nodejs: 7.1.0-beta.4.2

* update dependencies

* option to add domain to bot address

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-09-27 17:20:40 +01:00
Evgeny @ SimpleX Chat 867949d2aa improvements 2026-09-27 12:42:45 +00:00
Evgeny @ SimpleX Chat 25ec817127 Merge branch 'master' into ep/profile-badges 2026-09-26 18:57:39 +00:00
Evgeny @ SimpleX Chat 754bc5e88a badge profile presentations 2026-09-26 12:11:13 +00:00
sh 5ef9080c09 badges: stop skipped-invoice log flood (#7591)
* badges: fill skip log in cap test without logging

* badges: aggregate foreign invoice skip warnings

* badges: document dedicated payment store
2026-09-25 19:52:13 +01:00
Evgeny Poberezkin 363260a4f8 Merge branch 'master' into ep/profile-badges 2026-09-25 13:38:24 +01:00
Evgeny @ SimpleX Chat 8605d6efb2 change types 2026-09-25 12:37:13 +00:00
Evgeny @ SimpleX Chat f6e7f4fe17 badge presentations in profiles 2026-09-25 10:22:06 +00:00
19e70faeec badges: webapp feature branch (#7548)
* badges: webapp (#7433)

* badges: service migrations, store and catalog

* badges: BTCPay provider and settlement poller

* badges: web listener and /api endpoints

* web: checkout single-page app

* badges: tests and BTCPay fixtures

* badges: README and ini reference

* badges: fix hex16 build on GHC 8.10.7

* badges: Stripe card lane

* badges: fix Stripe card checkout, add theming

* badges: add a discount row to the order summary

* badges: site navbar, embedding, theme, Forget move

* badges: use SB code prefix in web checkout

* badges: rename sxb app namespace to sb

* badges: embed checkout nav via site; keep original app navbar

* badges: post iframe height, apply site background when embedded

* badges: embed dark surfaces, steadier iframe height

* badges: hide app footer when embedded

* badges: size embedded body to content, not viewport

* badges: declare color-scheme to stop reload flash

* badges: fade shell in on load, no reload blank

* badges: prerender app shell into index.html

* badges: pre-paint theme, hide shell on deep reload

* badges: logo returns to landing client-side

* badges: embedded wizard back, buy-a-code, resume

* badges: signal app-managed screens, resume across reload

* badges: rebuild wizard history on deep load so Back walks it

* badges: carry welcome-page height as the iframe floor

* badges: keep selection on Buy a code; rename to Your codes

* badges: read web shell as UTF-8, not locale

* badges: resume the exact paid order after Stripe card redirect

* badges: move docker deploy under scripts

* badges: add serve_webapp toggle and webapp export

* badges: wire split webapp deploy in docker config

* badges: quiet agent logs by default

* badges: resume card redirect in the embedded frame

* badges: migrate Stripe adapter to PaymentIntents

* badges: correct Stripe restricted key scopes in ini example

* badges: card via Payment Element and PaymentIntents

* badges: fix stale Checkout Session wording in Stripe adapter

* badges: fix stale CheckoutActions reference in card comment

* badges: order shell stylesheet before bootstrap script

* badges: remove development card stand-in

* badges: theme the Stripe card form with the site palette

* badges: exclude web from the Haskell build stage

* badges: unify invoice cancel and mark canceled

* badges: default log level to info

* badges: unify closed-invoice buy-again button

* badges: mute agent connection logs at info level

* badges: show purchase time in local timezone in Your codes

* badges: log service events on own channel, quiet agent

* badges: fold service migrations into one baseline

* badges: run compose on postgres over host network

* badges: use high-res hero art

* badges: add web CI to catch stale builds

* badges: rebuild web shell from committed source

* badges: normalize invoice-code link and columns

* badges: drop unused columns, rename index

* badges: note deferred receipt_hash in migrations

* badges: apply code-review fixes

* badges: reduce comments across service and web

---------

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

* badges: improve web page (#7546)

* badges: improve web page

* improve layout

* improve layout

* fix

* small changes

---------

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

* badges: read one issuer key from the ini

* badges: move and group the service tests

* badges: service fixes (#7567)

* badges: match the redeem error wording in tests

* badges: drop unused imports in the bot tests

* badges: cancel Stripe orders when they expire

* badges: correct the Stripe config and docs

* badges: refuse to revoke a redeemed code

* badges: make the fake Stripe cancel like Stripe

* badges: limit replayed webhook deliveries

---------

Co-authored-by: sh <37271604+shumvgolove@users.noreply.github.com>
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
Co-authored-by: shum <github.shum@liber.li>
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
2026-09-25 09:01:51 +00:00
Evgeny @ SimpleX Chat 11ecf0b3e3 Merge branch 'master' into ep/profile-badges 2026-09-24 11:32:45 +00:00
Evgeny @ SimpleX Chat b454b735db fix tests 2026-09-24 11:31:55 +00:00
EvgenyandEvgeny @ SimpleX Chat 64014cd8b0 tests: stabilize (#7576)
* tests: stabilize

* query plans

* fix test

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-09-24 12:30:31 +01:00
Evgeny @ SimpleX Chat d87e12fd1d Merge branch 'master' into ep/profile-badges 2026-09-24 09:54:01 +00:00
EvgenyandEvgeny @ SimpleX Chat 50b0d8cf93 tests: fix race conditions (#7579)
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-09-24 10:14:14 +01:00
Evgeny @ SimpleX Chat 7f55e5d5c4 Merge branch 'master' into ep/profile-badges 2026-09-24 07:12:19 +00:00
EvgenyandEvgeny @ SimpleX Chat 9a9ce70b2f core: fix connecting via prepared connection with contact card (#7575)
* core: fix connecting via prepared connection with contact card

* simplify

* merge transactions

* update query plans

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-09-24 08:11:29 +01:00
EvgenyandEvgeny @ SimpleX Chat 3af6e2abfe core: store extended contact and group preferences, for forward compatibility (#7506)
* core: store extended contact and group preferences, for forward compatibility

* simiplify

* fix

* fix bot api types

* query plans

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-09-23 23:25:20 +01:00
Evgeny @ SimpleX Chat 84e627439a badge presentation in groups 2026-09-23 17:50:31 +00:00
spaced4ndy 150897d637 core, ui: alert the user when badge renewal is failing (#7532) 2026-09-22 12:55:08 +00:00
sh c8f20bcc91 core, libs: configurable queue size, library fixes (#7542)
* core: add chat_migrate_init_queue FFI export

* bots: fix BadgeServiceErrorCode API type

* nodejs: pass required command fields

* nodejs: fix migration error types

* nodejs: install libsimplex from SIMPLEX_LIBS_DIR

* nodejs: add queue size option

* nodejs: regenerate docs

* python: add queue size option

* bots: pass incognito in APIConnect

* nodejs: accept documented success responses

* python: accept documented success responses

* nodejs: dispatch each bot message once

* nodejs: fix startChat events loop lifecycle

* nodejs, python: parse multi-line bot commands

* nodejs: fix file buffer handling in addon

* nodejs: keep events loop when chat stop fails

* python: fix send_and_wait race, load lib off loop

* python: make queue size export optional

* nodejs: receive events on a dedicated thread

* nodejs: release haskell thread after receive

* python: receive on a dedicated thread per chat

* python: test receive shutdown order

* nodejs: one receive thread per chat controller

* nodejs: harden receiver shutdown and tests

* nodejs: stop chat before closing store

* python: stop chat before closing store

* nodejs, python: harden close regression and retry

* python: free results with ucrt on windows

* nodejs: enable c++ exceptions on mac and windows
2026-09-19 12:18:46 +01:00
EvgenyandEvgeny @ SimpleX Chat edd44c5d54 test: fix compilation in ghc8.10.7 (#7541)
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-09-19 08:43:49 +01:00
EvgenyandEvgeny @ SimpleX Chat c8466b2010 core: refactor groups (#7503)
* core: refactor groups

* refactor

* refactor

* refactor

* refactor

* refactor

* rename

* refactor

* remove

* rename

* diff

* simplify

* relay requests

* bot types

* check useRelays

* refactor

* query plans

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-09-18 10:18:10 +01:00
spaced4ndy c7b3e362ec core, ui: badge credential details in developer tools (#7527) 2026-09-17 16:18:04 +00:00
spaced4ndy f38c7e0f2b core, ui: badge redeem errors and fixes (#7515)
- redeem errors are typed (CEBadgeRedeemError) instead of matched by text in the apps
- service timeout (A_SERVICE) decodes in the apps and offers Retry via the existing retry alert
- unexpected redeem errors show the error itself instead of a generic message
- service error codes are a typed enum in the apps (BadgeServiceErrorCode)
- CRBadgeRedeemed returns badge state, so the apps skip a second round-trip after redeem
- setBadgeAlertAcked is scoped to user_id
- badgeChanged updates non-active profiles, so other profiles' badges don't go stale
- pitch banner is not shown to a profile that already has a badge
- one badgeTypeName per platform, used by the badge screen and the badge info alert
- BadgeAlertKind and BadgeAlertPrice decode via standard JSON, no custom decoders
- dead "Support ended" title branch removed from Your Badge view
- kotlin: users from badge responses carry remoteHostId
- kotlin: redeem code field keeps the IME's cursor and composition state
- kotlin: "Get your code" shown in all flavours
- kotlin: "Don't show again" -> "Dismiss", matching iOS
- kotlin: parseBadgeCode moved next to its FFI in platform/Core.kt
- kotlin: BadgesView no longer cross-fades on badge state updates
- kotlin: section title not uppercased
- ios: redeem code field parses once per change
- ios: A_SERVICE rejected reason is not decoded
- CLI: "cannot redeem badge code: ..." with the source of the error
- comments clarified
2026-09-16 14:15:11 +00:00
brenzi 9af6fb00e6 minimal adjustment to make client compile against SMP-v22 PR (#7520)
* minimal adjustment to make client compile against SMP-v22 PR

* repin after upstream merge
2026-09-16 10:07:18 +01:00
spaced4ndy bac8d187ba Merge branch 'master' into badges 2026-09-14 17:13:58 +04:00
EvgenyandEvgeny @ SimpleX Chat 237409890e core: stop all workers on chat controller stop (#7502)
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-09-13 17:19:15 +01:00