chore(#465): cut 1.3.0+64 (first Play production release)

Bump pubspec to 1.3.0+64 and add the four release-gate docs (CHANGELOG
[1.3.0], GitHub release notes, Play what's-new, Discord post) covering
everything since -62: the -63 store-consolidation fix plus the -64
feature batch (reactions, Observer config profiles, log/serial export,
settings reorg, path diagnostics, reliability fixes). Includes an OKIMesh
community thank-you for the first production launch.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
release/1.3.0
Strycher 2 months ago
parent 3b39a16edd
commit c3ed25e8de

@ -2,6 +2,79 @@
All notable changes to Offband Meshcore. Pre-releases are tagged `-beta.N` / `-rc.N`.
## [1.3.0] - 2026-07-30
The first Offband release published to the Google Play production track. A large
feature release on top of the 1.2.x line: cross-client reactions, Observer config
profiles, log and serial-capture export, a reorganized Settings screen, richer
path diagnostics, and a batch of reliability fixes.
### Reactions
- Incoming reactions now record **who** reacted, not just the tally, and a room's
own reaction is no longer misattributed to the room name (#383).
- Emoji reactions from PocketMesh / MeshCore One are parsed and rendered instead
of showing as raw token text; sending is unchanged (#380).
### Observer config profiles
- Import an Observer config profile from the federated catalog or a URL, preview a
field-by-field diff against the current config, and apply it, with the wiring
reachable from Observer settings (#404, #405, #406, #407).
- Profiles are defined by a YAML schema organized into capability sections; config
fetches are cache-busted so a re-import never serves a stale copy
(#402, #403, #456, #404).
### Diagnostics and export
- Share the App log and BLE log as a file: Save As on desktop, download on web,
system share sheet on mobile, using the platform-standard share icon
(#393, #427, #433, #396).
- New serial / boot-log capture screen under Debug: enable/disable/erase/status
control, a chunked download protocol with reassembly, live status polling, and a
"Reboot device" action for boot-log capture (#430, #428).
- The message Path screen now shows the path type, per-message SNR, and per-message
RSSI read from the reserved RX fields (#438, #439).
- Device Info shows the running build identity (branch @ sha, build time) and the
active radio data scope (#397, #295).
### Settings
- Settings categories reordered, with Observer moved above App Settings and the app
debug-logging toggle moved into a Debug category (#271, #272, #273, #274).
- Per-channel notification mode is reachable from the channel ellipsis menu (#275).
- New keep-screen-awake setting (#269).
- The advert notification setting was renamed to plain language and a stale
"Notifications" subtitle was dropped (#270, #276).
### Reliability and fixes
- Sending a max-length DM or channel message no longer wedges the send path: the
size cap is MTU-aware and a failed write is recovered instead of stalling all
further sends (#395).
- Live channel-change push (0x91) with debounce so a burst of changes coalesces
into one re-sync instead of many (#429).
- A storage-init failure now surfaces a persistent warning instead of failing
silently (#385).
- Desktop builds bundle their native-assets DLLs (sqlite3, llamadart) so they run
on a clean machine, including on Linux (#445).
- Back-button behavior refined: Back pops out of a channel and only top-level tabs
background the app; the dead top-level back arrow is hidden on a pinned desktop
layout (#389, #390).
- Android warns when the app is under battery optimization and guides the user to
exempt it, including from the scanner screen (#443).
- Send-side Smaz compression removed (phase 1), and a stable per-install client id
is sent in CMD_APP_START (#420, #297).
### Storage
- Desktop (Windows/Linux): message history that was split across several older
database files is now reunited. On launch, every discovered legacy store is
unioned into the pinned database (messages by id, contacts by public key); source
databases are never deleted, and a failed run leaves them intact and retries
(#367, #370). Builds on the earlier fix that pins the desktop database to one
fixed location (#363, #364).
## [1.2.2] - 2026-07-21
A follow-up to 1.2.1 that recovers desktop history left behind in other databases.

@ -0,0 +1,28 @@
🚀 **Offband Meshcore 1.3.0 is here, and it's the first build on the Google Play production track.**
Our biggest feature drop since the 1.2.0 redesign. Highlights:
🙂 **Reactions with names.** Incoming reactions now show **who** reacted, not just a count, and emoji reactions from **PocketMesh and MeshCore One** are read and displayed properly instead of arriving as raw text.
🛰️ **Observer config profiles.** Import an Observer config from the shared catalog or a URL, see a **field-by-field diff** against what your radio has now, and apply it, straight from Observer settings.
📤 **Export logs, capture serial.** The App and BLE logs now have a **Share** action (Save As on desktop, download on web, share sheet on mobile), plus a new **serial / boot-log capture** screen with a Reboot Device action.
📶 **Richer path diagnostics.** The message Path screen now shows path type and **per-message SNR and RSSI**, so you can read link quality hop by hop.
🗄️ **Desktop history reunited.** On Windows and Linux, message history that ended up split across several older database files is now brought back together automatically on launch, merged into one database with your original files left untouched.
⚙️ Plus a **reorganized Settings** screen, a fix so sending a **max-length message no longer wedges** your outbox, **desktop builds that run on a clean machine** (Windows and Linux), and Android battery-optimization guidance.
🟢 **Open to everyone.** This is the first official public release: no tester list, no sideloading, no waiting. Search **Offband MeshCore** on Google Play, or grab it from the links below.
🧪 **The testing track stays open.** Want the latest before it reaches production? Join the test track and you'll get new features as I build them. Fair warning: testing builds are exactly that. Features land there first precisely because they are not confirmed stable yet. If something acts weird, that's the trade, and your bug reports are what make the production releases solid for everyone else.
**📥 Get it on Google Play:** search **Offband MeshCore**, or https://play.google.com/store/apps/details?id=app.offband.meshcore
💻 **Desktop (Windows / Linux) and Android APK:** https://github.com/OffbandMesh/meshcore-client/releases/tag/v1.3.0
🌐 **Or run it in your browser:** https://offband.app
🔗 Project home: https://offband.org
💚 **A big thank-you** to the **OKIMesh community** (https://okimesh.org/) for the ideas, time, hardware, and testing that got this here. This release exists because of you.
Offband is free and open source and always will be. If you'd like to help keep it going, there's a donation page at https://offband.org/donate. Thank you all. 📡

@ -0,0 +1,3 @@
Offband Meshcore 1.3.0
Our biggest update since the redesign. Reactions now show who reacted and work with PocketMesh and MeshCore One. Import and apply Observer config profiles with a preview diff. Share your app and BLE logs, and capture a device boot log. The Path screen shows per-message SNR and RSSI. Settings are reorganized, sending a max-length message no longer wedges, and desktop builds run on a clean machine. Desktop history split across older files is reunited automatically.

@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix.
version: 1.2.2+63
version: 1.3.0+64
environment:
sdk: ^3.9.2

@ -0,0 +1,78 @@
## Offband Meshcore 1.3.0
Our biggest feature release since the 1.2.0 redesign, and the first Offband build
on the Google Play production track. Reactions that work across MeshCore clients,
one-tap Observer config sharing, log and serial capture you can export, a cleaned-up
Settings screen, richer path diagnostics, and a solid batch of reliability fixes.
### Reactions that carry names
Incoming reactions now show **who** reacted, not just a count. Emoji reactions from
PocketMesh and MeshCore One are read and displayed properly instead of arriving as
raw token text, so a reaction from someone on another client just works (#383, #380).
### Observer config profiles
Set up an Observer the easy way. **Import a config profile** from the shared catalog
or a URL, see a **field-by-field diff** against what the radio has now, and apply it,
all from Observer settings. Profiles use a simple YAML schema, and imports are always
fetched fresh so you never apply a stale copy (#404, #405, #406, #407, #402, #403).
### Export your logs, capture the serial
The App log and BLE log now have a **Share** action: Save As on desktop, download on
web, share sheet on mobile. There is also a new **serial / boot-log capture** screen
under Debug, with a Reboot Device action so you can grab a clean boot log, download it
in chunks, and watch capture status live (#393, #433, #430).
### Richer path diagnostics
The message Path screen now shows the **path type**, plus **per-message SNR and RSSI**
pulled from the radio's RX fields, so you can see link quality hop by hop. Device Info
also reports the exact build it is running and the active radio data scope
(#438, #439, #397).
### A tidier Settings screen
Settings categories were reordered and renamed in plain language, Observer moved up,
debug logging moved into its own Debug category, per-channel notification mode is on
the channel menu, and there is a new keep-screen-awake option
(#271, #273, #274, #275, #269, #270).
### Reliability
- Sending a **max-length message no longer wedges** your outbox: the size cap is
MTU-aware and a failed write recovers instead of stalling every later send (#395).
- **Channel changes push live** and debounce, so a burst of edits is one re-sync,
not many (#429).
- A **storage-init failure now surfaces** a clear warning instead of failing quietly
(#385).
- **Desktop builds run on a clean machine** (Windows and Linux) with their native
libraries bundled (#445).
- **Battery-optimization guidance** on Android so background delivery is not silently
killed (#443).
- Back-button behavior refined so Back never drops you off a connected radio
(#389, #390).
### Your desktop history, reunited
On Windows and Linux, message history that ended up **split across several older
database files** is now brought back together automatically on launch, merged into
one database with your original files left untouched. This completes the desktop
storage work: the database is pinned to one fixed location, and anything stranded in
a separate file is pulled back in (#367, #370).
### Thank you
Offband Meshcore is now approved for Google Play production, and this is the first
official public release: open to everyone, with no tester list and no sideloading. It
exists because of the OKIMesh community (https://okimesh.org/), who brought ideas,
time, hardware, and testing to the project. Thank you, all of you.
The testing track stays open for anyone who wants new features first, with the
understanding that those builds are still being proven, and the bug reports that come
back are what keep the production releases solid for everyone.
Offband is free and open source and always will be. If you would like to help keep it
going, there is a donation page at https://offband.org/donate. Thank you for being
part of it.
Loading…
Cancel
Save

Powered by TurnKey Linux.