Releases: JacobStephens2/cascade
Cascade v0.2.3-android (Android)
android: production release signing + Android App Links; v0.2.3 - Add a release signingConfig driven by env vars (set from repo secrets in CI), with a debug-signing fallback so local release builds still work. The release workflow now decodes the keystore from ANDROID_KEYSTORE_BASE64 and signs with the production key. - Publish /.well-known/assetlinks.json (apps/web/public) pinning the app package + the release key's SHA-256 fingerprint, so the autoVerify intent-filter on https://cascade.stephens.page/auth makes the emailed magic link open the app directly (App Links), not the browser. The paste-link fallback stays as a belt-and-suspenders path. Bumps to 0.2.3 / versionCode 5. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Cascade v0.2.2-android (Android)
android: paste-the-link sign-in fallback; v0.2.2 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>
Cascade v0.2.1-android (Android)
android: fix sign-in (INTERNET permission) + scrollable layout; v0.2.1
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>
Cascade v0.2.0 (Android)
First Android build with the optional Cascade account.
New
- Listening-time tracking — Cascade keeps a running total of how long you've listened (on by default, toggle in-app). It's a single cumulative number, never a timeline.
- Optional account + sync — sign in with an email magic link (no password) to centralize your listening total across devices. Backed by a G-Counter CRDT, so concurrent devices add rather than overwrite. Sync service:
sync.cascade.stephens.page. - Sign out, delete-data, and delete-account controls.
Install (sideload)
- Universal APK —
arm64-v8a,armeabi-v7a,x86_64; Android 8.0+ (minSdk 26). - Debug-signed for sideloading (not a Play Store build, consistent with the prior 0.1.0 Android release). Enable "install unknown apps" for your browser/file manager, then open the APK.
The account is entirely opt-in — without signing in, Cascade tracks locally and contacts no server.
Cascade v0.1.0 (Windows x64)
Cascade v0.1.0 — Windows (x64)
Updated 2026-05-31: fixed a bug where audio was silent on launch (the
bundled track failed to load in the unpackaged build), and added the proper
Cascade app icon (taskbar / window). Re-download if you grabbed an earlier asset.
First Windows build of Cascade, the waterfall white-noise player. This is the
WinUI 3 / .NET shell over the shared headless Rust core (cascade_uniffi.dll,
C ABI + P/Invoke), playing the 13-minute waterfall recording with MediaPlayer
and System Media Transport Controls.
This Windows binary corresponds to the same main tree as v0.1.0; the only
commits between them are Apple-shell changes, so the Windows app is identical.
Download & run
- Download
Cascade-v0.1.0-win-x64.zipbelow and extract it. - Run
win-x64\Cascade.exe.
No install needed — the build is self-contained (bundles its own .NET 8
runtime and the Windows App Runtime), so it runs without installing .NET or the
WinAppSDK separately.
Requirements
- Windows 10 version 2004 (build 19041) or later, 64-bit (x64).
Notes
- This build is unsigned, so Windows SmartScreen may warn on first launch
("Windows protected your PC" → More info → Run anyway). A code-signed
build (via SignPath's free OSS signing) is planned for a following release. - Includes the bundled
Assets\waterfall.mp3audio.
Built locally with the Rust gnu toolchain + user-scoped .NET 8 SDK.
Cascade v0.1.0 (Android)
Cascade v0.1.0 — Android
First Android build of Cascade, the waterfall white-noise player. This is the
Kotlin + Jetpack Compose shell over the shared headless Rust core
(libcascade_uniffi.so, UniFFI), playing the 13-minute waterfall recording
through a Media3 MediaSessionService with background playback and
lock-screen / notification controls.
This Android binary corresponds to the same main tree as v0.1.0; the only
commits between them are web/desktop-shell changes, so the Android app is
identical.
Download & install
- Download
Cascade-0.1.0.apkbelow to your device. - Open it and allow installation from your browser/file manager when prompted
("Install unknown apps").
The APK is universal — it bundles native code for arm64-v8a,
armeabi-v7a, and x86_64, so it runs on phones, tablets, and emulators.
Requirements
- Android 8.0 (Oreo, API 26) or later.
Notes
- This build is signed with a self-signed (debug) key, not a Play Store
key, so Play Protect may warn on install ("Scan app" / "Install anyway"). - Includes the bundled
waterfall.oggaudio (~8.6 MB).
Built locally with cargo-ndk (Rust core for all three ABIs) + the Android SDK.
Cascade 0.1.0 (macOS)
A waterfall white-noise player for macOS — one headless Rust core, native SwiftUI shell.
Install
- Download Cascade-0.1.0.dmg below.
- Open the DMG and drag Cascade to Applications.
⚠️ First launch (important)
Ad-hoc signed, not notarized — macOS Gatekeeper blocks it on first open. Pick one:
- Terminal:
xattr -dr com.apple.quarantine /Applications/Cascade.appthen open it. - GUI: double-click → Done, then System Settings → Privacy & Security → Open Anyway.
One-time only.
Details
- Universal (Apple Silicon + Intel), macOS 14+.
- Menu-bar player: play/pause, volume, focus (30/60 min, 8 hr) & sleep (15/30/60 min) timers.
- SHA-256:
04afb2939f6cc5dcc5d93855c2c5bd3acc69bfdadb1d2b72a10b37e2ad420eca