Skip to content

fix: E2E tests timing out on CI due to uncached nix packages and missing Garnix wait - #87

Merged
gfauredev merged 28 commits into
mainfrom
copilot/add-maestro-e2e-tests-again
Mar 16, 2026
Merged

fix: E2E tests timing out on CI due to uncached nix packages and missing Garnix wait#87
gfauredev merged 28 commits into
mainfrom
copilot/add-maestro-e2e-tests-again

Conversation

Copilot AI commented Mar 15, 2026

Copy link
Copy Markdown
Contributor

E2E CI jobs were hitting the 20-minute timeout because nix run .#pagesE2eTest had to download/build large packages (ungoogled-chromium ~3.5GB, maestro, chromedriver) without any cache ready — Garnix hadn't finished building them yet when CI started. A secondary issue: the sleep 2 server readiness check was a race condition.

flake.nix

  • Fix pkgs.ungoogled-chromiumungoogled-chromium inside with env.pkgs; [...]pkgs. prefix was incorrect in this scope
  • Replace sleep 2 with a curl health check — polls http://localhost:8080/LogOut/ until ready (consistent with lighthouse job); add curl to runtimeInputs since writeShellApplication sets a strict PATH from runtimeInputs only

.github/workflows/ci.yml

  • Increase e2e-web timeout-minutes 20 → 45 — accommodates downloading large nix packages on cache miss
  • Replace lewagon/wait-on-check-action (Ruby, intermittently broken) with a gh CLI polling loop — waits up to 20 min for the Garnix pagesE2eTester check to succeed before starting nix run, so packages are served from cache.garnix.io rather than built on the runner
  • Upload artifacts on cancelled() in addition to failure() — previously a timeout produced no debug artifacts

💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Co-authored-by: gfauredev <19304085+gfauredev@users.noreply.github.com>
@gfauredev
gfauredev marked this pull request as ready for review March 15, 2026 19:12
@github-actions

Copy link
Copy Markdown

📊 Coverage Report

FilenameFunction CoverageLine CoverageRegion CoverageBranch Coverage
build/source/src/main.rs
  32.43% (12/37)
  68.20% (148/217)
  71.10% (214/301)
- (0/0)
build/source/src/models/mod.rs
  98.69% (151/153)
  99.36% (1392/1401)
  99.27% (2041/2056)
- (0/0)
build/source/src/services/android_notifications.rs
   0.00% (0/1)
   0.00% (0/2)
   0.00% (0/2)
- (0/0)
build/source/src/services/app_state.rs
   6.25% (1/16)
  12.64% (11/87)
   9.87% (15/152)
- (0/0)
build/source/src/services/exercise_db.rs
  95.58% (108/113)
  97.40% (900/924)
  97.00% (1453/1498)
- (0/0)
build/source/src/services/exercise_loader.rs
   0.00% (0/8)
   0.00% (0/71)
   0.00% (0/107)
- (0/0)
build/source/src/services/native_queue.rs
   0.00% (0/6)
   0.00% (0/37)
   0.00% (0/62)
- (0/0)
build/source/src/services/service_worker.rs
 100.00% (2/2)
 100.00% (6/6)
 100.00% (6/6)
- (0/0)
build/source/src/services/storage.rs
  70.83% (51/72)
  94.43% (441/467)
  90.86% (736/810)
- (0/0)
build/source/src/services/wake_lock.rs
 100.00% (2/2)
 100.00% (5/5)
 100.00% (5/5)
- (0/0)
build/source/src/utils.rs
  96.36% (53/55)
  95.86% (324/338)
  95.61% (501/524)
- (0/0)
nix/store/xb6lhqp1inqqvwgffqm1dfwyskddqz9c-rust-default-1.94.0/lib/rustlib/src/rust/library/std/src/sys/thread_local/native/mod.rs
   0.00% (0/2)
   0.00% (0/6)
   0.00% (0/7)
- (0/0)
Totals
  81.37% (380/467)
  90.62% (3227/3561)
  89.89% (4971/5530)
- (0/0)

@github-actions

Copy link
Copy Markdown

🚀 Lighthouse Audit

@github-actions

Copy link
Copy Markdown

❌ Maestro Web E2E Failures

📜 Maestro Console Output (Last 100 lines)
copying path '/nix/store/f857wf4sd9g2d1w9k80qi00x7jdqrd0m-gupnp-1.6.9' from 'http://127.0.0.1:37515'...
copying path '/nix/store/q4ld998gcxkq7jr5wjk4gyhsyryfpdz4-zimg-3.0.6' from 'http://127.0.0.1:37515'...
copying path '/nix/store/jr985x1ayjilh8brj0s6jv7c4rwdmzqk-libunwind-1.8.3' from 'http://127.0.0.1:37515'...
copying path '/nix/store/m1fw8l8y9ycxh5dzispbb7cwl6rra14l-python3-3.13.12' from 'http://127.0.0.1:37515'...
copying path '/nix/store/27fx8p4k6098wan3zahdbyj79ndcn03z-xz-5.8.2-bin' from 'http://127.0.0.1:37515'...
copying path '/nix/store/766hwjjk1d5hxy501p88mssmr87s4dlp-gobject-introspection-1.86.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/v42v9jm1a5v7i9b0wzgmm83jwpp1r4mn-pango-1.57.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/szbqm4b4wz2zms91vxvljndy1dy8h813-chromedriver-unwrapped-146.0.7680.75' from 'http://127.0.0.1:37515'...
copying path '/nix/store/q3f55hdd85088xx3sx98x9vmac13gdjk-libajantv2-17.5.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/2hp2kc85zapzjaj9y22jf9xgwqmlsk6m-linux-pam-1.7.1' from 'http://127.0.0.1:37515'...
copying path '/nix/store/5z16nixwwgvjrsg8cpgfpvy7qsn1y52g-lvm2-2.03.38-lib' from 'http://127.0.0.1:37515'...
copying path '/nix/store/k870vxfbxawhyx2726aygb5v5is4si4b-procps-4.0.6' from 'http://127.0.0.1:37515'...
copying path '/nix/store/x5cbg6ngn42wxafmj4rivnjrbhxm205i-sord-0.16.20' from 'http://127.0.0.1:37515'...
copying path '/nix/store/zkiy4zv8wz3v95bj6fdmkqwql8x1vnhb-stdenv-linux' from 'http://127.0.0.1:37515'...
copying path '/nix/store/gsyghfi37q5pr86qlpqgdb9x705yaqz7-v4l-utils-1.32.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/m27kji8vcm9hn8jyn3dxixxkgbs6p0kp-zstd-1.5.7' from 'http://127.0.0.1:37515'...
copying path '/nix/store/svks0wvdq0av37dg4d6zq9gpvd499gxz-sratom-0.6.20' from 'http://127.0.0.1:37515'...
copying path '/nix/store/iji9226zlxrc4p9clcdpi17drd93qz6b-lilv-0.26.2' from 'http://127.0.0.1:37515'...
copying path '/nix/store/jld7vprd8kf2cgchdmkw2bb6d48hw30i-cargo-deny-0.19.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/gpx059h4cs6vay3i3ghlxi499wvn1byj-pciutils-3.14.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/588hnj4f64i2bbdjk1mjzif778dk4zp4-elfutils-0.194' from 'http://127.0.0.1:37515'...
copying path '/nix/store/g5kvz35643fp9yhxnkwcnwkkrhyj6d71-systemd-minimal-259' from 'http://127.0.0.1:37515'...
copying path '/nix/store/n2s5n08b6bfyypjpiz53lljkw2kl2fb7-alsa-ucm-conf-1.2.15.1' from 'http://127.0.0.1:37515'...
copying path '/nix/store/bj0mz22cbma71i4a76x2y49ciikbwb0a-tpm2-tss-4.1.3' from 'http://127.0.0.1:37515'...
copying path '/nix/store/f8f11x06gi8ycykwb2yyhv5jgjj5b8fv-gdk-pixbuf-2.44.5' from 'http://127.0.0.1:37515'...
copying path '/nix/store/93zyy66lxcpspwsm5h42jccp9nzmjgdh-lrdf-0.6.1' from 'http://127.0.0.1:37515'...
copying path '/nix/store/9l186k7zhxg99a78hwc41dcxdv1zybr7-openjpeg-2.5.4' from 'http://127.0.0.1:37515'...
copying path '/nix/store/h4apbnz8p5fmjwcmzlaxcjm5vr70d97x-nodejs-slim-24.13.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/6r0krhrml6hz987s40kbqczq5923i7ix-librsvg-2.61.3' from 'http://127.0.0.1:37515'...
copying path '/nix/store/97wpr90s0krpq4rv9jdqbr8aavfifgd4-alsa-lib-1.2.15.1' from 'http://127.0.0.1:37515'...
copying path '/nix/store/wxyn8d3m8g4fnn6xazinjwhzhzdg6wib-systemd-259' from 'http://127.0.0.1:37515'...
copying path '/nix/store/y5n9isgaz7jvbi31jrrwnh0qgsxp671x-at-spi2-core-2.58.3' from 'http://127.0.0.1:37515'...
copying path '/nix/store/c9cnbxhxbagj7gfpc1g5hl4x4f8dzayv-dbus-1.16.2' from 'http://127.0.0.1:37515'...
copying path '/nix/store/kg0wbaq26471vdig1fbfnysaq50bkrqk-avahi-0.8' from 'http://127.0.0.1:37515'...
copying path '/nix/store/sjcy69fwlj0fyg9m2zr55kzvwh98g9jr-libjack2-1.9.22' from 'http://127.0.0.1:37515'...
copying path '/nix/store/4xxjkr9prp8in95gkz7k2bvy5xsf07z0-perl5.42.0-Net-DBus-1.2.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/1hs4pylqkjwpd64f2fj7hmzil7qsnrvc-libpulseaudio-17.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/ypxd9dldr1j8lbg7a5ws42gqa2kizgyh-bluez-5.84' from 'http://127.0.0.1:37515'...
copying path '/nix/store/75xbnj2679mg2871vdb0w54ahd95n48l-cups-2.4.16-lib' from 'http://127.0.0.1:37515'...
copying path '/nix/store/4x7jikn5ci6smpgx7vh77607pmrxf8zw-tinysparql-3.10.1' from 'http://127.0.0.1:37515'...
copying path '/nix/store/c0z8dqr5rv4yxv5qxqzgaiz8kv8f2rji-xdg-utils-1.2.1' from 'http://127.0.0.1:37515'...
copying path '/nix/store/73f5hxj105ny4q0phlv616lwic4sv6n4-flite-2.2-lib' from 'http://127.0.0.1:37515'...
copying path '/nix/store/4lb7nb505n02j95y58cyiqmxrrw0qnwn-sox-unstable-2021-05-09-lib' from 'http://127.0.0.1:37515'...
copying path '/nix/store/mk3db6i5w5g4b1bdwrcwp0ys4cypk51n-gstreamer-1.26.5' from 'http://127.0.0.1:37515'...
copying path '/nix/store/jpg6mfa3gisdsqvkqnswgc8mbxz1bk0x-python3.13-protobuf-6.33.5' from 'http://127.0.0.1:37515'...
copying path '/nix/store/2f7hxb8cfrbbs2c7ls9rlkiinv8w996m-fluidsynth-2.5.2' from 'http://127.0.0.1:37515'...
copying path '/nix/store/w8fyjlwq4s7ppxg822pabjmmd7i4dp6l-libopenmpt-0.8.4' from 'http://127.0.0.1:37515'...
copying path '/nix/store/d4c8nl9x9rd3di2dvr982wh3yp8zppir-python3-3.13.12-env' from 'http://127.0.0.1:37515'...
copying path '/nix/store/n38lqimcp8jy648dg6qwz4f9p45ajg0k-roc-toolkit-0.4.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/0mka05jxrk63rw1sp0s1amk5p8hgnd7n-android-tools-35.0.2' from 'http://127.0.0.1:37515'...
copying path '/nix/store/kgf6zn39f6mxg0l3hjx29rpg7a0y3viv-gst-plugins-base-1.26.5' from 'http://127.0.0.1:37515'...
copying path '/nix/store/ca3p5fy9l9dnk0zhkh74jl1srw7jnhkp-libnice-0.1.22' from 'http://127.0.0.1:37515'...
copying path '/nix/store/q8zb95f4m2aahbdi6jl7wh3cjwc4p855-cups-2.4.16' from 'http://127.0.0.1:37515'...
copying path '/nix/store/1yyiqpg6nhbfclgi0czkii2mqrczwk6n-gtk+-2.24.33' from 'http://127.0.0.1:37515'...
copying path '/nix/store/r9dgb3wmkrf59w5gb8ygcafhyiqi5viy-ungoogled-chromium-unwrapped-146.0.7680.71' from 'http://127.0.0.1:37515'...
copying path '/nix/store/ip1zll830af00llffx8s711dhvr51vmq-ffmpeg-headless-8.0.1-lib' from 'http://127.0.0.1:37515'...
copying path '/nix/store/q43d6pbb9qxyhj6hq4id5mdg6gfrz6gv-gtk+3-3.24.51' from 'http://127.0.0.1:37515'...
copying path '/nix/store/xbaymj7dxkqhyxs01404153simhsqya1-libcamera-0.7.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/84a9a50f29spa8s45bpamq658srndhdf-nodejs-slim-24.13.0-npm' from 'http://127.0.0.1:37515'...
copying path '/nix/store/zrn94ppg0n93fwylvpbcb5a6m29xqr9y-libcanberra-0.30' from 'http://127.0.0.1:37515'...
copying path '/nix/store/lakdsf2fqlp84ygjq1p5a00avi3kymp7-openjdk-8u472-b08-jre' from 'http://127.0.0.1:37515'...
copying path '/nix/store/sy0c7j0npsq33d9zhnnzvjnzc52f4y0p-nodejs-24.13.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/fcqhn9m2sih0rmhw1j1ffxrkl8vw7248-pipewire-1.4.10' from 'http://127.0.0.1:37515'...
copying path '/nix/store/2c52z0rvldik0rll2xz2ip5dl1c8f3pw-openjdk-21.0.10+7' from 'http://127.0.0.1:37515'...
copying path '/nix/store/qzcvvzg2vspifdzpsyaamq26pl889r9n-openjdk-minimal-jre-21.0.10+7' from 'http://127.0.0.1:37515'...
copying path '/nix/store/hlj8rs0wbdicfn7hadav77r3nvk4a44d-openjdk-17.0.18+8' from 'http://127.0.0.1:37515'...
copying path '/nix/store/716f9vxn5aan1g1pfv1pmn5jiks4gnhi-typescript-5.9.3' from 'http://127.0.0.1:37515'...
copying path '/nix/store/7zz14khlcs6zgw3ca5qibb4wr6cbkxdp-vscode-langservers-extracted-4.10.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/bv61xzzqwvy7qnklz33r5y6yamiknhms-yaml-language-server-1.21.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/x6adcywj0fgd4air162d1pphzh8cjvqn-gst-plugins-bad-1.26.5' from 'http://127.0.0.1:37515'...
copying path '/nix/store/q3c4ljw4vh5444dgbc7brygg5zjz0383-apksigner-35.0.6' from 'http://127.0.0.1:37515'...
copying path '/nix/store/r5ifa1m0sqa6ny76jgglds7gr540837m-gtk4-4.20.3' from 'http://127.0.0.1:37515'...
copying path '/nix/store/gpbc2mhlvsd4i9qxbgja5s8ainlj1wk7-openjdk-8u472-b08' from 'http://127.0.0.1:37515'...
copying path '/nix/store/1kmz4nrlxb1zyimgvfkxcd2v2adgkapn-androidsdk-tools' from 'http://127.0.0.1:37515'...
copying path '/nix/store/1p9dqvcby0b4pvbypp099l6xpg0i1rh1-android-sdk-build-tools-36.0.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/gs8wqb5xnwsw5898gv7j4v71v3jsbnc9-android-sdk-ndk-29.0.14206865' from 'http://127.0.0.1:37515'...
💪 LogOut Dev Environment Ready
- Rust rustc 1.94.0 (4a4ef493e 2026-03-02)
- Dioxus CLI dioxus 0.7.3 (was built without git repository)
- Android SDK /nix/store/9f053ssykal4mcm8yp5z4a4jm3alqi72-androidsdk/libexec/android-sdk
- Android NDK /nix/store/gs8wqb5xnwsw5898gv7j4v71v3jsbnc9-android-sdk-ndk-29.0.14206865/libexec/android-sdk/ndk-bundle
Anonymous analytics enabled. To opt out, set MAESTRO_CLI_NO_ANALYTICS environment variable to any value before running Maestro.


> Invalid Command: clearText

/home/runner/work/LogOut/LogOut/maestro/web/05_change_exercises_database.yml:12
╭────────────────────────────────────────────────────────────────╮
│ 10 |     text: "https://gfauredev.github.io/free-exercise-db/" │
│ 11 |     optional: true                                        │
│ 12 | - clearText                                               │
│                ^                                               │
│ ╭───────────────────────────────────────────────────╮          │
│ │ `clearText` is not a valid command.               │          │
│ │                                                   │          │
│ │ > https://docs.maestro.dev/api-reference/commands │          │
│ ╰───────────────────────────────────────────────────╯          │
│ 13 | - inputText: "http://localhost:8080"                      │
│ 14 | # Save the new URL by tapping the save button             │
╰────────────────────────────────────────────────────────────────╯

📸 Screenshots

…ro web tests

Co-authored-by: gfauredev <19304085+gfauredev@users.noreply.github.com>
Copilot AI changed the title [WIP] Add Maestro Web and Android E2E tests for user stories Add Maestro Web & Android E2E tests per user story; fix Chrome/ChromeDriver version mismatch in CI Mar 15, 2026
Copilot AI requested a review from gfauredev March 15, 2026 19:41
@github-actions

Copy link
Copy Markdown

📊 Coverage Report

FilenameFunction CoverageLine CoverageRegion CoverageBranch Coverage
build/source/src/main.rs
  32.43% (12/37)
  68.20% (148/217)
  71.10% (214/301)
- (0/0)
build/source/src/models/mod.rs
  98.69% (151/153)
  99.36% (1392/1401)
  99.27% (2041/2056)
- (0/0)
build/source/src/services/android_notifications.rs
   0.00% (0/1)
   0.00% (0/2)
   0.00% (0/2)
- (0/0)
build/source/src/services/app_state.rs
   6.25% (1/16)
  12.64% (11/87)
   9.87% (15/152)
- (0/0)
build/source/src/services/exercise_db.rs
  95.58% (108/113)
  97.40% (900/924)
  97.00% (1453/1498)
- (0/0)
build/source/src/services/exercise_loader.rs
   0.00% (0/8)
   0.00% (0/71)
   0.00% (0/107)
- (0/0)
build/source/src/services/native_queue.rs
   0.00% (0/6)
   0.00% (0/37)
   0.00% (0/62)
- (0/0)
build/source/src/services/service_worker.rs
 100.00% (2/2)
 100.00% (6/6)
 100.00% (6/6)
- (0/0)
build/source/src/services/storage.rs
  70.83% (51/72)
  94.43% (441/467)
  90.86% (736/810)
- (0/0)
build/source/src/services/wake_lock.rs
 100.00% (2/2)
 100.00% (5/5)
 100.00% (5/5)
- (0/0)
build/source/src/utils.rs
  96.36% (53/55)
  95.86% (324/338)
  95.61% (501/524)
- (0/0)
nix/store/xb6lhqp1inqqvwgffqm1dfwyskddqz9c-rust-default-1.94.0/lib/rustlib/src/rust/library/std/src/sys/thread_local/native/mod.rs
   0.00% (0/2)
   0.00% (0/6)
   0.00% (0/7)
- (0/0)
Totals
  81.37% (380/467)
  90.62% (3227/3561)
  89.89% (4971/5530)
- (0/0)

@github-actions

Copy link
Copy Markdown

🚀 Lighthouse Audit

@github-actions

Copy link
Copy Markdown

❌ Maestro Web E2E Failures

📜 Maestro Console Output (Last 100 lines)
copying path '/nix/store/jfrdaij9vcz79qyrn54bk2l1ic2kamg6-libva-2.23.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/7l9d49jd3c3a9hyqx70frrn616n3il4i-xkeyboard-config-2.46' from 'http://127.0.0.1:37515'...
copying path '/nix/store/108bmi4zpy1663adzzmm4dkzi8nq51cn-perl5.42.0-XML-Parser-2.46' from 'http://127.0.0.1:37515'...
copying path '/nix/store/khd9yb8b0npl5x98y7d5l102v0wp600l-xz-5.8.2' from 'http://127.0.0.1:37515'...
copying path '/nix/store/q4ld998gcxkq7jr5wjk4gyhsyryfpdz4-zimg-3.0.6' from 'http://127.0.0.1:37515'...
copying path '/nix/store/2fqrch3cxl5w6xzaxr9yqinwzqfywpcf-zix-0.6.2' from 'http://127.0.0.1:37515'...
copying path '/nix/store/njwanmygmqc5vdhx22mnipiihqp39ysr-zlib-1.3.1-static' from 'http://127.0.0.1:37515'...
copying path '/nix/store/sff911ipvn1iw3jkr099ih3k34k6b43s-perl5.42.0-XML-Twig-3.52' from 'http://127.0.0.1:37515'...
copying path '/nix/store/m27kji8vcm9hn8jyn3dxixxkgbs6p0kp-zstd-1.5.7' from 'http://127.0.0.1:37515'...
copying path '/nix/store/8f0fr1b2y67jq2qmmn3svfvyi4cf1hj4-zxing-cpp-2.3.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/x5cbg6ngn42wxafmj4rivnjrbhxm205i-sord-0.16.20' from 'http://127.0.0.1:37515'...
copying path '/nix/store/n9jq6ks3q2kkzw3davzgpsvmpb8v6siy-freetype-2.13.3' from 'http://127.0.0.1:37515'...
copying path '/nix/store/87y9237m9c9m9mxk9ajwdfmn78vz6w2y-zlib-1.3.1-dev' from 'http://127.0.0.1:37515'...
copying path '/nix/store/szbqm4b4wz2zms91vxvljndy1dy8h813-chromedriver-unwrapped-146.0.7680.75' from 'http://127.0.0.1:37515'...
copying path '/nix/store/m1fw8l8y9ycxh5dzispbb7cwl6rra14l-python3-3.13.12' from 'http://127.0.0.1:37515'...
copying path '/nix/store/27fx8p4k6098wan3zahdbyj79ndcn03z-xz-5.8.2-bin' from 'http://127.0.0.1:37515'...
copying path '/nix/store/q3f55hdd85088xx3sx98x9vmac13gdjk-libajantv2-17.5.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/pj7xq9gyva573qdwqswmph5lryc08g1i-libpwquality-1.4.5-lib' from 'http://127.0.0.1:37515'...
copying path '/nix/store/gsyghfi37q5pr86qlpqgdb9x705yaqz7-v4l-utils-1.32.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/cwj1qamgrs2q9ppni8bd5yr6gy4gxlyq-cryptsetup-2.8.4' from 'http://127.0.0.1:37515'...
copying path '/nix/store/zkiy4zv8wz3v95bj6fdmkqwql8x1vnhb-stdenv-linux' from 'http://127.0.0.1:37515'...
copying path '/nix/store/svks0wvdq0av37dg4d6zq9gpvd499gxz-sratom-0.6.20' from 'http://127.0.0.1:37515'...
copying path '/nix/store/jld7vprd8kf2cgchdmkw2bb6d48hw30i-cargo-deny-0.19.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/i59cbsr9zwy57hp41pa3wg1cbzm0yjpr-curl-8.18.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/n2s5n08b6bfyypjpiz53lljkw2kl2fb7-alsa-ucm-conf-1.2.15.1' from 'http://127.0.0.1:37515'...
copying path '/nix/store/gpx059h4cs6vay3i3ghlxi499wvn1byj-pciutils-3.14.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/f8f11x06gi8ycykwb2yyhv5jgjj5b8fv-gdk-pixbuf-2.44.5' from 'http://127.0.0.1:37515'...
copying path '/nix/store/n86g9yx78hab19mi1f71rklba5c4fx7a-libwebp-1.6.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/wvzb79m8kg9579z5wfr0pyd9d14a7alr-dioxus-cli-0.7.3' from 'http://127.0.0.1:37515'...
copying path '/nix/store/9l186k7zhxg99a78hwc41dcxdv1zybr7-openjpeg-2.5.4' from 'http://127.0.0.1:37515'...
copying path '/nix/store/iji9226zlxrc4p9clcdpi17drd93qz6b-lilv-0.26.2' from 'http://127.0.0.1:37515'...
copying path '/nix/store/nqx5zb6fl85lvz2mbs2rryjf8p8bhi43-fontconfig-2.17.1-lib' from 'http://127.0.0.1:37515'...
copying path '/nix/store/v38q8136kg0blnqbd4kz32i8h2j12hz9-harfbuzz-12.3.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/g5kvz35643fp9yhxnkwcnwkkrhyj6d71-systemd-minimal-259' from 'http://127.0.0.1:37515'...
copying path '/nix/store/588hnj4f64i2bbdjk1mjzif778dk4zp4-elfutils-0.194' from 'http://127.0.0.1:37515'...
copying path '/nix/store/fp2h22l4mvkwlbdqpky9hqx8y0hviz8n-raptor2-2.0.16' from 'http://127.0.0.1:37515'...
copying path '/nix/store/bj0mz22cbma71i4a76x2y49ciikbwb0a-tpm2-tss-4.1.3' from 'http://127.0.0.1:37515'...
copying path '/nix/store/dszpfwzkz14xd19bwm2yhs3cbvkpw88s-zstd-1.5.7-dev' from 'http://127.0.0.1:37515'...
copying path '/nix/store/97wpr90s0krpq4rv9jdqbr8aavfifgd4-alsa-lib-1.2.15.1' from 'http://127.0.0.1:37515'...
copying path '/nix/store/h4apbnz8p5fmjwcmzlaxcjm5vr70d97x-nodejs-slim-24.13.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/93zyy66lxcpspwsm5h42jccp9nzmjgdh-lrdf-0.6.1' from 'http://127.0.0.1:37515'...
copying path '/nix/store/zjarzxjwirqym8wasmzgvqjvvp3bbwr9-cairo-1.18.4' from 'http://127.0.0.1:37515'...
copying path '/nix/store/766hwjjk1d5hxy501p88mssmr87s4dlp-gobject-introspection-1.86.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/5a55fdw8da21pkd5g2pd1jkj9q06ljb5-strace-6.19' from 'http://127.0.0.1:37515'...
copying path '/nix/store/v42v9jm1a5v7i9b0wzgmm83jwpp1r4mn-pango-1.57.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/wxyn8d3m8g4fnn6xazinjwhzhzdg6wib-systemd-259' from 'http://127.0.0.1:37515'...
copying path '/nix/store/y5n9isgaz7jvbi31jrrwnh0qgsxp671x-at-spi2-core-2.58.3' from 'http://127.0.0.1:37515'...
copying path '/nix/store/kg0wbaq26471vdig1fbfnysaq50bkrqk-avahi-0.8' from 'http://127.0.0.1:37515'...
copying path '/nix/store/1hs4pylqkjwpd64f2fj7hmzil7qsnrvc-libpulseaudio-17.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/c0z8dqr5rv4yxv5qxqzgaiz8kv8f2rji-xdg-utils-1.2.1' from 'http://127.0.0.1:37515'...
copying path '/nix/store/6r0krhrml6hz987s40kbqczq5923i7ix-librsvg-2.61.3' from 'http://127.0.0.1:37515'...
copying path '/nix/store/73f5hxj105ny4q0phlv616lwic4sv6n4-flite-2.2-lib' from 'http://127.0.0.1:37515'...
copying path '/nix/store/hd5x74szhkppf82ccr51l3ffrirps4qy-libao-1.2.2' from 'http://127.0.0.1:37515'...
copying path '/nix/store/2f7hxb8cfrbbs2c7ls9rlkiinv8w996m-fluidsynth-2.5.2' from 'http://127.0.0.1:37515'...
copying path '/nix/store/w8fyjlwq4s7ppxg822pabjmmd7i4dp6l-libopenmpt-0.8.4' from 'http://127.0.0.1:37515'...
copying path '/nix/store/75xbnj2679mg2871vdb0w54ahd95n48l-cups-2.4.16-lib' from 'http://127.0.0.1:37515'...
copying path '/nix/store/4x7jikn5ci6smpgx7vh77607pmrxf8zw-tinysparql-3.10.1' from 'http://127.0.0.1:37515'...
copying path '/nix/store/q8zb95f4m2aahbdi6jl7wh3cjwc4p855-cups-2.4.16' from 'http://127.0.0.1:37515'...
copying path '/nix/store/1yyiqpg6nhbfclgi0czkii2mqrczwk6n-gtk+-2.24.33' from 'http://127.0.0.1:37515'...
copying path '/nix/store/r9dgb3wmkrf59w5gb8ygcafhyiqi5viy-ungoogled-chromium-unwrapped-146.0.7680.71' from 'http://127.0.0.1:37515'...
copying path '/nix/store/4lb7nb505n02j95y58cyiqmxrrw0qnwn-sox-unstable-2021-05-09-lib' from 'http://127.0.0.1:37515'...
copying path '/nix/store/q43d6pbb9qxyhj6hq4id5mdg6gfrz6gv-gtk+3-3.24.51' from 'http://127.0.0.1:37515'...
copying path '/nix/store/lakdsf2fqlp84ygjq1p5a00avi3kymp7-openjdk-8u472-b08-jre' from 'http://127.0.0.1:37515'...
copying path '/nix/store/n38lqimcp8jy648dg6qwz4f9p45ajg0k-roc-toolkit-0.4.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/ip1zll830af00llffx8s711dhvr51vmq-ffmpeg-headless-8.0.1-lib' from 'http://127.0.0.1:37515'...
copying path '/nix/store/716f9vxn5aan1g1pfv1pmn5jiks4gnhi-typescript-5.9.3' from 'http://127.0.0.1:37515'...
copying path '/nix/store/7zz14khlcs6zgw3ca5qibb4wr6cbkxdp-vscode-langservers-extracted-4.10.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/bv61xzzqwvy7qnklz33r5y6yamiknhms-yaml-language-server-1.21.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/hlj8rs0wbdicfn7hadav77r3nvk4a44d-openjdk-17.0.18+8' from 'http://127.0.0.1:37515'...
copying path '/nix/store/2c52z0rvldik0rll2xz2ip5dl1c8f3pw-openjdk-21.0.10+7' from 'http://127.0.0.1:37515'...
copying path '/nix/store/qzcvvzg2vspifdzpsyaamq26pl889r9n-openjdk-minimal-jre-21.0.10+7' from 'http://127.0.0.1:37515'...
copying path '/nix/store/x6adcywj0fgd4air162d1pphzh8cjvqn-gst-plugins-bad-1.26.5' from 'http://127.0.0.1:37515'...
copying path '/nix/store/gpbc2mhlvsd4i9qxbgja5s8ainlj1wk7-openjdk-8u472-b08' from 'http://127.0.0.1:37515'...
copying path '/nix/store/q3c4ljw4vh5444dgbc7brygg5zjz0383-apksigner-35.0.6' from 'http://127.0.0.1:37515'...
copying path '/nix/store/1kmz4nrlxb1zyimgvfkxcd2v2adgkapn-androidsdk-tools' from 'http://127.0.0.1:37515'...
copying path '/nix/store/gs8wqb5xnwsw5898gv7j4v71v3jsbnc9-android-sdk-ndk-29.0.14206865' from 'http://127.0.0.1:37515'...
💪 LogOut Dev Environment Ready
- Rust rustc 1.94.0 (4a4ef493e 2026-03-02)
- Dioxus CLI dioxus 0.7.3 (was built without git repository)
- Android SDK /nix/store/9f053ssykal4mcm8yp5z4a4jm3alqi72-androidsdk/libexec/android-sdk
- Android NDK /nix/store/gs8wqb5xnwsw5898gv7j4v71v3jsbnc9-android-sdk-ndk-29.0.14206865/libexec/android-sdk/ndk-bundle
Anonymous analytics enabled. To opt out, set MAESTRO_CLI_NO_ANALYTICS environment variable to any value before running Maestro.


> Invalid Command: clearText

/home/runner/work/LogOut/LogOut/maestro/web/05_change_exercises_database.yml:12
╭────────────────────────────────────────────────────────────────╮
│ 10 |     text: "https://gfauredev.github.io/free-exercise-db/" │
│ 11 |     optional: true                                        │
│ 12 | - clearText                                               │
│                ^                                               │
│ ╭───────────────────────────────────────────────────╮          │
│ │ `clearText` is not a valid command.               │          │
│ │                                                   │          │
│ │ > https://docs.maestro.dev/api-reference/commands │          │
│ ╰───────────────────────────────────────────────────╯          │
│ 13 | - inputText: "http://localhost:8080"                      │
│ 14 | # Save the new URL by tapping the save button             │
╰────────────────────────────────────────────────────────────────╯

📸 Screenshots

…house CI to pre-start server

Co-authored-by: gfauredev <19304085+gfauredev@users.noreply.github.com>
Copilot AI changed the title Add Maestro Web & Android E2E tests per user story; fix Chrome/ChromeDriver version mismatch in CI Fix Maestro web E2E tests and Lighthouse CI audit Mar 15, 2026
@github-actions

Copy link
Copy Markdown

📊 Coverage Report

FilenameFunction CoverageLine CoverageRegion CoverageBranch Coverage
build/source/src/main.rs
  32.43% (12/37)
  68.20% (148/217)
  71.10% (214/301)
- (0/0)
build/source/src/models/mod.rs
  98.69% (151/153)
  99.36% (1392/1401)
  99.27% (2041/2056)
- (0/0)
build/source/src/services/android_notifications.rs
   0.00% (0/1)
   0.00% (0/2)
   0.00% (0/2)
- (0/0)
build/source/src/services/app_state.rs
   6.25% (1/16)
  12.64% (11/87)
   9.87% (15/152)
- (0/0)
build/source/src/services/exercise_db.rs
  95.58% (108/113)
  97.40% (900/924)
  97.00% (1453/1498)
- (0/0)
build/source/src/services/exercise_loader.rs
   0.00% (0/8)
   0.00% (0/71)
   0.00% (0/107)
- (0/0)
build/source/src/services/native_queue.rs
   0.00% (0/6)
   0.00% (0/37)
   0.00% (0/62)
- (0/0)
build/source/src/services/service_worker.rs
 100.00% (2/2)
 100.00% (6/6)
 100.00% (6/6)
- (0/0)
build/source/src/services/storage.rs
  70.83% (51/72)
  94.43% (441/467)
  90.86% (736/810)
- (0/0)
build/source/src/services/wake_lock.rs
 100.00% (2/2)
 100.00% (5/5)
 100.00% (5/5)
- (0/0)
build/source/src/utils.rs
  96.36% (53/55)
  95.86% (324/338)
  95.61% (501/524)
- (0/0)
nix/store/xb6lhqp1inqqvwgffqm1dfwyskddqz9c-rust-default-1.94.0/lib/rustlib/src/rust/library/std/src/sys/thread_local/native/mod.rs
   0.00% (0/2)
   0.00% (0/6)
   0.00% (0/7)
- (0/0)
Totals
  81.37% (380/467)
  90.62% (3227/3561)
  89.89% (4971/5530)
- (0/0)

@github-actions

Copy link
Copy Markdown

❌ Maestro Web E2E Failures

📜 Maestro Console Output (Last 100 lines)
copying path '/nix/store/6myhsg4shn6wvqbh0dznqr5y39sm16a9-libarchive-3.8.4-lib' from 'http://127.0.0.1:37515'...
copying path '/nix/store/y5n9isgaz7jvbi31jrrwnh0qgsxp671x-at-spi2-core-2.58.3' from 'http://127.0.0.1:37515'...
copying path '/nix/store/ypxd9dldr1j8lbg7a5ws42gqa2kizgyh-bluez-5.84' from 'http://127.0.0.1:37515'...
copying path '/nix/store/c0z8dqr5rv4yxv5qxqzgaiz8kv8f2rji-xdg-utils-1.2.1' from 'http://127.0.0.1:37515'...
copying path '/nix/store/1hs4pylqkjwpd64f2fj7hmzil7qsnrvc-libpulseaudio-17.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/75xbnj2679mg2871vdb0w54ahd95n48l-cups-2.4.16-lib' from 'http://127.0.0.1:37515'...
copying path '/nix/store/4x7jikn5ci6smpgx7vh77607pmrxf8zw-tinysparql-3.10.1' from 'http://127.0.0.1:37515'...
copying path '/nix/store/q8zb95f4m2aahbdi6jl7wh3cjwc4p855-cups-2.4.16' from 'http://127.0.0.1:37515'...
copying path '/nix/store/wxyn8d3m8g4fnn6xazinjwhzhzdg6wib-systemd-259' from 'http://127.0.0.1:37515'...
copying path '/nix/store/1yyiqpg6nhbfclgi0czkii2mqrczwk6n-gtk+-2.24.33' from 'http://127.0.0.1:37515'...
copying path '/nix/store/q43d6pbb9qxyhj6hq4id5mdg6gfrz6gv-gtk+3-3.24.51' from 'http://127.0.0.1:37515'...
copying path '/nix/store/73f5hxj105ny4q0phlv616lwic4sv6n4-flite-2.2-lib' from 'http://127.0.0.1:37515'...
copying path '/nix/store/2f7hxb8cfrbbs2c7ls9rlkiinv8w996m-fluidsynth-2.5.2' from 'http://127.0.0.1:37515'...
copying path '/nix/store/5xvfc1wb8icvyn0cl0ryal1wsjblg51q-mpg123-1.33.4' from 'http://127.0.0.1:37515'...
copying path '/nix/store/r9dgb3wmkrf59w5gb8ygcafhyiqi5viy-ungoogled-chromium-unwrapped-146.0.7680.71' from 'http://127.0.0.1:37515'...
copying path '/nix/store/4lb7nb505n02j95y58cyiqmxrrw0qnwn-sox-unstable-2021-05-09-lib' from 'http://127.0.0.1:37515'...
copying path '/nix/store/w8fyjlwq4s7ppxg822pabjmmd7i4dp6l-libopenmpt-0.8.4' from 'http://127.0.0.1:37515'...
copying path '/nix/store/n38lqimcp8jy648dg6qwz4f9p45ajg0k-roc-toolkit-0.4.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/ip1zll830af00llffx8s711dhvr51vmq-ffmpeg-headless-8.0.1-lib' from 'http://127.0.0.1:37515'...
copying path '/nix/store/hlj8rs0wbdicfn7hadav77r3nvk4a44d-openjdk-17.0.18+8' from 'http://127.0.0.1:37515'...
copying path '/nix/store/qzcvvzg2vspifdzpsyaamq26pl889r9n-openjdk-minimal-jre-21.0.10+7' from 'http://127.0.0.1:37515'...
copying path '/nix/store/2c52z0rvldik0rll2xz2ip5dl1c8f3pw-openjdk-21.0.10+7' from 'http://127.0.0.1:37515'...
copying path '/nix/store/lakdsf2fqlp84ygjq1p5a00avi3kymp7-openjdk-8u472-b08-jre' from 'http://127.0.0.1:37515'...
copying path '/nix/store/sy0c7j0npsq33d9zhnnzvjnzc52f4y0p-nodejs-24.13.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/q3c4ljw4vh5444dgbc7brygg5zjz0383-apksigner-35.0.6' from 'http://127.0.0.1:37515'...
copying path '/nix/store/716f9vxn5aan1g1pfv1pmn5jiks4gnhi-typescript-5.9.3' from 'http://127.0.0.1:37515'...
copying path '/nix/store/7zz14khlcs6zgw3ca5qibb4wr6cbkxdp-vscode-langservers-extracted-4.10.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/bv61xzzqwvy7qnklz33r5y6yamiknhms-yaml-language-server-1.21.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/fcqhn9m2sih0rmhw1j1ffxrkl8vw7248-pipewire-1.4.10' from 'http://127.0.0.1:37515'...
copying path '/nix/store/x6adcywj0fgd4air162d1pphzh8cjvqn-gst-plugins-bad-1.26.5' from 'http://127.0.0.1:37515'...
copying path '/nix/store/r5ifa1m0sqa6ny76jgglds7gr540837m-gtk4-4.20.3' from 'http://127.0.0.1:37515'...
copying path '/nix/store/gpbc2mhlvsd4i9qxbgja5s8ainlj1wk7-openjdk-8u472-b08' from 'http://127.0.0.1:37515'...
copying path '/nix/store/1kmz4nrlxb1zyimgvfkxcd2v2adgkapn-androidsdk-tools' from 'http://127.0.0.1:37515'...
copying path '/nix/store/gs8wqb5xnwsw5898gv7j4v71v3jsbnc9-android-sdk-ndk-29.0.14206865' from 'http://127.0.0.1:37515'...
copying path '/nix/store/5m60ppfzidhlxb1fhzjka3hxj125sg2k-android-sdk-build-tools-34.0.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/s6szq77fijn04zcjk5kmf05g830frgms-android-sdk-build-tools-35.0.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/1p9dqvcby0b4pvbypp099l6xpg0i1rh1-android-sdk-build-tools-36.0.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/9f053ssykal4mcm8yp5z4a4jm3alqi72-androidsdk' from 'http://127.0.0.1:37515'...
copying path '/nix/store/1bpg14vw79msx5p4z4nw8qbjzcvdz1zk-nix-shell-env' from 'http://127.0.0.1:37515'...
this path will be fetched (107.5 KiB download, 107.4 KiB unpacked):
  /nix/store/5vmwpgmif2wa2hw5ip3ab6q40wvyfw2w-bash-interactive-5.3p9-man
copying path '/nix/store/5vmwpgmif2wa2hw5ip3ab6q40wvyfw2w-bash-interactive-5.3p9-man' from 'http://127.0.0.1:37515'...
💪 LogOut Dev Environment Ready
- Rust rustc 1.94.0 (4a4ef493e 2026-03-02)
- Dioxus CLI dioxus 0.7.3 (was built without git repository)
- Android SDK /nix/store/9f053ssykal4mcm8yp5z4a4jm3alqi72-androidsdk/libexec/android-sdk
- Android NDK /nix/store/gs8wqb5xnwsw5898gv7j4v71v3jsbnc9-android-sdk-ndk-29.0.14206865/libexec/android-sdk/ndk-bundle
Anonymous analytics enabled. To opt out, set MAESTRO_CLI_NO_ANALYTICS environment variable to any value before running Maestro.


Web support is in Beta. We would appreciate your feedback!


Could not start a new session. Response code 500. Message: session not created: This version of ChromeDriver only supports Chrome version 146
Current browser version is 145.0.7632.116 with binary path /usr/bin/google-chrome 
Host info: host: 'runnervm0kj6c', ip: '10.1.0.14'
Build info: version: '4.38.0', revision: '6b412e825c*'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.14.0-1017-azure', java.version: '21.0.10'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [--remote-allow-origins=*, --disable-search-engine-cho..., --lang=en, --password-store=basic, --headless=new, --window-size=1024,768], binary: /usr/bin/google-chrome, detach: true, extensions: [], prefs: {credentials_enable_service: false, profile.password_manager_enabled: false, profile.password_manager_leak_detection: false}}}]}]

The stack trace was:
org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: This version of ChromeDriver only supports Chrome version 146
Current browser version is 145.0.7632.116 with binary path /usr/bin/google-chrome 
Host info: host: 'runnervm0kj6c', ip: '10.1.0.14'
Build info: version: '4.38.0', revision: '6b412e825c*'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.14.0-1017-azure', java.version: '21.0.10'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [--remote-allow-origins=*, --disable-search-engine-cho..., --lang=en, --password-store=basic, --headless=new, --window-size=1024,768], binary: /usr/bin/google-chrome, detach: true, extensions: [], prefs: {credentials_enable_service: false, profile.password_manager_enabled: false, profile.password_manager_leak_detection: false}}}]}]
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:114)
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:75)
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:61)
	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:187)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:557)
	at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:246)
	at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:174)
	at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:99)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:88)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:83)
	at maestro.drivers.CdpWebDriver.createSeleniumDriver(CdpWebDriver.kt:102)
	at maestro.drivers.CdpWebDriver.open(CdpWebDriver.kt:74)
	at maestro.Maestro$Companion.web(Maestro.kt:653)
	at maestro.cli.session.MaestroSessionManager.pickWebDevice(MaestroSessionManager.kt:436)
	at maestro.cli.session.MaestroSessionManager.createMaestro(MaestroSessionManager.kt:247)
	at maestro.cli.session.MaestroSessionManager.newSession(MaestroSessionManager.kt:104)
	at maestro.cli.session.MaestroSessionManager.newSession$default(MaestroSessionManager.kt:65)
	at maestro.cli.command.TestCommand.runShardSuite(TestCommand.kt:465)
	at maestro.cli.command.TestCommand.access$runShardSuite(TestCommand.kt:80)
	at maestro.cli.command.TestCommand$handleSessions$1$results$1$1.invokeSuspend(TestCommand.kt:424)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
	at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:111)
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:99)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)

📸 Screenshots

@github-actions

Copy link
Copy Markdown

🚀 Lighthouse Audit

URL Performance Accessibility Best Practices SEO
LogOut/ 88 87 100 100

Full reports:

…mium (not system Chrome 145)

Co-authored-by: gfauredev <19304085+gfauredev@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown

📊 Coverage Report

FilenameFunction CoverageLine CoverageRegion CoverageBranch Coverage
build/source/src/main.rs
  32.43% (12/37)
  68.20% (148/217)
  71.10% (214/301)
- (0/0)
build/source/src/models/mod.rs
  98.69% (151/153)
  99.36% (1392/1401)
  99.27% (2041/2056)
- (0/0)
build/source/src/services/android_notifications.rs
   0.00% (0/1)
   0.00% (0/2)
   0.00% (0/2)
- (0/0)
build/source/src/services/app_state.rs
   6.25% (1/16)
  12.64% (11/87)
   9.87% (15/152)
- (0/0)
build/source/src/services/exercise_db.rs
  95.58% (108/113)
  97.40% (900/924)
  97.00% (1453/1498)
- (0/0)
build/source/src/services/exercise_loader.rs
   0.00% (0/8)
   0.00% (0/71)
   0.00% (0/107)
- (0/0)
build/source/src/services/native_queue.rs
   0.00% (0/6)
   0.00% (0/37)
   0.00% (0/62)
- (0/0)
build/source/src/services/service_worker.rs
 100.00% (2/2)
 100.00% (6/6)
 100.00% (6/6)
- (0/0)
build/source/src/services/storage.rs
  70.83% (51/72)
  94.43% (441/467)
  90.86% (736/810)
- (0/0)
build/source/src/services/wake_lock.rs
 100.00% (2/2)
 100.00% (5/5)
 100.00% (5/5)
- (0/0)
build/source/src/utils.rs
  96.36% (53/55)
  95.86% (324/338)
  95.61% (501/524)
- (0/0)
nix/store/xb6lhqp1inqqvwgffqm1dfwyskddqz9c-rust-default-1.94.0/lib/rustlib/src/rust/library/std/src/sys/thread_local/native/mod.rs
   0.00% (0/2)
   0.00% (0/6)
   0.00% (0/7)
- (0/0)
Totals
  81.37% (380/467)
  90.62% (3227/3561)
  89.89% (4971/5530)
- (0/0)

@github-actions

Copy link
Copy Markdown

🚀 Lighthouse Audit

@github-actions

Copy link
Copy Markdown

❌ Maestro Web E2E Failures

📜 Maestro Console Output (Last 100 lines)
copying path '/nix/store/kg0wbaq26471vdig1fbfnysaq50bkrqk-avahi-0.8' from 'http://127.0.0.1:37515'...
copying path '/nix/store/sjcy69fwlj0fyg9m2zr55kzvwh98g9jr-libjack2-1.9.22' from 'http://127.0.0.1:37515'...
copying path '/nix/store/ypxd9dldr1j8lbg7a5ws42gqa2kizgyh-bluez-5.84' from 'http://127.0.0.1:37515'...
copying path '/nix/store/1hs4pylqkjwpd64f2fj7hmzil7qsnrvc-libpulseaudio-17.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/c0z8dqr5rv4yxv5qxqzgaiz8kv8f2rji-xdg-utils-1.2.1' from 'http://127.0.0.1:37515'...
copying path '/nix/store/75xbnj2679mg2871vdb0w54ahd95n48l-cups-2.4.16-lib' from 'http://127.0.0.1:37515'...
copying path '/nix/store/4x7jikn5ci6smpgx7vh77607pmrxf8zw-tinysparql-3.10.1' from 'http://127.0.0.1:37515'...
copying path '/nix/store/73f5hxj105ny4q0phlv616lwic4sv6n4-flite-2.2-lib' from 'http://127.0.0.1:37515'...
copying path '/nix/store/2f7hxb8cfrbbs2c7ls9rlkiinv8w996m-fluidsynth-2.5.2' from 'http://127.0.0.1:37515'...
copying path '/nix/store/hd5x74szhkppf82ccr51l3ffrirps4qy-libao-1.2.2' from 'http://127.0.0.1:37515'...
copying path '/nix/store/5xvfc1wb8icvyn0cl0ryal1wsjblg51q-mpg123-1.33.4' from 'http://127.0.0.1:37515'...
copying path '/nix/store/4lb7nb505n02j95y58cyiqmxrrw0qnwn-sox-unstable-2021-05-09-lib' from 'http://127.0.0.1:37515'...
copying path '/nix/store/w8fyjlwq4s7ppxg822pabjmmd7i4dp6l-libopenmpt-0.8.4' from 'http://127.0.0.1:37515'...
copying path '/nix/store/1yyiqpg6nhbfclgi0czkii2mqrczwk6n-gtk+-2.24.33' from 'http://127.0.0.1:37515'...
copying path '/nix/store/r9dgb3wmkrf59w5gb8ygcafhyiqi5viy-ungoogled-chromium-unwrapped-146.0.7680.71' from 'http://127.0.0.1:37515'...
copying path '/nix/store/q8zb95f4m2aahbdi6jl7wh3cjwc4p855-cups-2.4.16' from 'http://127.0.0.1:37515'...
copying path '/nix/store/q43d6pbb9qxyhj6hq4id5mdg6gfrz6gv-gtk+3-3.24.51' from 'http://127.0.0.1:37515'...
copying path '/nix/store/n38lqimcp8jy648dg6qwz4f9p45ajg0k-roc-toolkit-0.4.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/ip1zll830af00llffx8s711dhvr51vmq-ffmpeg-headless-8.0.1-lib' from 'http://127.0.0.1:37515'...
copying path '/nix/store/lakdsf2fqlp84ygjq1p5a00avi3kymp7-openjdk-8u472-b08-jre' from 'http://127.0.0.1:37515'...
copying path '/nix/store/84a9a50f29spa8s45bpamq658srndhdf-nodejs-slim-24.13.0-npm' from 'http://127.0.0.1:37515'...
copying path '/nix/store/hlj8rs0wbdicfn7hadav77r3nvk4a44d-openjdk-17.0.18+8' from 'http://127.0.0.1:37515'...
copying path '/nix/store/qzcvvzg2vspifdzpsyaamq26pl889r9n-openjdk-minimal-jre-21.0.10+7' from 'http://127.0.0.1:37515'...
copying path '/nix/store/2c52z0rvldik0rll2xz2ip5dl1c8f3pw-openjdk-21.0.10+7' from 'http://127.0.0.1:37515'...
copying path '/nix/store/sy0c7j0npsq33d9zhnnzvjnzc52f4y0p-nodejs-24.13.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/7zz14khlcs6zgw3ca5qibb4wr6cbkxdp-vscode-langservers-extracted-4.10.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/716f9vxn5aan1g1pfv1pmn5jiks4gnhi-typescript-5.9.3' from 'http://127.0.0.1:37515'...
copying path '/nix/store/bv61xzzqwvy7qnklz33r5y6yamiknhms-yaml-language-server-1.21.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/kgf6zn39f6mxg0l3hjx29rpg7a0y3viv-gst-plugins-base-1.26.5' from 'http://127.0.0.1:37515'...
copying path '/nix/store/0mka05jxrk63rw1sp0s1amk5p8hgnd7n-android-tools-35.0.2' from 'http://127.0.0.1:37515'...
copying path '/nix/store/xbaymj7dxkqhyxs01404153simhsqya1-libcamera-0.7.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/fcqhn9m2sih0rmhw1j1ffxrkl8vw7248-pipewire-1.4.10' from 'http://127.0.0.1:37515'...
copying path '/nix/store/q3c4ljw4vh5444dgbc7brygg5zjz0383-apksigner-35.0.6' from 'http://127.0.0.1:37515'...
copying path '/nix/store/gpbc2mhlvsd4i9qxbgja5s8ainlj1wk7-openjdk-8u472-b08' from 'http://127.0.0.1:37515'...
copying path '/nix/store/x6adcywj0fgd4air162d1pphzh8cjvqn-gst-plugins-bad-1.26.5' from 'http://127.0.0.1:37515'...
copying path '/nix/store/r5ifa1m0sqa6ny76jgglds7gr540837m-gtk4-4.20.3' from 'http://127.0.0.1:37515'...
copying path '/nix/store/1kmz4nrlxb1zyimgvfkxcd2v2adgkapn-androidsdk-tools' from 'http://127.0.0.1:37515'...
copying path '/nix/store/s6szq77fijn04zcjk5kmf05g830frgms-android-sdk-build-tools-35.0.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/5m60ppfzidhlxb1fhzjka3hxj125sg2k-android-sdk-build-tools-34.0.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/1p9dqvcby0b4pvbypp099l6xpg0i1rh1-android-sdk-build-tools-36.0.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/z3mpvfz7rxj26kmnp6znjvj9rwykmqs6-maestro-2.1.0' from 'http://127.0.0.1:37515'...
copying path '/nix/store/gs8wqb5xnwsw5898gv7j4v71v3jsbnc9-android-sdk-ndk-29.0.14206865' from 'http://127.0.0.1:37515'...
💪 LogOut Dev Environment Ready
- Rust rustc 1.94.0 (4a4ef493e 2026-03-02)
- Dioxus CLI dioxus 0.7.3 (was built without git repository)
- Android SDK /nix/store/9f053ssykal4mcm8yp5z4a4jm3alqi72-androidsdk/libexec/android-sdk
- Android NDK /nix/store/gs8wqb5xnwsw5898gv7j4v71v3jsbnc9-android-sdk-ndk-29.0.14206865/libexec/android-sdk/ndk-bundle
Anonymous analytics enabled. To opt out, set MAESTRO_CLI_NO_ANALYTICS environment variable to any value before running Maestro.


Web support is in Beta. We would appreciate your feedback!


Could not start a new session. Response code 500. Message: session not created: This version of ChromeDriver only supports Chrome version 146
Current browser version is 145.0.7632.159 with binary path /usr/bin/google-chrome 
Host info: host: 'runnervm46oaq', ip: '10.1.0.144'
Build info: version: '4.38.0', revision: '6b412e825c*'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.14.0-1017-azure', java.version: '21.0.10'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [--remote-allow-origins=*, --disable-search-engine-cho..., --lang=en, --password-store=basic, --headless=new, --window-size=1024,768], binary: /usr/bin/google-chrome, detach: true, extensions: [], prefs: {credentials_enable_service: false, profile.password_manager_enabled: false, profile.password_manager_leak_detection: false}}}]}]

The stack trace was:
org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: This version of ChromeDriver only supports Chrome version 146
Current browser version is 145.0.7632.159 with binary path /usr/bin/google-chrome 
Host info: host: 'runnervm46oaq', ip: '10.1.0.144'
Build info: version: '4.38.0', revision: '6b412e825c*'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.14.0-1017-azure', java.version: '21.0.10'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [--remote-allow-origins=*, --disable-search-engine-cho..., --lang=en, --password-store=basic, --headless=new, --window-size=1024,768], binary: /usr/bin/google-chrome, detach: true, extensions: [], prefs: {credentials_enable_service: false, profile.password_manager_enabled: false, profile.password_manager_leak_detection: false}}}]}]
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:114)
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:75)
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:61)
	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:187)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:557)
	at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:246)
	at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:174)
	at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:99)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:88)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:83)
	at maestro.drivers.CdpWebDriver.createSeleniumDriver(CdpWebDriver.kt:102)
	at maestro.drivers.CdpWebDriver.open(CdpWebDriver.kt:74)
	at maestro.Maestro$Companion.web(Maestro.kt:653)
	at maestro.cli.session.MaestroSessionManager.pickWebDevice(MaestroSessionManager.kt:436)
	at maestro.cli.session.MaestroSessionManager.createMaestro(MaestroSessionManager.kt:247)
	at maestro.cli.session.MaestroSessionManager.newSession(MaestroSessionManager.kt:104)
	at maestro.cli.session.MaestroSessionManager.newSession$default(MaestroSessionManager.kt:65)
	at maestro.cli.command.TestCommand.runShardSuite(TestCommand.kt:465)
	at maestro.cli.command.TestCommand.access$runShardSuite(TestCommand.kt:80)
	at maestro.cli.command.TestCommand$handleSessions$1$results$1$1.invokeSuspend(TestCommand.kt:424)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
	at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:111)
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:99)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)

📸 Screenshots

Copilot AI and others added 2 commits March 15, 2026 21:21
Co-authored-by: gfauredev <19304085+gfauredev@users.noreply.github.com>
…for temp dir cleanup

Co-authored-by: gfauredev <19304085+gfauredev@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown

🚀 Lighthouse Audit

URL Performance Accessibility Best Practices SEO
LogOut/ 83 87 100 100

Full reports:

Copilot AI changed the title Add pages and e2e-web Nix apps; fix CI Lighthouse and Maestro jobs fix: writeShellScriptBin for google-chrome wrapper so chromedriver finds it via PATH Mar 16, 2026
@github-actions

Copy link
Copy Markdown

📊 Coverage Report

FilenameFunction CoverageLine CoverageRegion CoverageBranch Coverage
build/source/src/main.rs
  32.43% (12/37)
  68.20% (148/217)
  71.10% (214/301)
- (0/0)
build/source/src/models/mod.rs
  98.69% (151/153)
  99.36% (1392/1401)
  99.27% (2041/2056)
- (0/0)
build/source/src/services/android_notifications.rs
   0.00% (0/1)
   0.00% (0/2)
   0.00% (0/2)
- (0/0)
build/source/src/services/app_state.rs
   6.25% (1/16)
  12.64% (11/87)
   9.87% (15/152)
- (0/0)
build/source/src/services/exercise_db.rs
  95.58% (108/113)
  97.40% (900/924)
  97.00% (1453/1498)
- (0/0)
build/source/src/services/exercise_loader.rs
   0.00% (0/8)
   0.00% (0/71)
   0.00% (0/107)
- (0/0)
build/source/src/services/native_queue.rs
   0.00% (0/6)
   0.00% (0/37)
   0.00% (0/62)
- (0/0)
build/source/src/services/service_worker.rs
 100.00% (2/2)
 100.00% (6/6)
 100.00% (6/6)
- (0/0)
build/source/src/services/storage.rs
  70.83% (51/72)
  94.43% (441/467)
  90.86% (736/810)
- (0/0)
build/source/src/services/wake_lock.rs
 100.00% (2/2)
 100.00% (5/5)
 100.00% (5/5)
- (0/0)
build/source/src/utils.rs
  96.36% (53/55)
  95.86% (324/338)
  95.61% (501/524)
- (0/0)
nix/store/xb6lhqp1inqqvwgffqm1dfwyskddqz9c-rust-default-1.94.0/lib/rustlib/src/rust/library/std/src/sys/thread_local/native/mod.rs
   0.00% (0/2)
   0.00% (0/6)
   0.00% (0/7)
- (0/0)
Totals
  81.37% (380/467)
  90.62% (3227/3561)
  89.89% (4971/5530)
- (0/0)

…r finds it via PATH

Co-authored-by: gfauredev <19304085+gfauredev@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown

🚀 Lighthouse Audit

URL Performance Accessibility Best Practices SEO
LogOut/ 86 87 100 100

Full reports:

@gfauredev
gfauredev force-pushed the copilot/add-maestro-e2e-tests-again branch from b4e8e95 to 1f0f10b Compare March 16, 2026 17:22
@github-actions

Copy link
Copy Markdown

📊 Coverage Report

FilenameFunction CoverageLine CoverageRegion CoverageBranch Coverage
build/source/src/main.rs
  32.43% (12/37)
  68.20% (148/217)
  71.10% (214/301)
- (0/0)
build/source/src/models/mod.rs
  98.69% (151/153)
  99.36% (1392/1401)
  99.27% (2041/2056)
- (0/0)
build/source/src/services/android_notifications.rs
   0.00% (0/1)
   0.00% (0/2)
   0.00% (0/2)
- (0/0)
build/source/src/services/app_state.rs
   6.25% (1/16)
  12.64% (11/87)
   9.87% (15/152)
- (0/0)
build/source/src/services/exercise_db.rs
  95.58% (108/113)
  97.40% (900/924)
  97.00% (1453/1498)
- (0/0)
build/source/src/services/exercise_loader.rs
   0.00% (0/8)
   0.00% (0/71)
   0.00% (0/107)
- (0/0)
build/source/src/services/native_queue.rs
   0.00% (0/6)
   0.00% (0/37)
   0.00% (0/62)
- (0/0)
build/source/src/services/service_worker.rs
 100.00% (2/2)
 100.00% (6/6)
 100.00% (6/6)
- (0/0)
build/source/src/services/storage.rs
  70.83% (51/72)
  94.43% (441/467)
  90.86% (736/810)
- (0/0)
build/source/src/services/wake_lock.rs
 100.00% (2/2)
 100.00% (5/5)
 100.00% (5/5)
- (0/0)
build/source/src/utils.rs
  96.36% (53/55)
  95.86% (324/338)
  95.61% (501/524)
- (0/0)
nix/store/xb6lhqp1inqqvwgffqm1dfwyskddqz9c-rust-default-1.94.0/lib/rustlib/src/rust/library/std/src/sys/thread_local/native/mod.rs
   0.00% (0/2)
   0.00% (0/6)
   0.00% (0/7)
- (0/0)
Totals
  81.37% (380/467)
  90.62% (3227/3561)
  89.89% (4971/5530)
- (0/0)

@github-actions

Copy link
Copy Markdown

📊 Coverage Report

FilenameFunction CoverageLine CoverageRegion CoverageBranch Coverage
build/source/src/main.rs
  32.43% (12/37)
  68.20% (148/217)
  71.10% (214/301)
- (0/0)
build/source/src/models/mod.rs
  98.69% (151/153)
  99.36% (1392/1401)
  99.27% (2041/2056)
- (0/0)
build/source/src/services/android_notifications.rs
   0.00% (0/1)
   0.00% (0/2)
   0.00% (0/2)
- (0/0)
build/source/src/services/app_state.rs
   6.25% (1/16)
  12.64% (11/87)
   9.87% (15/152)
- (0/0)
build/source/src/services/exercise_db.rs
  95.58% (108/113)
  97.40% (900/924)
  97.00% (1453/1498)
- (0/0)
build/source/src/services/exercise_loader.rs
   0.00% (0/8)
   0.00% (0/71)
   0.00% (0/107)
- (0/0)
build/source/src/services/native_queue.rs
   0.00% (0/6)
   0.00% (0/37)
   0.00% (0/62)
- (0/0)
build/source/src/services/service_worker.rs
 100.00% (2/2)
 100.00% (6/6)
 100.00% (6/6)
- (0/0)
build/source/src/services/storage.rs
  70.83% (51/72)
  94.43% (441/467)
  90.86% (736/810)
- (0/0)
build/source/src/services/wake_lock.rs
 100.00% (2/2)
 100.00% (5/5)
 100.00% (5/5)
- (0/0)
build/source/src/utils.rs
  96.36% (53/55)
  95.86% (324/338)
  95.61% (501/524)
- (0/0)
nix/store/xb6lhqp1inqqvwgffqm1dfwyskddqz9c-rust-default-1.94.0/lib/rustlib/src/rust/library/std/src/sys/thread_local/native/mod.rs
   0.00% (0/2)
   0.00% (0/6)
   0.00% (0/7)
- (0/0)
Totals
  81.37% (380/467)
  90.62% (3227/3561)
  89.89% (4971/5530)
- (0/0)

@github-actions

Copy link
Copy Markdown

🚀 Lighthouse Audit

URL Performance Accessibility Best Practices SEO
LogOut/ 54 87 100 100

Full reports:

@github-actions

Copy link
Copy Markdown

🚀 Lighthouse Audit

URL Performance Accessibility Best Practices SEO
LogOut/ 86 87 100 100

Full reports:

…m reference in pagesE2eTester

Co-authored-by: gfauredev <19304085+gfauredev@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown

📊 Coverage Report

FilenameFunction CoverageLine CoverageRegion CoverageBranch Coverage
build/source/src/main.rs
  32.43% (12/37)
  68.20% (148/217)
  71.10% (214/301)
- (0/0)
build/source/src/models/mod.rs
  98.69% (151/153)
  99.36% (1392/1401)
  99.27% (2041/2056)
- (0/0)
build/source/src/services/android_notifications.rs
   0.00% (0/1)
   0.00% (0/2)
   0.00% (0/2)
- (0/0)
build/source/src/services/app_state.rs
   6.25% (1/16)
  12.64% (11/87)
   9.87% (15/152)
- (0/0)
build/source/src/services/exercise_db.rs
  95.58% (108/113)
  97.40% (900/924)
  97.00% (1453/1498)
- (0/0)
build/source/src/services/exercise_loader.rs
   0.00% (0/8)
   0.00% (0/71)
   0.00% (0/107)
- (0/0)
build/source/src/services/native_queue.rs
   0.00% (0/6)
   0.00% (0/37)
   0.00% (0/62)
- (0/0)
build/source/src/services/service_worker.rs
 100.00% (2/2)
 100.00% (6/6)
 100.00% (6/6)
- (0/0)
build/source/src/services/storage.rs
  70.83% (51/72)
  94.43% (441/467)
  90.86% (736/810)
- (0/0)
build/source/src/services/wake_lock.rs
 100.00% (2/2)
 100.00% (5/5)
 100.00% (5/5)
- (0/0)
build/source/src/utils.rs
  96.36% (53/55)
  95.86% (324/338)
  95.61% (501/524)
- (0/0)
nix/store/xb6lhqp1inqqvwgffqm1dfwyskddqz9c-rust-default-1.94.0/lib/rustlib/src/rust/library/std/src/sys/thread_local/native/mod.rs
   0.00% (0/2)
   0.00% (0/6)
   0.00% (0/7)
- (0/0)
Totals
  81.37% (380/467)
  90.62% (3227/3561)
  89.89% (4971/5530)
- (0/0)

@github-actions

Copy link
Copy Markdown

🚀 Lighthouse Audit

URL Performance Accessibility Best Practices SEO
LogOut/ 67 87 100 100

Full reports:

…t to 45min

Co-authored-by: gfauredev <19304085+gfauredev@users.noreply.github.com>
Copilot AI changed the title fix: writeShellScriptBin for google-chrome wrapper so chromedriver finds it via PATH fix: E2E tests timing out on CI due to uncached nix packages and missing Garnix wait Mar 16, 2026
Copilot stopped work on behalf of gfauredev due to an error March 16, 2026 18:25
@github-actions

Copy link
Copy Markdown

📊 Coverage Report

FilenameFunction CoverageLine CoverageRegion CoverageBranch Coverage
build/source/src/main.rs
  32.43% (12/37)
  68.20% (148/217)
  71.10% (214/301)
- (0/0)
build/source/src/models/mod.rs
  98.69% (151/153)
  99.36% (1392/1401)
  99.27% (2041/2056)
- (0/0)
build/source/src/services/android_notifications.rs
   0.00% (0/1)
   0.00% (0/2)
   0.00% (0/2)
- (0/0)
build/source/src/services/app_state.rs
   6.25% (1/16)
  12.64% (11/87)
   9.87% (15/152)
- (0/0)
build/source/src/services/exercise_db.rs
  95.58% (108/113)
  97.40% (900/924)
  97.00% (1453/1498)
- (0/0)
build/source/src/services/exercise_loader.rs
   0.00% (0/8)
   0.00% (0/71)
   0.00% (0/107)
- (0/0)
build/source/src/services/native_queue.rs
   0.00% (0/6)
   0.00% (0/37)
   0.00% (0/62)
- (0/0)
build/source/src/services/service_worker.rs
 100.00% (2/2)
 100.00% (6/6)
 100.00% (6/6)
- (0/0)
build/source/src/services/storage.rs
  70.83% (51/72)
  94.43% (441/467)
  90.86% (736/810)
- (0/0)
build/source/src/services/wake_lock.rs
 100.00% (2/2)
 100.00% (5/5)
 100.00% (5/5)
- (0/0)
build/source/src/utils.rs
  96.36% (53/55)
  95.86% (324/338)
  95.61% (501/524)
- (0/0)
nix/store/xb6lhqp1inqqvwgffqm1dfwyskddqz9c-rust-default-1.94.0/lib/rustlib/src/rust/library/std/src/sys/thread_local/native/mod.rs
   0.00% (0/2)
   0.00% (0/6)
   0.00% (0/7)
- (0/0)
Totals
  81.37% (380/467)
  90.62% (3227/3561)
  89.89% (4971/5530)
- (0/0)

@github-actions

Copy link
Copy Markdown

🚀 Lighthouse Audit

URL Performance Accessibility Best Practices SEO
LogOut/ 51 87 100 100

Full reports:

@gfauredev
gfauredev merged commit 4d87784 into main Mar 16, 2026
12 of 14 checks passed
@gfauredev
gfauredev deleted the copilot/add-maestro-e2e-tests-again branch March 16, 2026 18:29
@github-actions

Copy link
Copy Markdown

📊 Coverage Report

FilenameFunction CoverageLine CoverageRegion CoverageBranch Coverage
build/source/src/main.rs
  32.43% (12/37)
  68.20% (148/217)
  71.10% (214/301)
- (0/0)
build/source/src/models/mod.rs
  98.69% (151/153)
  99.36% (1392/1401)
  99.27% (2041/2056)
- (0/0)
build/source/src/services/android_notifications.rs
   0.00% (0/1)
   0.00% (0/2)
   0.00% (0/2)
- (0/0)
build/source/src/services/app_state.rs
   6.25% (1/16)
  12.64% (11/87)
   9.87% (15/152)
- (0/0)
build/source/src/services/exercise_db.rs
  95.58% (108/113)
  97.40% (900/924)
  97.00% (1453/1498)
- (0/0)
build/source/src/services/exercise_loader.rs
   0.00% (0/8)
   0.00% (0/71)
   0.00% (0/107)
- (0/0)
build/source/src/services/native_queue.rs
   0.00% (0/6)
   0.00% (0/37)
   0.00% (0/62)
- (0/0)
build/source/src/services/service_worker.rs
 100.00% (2/2)
 100.00% (6/6)
 100.00% (6/6)
- (0/0)
build/source/src/services/storage.rs
  70.83% (51/72)
  94.43% (441/467)
  90.86% (736/810)
- (0/0)
build/source/src/services/wake_lock.rs
 100.00% (2/2)
 100.00% (5/5)
 100.00% (5/5)
- (0/0)
build/source/src/utils.rs
  96.36% (53/55)
  95.86% (324/338)
  95.61% (501/524)
- (0/0)
nix/store/xb6lhqp1inqqvwgffqm1dfwyskddqz9c-rust-default-1.94.0/lib/rustlib/src/rust/library/std/src/sys/thread_local/native/mod.rs
   0.00% (0/2)
   0.00% (0/6)
   0.00% (0/7)
- (0/0)
Totals
  81.37% (380/467)
  90.62% (3227/3561)
  89.89% (4971/5530)
- (0/0)

@github-actions

Copy link
Copy Markdown

🚀 Lighthouse Audit

URL Performance Accessibility Best Practices SEO
LogOut/ 72 87 100 100

Full reports:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants