# 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](https://keepachangelog.com/en/1.1.0/). --- ## [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 3–8 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 15–30s 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`](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=
&amount=