Commit Graph
434 Commits
Author SHA1 Message Date
Anton Iakimov a72edc23e2 i 2026-08-27 17:24:52 +03:00
Anton Iakimov 49cfd65ce3 i 2026-08-27 16:11:09 +03:00
Anton Iakimov dc7549cc14 i 2026-08-27 15:32:28 +03:00
Anton Iakimov 4159cf3175 i 2026-08-27 13:56:34 +03:00
Anton Iakimov 5ed8a54e2f i 2026-08-27 13:20:47 +03:00
Anton Iakimov 83ded9261e i 2026-08-27 13:19:13 +03:00
Anton Iakimov f4841218dc fixes 2026-08-27 13:12:35 +03:00
vedran 50e12af8b5 ci(@e2e): dynamic waku fleet ports with scanner
Replace static port mapping with ephemeral Docker ports and a
scanner script that discovers host-mapped ports at runtime,
generating the fleet config dynamically. This removes the need
for a lock on Linux (parallel E2E runs per agent). Windows
keeps the lock due to GUI/Squish constraints.
2026-08-19 10:33:35 +02:00
Anastasiya be3c566e16 fix(@ci): move keycard e2e to top-level parallel in nightly 2026-08-18 19:46:51 +03:00
Anastasiya ef5421450b feat(@ci): run keycard e2e in nightly against a simulated-keycard build 2026-08-18 18:14:30 +03:00
marko d19e2e614f feat(ci): change S3 storage from DO to hetzner
Referenced issue:
* https://github.com/status-im/infra-ci/issues/282

Signed-off-by: markoburcul <marko@status.im>
2026-08-18 15:03:38 +02:00
Anastasiya 0f49c7a9da feat(@ci): extend benchmarks job to support PRs and releases 2026-08-15 09:47:22 +03:00
Siddarth Kumar f60347174e ci: add flatpak to nightly and releases 2026-08-14 15:46:32 +05:30
Anastasiya b99af5c386 fix(keycard): make packaged simulator work on Linux and Windows 2026-08-13 10:41:26 +03:00
Siddarth Kumar c1cb06ce3a ci: use qt image with SDK 36 2026-08-12 14:49:17 +05:30
Siddarth Kumar 6eb13174d0 android: bump SDK to 36 2026-08-12 14:49:15 +05:30
Siddarth Kumar bd70bc3577 chore(ci): bump macos jenkins job timeout to 45 minutes
Lately we have observed many macos jobs hitting the timeout limit of 30
minutes.
2026-08-11 17:43:33 +05:30
Siddarth Kumar 6344a1c510 android: make e2e job manual
currently the android e2e job needs 4 device runners and we have only 5.
This means other android e2e jobs will just hold a jenkins executor till
the previous E2E job has finished.
https://ci.status.im/job/status-app/job/e2e/job/prs-android/
This was causing a massive queue of jobs in CI.

We can enable android e2e for PRS later when we are able to handle the
traffic, this can be done by increasing the number of runner devices,
modifying the tests to use less runners possibly just rely on the 1
runner OR just speeding up the tests themselves.
2026-08-11 17:01:45 +05:30
Anastasiya 71a8208458 chore(@ci): allow launching keycard tests in manual jobs for linux and windows 2026-08-07 16:06:15 +03:00
Siddarth Kumar a52c325580 fix(ci): add user in container to docker group at runtime
To fix errors like these that happen on newer Ubuntu 24.04

  [2026-08-05T07:43:07.967Z] + docker compose -p e2e-fleet -f
docker-compose.waku.yml up -d

  [2026-08-05T07:43:07.968Z] permission denied while trying to connect
to the docker API at unix:///var/run/docker.sock

  script returned exit code 1
2026-08-05 13:41:21 +05:30
Siddarth Kumar 512bba730f ci: run windows e2e in release 2026-07-31 09:33:44 +05:30
Siddarth Kumar ea1cf12641 fix(ci): fetch PCSC,CCID from git mirror
because https://pcsclite.apdu.fr/files/pcsc-lite-2.2.3.tar.xz is 404 and
so was the CCID url
2026-07-31 09:33:12 +05:30
Siddarth Kumar d913c86d18 fix(ci): bump docker image for flatpak
because https://pcsclite.apdu.fr/files/pcsc-lite-2.2.3.tar.xz is 404 now
2026-07-31 09:33:11 +05:30
Siddarth Kumar 74b1e11412 ci: allow to override status-go reference 2026-07-31 09:32:37 +05:30
Alex Jbanca 14beb39d89 ci: raise nim-tests timeout to 35 minutes
The job runs the full bench suite and was already brushing the 20-minute
ceiling.
2026-07-30 14:07:32 +03:00
Igor SirotinandClaude Fable 5 f4cbae9d7f chore: bump status-go (Go 1.26 upgrade) (#21592)
* chore: bump status-go to Go 1.26 upgrade (companion for status-im/status-go#7651)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* ci: bump Jenkins agent labels to go-1.26

* chore: bump status-go

* chore: bump status-go

* chore: bump status-go

* chore: bump status-go to Go 1.26 upgrade

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-29 10:45:05 +01:00
Anastasiya 0e23fd3cc3 chore(@ci): fix benchmark job log path 2026-07-17 23:11:07 +03:00
Anastasiya 59927250c5 chore(@ci): update artifacts paths 2026-07-17 21:19:48 +03:00
Mag. df6fc0f688 ci(e2e-android): provide the wallet test seed to the e2e job (#21482)
* ci(e2e-android): provide the wallet test seed to the e2e job

The wallet-send smoke (#21420) skips unless WALLET_TEST_USER_SEED is
set, and the Android job never sets it. Bind the existing
wallet-test-user-seed credential, as the desktop e2e jobs already do.

Assisted-by: Claude (Anthropic)
2026-07-14 11:29:39 +01:00
Anastasiya 11fc7a0ff4 chore(@ci): if benchmark child job fails, show it is as failed in combined job 2026-07-09 09:50:25 +03:00
Siddarth Kumar 3db8873f8e ci: bump jenkins lib for klipy api key 2026-07-05 17:35:58 +05:30
Sale Djenic 8d52388e31 feat(keycard): runs the app against simulated keycard
Behind the compile-time USE_SIMULATED_KEYCARD flag (off by default, so
production is unaffected), the app drives a real Status Keycard applet
running in jcardsim instead of a physical reader — enabling keycard e2e
and manual testing without hardware.

- Bump status-keycard-qt (SimulatedChannelBackend + test-only KeycardTest*
  C API) and nim-keycard-go (matching bindings), both gated by the flag.
- Add KeycardTestController (Nim) and the KeycardSimulatorController window
  to start the simulator and create/insert/remove empty or seed-loaded cards.
- Wire USE_SIMULATED_KEYCARD through Makefile and CI, with a per-mode
  nimcache so toggling the flag rebuilds cleanly.

Closes #20305
2026-07-03 10:53:03 +02:00
Alex Jbanca 160aae0e24 fix: llvm dependency 2026-06-29 21:41:48 +03:00
Anastasiya bf03eda806 chore(@ci): do not select benchmark tests on linux 2026-06-24 17:29:34 +03:00
Anton Iakimov 6d67163980 ci: keep less upstream jobs artifacts 2026-06-23 13:00:14 +03:00
Sale Djenic 3bd3c4b7a1 refactor(new-keycard-approach): remove status-keycard-go submodule and update references to reference to status-keycard-qt library
- Deleted the status-keycard-go submodule from .gitmodules and Makefile.
- Updated config.nims to reference STATUSKEYCARD_QT_LIBDIR instead of STATUSKEYCARDGO_LIBDIR.
- Adjusted build scripts and feature flags to remove dependencies on status-keycard-go.
- The code aligned.
2026-06-22 13:48:45 +02:00
Lukáš Tinkl 7aa48614f5 chore: update translations and enforce TS checks in ui-tests
- make the checks for updated (and not included) TS files mandatory from
now on
- Qt 6.9 had a bug in that it would sometimes miss some TS files
changes, fixed under 6.11, so make the check mandatory again
- fix a source string error
2026-06-22 11:49:24 +02:00
Siddarth Kumar b2e589b77d flatpak: init setup 2026-06-18 19:43:21 +05:30
marko b1aab2d32b fix(ci): fix machine selection for windows e2e
Signed-off-by: markoburcul <marko@status.im>
2026-06-03 15:07:06 +03:00
d91f29f292 chore: cherry-picked commits from 'release/2.38.x' into master (#21035)
* chore: force build

* fix(EphemeralNotifications): Suppress message ephemeral toasts

Prevent chat message notification types from being added to the  ephemeral notifications model shown in AppMain.

Message toasts are currently considered too noisy for the in-app experience, so NewMessage, NewMessageWithPersonalMention, and NewMessageWithGlobalMention are skipped until their usefulness is reassessed.

Fixes #20877

* fix: Android connectivity issues

Fixing multiple deadlocks on instable connectivity and on app restarts.

- go-waku deadlocks and peer reconnection storm fixed by https://github.com/logos-messaging/logos-delivery-go/pull/1302. This issue was deadlocking the messenger and any client restart would end-up in the same deadlock.

- status-go filters the connection change and propagates only when the state actually changes https://github.com/status-im/status-go/pull/7447. This would trigger a peer reconnection storm with lots tens of changes on app kill/app start.

- Handle dns failure at start-up, leaving the clients with no lightpush peer. App should start now with more peers. Send message should work from the start. https://github.com/status-im/status-go/pull/7447

- Make nim's connectionChange no-op on android. The connectionChange is managed by the android service itself since the service is persistent and the client is not.

- Add a destruction watchdog for the android activity. If qt's onDestry blocks for more than 3 seconds we'll forcefully kill the app. Otherwise it can deadlock, making app restart impossible.

* fix(MessageView): unbreak opening URLs when clicking on a text message

- use a StatusTextArea as the internal part (renderer) of the
StatusTextMessage and make it always enabled (disabling prevents the
URLs from being opened)
- by using a (Status)TextArea instead of a TextEdit, we can handle the
context menu events correctly w/o disabling the edit control

Fixes #20894

* fix(StatusMessage): unbreak opening chat image preview

- on touch screens, the `button` is often `Qt.NoButton`
- also fixup opening the image context menus; on touch screens, the
Menu.popup() needs a point position to open at the exact point the user
(long)pressed

Fixes #20897

* fix: reopen keyboard (#20947)

* ci: skip fdroid for release

* fix: handle shutdown process to avoid race conditions - more appropriate

- Added a global singleton instance for QGuiApplication to manage application lifecycle.
- Replaced direct quit calls with singletonInstance.application.quit() for consistent application termination.

* fix(Chat): Adjust chat lists margins and scrollbar spacing

1. Adjust 1:1 chat list margins and scrollbar spacing
2. Align community channel list margins and scrollbar spacing
3. Align member list margins and scrollbar spacing

- Sets a thinner scrollbar width matching the Activity Center list pattern
- Adds left content padding based on the swipe indicator width plus the standard minimum margin
- Reserves right padding for the scrollbar and a small gap so delegates do not overlap it
- Keeps the chat list geometry driven by `StatusScrollView` padding instead of manual child offsets
- Refines chat list spacing to improve visual balance and consistency.

Fixes #20593

* fix: IOS push notifications

* fix: back button close the app (#20969)

* fix(browser): android connector  (#20885)

* fix(browser): per-tab ConnectorBridge and webchannel

* fix state correctness (connected flag)
* fixes OpenSea sign-in failing when another dApp tab (e.g. hub) is open
* fix stale listeners when reloading a page

Fixes #20602

* chore: tests

* fix(browser): route disconnect through connectorController

fix(browser): make status user-scripts idempotent on same-URL reload

fix(dapps): preserve connectorId for ConnectDAppModal disconnect

fix(browser): reload via ensureLoaded + native reload

* fix: assets page remains empty for ~15s for new user with 0 balances

- Added a `loading` property to the `AssetGroupItem` type to track balance fetching status.
- Updated `BalancesModel` to include loading state in data retrieval.
- Modified `onAllTokensBuilt` to set loading state based on balance errors.
- Loading states for balances introduced to the assets tab.

Closes: #20980

* fix[Browser] Update the new tab image

- also size-optimize some browser PNGs using `optipng`

Fixes #20601

* fix(Browser): fix closing an empty tab using a kdb shortcut

- we don't have an active WebView, so the abstract action wouldn't do
anything

* fix(Browser): opening a webpage for browsing activates the URL input field

- make a distinction between opening a new tab for viewing, and an empty
one (where we actually do want to start entering the URL)

Fixes #20656

* fix(Browser): fix closing the DevTools using its own close button

- don't break the settings binding, and update the internal action
properly

* fix(StatusBaseButton): fix setting explicit icon size from outside

- don't take the value from `d.iconSize` which is precomputed, make it
possible to set it properly via `icon.width/height`

* fix(StatusBaseButton): rely on the pointer hover handler also for tooltips and text color

- that way we don't get spurious hover events on touch

* fix(StatusDialogHeader): use discrete corner radii

- in Qt 6.11, we can set the radius on an individual rectangle corner,
no need to create an extra fake Rectangle

* fix(Browser): transparent favicon bleeds outside circle container

- no need to set the border here at all

Fixes #20683

* fix(Browser): minor browser UI fixes

- increase font sizes and spacings
- use default corner radius
- element sizes upped to 44, icon sizes to 28
- use the standard SearchBox component
- increase the webpage preview size

Fixes #20443

* fix(Browser): try to active OSK when editing the URL

Fixes #20891

* fix(Browser): disable IME for FindBar

- adjust the flags to make it more privacy oriented

* fix(Browser): update the New Tab illustrations

- also add a dark variant

Fixes #20601

* chore(Browser): always open a new tab with the "+" button

* chore: remove `suppressKeyboardResize` for the Browser section

- we `freeze` the native WebView when there's an active popup/modal

Fixes #20967

* fix: mobile navigation to subsections

Fixing broken bindings

* fix: persist push notifications settings

Was using the wrong persist key

* Release 2.38.0 RC2

* chore: tag version 2.38 RC2

* chore: use a real token image that is coming from the token lists instead of locally stored images

Using images from the token lists displaying any token is safe, while using locally stored images
requires adding new icons for new tokens and delivering new builds, otherwise tokens may appear
using incorrect image or be represented by their names (named icon, capital first letter).

* fix: Allow navigating to the same chat

* StatusChatInput: proper handling of attached images removal

Closes: #20928

* StatusChatInput: minor sizing alignments

Closes: #20570
Closes: #20495

* Chat view: text wrap for system label

Closes: #20976

* StatusModal: StatusModal footer layout improved

The sizing via background implicit height was not taking into account
potential safe area margin. Now it's all calculated automatically,
with proper handling of safe area.

Closes: #20946

* fix: SafeArea handling and bottom sheet simplifications

It elminates logical circular dependencies and binding loop warnings.

* StatusChatInput: no jumps on backspace on ios

Closes: #20898

* fix(display-name): fix editing display name is very laggy when in a comm

Fixes #20963

The problem was that we called `isDisplayNameDupeOfCommunityMember` for each character on the display name edit.

To fix it, I use a debounce on that function. I had to do the rest of the validation manually, since you cannot edit the error message from the outside if there is already a validation happening internally (it gets overwritten).

* feat(gif): add count property to gifs model (#21028)

refs status-im/status-app#20691

* chore: bump status-go

---------

Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>
Co-authored-by: Noelia <noelia@status.im>
Co-authored-by: Alex Jbanca <alexjb@status.im>
Co-authored-by: Lukáš Tinkl <lukast@status.im>
Co-authored-by: Anthony Laibe <491074+alaibe@users.noreply.github.com>
Co-authored-by: Siddarth Kumar <siddarthkay@gmail.com>
Co-authored-by: Andrey Bocharnikov <andrey.bocharnikov@gmail.com>
Co-authored-by: Michał Cieślak <michalcieslak@status.im>
2026-05-26 15:06:56 +02:00
vedran d9a1c5bc1a feat(@e2e): unify waku fleet compose for Linux and Windows
- Replace network_mode:host with bridge networking and port mapping
  so the same compose file works on both Linux and Windows
- Use dns4 service names for inter-container communication instead
  of ip4/127.0.0.1
- Add local waku fleet lifecycle to Windows E2E Jenkinsfile with
  lock and try/finally pattern matching Linux implementation
- Update SQUISH_DIR path for benchmark e2e
2026-05-07 15:55:08 +02:00
Siddarth Kumar 6e232c10d0 ios: upgrade to SDK 26 2026-05-06 08:53:30 +05:30
Siddarth Kumar a4fc11fe6b chore(ci): upgrade squish to 9.2.2 2026-04-25 07:27:48 +05:30
Siddarth Kumar c53bd145b0 chore(ci): upgrade CI to use QT 6.11.0 2026-04-25 07:27:39 +05:30
vedran 3c144ee693 fix(@e2e): use fixed compose project name and move fleet cleanup inside lock
Concurrent PR builds on the same agent create separate workspaces
(prs, prs@2, prs@3) each with a different compose project name,
causing port collisions even with the lock in place.

Fix by using `-p e2e-fleet` for all compose commands so every build
manages the same set of containers, and moving fleet teardown into
a try/finally block inside the lock to prevent race conditions with
post.always cleanup.
2026-04-23 17:13:14 +02:00
marko 967c69a36f fix(ci): add nix system path to macos and ios jenkinsfiles
Signed-off-by: markoburcul <marko@status.im>
2026-04-23 11:20:42 +02:00
vedran 1172abac21 fix(@e2e): add lock to prevent port collision between concurrent E2E runs 2026-04-20 22:25:04 +02:00
Anastasiya 0d22878ee9 fix(@e2e): better configuration to use local fleet for local tests development 2026-04-17 18:54:37 +03:00
marko 329d93fca0 fix(ci): make macos build compatible with nix-darwin
Referenced issue:
* https://github.com/status-im/infra-role-bootstrap-macos/issues/12

Signed-off-by: markoburcul <marko@status.im>
2026-04-17 09:17:36 +02:00
VedranandAnastasiya 271bcd014f chore(@e2e): use local waku fleet for linux E2E tests (#20215)
* chore(@e2e): use local waku fleet for E2E tests

Start local waku nodes via docker-compose before running E2E tests
and configure the app to use them instead of status.prod. This avoids
skewing production metrics, adding unnecessary load to prod hosts,
and generating noise in prod storage DBs.

- https://github.com/status-im/status-app/issues/20126

- https://github.com/status-im/status-go//tree/feat/fleet-override

* fix(@e2e): use host networking for local waku nodes

Switch docker-compose to network_mode:host so waku nodes
bind directly to localhost. Fixes ENR multiaddr containing
Docker internal hostnames/IPs unreachable by the app.

- Remove dns4-domain-name (caused Docker hostname in ENR)
- Use /ip4/127.0.0.1 for staticnode references
- Separate discv5 UDP ports (9000/9001
- Enable REST API for proper healthchecks
- Update fleet config JSON with correct DNS ENRs and store addr

* chore(@e2e): remove status community link from tests

---------

Co-authored-by: Anastasiya <anastasija.ig@gmail.com>
2026-04-14 14:49:26 +02:00