Commit Graph
109 Commits
Author SHA1 Message Date
spacedandy-agents-simplex 4b54d79fec ci: keep the Command Line Tools on the macOS 26 SDK, which Xcode 26.6's linker can read [claude-test]
On runner image 20261013.0424.1 the Command Line Tools' MacOSX.sdk points to a macOS 27 SDK, and the backend build's links failed on it ("tapi error: malformed file … unknown architecture arm64e.x1-macos") although DEVELOPER_DIR selects Xcode 26.6. use-macos26-sdk.sh points it back at the MacOSX26.5.sdk installed beside it, in all three macOS jobs.

This push runs the name cases with Claude again (run 4 failed before the app was built), after the smoke test with its new checks.
2026-10-15 16:46:37 +00:00
spacedandy-agents-simplex f61bbbf49b ci: check "Show more" while its page loads in the smoke test
With the test directory stopped, the next "ci avatar" page waits 10 s before it fails. The smoke test taps "Show more" then, takes a screenshot that shows its colour, and requires it to be disabled. The smoke step gets BACKEND_DIR, so the ui helper can stop and start the directory. One layout only: the row's colour and state are the same in both.
2026-10-15 16:41:03 +00:00
spacedandy-agents-simplex 79a1f5f87d ci: run the device test plan with Claude on the runner [claude-test]
After the smoke test, claude-test.sh runs one Claude Code session (pinned 2.1.300) per layout named in claude-scope, with the plan's cases, model, turns and budget from there. A session gets only Bash for the ui helper and Read/Write/Edit in its own directory (--restricted, dontAsk, no MCP), drives the app through ui, and writes report.md with screenshots; its transcript is stream-json. The app job declares the app-sim-claude environment; only the Claude step gets CLAUDE_CODE_OAUTH_TOKEN, and it runs only on workflow_dispatch or a head commit with [claude-test]. claude-usage.sh writes each session's turns, tokens and cost (estimated at API prices) to the job summary and claude-usage.json, even when the session fails. The plan is copied from the iOS directory search run. This run: C2, D2, D7 in the one-hand UI with Haiku 5.5, to validate the harness.
2026-10-15 11:46:04 +00:00
spacedandy-agents-simplex 25c48234f5 ci: build with the default Xcode's toolchain, not the newer Command Line Tools
The macos-26-arm64 image 20261013 adds Command Line Tools 27, and links resolved system libraries in its macOS 27 SDK, which the linker rejects (tapi error: unknown architecture arm64e.x1-macos; run 38702428043). DEVELOPER_DIR points the xcrun shims that GHC and prepare-libs.sh call at /Applications/Xcode.app. The Show runner steps print the SDK in use. This run tests the backend build on the new image; core comes from run 38702428043's artifact.
2026-10-15 09:34:13 +00:00
spacedandy-agents-simplex 36c9a065d9 ci: reuse the core library and the backend from earlier runs
Every run waited for macOS runners three times (core, backend, app), even
when core and backend only restored a cache, and those caches are evicted
within hours here. A plan job on ubuntu names both artifacts after the hash
of their sources and finds them in earlier runs of this branch in this
repository (actions: read); core and backend build only when none exists, and
the app job downloads from the run that built them. Artifacts are kept 30
days; the zip caches are dropped.

This run tests: the plan job, building and uploading both artifacts under
their new names (none exist yet), and the app job downloading them; then the
directory start with -y, the seeding, and the search in the app.
2026-10-15 07:25:10 +00:00
spacedandy-agents-simplex 72e5a51294 ci: keep cabal's store in ~/.cabal so the store cache has it
setup-haskell reports ~/.cabal/store, but without ~/.cabal cabal 3.10 keeps its store in XDG directories, so the saved cache held only dist-newstyle (run 38563035327: 401 MB). CABAL_DIR is set before Setup Haskell, so its cabal update, the build and the cache path agree. build-backend.sh prints the store size before building, as build-core.sh does.
2026-10-15 07:24:53 +00:00
spacedandy-agents-simplex 2ebad19b21 ci: search the test directory from the chat list in the smoke test
The app is built with DIRECTORY_SERVICE_LINK set to the test directory's
short address (sed in the workflow). The smoke test types "ci seed", taps
"Search in Directory", accepts the first-search consent alert with "Search",
and expects the Directory results with #ci_group (Join group) and
#ci_channel (Join channel), retrying once if the search fails.

The steps now use scripts/ci/ios-sim/ui, which wraps AXe (tap by label or
value, type, wait, screenshot, compact accessibility tree) for scripts and
for an agent on the runner. Later steps get SIM_UDID and UI_OUT.

This run tests: the onboarding and typing steps on the new helper, the
consent alert, and the directory results in the app.
2026-10-14 12:20:10 +00:00
spacedandy-agents-simplex e348855a20 ci: hash only the directory service sources for the backend key
hashFiles fails on apps/simplex-directory-service/web/directory.js, a symlink to website/src/js/directory.js, which is not in the repository; the web folder is not part of the build. This run tests that the backend job computes its key and builds.
2026-10-14 12:19:46 +00:00
spacedandy-agents-simplex fe992744c7 ci: run a test directory with a group and a channel on the app runner
A new backend job builds simplex-chat and simplex-directory-service with the
server-capable configuration. The app job starts a chat relay and a directory
on the preset servers, registers and approves a group and a channel from a CLI
peer, and checks that a service request for "ci seed" finds both, before the
app is built. The app still uses the production directory link; the smoke
test is unchanged.

The cabal store cache now uses setup-haskell's store path, with a key prefix
per job, so rebuilds after Haskell changes reuse built dependencies.

This run tests: backend build, relay and directory start, registration and
approval over the preset servers, the service request, and that M2 still
passes.
2026-10-14 11:06:28 +00:00
spacedandy-agents-simplex bcef840e99 ci: build the core library and the app for the iOS simulator, run a UI smoke test
Adds the ios-sim workflow, triggered only by pushes to f/ci-ios-sim and by workflow_dispatch.

The core job builds lib:simplex-chat with cabal using the flake's iOS settings (swift JSON, client library, static roll-up archive, threaded RTS, CommonCrypto), packages it as the Hydra zip, and patches it for the simulator with scripts/ios/prepare.sh and mac2ios. The app job builds "SimpleX (iOS)" for the arm64 simulator against it and drives onboarding, the chat list and the search field with AXe, saving screenshots and accessibility trees.

This first run tests the whole pipeline, mainly whether the core library builds and links.
2026-10-13 18:36:06 +00: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 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
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 Poberezkin 78332d0c73 Merge branch 'master' into badges 2026-08-27 07:59:57 +01:00
sh ca8a7eda69 desktop: build nanohttpd from a submodule (#7396) 2026-08-20 13:43:09 +01:00
spaced4ndyandEvgeny Poberezkin 7ce2e6583e core: simplex-badge-service scaffolding (#7353)
* core: simplex-badge-service scaffolding

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* clean-up

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2026-08-08 21:00:23 +01:00
sh 602f17ecfa ci: fix windows build (#7095)
* ci: clean simplexmq submodule source dir on windows build

* core: pin simplexmq 7.0.0.1
2026-06-18 14:45:07 +01:00
08c69e3dfa ui: add asset image on create channel view; allow to choose image on create profile (#6891)
* ui: create channel picture

* more centered

* better symmetry

* less diff

* choose image on create profile

* fix padding

* fix padding, fit into screen

* fix button layout

* placeholders

* fix padding

* channel pictures

* adjust asset_dir in scripts

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
Co-authored-by: shum <github.shum@liber.li>
2026-04-27 14:00:14 +01:00
3d85480944 ui: new onboarding (#6888)
* ui: onboarding assets

* android: fix gradle version check, pass assets dir to builds

* desktop: pass assets dir to gradle builds

* ui: new onboarding (#6872)

* ios: improve onboarding

* ios version condition

* android strings

* merge keys

* refactor network conditions to old location

* ios scroll headline

* remove nav view

* kotlin: refactor network commitments page to use existing view

* remove unused keys

* update why page

* configure -> setup

* padding for app bar in why page

* fix why page

* padding

* copy translations from the website

* export localizations

* export again

* kotlin: fix why page

* fix

* import localizations

* custom layout

* padding for system bars

* paddings

* more paddings

* more padding 2

* update fonts

* fonts

* line height, padding

* paddings

* refactor notifications

* refactor ios

* notification icons in cards

* restore profile field

* padding

* desktop layout create profile

* fix

* more layout

* create profile layout

* mobile padding

* split mobile and desktop

* layout

* layout

* background

* refactor onboarding images

* use DARK theme by default

* page 3 and 4 layouts

* restructure desktop onboarding to two panes

* improve layout

* improve

* fonts, padding

* link mobile on full page

* fix, reduce noise

* change to animation

* fix animation

* refactor

* colors, animation

* import

* details

* fix padding

* fix icon

* fix

* button paddings

* accept button on terms page

* fix conditions button

* close modal

---------

Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
Co-authored-by: shum <github.shum@liber.li>
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-04-27 11:46:08 +01:00
sh a3fde4daa1 simplex-chat-nodejs: add PostgreSQL backend build support (#6845)
* simplex-chat-nodejs: add PostgreSQL backend build support

* simplex-chat-nodejs: fix postgres install command in README
2026-04-23 09:00:13 +01:00
sh 858e955afd ci: cancel stale runs, filter PR paths (#6857) 2026-04-22 09:03:15 +01:00
BarbossHack 2475a2163a scripts: pin ubuntu manifest digest hash for reproducibility (#6651) 2026-03-09 09:19:54 +00:00
sh d3a72473e9 nodejs: add and fix windows (#6581)
* simplex-chat-nodejs: adjust binding.gyp for windows

* simplex-chat-nodejs: different library linkage for windows

* simplex-chat-nodejs: remove non-moving GC in Windows

"non-moving GC is broken on windows with GHC 9.4-9.6.3" from:

https://github.com/simplex-chat/simplex-chat/blob/master/apps/multiplatform/common/src/commonMain/cpp/desktop/simplex-api.c#L11-L17

* ci: add windows to release-nodejs-libs

* simplex-chat-nodejs: same curl flags for dll.def download
2026-01-15 16:36:35 +00:00
sh 324aefef86 ci: add nodejs action (#6568)
* ci: add nodejs action

* ci: better curl flags

* ci: fix naming
2026-01-12 17:30:35 +00:00
sh e432f7a060 scripts/simplex-chat-reproduce-builds-android: add script (#6497)
* script/simplex-chat-reproduce-builds-android: initial structure

* Dockerfile.build: add dependencies

* scripts/build-android: allow setting custom vercode

* scripts/simplex-chat-reproduce-builds-android: populate functions

* Dockerfile.build: setup regular user

* Dockerfile.build: fix env

* Dockerfile.build: switch user to ubuntu

* Dockerfile.build: set USER variable

* Dockerfile.build: create ubuntu user (aarch64 doesn't have it)

* ci/build: remove permissions workaround

* Dockerfile.build: fix groupadd

* ci/build: adjust permissions before build

* Dockerfile.build: allow to dynamically set user/group

* ci/build: set uid and gid in Docker

* ci/build: remove unneeded step

* Dockerfile.build: also create /out

* sync changes, add debugging

* add verification function, fixes

* Dockerfile: add android scripts

* fixes, remove debugging

* more fixes

* fix download apk and add message at the end

* scripts/simplex-chat-reproduce-builds.sh: add user uid and gid

* fix vercode

* add logging

* refactor and make vars saner

* fixes
2025-12-20 17:19:00 +00:00
Evgeny Poberezkin 99d655f5d3 Merge branch 'stable' 2025-12-10 21:03:56 +00:00
sh 2ed76fd386 ci: execute reproducible script from tag (#6485)
* ci: execute reproducible script from tag

* ci: target our repository tags
2025-12-03 11:16:37 +00:00
sh 8ff0ccf392 ci: build simplex-chat CLI deb package (#6474)
* ci: build simplex-chat CLI deb package

* scripts/build-cli-deb: reproducible size (also actual file size)

* scripts/build-cli-deb: fix epoch

* scripts/build-cli-deb: set epoch to 1764547200
2025-12-01 10:13:18 +00:00
Evgeny Poberezkin baa5d63ca6 Merge branch 'stable' 2025-11-21 16:23:35 +00:00
BarbossHackandsh f853f84d03 ci: free up disk space before executing reproducible script (#6441)
* ci: free up disk space before executing reproducible script

* ci: use cleanup script template instead

Co-authored-by: sh <37271604+shumvgolove@users.noreply.github.com>

---------

Co-authored-by: sh <37271604+shumvgolove@users.noreply.github.com>
2025-11-17 09:06:07 +00:00
sh ff1054dab7 github/workflows: macos-13 -> macos-15-intel (#6362) 2025-10-14 09:14:52 +01:00
sh 2175db9345 github/workflows/build: disable aarch64 tests (#6192) 2025-08-16 13:14:01 +01:00
Evgeny Poberezkin d102b8a871 Merge branch 'master' into stable 2025-08-02 18:27:14 +01:00
shandEvgeny Poberezkin 06902fe678 desktop: prepare linux aarch64 (#6107)
* scripts/*: adjust to be arch independent

* github/workflows: build aarch64

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2025-08-01 20:07:52 +01:00
sh 9b3c2e6b9d github/workflows: fix reproduce-schedule (#6127) 2025-07-29 13:02:24 +01:00
sh 88538c7b07 github/workflows: fix reproduce schedule (#6075) 2025-07-16 11:41:53 +01:00
sh 4da8133faf ci: add reproducible Linux desktop builds (#5960)
* ci: add reproducible Linux desktop builds

* ci: move commands from ci to script

* scripts: switch appimage tools to simplex-chat forks (stable release)
2025-06-05 08:26:40 +01:00
sh 5351fa68d0 ci: switch to sha256 and skip 8.10.7 on release (#5837)
* ci: skip 8.10.7 on release

* ci: switch to sha256

* script/reproduce-builds: make it executable

* scripts/reproduce-builds: rename to simplex-chat-reproduce-builds

* ci: bump actions

* ci: 20.04 is deprecated

* scripts/reproduce-builds: remove Ubuntu 20.04

* docs: adjust reproduce script

* ci: skip 8.10.7 in stable or release for Linux

* ci: really skup 8.10.7 in stable or release

* ci: remove useless linux checks

* ci: remove timeout from mac tests

* ci: fix action names

* ci: setup swap for 8.10.7

* ci: bump swap to 30gb

* ci: simplify

* ci: 10 -> 3 retries

* ci: retry only in stable or release
2025-04-23 13:27:30 +01:00
sh 48b1ef764b ci: reproducible builds/refactor (#5808)
* ci: reproducible builds/refactor

* ci: fix mac desktop upload

* ci: docker shell abort on error

* scripts: add reproduce script

* ci: add new reproduce workflow

* scripts/reproduce-builds: change repo back to official
2025-04-11 23:19:24 +01:00
Evgeny 3fb09d3def core: fix types for PostgreSQL database (#5800)
* core: fix types for PostgreSQL database

* option to create schema

* use action forks
2025-04-03 16:27:40 +01:00
Evgeny c9f6f3c053 core: api and protocol support for reporting messages to group moderators (#5469)
* core: api and protocol support for reporting messages to group moderators

* moderator role

* delete mode

* remove auto-accepting conditions for SimpleX Chat Ltd

* mark as deleted locally

* ui: delete mode type

* store msg_content_tag with chat items, support moderator option on receiving side

* report API

* send reports only to moderators that support them, fail if none support

* fix tests

* test

* remove comment

* revert version

* do not build ghc8107 in stable branch

* skip job

* fix condition

* remove condition

* condition

* exit

* update
2025-01-04 18:33:27 +00:00
Stanislav DmitrenkoandEvgeny Poberezkin bda84b08a1 ci: fix mac & Windows build (#5232)
* core: 6.2.0.1 (simplexmq 6.2.0.4)

* action: fix mac build

* fix Windows

* version

* revert version change

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2024-11-23 11:41:48 +00:00
Evgeny 4f640c96d1 build: use openssl 3.0 (#5183)
* build: use openssl 3.0

* docs

* mac script
2024-11-22 18:38:49 +00:00
Evgeny Poberezkin e45a96935c ci: update website build 2024-11-14 12:16:51 +00:00
Evgeny eef1e97ecc ci: dont build when files in core do not change (#4797) 2024-08-29 13:40:55 +01:00
Stanislav Dmitrenko 535ff1d836 actions: add macos aarch64 build and fix openssl include path (#4107) 2024-05-02 21:41:15 +01:00
Evgeny Poberezkin d864603d01 website: do not build from stable 2024-04-23 00:14:02 +01:00
Evgeny Poberezkin c8c81a840b core: revert build to use two branches (#4052)
* Revert "scripts: ghc version update (#4010)"

This reverts commit 35b7f2cb1c.

* Revert "Force include hs_init_with_rtsopts (#4028)"

This reverts commit 76a33a3743.

* Revert "core: fix nix config (#4003)"

This reverts commit f8e6a78a3b.

* Revert "ci: build armv7a with 8.10.7 in the main branches (master, stable) (#3733)"

This reverts commit 0d7a32877f.
2024-04-19 21:17:22 +01:00
Evgeny Poberezkin d7f8bff957 Merge branch 'stable' 2024-04-15 11:16:33 +01:00
sh bda0917787 github: fix cla action (#4030) 2024-04-15 10:51:24 +01:00