Re-pin compileSdk/targetSdk to 35 (regressed after PR #1 merge)#3
Merged
Conversation
This regressed when PR #1 was merged (cb540c3) — commit 9d9846b in that PR pinned compileSdk to 35, but the merge appears to have lost that change. Result: a fresh '@ethora/setup → open in Android Studio' flow on a default install fails with the opaque 'Could not isolate parameters of artifact transform D8BackportedMethodsGenerator' error because there is no stable 'android-37' base Platform SDK download — only previews (android-CANARY, android-CinnamonBun, android-37.0). Re-applying the same fix on a fresh PR. Same comment block as 9d9846b so the rationale lives next to the version literal. Bump back to 36/37 once those exist as stable base entries in SDK Manager.
phwizard
added a commit
that referenced
this pull request
May 11, 2026
Adds .maestro/ with 10 placeholder flows covering ~80% of typical
SDK usage patterns:
01-login-email email + password login (catches the
TOKEN_WRONG_TYPE / wrong-base-URL class
of regressions we hit this week)
02-login-jwt client-flow JWT auth via /users/client
03-list-rooms GET /chats/my + unread counts
04-send-text full XMPP send round-trip
05-receive-text MAM push delivery (uses helper script
to send-as-bob via REST while alice
waits in-app)
06-attach-file PendingMediaSendQueue + chunked upload
07-reconnect-airplane airplane mode toggle, ConnectionStore
recovery without remount
08-push-deep-link synthetic notification intent → room
09-logout-relogin DataStore not leaking previous-user state
10-switch-app multi-tenant app-switcher (alice on app A
→ charlie on app B without remount)
Each flow is a runnable YAML stub with realistic semantic anchors
based on the playground's actual UI. A few ($MAESTRO_TEST_*)
variables hold credentials, sourced from CI secrets so no real
data lives in source — fixtures/test-users.yaml documents the
contract.
CI workflow (.github/workflows/maestro.yml):
- macOS runner (HAXM/hypervisor needed for emulator).
- Single API level on PRs (34); full matrix [26, 30, 34] on
release tags.
- .env on the runner is composed from secrets, never checked in.
- Failures upload Maestro recordings as artifacts (14d retention).
Both this repo's README and (paired commit on ethora-sdk-android
PR #3) the SDK README gain a "Testing" section explaining the
two-layer split:
Layer 1 — hermetic component tests in ethora-sdk-android
(chat-core/src/test, chat-ui/src/androidTest, ethora-component/src/test)
Layer 2 — real-server smoke flows here, gating SDK release tags
The split keeps SDK tests fast and offline-runnable while pushing
network/integration flows to where the running app is.
Several flows reference helper scripts (.maestro/scripts/sendAsBob.js,
toggleAirplaneMode.sh, sendPushIntent.sh) and asset fixtures
(test image for 06-attach-file) that don't exist yet — left as
TODOs in the YAML comments. First green flow can be 01 or 04 with
a populated .env; the rest can fill in incrementally.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
PR #1 included commit `9d9846b` pinning `compileSdk` / `targetSdk` from 37 → 35, but the change was lost when the PR was merged (`cb540c3`). `main` is back at `compileSdk = 37` and a fresh `@ethora/setup → Android Studio sync` fails on every default install with the opaque error:
```
Could not isolate parameters of artifact transform D8BackportedMethodsGenerator
…
Failed to find Platform SDK with path: platforms;android-37
```
Why this matters
There is no stable `android-37` base Platform SDK download — only previews (`android-CANARY`, `android-CinnamonBun`, `android-37.0`). Targeting `compileSdk = 37` forces every developer onto:
That's not a reasonable bar for a sample app's first-run experience.
Fix
Same one-line change as `9d9846b`: pin both back to 35 (Android 15, current stable that ships as a base SDK Manager download).
Bump back to 36/37 once those exist as stable base entries — flagged in the comment in `libs.versions.toml`.
Test plan