Appearance
The real Android emulator journey passed on the dedicated test account: add Coconfort, sign out, sign in and add Aspicot. SQL confirmed unchanged owner, revoked first session, new session and two active holdings/copies. Password rotation was authorized and completed; a login with the old password returned 401, the new password returned 200, and the emulator was reconnected. No personal account was changed. No credential, address or account identifier is recorded here.
Four secrets are configured in the mobile repository's e2e GitHub environment, restricted to staging: SNAG_E2E_API_BASE, SNAG_E2E_EMAIL, SNAG_E2E_PASSWORD, SNAG_E2E_USER_ID. No one-time email code is needed for routine password-login tests. Credentials must not be committed or printed.
App PR #865 adds an HTTP E2E workflow on relevant staging pushes/manual runs using the existing snag-k8s ARC label. Owner checks precede collection writes. The test verifies old access/refresh rejection, new same-owner session, persistence of one isolated fixture, cleanup of that fixture, preservation of original active holdings and revocation of its own final session. A local execution against the real API passed. Three safety regressions, lint, typecheck and 3,043 Jest tests passed (11 skipped).
The secrets are live; workflow activation requires merging the PR. GitHub runner execution and this repository's ARC access remain unverified. This is HTTP/API automation, not native UI/camera CI. Android UI was checked separately; iOS UI was not executed. No paid hosted runner or database secret is configured. An interrupted runner/network failure may prevent fixture cleanup; inspect only the dedicated account on failure. Soft-deleted fixtures and audit events remain.