Skip to content

GitHub Store 1.8.3 β€” Forges, Privacy Translators & Power-User Polish

Latest

Choose a tag to compare

@github-actions github-actions released this 20 May 15:39
· 1 commit to main since this release
c6022cf

πŸš€ GitHub Store 1.8.3 β€” Forges, Privacy Translators & Power-User Polish

Codeberg + Forgejo land. Self-hosted Git forges become first-class citizens. Three new privacy-respecting translation engines join Google + Youdao. KSafe encrypts every persisted credential. Web-OAuth sign-in. Plus a wave of perf, layout, and edge-case fixes.

✨ New Features

🌲 Codeberg + Forgejo + Gitea Support

  • Paste any Codeberg.org, Forgejo, or Gitea repository URL in the manual-link sheet β€” GHS picks an asset, downloads, installs, and polls for updates exactly like a GitHub repo
  • Details screen fully wired for foreign forges β€” readme, releases, stats, and downloads all load from the forge directly (no GitHub fallback for non-GitHub repos)
  • License sniffing for forge repos (regex SPDX detection from /contents/LICENSE since Forgejo has no /license endpoint)
  • Source chip on every row tells you where the app came from
  • Self-hosted? Tweaks β†’ Network β†’ Custom forges accepts any hostname
  • Search now has a GitHub / Codeberg / custom-forge source toggle β€” plus a chip per custom forge you've added
  • Smart auto-match sweeps GitHub + Codeberg + custom forges in parallel (bounded fanout, per-call timeout, candidate budget)

πŸ” Privacy-Respecting Translation Engines (#644)

  • LibreTranslate β€” works out of the box via the bundled public Disroot mirror, or paste your own self-hosted URL for max privacy. Optional API key
  • DeepL β€” auth key auto-routes Free (:fx suffix) vs Pro endpoints. Pro tier keeps text private; Free tier disclosed in-app
  • Microsoft Azure Translator β€” No-Trace by default (text never stored, never used for training, GDPR/HIPAA compliant). 2M chars/month free
  • "Get a free key β†’" deep links straight to signup pages

πŸ”‘ Per-Host Access Tokens

  • Tweaks β†’ Access Tokens accepts PATs for GitHub, Codeberg, and any custom forge
  • AES-256-GCM encrypted via KSafe (hardware-backed Keystore on Android)
  • OAuth signed-in users see the GitHub preset hidden β€” no confusion
  • Higher rate limits + private repo access when authenticated per host

🌐 Web-OAuth Sign-In

  • Sign in with GitHub now uses the standard web flow β€” tap, authorize in browser, done
  • No more 8-digit device code dance

πŸ›‘οΈ KSafe Everywhere

  • All persisted preferences and credentials AES-256-GCM encrypted via KSafe β€” GitHub auth tokens, proxy credentials, app settings, device ID, mirror choice, coachmarks, announcements cache, plus the new per-host PATs and translation provider keys
  • Hardware-backed Keystore on Android
  • Existing data migrates seamlessly on first launch
  • Safe-wrappers around every KSafe call β€” crash-proof for 1.8.2 β†’ 1.8.3 upgrades

πŸ“ Content Width Preference (Desktop)

  • New Tweaks β†’ Appearance β†’ Content width: Compact (680dp, default), Wide (960dp), Extra wide (full window)
  • Mouse wheel in empty side gutters scrolls the content column (gesture-aware, doesn't fight LazyColumn touch on Android)

🍎 macOS via Homebrew

  • brew install --cask github-store from the new tap

πŸ‡ΈπŸ‡° Keep Android Open Coalition

  • Joined the coalition β€” in-app banner on Apps explains why

πŸ› Bug Fixes

  • Multi-flavor apps (e.g. OSS-DocumentScanner ships generic + Play APKs) β€” Details no longer shows a false "Update" CTA when one variant is current
  • Platform chips on Details now open Search filtered by that platform (was a no-op)
  • Android 12 keyboard search button triggers search across Chinese IMEs
  • Externally-linked repo banner on Details with one-tap unlink
  • Sign-in opens device-code URL prefilled + copies a paste-friendly code
  • Android 16 / custom-ROM crash on Settings + download failure β€” falls back to internal storage when external is blocked
  • Magisk / KernelSU / APatch detection on Android 13+ β€” previous probe was masked by SELinux
  • Pinned-variant label refreshes across releases β€” stale beta/rc qualifiers gone
  • README and release-notes keep scroll position when you scroll past and return
  • macOS Compose a11y NPE guarded on both AWT event-queue path and coroutine-failure path
  • DB downgrade survival β€” switching back to an older build no longer crashes ("migration from 18 to 17" hardening)
  • Forgejo release bodies normalize CRLF so GFM tables render correctly
  • Forgejo release assets without content_type now decode (was silently dropping the whole releases list)
  • URL paste in the auto-link sheet verifies the repo actually exists before showing a 100% match
  • Empty-state gutters on Desktop no longer eat scroll input or invert wheel direction
  • Smart-match scan respects a 5-second skip button if it's taking too long
  • Import scan caps Forgejo fanout to 12 unmatched candidates (24 if user added custom forges) β€” done in seconds instead of minutes

⚑ Performance

  • README + release-notes markdown re-render no longer triggered ~10Γ—/sec by download progress updates
  • Chunked progressive markdown with off-main pre-processing β€” large READMEs (Gadgetbridge, Kubernetes) no longer freeze the UI
  • Image painters memoized β€” no more reload flicker on recomposition
  • Parallel Forgejo fanout with bounded Semaphore(8) concurrency + per-call withTimeoutOrNull(4s) cap
  • Forgejo HTTP client registry honors proxy changes + closes cached clients on shutdown

🎨 UX Polish

  • Manual link sheet sorts by installer source (F-Droid / Obtainium first, system updates last) with source chip per app
  • Smart match suggests ranked repos from GitHub + Codeberg + your custom forges
  • GFM alert callouts (Note / Tip / Important / Warning / Caution) render as tinted cards
  • Emoji shortcodes β€” :rocket: β†’ πŸš€ (~250 covered)
  • SVG images render natively; theme-aware images respect light/dark; browser-like UA unblocks CDN-hotlinked badges
  • Code blocks syntax-highlighted (Kotlin / Java / Python / JS/TS / Rust / Swift / C# / Ruby / Shell, theme-aware)
  • Markdown polish β€” HTML blockquotes + <pre><code> render, sub/superscript β†’ unicode, HTML entities decoded
  • Collapsible <details> render as tap-to-expand cards; badge/button image rows flow inline
  • Manual matching trusts your version β€” no re-download to verify
  • Section-aware sort across library β€” Installed, Starred, Favourites each remember their own choice
  • Custom forges dialog explains that Codeberg / gitea.com / git.disroot.org are built-in
  • Suggestion rows show source-host chip (GitHub / Codeberg / custom) so you know where matches come from
  • Translation auto-target picker exposes all 33 supported languages (was capped to 13 app-UI locales)
  • Translation protects code fences, HTML tags, markdown link URLs, bare URLs, and GFM alert markers from translation

Full Changelog: 1.8.2...1.8.3

🌐 Website | πŸ’¬ Discord