Files
GO-3.0/CHANGELOG.md
simon 6090038638 GO 3.0 v0.0.7: live chat catch-up, Hub push, Reticulum status.
Checkpoint before merging upstream Hub v3.0.1.
2026-08-19 13:03:15 +00:00

12 KiB
Raw Permalink Blame History

Changelog

All notable changes to the Qortal GO fork of Qortal Hub are documented here.

Qortal GO is the Android (Capacitor) build of Qortal Hub. Entries marked mobile apply only to the Android app; entries marked shared also affect the desktop Hub. The format is based on Keep a Changelog.


[0.0.7] — 2026-08-18 (GO 3.0)

Field / Q-Share build GO 3.0 v0.0.7 (versionName 0.0.7, versionCode 10).

Fixed

  • Live group chat catch-up (mobile) — notices from other people often arrived immediately, but the message body could sit for minutes because GO kept asking only your remembered Hub peer. If that link hung or a history page was treated as in-flight for two minutes, catch-up returned without asking anyone else. GO now fails over after ~20s, treats an active history page as stale after 8s, still sends feed_req when a page is backed off, and pulls from the notice source as well as Hub. Other-user messages that took 38 minutes now land in a few seconds when a peer can serve them.
  • Own messages to Hub (mobile) — a reply sent on GO could take minutes to appear on the same-account Hub because GO announced the message before the body was offered, and Hub then tried to pull the body from the phone. GO now pushes the event page to your other endpoint first, copies it to a few connected peers, and only then announces. Typical delay is under a minute.
  • Reticulum “online” status (mobile) — the tray and top badge no longer show online unless at least one Qortal account is actually seen on the mesh (onlineCount > 0) and the device has a network path.

[0.0.6] — 2026-08-15 (GO 3.0)

Field / Q-Share build GO 3.0 v0.0.6 (versionName 0.0.6, versionCode 9).

Fixed

  • First-session chat sync (mobile) — after a password unlock, GO could sit off the live mesh until the APK was killed. Overlay recovery no longer burns its retry on an empty subscription set; memberships reannounce once groups exist; identity/ready is pushed until the chat worker acks. Failed mesh fanout is no longer reported as success, so queued sends retry.
  • Unlock stall (mobile) — home still appears after QORT keys, but BTC/LTC/ DOGE/DGB/RVN/ARRR HD derivation now runs in a Web Worker so subscribe and chat signing are not blocked for 1530s on the UI thread.
  • QDN downloads on a remote core (mobile) — path segments are encoded, empty apiKey is omitted, and native download uses X-API-KEY. Waiting for a QDN resource no longer depends on a WebView fetch that CORS-blocks remote nodes. Tray errors include the HTTP status.
  • Runtime overlay after login (mobile)reticulumChat:resource:bytes timed out is ignored (the old regex missed the colon). Chat image getUrl failures no longer become an unhandled rejection / white screen.
  • Remote-core group validate (mobile) — membership checks send the API key; own publishes fail open to local group IDs if the node does not answer.

[0.0.5] — 2026-08-14 (GO 3.0)

Field / Q-Share build GO 3.0 v0.0.5 (versionName 0.0.5, versionCode 8). First Gitea push of everything since v0.0.1 (0bb0c74a, 2026-08-09).

Added

  • Chat GIF library (shared) — emoji picker gains an Emojis / GIFs switch. GIFs come from the community QDN library (IMAGE / gif- prefix, qortal://APP/GIFs/). Search and tag chips filter a cached catalog; a most-used row is stored on device; the grid is a 3-column masonry that keeps each GIF's real shape. Selecting a GIF attaches a QDN pointer (libraryGif: true), not a file over the mesh. Hub port: HUB_GIF_PICKER.md.
  • Queued GIF media cache (shared) — at most two concurrent node fetches, memory
    • IndexedDB, in-view lazy load, prefetch of most-used tiles.
  • GO version in Core & settings (mobile) — the old “UI version” label is now GO version and reads GO_VERSION from src/appVersion.ts, kept identical to Android versionName.

Fixed

  • GIF search stall (shared) — long result lists no longer stop fetching after two or three tiles.
  • Emoji / GIF keyboard handoff (mobile) — switching tabs does not open the keyboard by itself; tapping the composer after GIF search closes the panel instead of leaving it behind the keyboard.
  • GIF load crash (mobile) — cancelled off-screen fetches no longer surface as an unhandled rejection / full-screen runtime error.

[0.0.4] — 2026-08-13 (GO 3.0)

Field / Q-Share build GO 3.0 v0.0.4 (versionName 0.0.4, versionCode 7).

Added

  • In-app updates end to end (mobile) — a newer GO 3.0 APK on Q-Share appears in the notification bell, downloads over QDN with live progress, and opens Android's installer. Checks on startup and every six hours.
  • QDN download progress notifications (mobile) — “Gathering from QDN” then “Saving” with a megabyte count, for Q-Share, chat attachments, and other QDN saves.

Fixed

  • Install permission handoff (mobile) — after Android's “allow installs from GO” toggle, returning to the app continues the installer instead of staying on “Open settings”.
  • Large Q-Share / QDN saves (mobile) — big files are streamed to storage instead of being base64-chunked through the WebView (that path could OOM and close the app).
  • Leave-chat mid-send crash (mobile) — navigating away while a send was still in flight no longer crashed if that send then failed.

[0.0.3] — 2026-08-13 (GO 3.0)

Field / Q-Share build GO 3.0 v0.0.3 (versionName 0.0.3, versionCode 6).

Added

  • Compact chat composer (mobile) — staged height growth, fade-in send button, full-width expanded composer, emoji panel in the soft-keyboard slot (smiley swaps the two keyboards instead of stacking them).
  • In-app update watcher (mobile) — first version that can notice a newer Q-Share build and download/install it.

Fixed

  • Composer keyboard (mobile) — scrolling a chat, removing an attachment, or changing expiry no longer dismisses the keyboard; it returns after a file pick.
  • Unlock after screen-off (mobile) — turning the screen on during a fingerprint scan no longer left a blank window.
  • Launch freeze / long-session black screen (mobile) — background loop that was burning CPU after a minute or two.

[0.0.2] — 2026-08-10 (GO 3.0)

Internal field build GO 3.0 v0.0.2 (versionName 0.0.2, versionCode 4). Follows the v0.0.1 Gitea / desktop APK baseline with chat reliability and mobile UX fixes.

Fixed

  • Group reply sends (mobile) — replies no longer publish multiple times from double-taps or aggressive queue retries; reply quote previews render once.
  • Reply composer top bar (mobile) — Reticulum compose no longer steals the search bar and leaves a blank grey strip while replying.
  • Chat draft leakage (mobile) — unsent drafts stay in their own group/DM; switching chats clears or restores the correct composer text.
  • Q-Manager / chat file save (mobile) — saving shared chat files no longer fails silently on null filenames or large writes.
  • Long-open chat runtime fault (mobile)reticulumChat:getHistory timeouts no longer surface as a full-screen “GO runtime error”.
  • SSH-tunneled local nodes (mobile)https://localhost:port is normalized to HTTP outside Electron so plain-HTTP tunnels work without a TLS handshake failure.
  • Group overlays / About Group / calendar empty state (mobile) — About Group opens reliably; exclusive Search/Admins/Members/Files/Calendar overlays; calendar empty weeks fit the viewport.

[0.0.1] — 2026-08-09 (GO 3.0)

Internal baseline pushed to Gitea as GO 3.0 v0.0.1 and packaged as the desktop GO-3.0.apk.


[3.0.0] — Unreleased (GO 3.0 product line)

Current Android product line branded GO 3.0. Continues the Qortal Hub mobile fork with Reticulum chat, group UI, calendar, and branding updates.

Added

  • Payment QR codes & deep links (shared) — scanning a Qortal payment QR or opening a qortal://pay?recipient=<address|name>&amount=<qort> link now opens Qortal GO directly on the Send QORT screen, pre-filled with the recipient and amount. The user only confirms with their wallet password. Also accepts qortal://send?to=…, BIP21-style qort:<address>?amount=…, qortal://<address>, and bare addresses (via the in-app scanner). Recipient aliases: recipient|to|address|r; amount aliases: amount|qty|qort|value. See docs/PAYMENT_QR_CODES.md for the full developer guide.
  • In-app QR scanner (mobile) — a full-screen camera scanner built purely in JavaScript (getUserMedia + jsQR), with no Google Play Services / ML Kit dependency, in keeping with the community's de-Googled stance. Reachable from Send QORT → the QR icon in the To field.
  • Scanned-recipient name badge (shared) — when a scanned address has a primary registered name, it is shown in green next to the To field.
  • Account reordering in "Enter Qortal" (mobile) — long-press an account to lift it, then drag to reorder. Neighbouring rows now slide out of the way with a smooth animation, and the gesture works in both portrait and landscape and across phones and tablets (all geometry is measured live, nothing hard-coded).

Changed

  • Top account auto-opens on reopen (mobile) — the account at the top of the "Enter Qortal" list is the one unlocked when the app is reopened: it prompts biometric if that account has it enabled, otherwise it shows the password window. The early launch-time fingerprint sheet is re-armed to follow whichever account currently sits at the top.
  • Full address fits the Account Overview (shared) — the revealed Qortal address auto-fits its container (dynamic font sizing) so the whole address is visible without truncation or horizontal scrolling, and the tap-to-reveal animation is preserved.

Fixed

  • Biometric unlock reliability (mobile) — tapping the fingerprint icon now reliably triggers the OS prompt. A native watchdog detects a stalled early prompt and forces a fresh BiometricPrompt; a single-active-prompt guard removes the double-prompt and the "cancel re-opens the sheet" behaviour; and a successful unlock no longer bounces back to the "Enter Qortal" list.
  • Busy-overlay tap-through (mobile) — taps on the "unlocking…" overlay no longer fall through to the controls behind it.

[2.0] — 2026-06-11 (Qortal GO mobilization)

The earlier GO 2.0 line (superseded by GO 3.0): turning Qortal Hub into a fully-featured Android app while keeping the desktop Hub in sync. Highlights, newest first:

Added

  • Voice calls on mobile (shared) — group/direct voice calls over Reticulum, a persistent mobile in-call bar, and multi-device ("dual-ring") incoming-call support so a call rings on Hub and GO for the same account. (4e20cc0f)
  • QDN file save on mobile (mobile) — native "Save to Documents" for files published through QDN / Q-Share, using a native FileWriter plugin. (4e20cc0f)
  • Node connection settings (mobile) — clearer display of local vs. public gateway nodes; local Core is correctly shown as private. (4e20cc0f)
  • Reticulum file transfer & notifications (mobile) — Android shell with Reticulum-based transfer and local notifications. (14244429)
  • Biometric unlock & transfer notifications (mobile) — hardened biometric wallet unlock plus notifications for incoming transfers, with mobile UI polish. (d4ca8928)

Fixed

  • Reticulum presence reliability on Android (shared) — announce retries, heartbeat-failure re-announce, a native foreground-service presence tick, and periodic re-fanout of the last signed presence wire, so peers stay visible in both directions. (0a475a37)
  • Voice bridge audio bugs (shared) — fixed dropped inbound audio (UnboundLocalError), overlay links misclassified as non-audio, stale-link outbound send failures, and an unbounded link-establish retry loop. (4e20cc0f)

Notes

  • Upstream Hub (Electron) merge guidance for the voice / presence / dual-ring work lives in HUB_DEV_NOTES.md. (b06a2794)

For releases before the Qortal GO fork, see the upstream Qortal Hub history.