Skip to content

android: fix sign-in (INTERNET permission) + scrollable layout (v0.2.1)#10

Merged
JacobStephens2 merged 2 commits into
mainfrom
android-fix-0.2.1
Jun 6, 2026
Merged

android: fix sign-in (INTERNET permission) + scrollable layout (v0.2.1)#10
JacobStephens2 merged 2 commits into
mainfrom
android-fix-0.2.1

Conversation

@JacobStephens2

Copy link
Copy Markdown
Owner

On-device fixes for the 0.2.0 Android build:

  • Sign-in failed ("Couldn't send the sign-in link") because the app had no INTERNET permission — Cascade was offline (bundled audio), and sync is the first code to touch the network. Added it.
  • Layout overflow: the screen wasn't scrollable, so the custom-timer input clipped into a stray box over the sleep-timer chips. Made the Column scrollable (and removed the weight spacer it conflicted with). Moved the sign-in box below the timer controls.

v0.2.1 / versionCode 3. The v0.2.1-android tag will publish the fixed APK via release-android.yml.

🤖 Generated with Claude Code

Two fixes from on-device testing of 0.2.0:

- Add the INTERNET permission. Cascade was an offline app (bundled audio), so
  it was never declared — and the account/sync feature is the first code that
  makes an HTTP call, so every request threw ("Couldn't send the sign-in link").
- Make the main screen vertically scrollable and drop the weight-based spacer
  (incompatible with scrolling). Content was overflowing the viewport with no
  scroll, clipping the custom-timer input field into a stray box overlapping the
  sleep-timer chips. Also moved the sign-in/account box below the timer controls.

Bumps to 0.2.1 / versionCode 3.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Magic links won't reliably reopen a sideloaded, debug-signed APK (no stable
signing key to pin Android App Links to), so add the desktop-style fallback:
"Email me a link" requests it, then paste the link back into the app to finish.
SyncManager.completeSignInFromLink extracts the token from the pasted URL (or a
raw token) and runs the existing verify flow. Two-step UI with weight-based
fields so the buttons don't overflow.

Bumps to 0.2.2 / versionCode 4.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@JacobStephens2 JacobStephens2 merged commit d6fabbe into main Jun 6, 2026
3 checks passed
JacobStephens2 added a commit that referenced this pull request Jun 7, 2026
The macOS app set `com.apple.security.network.client: false` ("this app
never reaches the network") — correct for the original white-noise-only
build. The listening-time account/sync feature (the magic-link sign-in +
G-Counter sync to cascade-sync-server) was added afterwards but the
sandbox entitlement was never re-enabled, so under the App Sandbox every
outbound URLSession call fails silently and the UI just shows
"Couldn't send the sign-in link."

Flip the entitlement to true (and regenerate Cascade.entitlements). This
is the macOS counterpart of the Android INTERNET-permission fix (#10).

Verified end-to-end on macOS after the change: magic-link request,
verify/sign-in, cross-device sync pull, delete-data, and delete-account
all work against the live sync server.

Co-authored-by: admin <admin@MacBook-Air-7.local>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.

1 participant