docs(android-test): as-is survey GOA+stage stable/master/inference

Record dual-stack overview: landings OK, all app variants ANR-blocked
on low-RAM emulator; older F-Droid APKs missing; local master+inference
branch built but not greener (not pushed).
This commit is contained in:
Hernâni Marques 2026-07-17 22:18:19 +02:00
parent 8f42306db7
commit 57cf9aa2a1
No known key found for this signature in database
2 changed files with 60 additions and 33 deletions

View file

@ -8,3 +8,4 @@ out-source-gui/
out-gui-chain/
out-matrix-*/
out-stack-run-*/
out-survey-*/

View file

@ -264,50 +264,76 @@ Scripts **today** implement Android only; they should honour:
| **GOA** | explorer mint / `demo-withdraw.json` @ bank.hacktivism.ch | goa-shop templates / Paivana pay-template |
| **stage** | explorer / demo-withdraw @ stage.bank… | fermes / jardin public templates |
### Dual-stack run result (2026-07-17 · headless AVD)
### Lageübersicht GOA + stage (as-is survey · 2026-07-17 ~22:0522:18)
**What ran:** published F-Droid wallet **1.6.1** (`net.taler.wallet.fdroid`),
`run-android-pay-smoke.sh` with **Abheben + Bezahlen**, `SMOKE_STRICT=1`,
per-stack wall **480s** (no full matrix / no Gradle — time-bounded).
Device: `emulator-5554` (TalerWallet34, headless, SwiftShader).
Host RAM ~**3.7GiB** (~150MiB free during run) — under recommended ≥68GiB.
**Device:** headless `emulator-5554` · host ~3.7GiB RAM (often <300MiB free) · timeout per leg ≤420s.
**Legs:** Abheben + Bezahlen (`DO_WITHDRAW=1 DO_PAY=1`). Artefakte: `out-survey-20260717-220527/` (gitignored).
| Stack | Bank / pay entry | Exit | Elapsed | Withdraw URI | Pay URI | wallet-core withdraw | wallet-core pay | ANR | Overall |
|-------|------------------|------|---------|--------------|---------|----------------------|-----------------|-----|---------|
| **goa** | bank.hacktivism.ch · paivana pay-template | **10** | ~106s | delivered | delivered | **NO** | **NO** | **YES** (System UI) | **FAIL** |
| **stage** (*lefrancpaysan*) | stage.bank… · fermes `panier-legumes` order | **10** | ~176s | delivered | delivered | **NO** | **NO** | **YES** (Android System) | **FAIL** |
#### Varianten
Neither stack hit the 480s timeout; both finished under 3min with hard fail.
| Variante | Quelle | Bemerkung |
|----------|--------|-----------|
| **stable (published)** | F-Droid `net.taler.wallet.fdroid` **1.6.1 / 854** | as-is |
| **master as-is** | rebuild `origin/master` @ `f65a976c``.fdroid.debug` | as-is, no patches |
| **ältere Releases** (3/6/9/12 mon) | F-Droid APKs für `1.5.0`/`1.3.0`/`1.1.0`/`1.0.8` | **nicht auffindbar** (HTTP miss) → **SKIP** (kein Selbstbau älterer Tags) |
| **master + inference** (extra) | local branch `local/master-with-inference` @ `3ebe8b09` | merges `fix-bank-withdraw-auto-exchange` + `fix-withdraw-spinner-fallback` · **not pushed** |
**What worked (infra / landings):**
#### Ergebnis-Matrix
- adb install F-Droid APK
- GOA + stage **demo-withdraw.json** returned usable `taler://withdraw/…`
- GOA **pay-template** paivana URI built
- stage merchant **template POST**`taler://pay/…/fermes-des-collines/…`
- Intent delivery (`am start VIEW`) for withdraw and pay
- Artifacts under `out-stack-run-20260717-215934/{goa,stage}/` (gitignored)
| Variant | Stack | Install / deep-link | Withdraw URI | Pay URI | wallet-core Abheben | wallet-core Pay | ANR | Exit |
|---------|-------|---------------------|--------------|---------|---------------------|-----------------|-----|------|
| stable published | **goa** (hacktivism) | OK | OK bank.hacktivism.ch | OK paivana template | **NO** | soft/YES once* | **YES** | **10** |
| stable published | **stage** (*.lefrancpaysan) | OK | OK stage.bank… | OK fermes order | **NO** | **NO** | **YES** | **10** |
| master as-is | **goa** | OK | OK | OK paivana | **NO** | **NO** | **YES** | **10** |
| master as-is | **stage** | OK | OK | OK fermes | **NO** | **NO** | **YES** | **10** |
| master+inference | **goa** | OK | OK | OK | **NO** | **NO** | **YES** | **10** |
| master+inference | **stage** | OK | OK | OK | **NO** | **NO** | **YES** | **10** |
**What failed (app/GUI on this host):**
\*stable-goa console once reported pay wallet-core YES mid-run; final score still ANR-dominated / not reliable settlement.
- **System UI / Android System ANR** → only Close/Wait; no Confirm/Abheben/Pay taps
- **wallet-core** never showed `prepareBankIntegratedWithdrawal` / pay prepare in logcat
- Chooser noise: **Taler Wallet** + **Taler Wallet Debug** both installed (“Open with”)
- Unattended **Abheben + Bezahlen** not green on this emulator/RAM
#### Was pro Stack **steht** (Infra)
**Interpretation:**
| Check | **goa / hacktivism** | **stage / \*.lefrancpaysan** |
|-------|----------------------|------------------------------|
| Bank `…/intro/demo-withdraw.json``taler://withdraw/…` | **OK** | **OK** |
| Pay entry | paivana `pay-template` **OK** | fermes `panier-legumes` POST → `taler://pay/…` **OK** |
| adb `VIEW` Intent delivery | **OK** | **OK** |
| Unattended Confirm/Abheben/Pay GUI | **FAIL (ANR)** | **FAIL (ANR)** |
| wallet-core prepare/accept withdraw in logcat | **not seen** | **not seen** |
| Layer | GOA | stage |
|-------|-----|-------|
| HTTP / bank / merchant reachability for smoke inputs | OK | OK |
| Deep-link plumbing | OK | OK |
| Unattended GUI Confirm → settled | **blocked (ANR)** | **blocked (ANR)** |
| Strict smoke (`SMOKE_STRICT=1`) | fail rc=10 | fail rc=10 |
**Fazit as-is:** Beide Stacks liefern die **Eingänge** (Withdraw- + Pay-URIs). Die **GUI/wallet-core-Strecke** ist auf diesem Emulator für **alle** getesteten App-Varianten (stable, master, inference) **gleich tot** — System UI / Android System ANR, keine brauchbaren Taps. Das ist **kein Stack-Unterschied** GOA vs stage und **kein** belastbarer App-Versions-Vergleich.
**Not a stack-specific regression** between GOA and stage in this run — same failure mode (host/emulator).
Settlement proof remains **host CLI e2e/ladder**, not this Android GUI path, until a device with enough RAM is used.
#### Inference-Patch-Versuch (lokal, **kein Push**)
**Retry when:** physical phone or host with more free RAM; ideally uninstall one of fdroid / fdroid.debug to avoid “Open with”; optional `WINDOWED=0` stays default (headless).
Weil **nichts** der as-is-Varianten wallet-core-grün war, wurde zusätzlich gebaut:
```text
taler-android branch: local/master-with-inference # NOT pushed
base: origin/master
merged: origin/dev/hernani-inference/fix-bank-withdraw-auto-exchange
origin/dev/hernani-inference/fix-withdraw-spinner-fallback
commit: 3ebe8b091379
APK: apks/wallet-master-inference-3ebe8b091379.apk (local)
```
| Stack | Inference smoke | Besser als master/stable? |
|-------|-----------------|---------------------------|
| goa | exit 10, ANR, no withdraw core | **Nein** |
| stage | exit 10, ANR, no withdraw core | **Nein** |
**Kein grünes Inference-Signal** auf diesem Host → wir können **nicht** belegen, dass die Patches Withdraw/Pay „retten“.
Ebenso können wir **nicht** belegen, dass master ohne Patches „schuld“ ist: die Umgebung erreicht wallet-core gar nicht.
> **Wenn später auf Gerät/mehr RAM die Inference-APK plötzlich grün und master/stable rot ist:**
> das ist der **klare Fix-Hinweis** — Patches aus `dev/hernani-inference/*` upstreamen / in master holen.
> **Heute:** noch **nicht** der Fall; primärer Blocker = **Emulator/RAM/ANR**.
#### Nächste sinnvolle Schritte (später)
1. Physisches Gerät oder Host ≥68GiB free RAM
2. Nur **eine** Wallet-Package-ID installiert (kein Open-with)
3. Survey wiederholen: stable · master · `local/master-with-inference` auf **goa + stage**
4. Ältere F-Droid-APKs nur wenn wieder gehostet; kein Selbstbau alter Tags
---