Skip to content

Releases: Tgbjr2025/grindrx

v0.1.23 — social-signup login notice (+ rollup of v0.1.17–v0.1.22)

Choose a tag to compare

@Tgbjr2025 Tgbjr2025 released this 22 Jul 04:01

Social-signup login notice + unified mainline.

New in this release

  • Login screen now clearly explains that Google / Apple / Facebook signups must Set a password first (replaces the dead, commented-out "Login with Google" button), with a prominent button to the password-reset flow.
  • Working "set a password" flow for social-signup users.

Also included (GitHub releases previously stopped at v0.1.16 — this rolls up v0.1.17 through v0.1.22):

  • CAS-4001 explore error, filter-change crash, account-creation toasts
  • Shared-photos lightbox 403 fix
  • 7 correctness fixes from code audit
  • Album-photo reactions/replies; viewers linked with profileId
  • Tappable links in messages + long-URL wrapping
  • Privacy: stop broadcasting saved photos; delete now sticks
  • Shared locations render instead of "Unsupported message type"
  • Notification messages channel + Private photos tab in chat picker

APK is signed with the GrindrX key (cert SHA-256 22d6889e...4c01) — installs in place over any previous GrindrX build.

v0.1.16 — notifications, private-photo picker, explore/filter/account fixes

Choose a tag to compare

@Tgbjr2025 Tgbjr2025 released this 14 Jul 00:45
062a650

GrindrX v0.1.16

Fixes for the open issues reported here on git.dominusaxis.com/dominus/grindrx.

Fixes

  • Notifications no longer split across categories (#6). Message notifications are posted by the background WebSocket service, whose process can be alive after an OS restart without the main Activity ever running. The grindx_messages channel was only created by the Activity, so those notifications fell back to a system channel and Android's Notification Assistant bucketed them under "Suggestions", splitting a conversation. The channel is now registered by the background service too, so every notification lands on the correct high-priority channel.
  • Chat photo picker now offers your private pictures (#5). The picker's photo tab was showing your public profile photos. Added a Private tab sourced from your albums (private, signed media); public profile photos remain under a Profile tab. Private photos are sent by re-uploading them through the chat-media pipeline.
  • Explore/map no longer errors with "CAS-4001 is not valid JSON" (#3). The explore endpoint can reply with a bare status code instead of JSON; the app now recognises that and shows an actionable message ("this area couldn't be loaded — try another spot") instead of a raw parse error.
  • Changing filters/settings no longer crashes the app (#3). A preferences read that overlapped a write (or a half-written file) could throw with no handler and tear down the home screen until you relaunched. Preference reads now fall back to defaults on any corruption, the home screen has a crash backstop, and the shared filter defaults are deep-copied so slider edits can't corrupt saved settings.
  • Account creation / password reset no longer show spurious error toasts (#1). These pre-login screens were routed through the authenticated request path, which failed with "Not logged in" before the request was even sent — producing a double error toast and a wrong bounce to sign-in. They now use an unauthenticated path and report the server's real response once.

Known limitation

Profiles beyond the free viewing radius (part of #3) require a Grindr subscription — the server does not return them for a free account, so they cannot be made to load client-side.

Install

Download GrindrX-v0.1.16.apk below. Signed release build (com.grindrx.app, versionCode 1044); installs as an upgrade over v0.1.15. Signed with the same GrindrX release key as prior versions (cert SHA-256 22d6889ef07459a20919d48afffe7ed7a4e3903039e15542767cedcdff8d4c01).

v0.1.15 - unique package ID (installs alongside Open Grind)

Choose a tag to compare

@Tgbjr2025 Tgbjr2025 released this 28 Jun 18:43
3b2bd69

GrindrX v0.1.15

IMPORTANT — uninstall the old version first

This release changes the Android package name (org.opengrind -> com.grindrx.app) so GrindrX is now a distinct app and no longer collides with upstream Open Grind. Because the package name changed, Android treats it as a new app:

  1. Uninstall your existing GrindrX (and Open Grind if installed).
  2. Install grindrx-v0.1.15.apk below.
  3. Log in again.

You can now keep Open Grind installed side-by-side, and clone GrindrX into a work profile / second instance.

Fixes

  • Install conflict resolved (#6): "App not installed - package conflicts with an existing package" was caused by sharing upstream org.opengrind application ID. GrindrX now uses com.grindrx.app.
  • Carries forward all v0.1.14 fixes (album/lightbox freeze, working update notifier, blocking).

Security note

Only install APKs from this release page. A comment on #6 linked a third-party patcher.apk - it is NOT an official build; do not install it.

v0.1.14 — Album / lightbox fix + update notifier

Choose a tag to compare

@Tgbjr2025 Tgbjr2025 released this 28 Jun 18:43
65da26d

GrindrX v0.1.14

Fixes

  • Album freeze fixed. Opening photo albums in chat no longer freezes the app. Root cause: the WebView CSP was injecting a nonce into style-src, which silently blocked PhotoSwipe's inline-style positioning so the lightbox rendered as an invisible overlay that swallowed all touches. The image-load path could also hang. Resolved by disabling asset CSP modification for style-src, removing the load semaphore, and adding a per-image fetch timeout.
  • Update notifier now works. The in-app "Update available" banner previously never fired because the Forgejo releases API sends no CORS headers and the WebView fetch was blocked. The check now runs natively through Rust (fetch_latest_release), so users are notified when a newer release is published.
  • Blocking fixed. Block/unblock now uses the documented /v3/me/blocks/{profileId} endpoint.

Improvements

  • Authed-image pipeline rewritten to raw-bytes IPC (object URLs, LRU cache, in-flight dedup) — faster, lower memory, no base64 round-trips.
  • Grid O(n²) → Map-based reconcile; chat send-retry + reconnect reconciliation; tolerant schema parsing across v3/v4 endpoints.

Install

Download app-universal-release.apk below. Signed release build (versionCode 1042).

v0.1.13

Choose a tag to compare

@Tgbjr2025 Tgbjr2025 released this 19 Jun 07:49

GrindrX v0.1.13 — fixes the freeze when opening a shared photo fullscreen (removed the costly border-radius morph in the lightbox). Includes everything in v0.1.12. Signed with the open-grind release key.

v0.1.12

Choose a tag to compare

@Tgbjr2025 Tgbjr2025 released this 19 Jun 07:23

GrindrX v0.1.12 — signed release. Fixes: image-decode/backdrop freeze, photo send (real mediaId), inbox newest-first, who-viewed-me full list, taps, background notifications, unsend messages. Signed with the open-grind release key.

v0.1.11

Choose a tag to compare

@Tgbjr2025 Tgbjr2025 released this 27 May 09:12

Fix black box photos — AuthedImage now always fetches via Tauri for external URLs instead of relying on onerror which Android WebView does not fire reliably.

v0.1.10

Choose a tag to compare

@Tgbjr2025 Tgbjr2025 released this 27 May 09:05

Fix black box photos on grid and profile, app freeze when loading photo grids, non-album photos appearing in send picker.

v0.1.9

Choose a tag to compare

@Tgbjr2025 Tgbjr2025 released this 27 May 08:51

What's new

  • Unsend messages
  • Fixed race conditions and memory leaks
  • Replaced Rust panics with graceful error handling
  • Schema hardening: socialNetworks crash fix, enum widening
  • TypeScript strict mode re-enabled
  • Analytics heartbeat for real-time user tracking
  • Fixed seen timestamp and reaction emoji display

Install: Download APK below, enable "Install unknown apps", install.

v0.1.8 — Online status fix, reaction emojis

Choose a tag to compare

@Tgbjr2025 Tgbjr2025 released this 25 May 22:11

Fixes

  • "Online in 56379 years" fixed — profile last-seen timestamps now display correctly (e.g. "Online 5 minutes ago")
  • Reactions now show actual emoji — previously any reaction other than 🔥 showed a broken character. All types now render: 🔥 ❤️ 😂 😮 👍 😢