monitoring: use inference fix branch by default; harden GUI chain ANR wait

Default BUILD branch fix-bank-withdraw-auto-exchange; dismiss System UI
ANR before confirm taps so low-RAM emulators fail less uselessly.
This commit is contained in:
Hernâni Marques 2026-07-17 21:22:45 +02:00
parent 2dfd40558a
commit 92695c0ee3
No known key found for this signature in database
6 changed files with 55 additions and 12 deletions

View file

@ -130,15 +130,30 @@ Open issues mirrored from upstream `ISSUES.md` (gui-workflows):
- **I-and-gui-004** — emulator RAM cost (this host ~3.7GiB) - **I-and-gui-004** — emulator RAM cost (this host ~3.7GiB)
- **I-and-gui-007** — for reliable withdraw GUI, build/install app from **fix/bank-withdraw-auto-exchange** or **fix/withdraw-spinner-fallback**, not plain master alone - **I-and-gui-007** — for reliable withdraw GUI, build/install app from **fix/bank-withdraw-auto-exchange** or **fix/withdraw-spinner-fallback**, not plain master alone
Recommended demo stack: ### Ground rule (ops)
1. **Bring it to run** first (scripts + live stack).
2. **App code changes only if needed**, and **minimal**.
3. Prefer **existing** `dev/hernani-inference/*` branches over new ones; extend them rather than forking random trees.
### Recommended demo stack (2026-07)
```text ```text
1) Checkout taler-android: fix/withdraw-spinner-fallback (or merge fixes) 1) taler-android checkout:
2) ./gradlew :wallet:installFdroidDebug dev/hernani-inference/fix-bank-withdraw-auto-exchange
3) Boot emulator / phone (or fix/withdraw-spinner-fallback for spinner + OIM)
2) ./gradlew :wallet:assembleFdroidDebug # package net.taler.wallet.fdroid.debug
3) Boot emulator / phone (prefer ≥68GiB host RAM; 4GiB → System UI ANR)
4) android-test/run-goa-gui-chain.sh # STACK=goa|stage 4) android-test/run-goa-gui-chain.sh # STACK=goa|stage
``` ```
`run-android-build-and-smoke.sh` defaults `BRANCH=dev/hernani-inference/fix-bank-withdraw-auto-exchange`
so source smokes pick up the GOA exchange auto-add fix without manual checkout.
### Runtime note (clementine)
On ~3.7GiB hosts the emulator often shows **System UI isnt responding** before Confirm is tappable. Chain script now prioritizes **Wait** over hunting Confirm. For a green end-to-end GUI path use a physical device or more RAM — the **mint + deep-link + fix-branch APK** path is otherwise ready.
```bash ```bash
# GOA chain (explorer mint + GUI taps) # GOA chain (explorer mint + GUI taps)
EXP_PW_FILE=$HOME/src/koopa/koopa-admin-secrets/koopa/host-root/taler-bank/bank-explorer-password.txt \ EXP_PW_FILE=$HOME/src/koopa/koopa-admin-secrets/koopa/host-root/taler-bank/bank-explorer-password.txt \

View file

@ -0,0 +1 @@
taler://pay/taler.hacktivism.ch/instances/goa-shop/2026.198-93H450R000000/?c=1G3C43V1H89J8CQQ42TGDGVGMM

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
taler://withdraw/bank.hacktivism.ch/taler-integration/39ba4ffc-f0e6-4e12-9e5b-d11fb8a2bcdd

View file

@ -19,6 +19,9 @@ ROOT=$(cd "$(dirname "$0")" && pwd)
SMOKE="$ROOT/run-android-pay-smoke.sh" SMOKE="$ROOT/run-android-pay-smoke.sh"
SRC="${TALER_ANDROID_SRC:-$HOME/taler/taler-android}" SRC="${TALER_ANDROID_SRC:-$HOME/taler/taler-android}"
SKIP_PULL="${SKIP_PULL:-0}" SKIP_PULL="${SKIP_PULL:-0}"
# Prefer existing inference fix branch for GOA withdraw (spinner/exchange resolve).
# Override: BRANCH=master or BRANCH=dev/hernani-inference/fix-withdraw-spinner-fallback
BRANCH="${BRANCH:-dev/hernani-inference/fix-bank-withdraw-auto-exchange}"
VARIANT="${VARIANT:-fdroidDebug}" # assemble task suffix: FdroidDebug / NightlyDebug / … VARIANT="${VARIANT:-fdroidDebug}" # assemble task suffix: FdroidDebug / NightlyDebug / …
export ANDROID_HOME="${ANDROID_HOME:-$HOME/Android/Sdk}" export ANDROID_HOME="${ANDROID_HOME:-$HOME/Android/Sdk}"
export ANDROID_SDK_ROOT="${ANDROID_SDK_ROOT:-$ANDROID_HOME}" export ANDROID_SDK_ROOT="${ANDROID_SDK_ROOT:-$ANDROID_HOME}"
@ -35,13 +38,19 @@ fi
printf 'sdk.dir=%s\n' "$ANDROID_HOME" >"$SRC/local.properties" printf 'sdk.dir=%s\n' "$ANDROID_HOME" >"$SRC/local.properties"
cd "$SRC" cd "$SRC"
if [ "$SKIP_PULL" != "1" ] && [ -d .git ]; then if [ -d .git ]; then
echo "git pull --ff-only origin $(git rev-parse --abbrev-ref HEAD)" git fetch origin 2>/dev/null || true
git pull --ff-only origin "$(git rev-parse --abbrev-ref HEAD)" || \ if [ -n "$BRANCH" ] && git rev-parse --verify "origin/$BRANCH" >/dev/null 2>&1; then
git fetch origin && git merge --ff-only "origin/$(git rev-parse --abbrev-ref HEAD)" || true echo "checkout origin/$BRANCH (minimal GOA/automation fixes; override BRANCH=)"
git checkout -B "$BRANCH" "origin/$BRANCH" 2>/dev/null || git checkout "$BRANCH" 2>/dev/null || true
fi
if [ "$SKIP_PULL" != "1" ]; then
br=$(git rev-parse --abbrev-ref HEAD)
git pull --ff-only origin "$br" 2>/dev/null || true
fi
fi fi
COMMIT=$(git rev-parse --short=12 HEAD 2>/dev/null || echo unknown) COMMIT=$(git rev-parse --short=12 HEAD 2>/dev/null || echo unknown)
echo "source: $SRC @ $COMMIT" echo "source: $SRC @ $COMMIT (branch $(git rev-parse --abbrev-ref HEAD 2>/dev/null || ?))"
echo "variant: assemble${VARIANT^}" 2>/dev/null || true echo "variant: assemble${VARIANT^}" 2>/dev/null || true
# Map VARIANT → gradle task (fdroidDebug → assembleFdroidDebug) # Map VARIANT → gradle task (fdroidDebug → assembleFdroidDebug)

View file

@ -249,14 +249,30 @@ PY
click_through() { click_through() {
local labels=("$@") local labels=("$@")
local i lab local i lab misses=0
for i in 1 2 3 4 5 6 7 8; do # Prefer dismissing ANR before hunting Confirm (low-RAM hosts thrash System UI)
for i in 1 2 3 4 5 6; do
if tap_text "Wait" 2>/dev/null || tap_text "Warten" 2>/dev/null; then
info "dismissed ANR (Wait)"
pause 2.0
misses=0
continue
fi
local hit=0
for lab in "${labels[@]}"; do for lab in "${labels[@]}"; do
if tap_text "$lab" 2>/dev/null; then if tap_text "$lab" 2>/dev/null; then
hit=1
misses=0
pause 0.9 pause 0.9
break
fi fi
done done
pause 0.4 if [[ "$hit" -eq 0 ]]; then
misses=$((misses + 1))
# stop early if hierarchy has nothing useful (avoid burning order deadlines)
[[ "$misses" -ge 3 ]] && break
fi
pause 0.5
done done
} }