android: fix sign-in (INTERNET permission) + scrollable layout (v0.2.1)#10
Merged
Conversation
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
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>
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.
On-device fixes for the 0.2.0 Android build:
INTERNETpermission — Cascade was offline (bundled audio), and sync is the first code to touch the network. Added it.v0.2.1 / versionCode 3. The
v0.2.1-androidtag will publish the fixed APK viarelease-android.yml.🤖 Generated with Claude Code