Commit Graph
758 Commits
Author SHA1 Message Date
spacedandy-agents-simplex 0808da23fc ci: check in the desktop smoke and Claude tests that known directory results are chats, and the note for a page of them
After joining ci_channel, the scripted search case checks in both layouts that searching its name shows the note "All results on this page are already in your chats" and no Directory row, and that a search the local list doesn't match shows ci_channel as a chat row that opens it, not "#ci_channel" with "Join channel"; New chat shows it as a contact-style row. The Claude search test's part C expects the same.

Run: 008-dirsearch-known-chats, slice 5

[claude-test] [ci-backend]
2026-10-19 09:31:12 +00:00
spacedandy-agents-simplex ce30e9bd6c ci: check in the iOS smoke test and plan that known directory results are chats, and the note for a page of them
After joining ci_cards, the smoke test expects the note "All results on this page are already in your chats" for its name, and, in both layouts and in New chat, that a search the local list doesn't match shows ci_cards as its chat row, which opens the channel, not "#ci_cards" with "Join channel". The plan gets U4 and W12 and the new U2, the prompt describes known entries and the note, and the Claude scope runs the changed cases (Haiku 5.5, 300 turns, 3 USD).

Run: 008-dirsearch-known-chats, slice 4
2026-10-19 09:23:26 +00:00
spacedandy-agents-simplex f6f38a4122 ci: tell the iOS Claude session that a new profile copies the names server
N7 needs a profile that resolves no names, but the second profile copied the first one's names server, so names still resolved (run 39004554089).
2026-10-17 07:29:44 +00:00
spacedandy-agents-simplex a7886e4eab ci: open another chat before the desktop Claude test's name search
Desktop always lists the chat open in the right pane, so with ci_channel open its Directory row was rightly hidden and step C.3 had nothing to click (run 39001925386). Also runs the iOS names session again: that run's backend stopped when the directory could not connect to a channel's link.

[claude-test] [ci-backend]
2026-10-17 04:58:29 +00:00
spacedandy-agents-simplex 3e3e27da38 ci: scope the iOS Claude sessions to the names cases again, with the setup step fixed
One-hand: the names setup, N1-N11, the New chat cases with names and the full search in both lists, checking that a row opened from goes away; N11 uses #cinews_weekly so the top bar's N1 still finds cinews unopened. Top bar: N1, N4 and the full search on the chat list.

[claude-test] [ci-backend]
2026-10-17 04:16:02 +00:00
spacedandy-agents-simplex 868033ce68 ci: say in the iOS prompt that a server's roles show once it is used for new connections
A session found no role pickers on the names server it added, so no name resolved and the names cases were blocked (run 38993332306); a later session added the server twice.
2026-10-17 04:15:55 +00:00
spacedandy-agents-simplex b3d5fa92b7 ci: check in the desktop Claude test that a joined channel's Directory row goes away 2026-10-17 04:15:53 +00:00
spacedandy-agents-simplex 0c66b087ad ci: check in the iOS smoke test that a joined channel's Directory row goes away
The smoke test searches ci_cards by its name, joins it from its Directory row, and then expects the chat in the results and no Directory row for it.
2026-10-17 04:15:52 +00:00
spacedandy-agents-simplex 7165bb7d02 ci: base the desktop search test's part C on what the chat list lists
ci_channel's description matches "seed", so the list showed it and the step's premise was wrong; a name narrows the list instead. Desktop keeps the open chat in the filtered list, so "No chats found" can't be required while a chat is open (run 38994540038).
2026-10-17 03:01:18 +00:00
spacedandy-agents-simplex 03f488c85c ci: add joining and duplicate checks to the desktop Claude search test
Part C joins a channel from its Directory row, then checks that the joined chat is not listed again by the directory when the local list shows it, that it is when the list doesn't, the empty result, an unregistered name, and that only the Search key resolves names. The session gets 120 turns for it.

[claude-test:desktop] [ci-backend]
2026-10-17 02:20:28 +00:00
spacedandy-agents-simplex 1f702e29a3 ci: scope the iOS Claude sessions to the names cases and the full search
One-hand: the names setup, N1-N11, the New chat cases with names, the full search in both lists, G3 again, and whether a row stays next to the chat opened from it; top bar: N1, N4 and the full search on the chat list.

[claude-test:ios] [ci-backend]
2026-10-17 02:02:15 +00:00
spacedandy-agents-simplex 78be139bc8 ci: fit the iOS plan's D15 and W4 to both layouts, and time held searches in the prompt
D15 said the search bar is above the onboarding pages, which holds only with the top bar; W4 assumed a contact matches. A session tapped the pencil for G3 after the held search had already failed (app log), so the prompt asks for the action as the next command.
2026-10-17 02:02:00 +00:00
spacedandy-agents-simplex 5399b6e133 ci: scope the iOS Claude sessions to the online search plan without names
One-hand: the chat list, directory results, de-duplication, New chat and regression cases; top bar: the cases this layout draws differently. The names cases run in a separate session.

[claude-test] [ci-backend]
2026-10-16 22:36:34 +00:00
spacedandy-agents-simplex f1e4b45701 ci: give the desktop smoke test's time with the backend's searches 2026-10-16 22:36:14 +00:00
spacedandy-agents-simplex b8fab259da ci: describe the desktop search checks in the README
Runs the scripted tests of both apps with the test backend: [app-ci] [ci-backend]
2026-10-16 21:02:15 +00:00
spacedandy-agents-simplex 049cff88c7 ci: restore the desktop Claude search test
With the test backend, the Claude job builds the app against the test directory, sets it up at the chat list and gives Claude the online search test; without it, the onboarding path stays.
2026-10-16 21:02:01 +00:00
spacedandy-agents-simplex bad6eda33d ci: point the desktop app at the test directory and restore the smoke test's searches
With the test backend, the app is built against the test directory's address, and the smoke test runs a new search case: after the backend case's checks, in both layouts, "Search in Directory" and the full search with a SimpleX name, and with the toolbar at the bottom the full search in the New chat sheet.
2026-10-16 21:01:30 +00:00
spacedandy-agents-simplex 0176a83299 ci: restore the desktop backend's search request probe
A fresh client sends the directory the search the app sends and follows the cursor to the last page: each result must arrive once with its whole image, over at least two pages. The message search stays.
2026-10-16 21:01:29 +00:00
spacedandy-agents-simplex 37616294a4 ci: describe the iOS directory search checks in the README 2026-10-16 21:01:28 +00:00
spacedandy-agents-simplex 183d0d5356 ci: restore the iOS device test plan for online search, with its prompt and scope
The Claude sessions run the online search plan again: the cases, what each session covers per layout, the prompt's directory search, names and report sections, and the session's start state after the smoke test's searches.
2026-10-16 21:01:26 +00:00
spacedandy-agents-simplex f53eb6ae87 ci: point the iOS app at the test directory and restore the smoke test's search checks
With the test backend, the app is built against the test directory's address, and the smoke test goes on to search it: the Directory header above the results and their avatars in both layouts, the chat list's cards shown while typing and hidden under the results once the profile has a conversation, and "Show more" disabled while its page loads.
2026-10-16 21:01:22 +00:00
spacedandy-agents-simplex 4dc8c357d4 ci: restore the iOS backend's search request probes for directory search
A fresh client sends the directory the search the app sends, and must find ci_group and ci_channel; then "ci seed" and "ci avatar" are followed page by page into seed.md, with each page's entries and size against maxServiceBodyLength. The message search stays. The seeded entries name the cases they serve again.
2026-10-16 21:01:17 +00:00
spacedandy-agents-simplex cbb2480b4e ci: pass the branch name to jq as an argument in the iOS artifact lookup
The branch name was part of the jq program text, so a branch named to close the string could select an artifact from a fork or another branch. Same fix as the desktop lookup.
2026-10-16 21:00:40 +00:00
spacedandy-agents-simplex c67ea513f3 ci: create the iOS backend's probe user before its first named command
A client started with -s gives that server every role, names included, only to the users that exist when it starts, so the name probe's first connect plan on a new database failed with NO_NAME_SERVERS (run 38904976359). The user is now created by a plain run first, as every other peer is and as desktop's backend does.
2026-10-16 21:00:39 +00:00
spaced4ndy 5a80713699 ci: test the desktop app on Linux runners on request, with an optional Claude session (#7736) 2026-10-16 17:34:43 +00:00
spaced4ndy 7c5b6bb3d7 ci: test the iOS app in the simulator on request, with an optional Claude session (#7737) 2026-10-16 17:33:50 +00:00
sh aaa388e570 desktop: add emoji picker (#7708)
* desktop: add emoji picker data and generator

* desktop: emoji picker in compose field

* desktop: document compose emoji picker
2026-10-16 14:34:04 +01:00
sh 489b07ff4f ci: record package releases in simplex-chat-libs (#7719)
* ci: use default registries for empty variables

* ci: drop package publish tags

* ci: record releases in simplex-chat-libs

* ci: skip recorded versions in publish plan

* nodejs: raise default test timeout for migrations

* nodejs: print download progress without console.error

* nodejs: use the default timeout in migrating core tests
2026-10-14 15:10:31 +00:00
sh f65c2da587 nodejs: lazy per-backend libsimplex download (#7543)
* ci: drop dlltool from nodejs libs release

* nodejs: download libsimplex into the user cache

* nodejs: load libsimplex at runtime per backend

* support bot: select db backend with --db

* python: match backend switch error text

* nodejs: download prebuilt add-on at runtime

* ci: build nodejs add-on for libs release

* calculator bot: load libs and add-on in image

* support bot: document add-on override

* nodejs: keep worker test output free of colors

* nodejs: verify sha-256 of downloaded assets

* python: pin core libs release with sha-256

* ci: add packages release script

* ci: release nodejs add-on and open release PR

* ci: publish packages after release PR

* nodejs: keep npm from building the add-on

* calculator bot: build the add-on in the image

* ci: merge package release workflows

* ci: open release PR when publishing fails

* ci: build the add-on with node-addon-api only

* ci: skip publishing in a called packages workflow

* ci: update package release actions to Node 24

* nodejs: fix receive test timeout

* ci: test packages on pull requests

* nodejs: reuse the database in the close stress test

* ci: keep failed package tests from hanging

* ci: skip preset server tests

* ci: plan package builds from the changes

* ci: test packages with a given libsimplex

* ci: test packages with libsimplex of core changes
2026-10-14 09:53:53 +01:00
Evgeny Poberezkin 9711dcfc9c core: 7.1.0.11 (simplexmq 7.1.0.11) 2026-10-11 23:01:35 +01:00
EvgenyandEvgeny @ SimpleX Chat 64aa2825d5 core: release core library to simplex-chat-libs every time cabal version changes (#7687)
* core: release core library to simplex-chat-libs every time cabal version changes

* implement

* test build

* update libs release

* test library release

* create release commit, so the date is correct

* rework to create release in advance in maybe-release job

* remove test build

* move postgresql job back

* test build

* remove test build

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-10-11 22:01:22 +01:00
EvgenyandEvgeny @ SimpleX Chat 1053e9fb5c core: use simpler agent api (#7685)
* core: use simpler agent api

* simplexmq

* simplexmq, plan

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-10-10 23:30:31 +01:00
EvgenyandEvgeny @ SimpleX Chat 2e56d32b52 core: badge presentations in profiles (#7573)
* badge presentation in groups

* fix tests

* badge presentations in profiles

* update simplexmq

* change types

* badge profile presentations

* improvements

* remove proof from cards, send owner public key for channel to relay

* add test

* merge migrations

* update

* prevent fallback to PHTest

* fixes

* many fixes

* fixes

* fixes

* cleanup

* improve

* query plans

* fix test

* diff

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-10-10 17:48:45 +01:00
EvgenyandEvgeny @ SimpleX Chat 96970373b0 core: add status when switching queue (#7664)
* core: add status when switching queue

* fix

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-10-08 16:31:29 +01: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 Poberezkin 680790695e core: update simplexmq 2026-10-05 11:45:16 +01:00
Evgeny Poberezkin 6b596c0c35 Merge branch 'stable' 2026-10-03 08:05:19 +01:00
Evgeny Poberezkin 93910b80e9 core: 7.1.0.9 (simplexmq 7.1.0.10) 2026-09-30 14:09:11 +01:00
sh 4d0ffbd3e9 calculator bot: add docker setup (#7606) 2026-09-30 08:50:29 +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
SimpleX Chat b3907c9de7 7.0.3: android 381, desktop 164, ios 359 2026-09-26 14:28:35 +00:00
Evgeny Poberezkin 800f76cd6c core: 7.1.0.8 (simplexmq: 7.1.0.9) 2026-09-26 13:48:22 +01:00
Evgeny Poberezkin 3ed4511e80 core: update simplexmq 2026-09-26 12:53:17 +01:00
EvgenyandEvgeny @ SimpleX Chat 0ef0db8ad7 core: fix races when sending and receiving files (in tests, or when server is very fast) (#7584)
* core: fix races when sending and receiving files (in tests, or when server is very fast)

* update simplexmq

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-09-25 15:12:31 +01: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
EvgenyandEvgeny @ SimpleX Chat 23136f1cd5 core: update agent API for connections (#7574)
* core: update agent API for connections

* update simplexmq

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-09-23 21:29:41 +01:00
Simplex Operations faedb0328e core: 7.1.0.7 (simplexmq 7.1.0.8) 2026-09-19 11:39:26 +00:00
Evgeny Poberezkin 25c5b3cdfd Merge branch 'stable' 2026-09-19 12:21:53 +01:00
sh 683fd67555 scripts: re-init submodules in reproduce builds (#7508) 2026-09-19 12:19:45 +01: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