Skip to content

Commit fe72a4c

Browse files
docs: update roadmap, website, and README for V1.5 release
- V1.5 marked complete (ECDH, Coded PHY, emergency beacon, messaging) - Android launch moved to V1.6 with Meshtastic bridge - Test badge updated to 1,088 - Website feature cards updated to V1.5 - Version bumped to 1.5.0+64 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 7c9343f commit fe72a4c

5 files changed

Lines changed: 56 additions & 62 deletions

File tree

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
[![MGRS Native](https://img.shields.io/badge/MGRS-Native-CC0000)]()
1313
[![AES-256](https://img.shields.io/badge/Encryption-AES--256--GCM-8B0000)]()
1414
[![Flutter](https://img.shields.io/badge/Built%20with-Flutter-CC0000?logo=flutter)]()
15-
[![Tests](https://img.shields.io/badge/Tests-1034%20Passing-brightgreen)]()
15+
[![Tests](https://img.shields.io/badge/Tests-1088%20Passing-brightgreen)]()
1616
[![Platform](https://img.shields.io/badge/Platform-iOS%20%7C%20Android%20Beta-8B0000)]()
1717
[![PRs Welcome](https://img.shields.io/badge/PRs-Welcome-CC0000)](https://github.com/RedGridTactical/RedGridLink/pulls)
1818
[![Buy Me a Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-Support-FFDD00?logo=buymeacoffee&logoColor=black)](https://buymeacoffee.com/redgridtac0)
@@ -76,6 +76,9 @@ Assign roles (Lead, Scout, Medic, Comms, custom) with callsigns. Lead controls t
7676
### Extended Range + Navigation (V1.4)
7777
BLE Long Range (Coded PHY) extends range from ~100m to 400m-1km on supported devices. Live RSSI signal bars show connection quality for each teammate with warnings when signal weakens. FixPhrase encodes any location as 4 easy-to-remember words (~11m accuracy, order-independent). Choose between OpenStreetMap or OpenTopoMap when downloading offline regions. Coordinate bar cycles between MGRS and FixPhrase display.
7878

79+
### Security + Communication (V1.5)
80+
Real ECDH P-256 key exchange with per-peer derived encryption keys. Actual BLE Coded PHY negotiation for extended range on Android. One-tap emergency beacon sends GPS coordinates to all team members with 30-second retransmission. 7 pre-canned tactical messages (HELP, STOP, RALLY ON ME, ALL CLEAR, FOUND SOMETHING, HEADING BACK, NEED SUPPLIES) plus 160-character free text over encrypted CRDT sync.
81+
7982
### After-Action Reports
8083
One-tap PDF export: map snapshot, mission timeline, track data, timestamps, team roster with roles, per-member tracks, boundary events, markers, and session log. Share via AirDrop, file share, or any local transfer.
8184

ROADMAP.md

Lines changed: 23 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -19,65 +19,44 @@ BLE Long Range, signal quality, FixPhrase location encoding, OSM offline tiles.
1919

2020
---
2121

22-
## V1.5 — Security + Communication
23-
24-
**Target: April 2026** — PRIORITY: Fix security claims, add communication
25-
26-
### P0 — Security (Week 1)
27-
- [ ] Wire ECDH P-256 key exchange into BLE connection handshake (code exists in key_exchange.dart, never called)
28-
- [ ] Per-peer session key derivation (replace single pre-shared key)
29-
- [ ] Wire actual BLE Coded PHY negotiation on Android (setPreferredPhy, not just isSupported)
30-
- [ ] Track actual negotiated PHY per connection (LR badge only when Coded PHY confirmed)
31-
- [ ] Audit all documentation claims against codebase reality
32-
33-
### P1 — Emergency + Messaging (Weeks 2-3)
34-
- [ ] Emergency beacon: one-tap SOS with GPS, retransmits every 30s until cancelled
35-
- [ ] Lead receives full-screen distress alert with sender position/distance/bearing
36-
- [ ] Pre-canned tactical messages (8 messages + 160-char free text)
37-
- [ ] Message display as notification banner with sender callsign
38-
- [ ] Route messages through existing CRDT sync (SyncPayloadType.message)
39-
40-
### P2 — Measurement (Week 3)
41-
- [ ] Firebase Analytics (session events, peer connections, mode usage, tool usage)
42-
- [ ] Consent mode for EU users (disable collection until consent)
43-
- [ ] F-Droid build flavor preparation (Firebase-free variant)
44-
- [ ] Post-session debrief screen (duration, distance, tracks, review prompt)
22+
## V1.5 — Security + Communication (COMPLETE)
23+
24+
**Status: Complete** — App v1.5.0+64
25+
26+
Real ECDH key exchange, actual Coded PHY negotiation, emergency beacon, tactical messaging.
27+
28+
- [x] ECDH P-256 key exchange wired into BLE connection handshake (per-peer derived keys)
29+
- [x] Actual BLE Coded PHY negotiation on Android (setPreferredPhy S8 after connection)
30+
- [x] Per-connection PHY tracking (LR badge only when Coded PHY confirmed)
31+
- [x] Emergency beacon: one-tap SOS with GPS, 30s retransmit, full-screen alert on all peers
32+
- [x] Pre-canned tactical messages (7 types + 160-char free text) over CRDT control system
33+
- [x] Message notification banners with sender callsign and auto-dismiss
34+
- [x] 1,088 tests, 0 warnings
4535

4636
---
4737

48-
## V1.6 — Meshtastic Bridge
38+
## V1.6 — Meshtastic Bridge + Android Launch
4939

50-
**Target: May 2026** — Range multiplier + community capture
40+
**Target: May-June 2026** — Range multiplier + Android production
5141

42+
### Meshtastic Bridge
5243
- [ ] Meshtastic BLE bridge via `meshtastic_flutter` pub.dev package
5344
- [ ] Auto-detect Meshtastic nodes by GATT service UUID
5445
- [ ] Translate Field Link positions to/from Meshtastic Position messages
5546
- [ ] Bridge mode UI: "Extend range via LoRa?" prompt when radio detected
5647
- [ ] LoRa-relayed peers shown with mesh icon (distinct from BLE peers)
5748
- [ ] Fallback: BLE direct when no radio, LoRa when available
58-
- [ ] Show HN post #2: "Red Grid Link now bridges to Meshtastic"
59-
60-
---
61-
62-
## V1.7 — Distribution + Production
6349

64-
**Target: June 2026** — Requires LLC business accounts (D-U-N-S pending)
65-
66-
### Store Accounts
67-
- [ ] Convert Apple ASC to organization account (Estus Holdings LLC)
50+
### Android Launch + Distribution
51+
- [ ] Convert Apple ASC to organization account (Estus Holdings LLC, D-U-N-S pending)
6852
- [ ] Create Google Play organization account
69-
- [ ] Promote iOS to production (bypasses TestFlight external review)
70-
- [ ] Promote Android to production track
71-
72-
### Distribution
73-
- [ ] F-Droid submission (Firebase-free build flavor, FLOSS-compliant)
53+
- [ ] Promote Android to production track on Play Store
7454
- [ ] Android QA on physical devices (Pixel, Samsung, OnePlus minimum)
75-
- [ ] BetaList submission for tester recruitment
76-
- [ ] Product Hunt launch
77-
78-
### Retention
55+
- [ ] F-Droid submission (Firebase-free build flavor, FLOSS-compliant)
56+
- [ ] Firebase Analytics integration
57+
- [ ] BetaList submission + Product Hunt launch
7958
- [ ] Session templates (SAR Hasty Search, Hunting Party, Family Hike, Training Exercise)
80-
- [ ] Session history with stats (creates "training log" effect)
59+
- [ ] Show HN post #2: "Red Grid Link now bridges to Meshtastic"
8160

8261
---
8362

docs/link.html

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@
172172
<div class="container">
173173
<img src="images/icon.png" alt="Red Grid Link app icon" width="80" height="80" style="border-radius: 18px; margin-bottom: 24px;">
174174
<h1><span class="accent">Red Grid</span> Link</h1>
175-
<span class="badge badge-red" style="margin-bottom: 16px;">V1.4Extended Range</span>
175+
<span class="badge badge-red" style="margin-bottom: 16px;">V1.5Secure Coordination</span>
176176
<p class="pitch">Encrypted team coordination over Bluetooth. No cell towers. No servers. No accounts.</p>
177177
<div class="cta-row">
178178
<a href="https://apps.apple.com/app/id6760084718" class="btn btn-primary btn-lg">Download on App Store</a>
@@ -240,26 +240,26 @@ <h3>4 Operational Modes</h3>
240240
</div>
241241
</section>
242242

243-
<!-- V1.4 FEATURE HIGHLIGHT -->
244-
<section class="section fade-in" aria-label="V1.4 features" style="background: var(--bg-secondary); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border);">
243+
<!-- V1.5 FEATURE HIGHLIGHT -->
244+
<section class="section fade-in" aria-label="V1.5 features" style="background: var(--bg-secondary); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border);">
245245
<div class="container">
246-
<h2 class="section-title text-center mb-4">New in V1.4Extended Range</h2>
246+
<h2 class="section-title text-center mb-4">New in V1.5Security + Communication</h2>
247247
<div class="grid-4">
248248
<div class="card">
249-
<h3>BLE Long Range</h3>
250-
<p>Coded PHY extends Bluetooth range from 100m to up to 1km on supported devices. 4x range, same battery life.</p>
249+
<h3>Encrypted Key Exchange</h3>
250+
<p>Real ECDH P-256 key exchange. Every peer connection gets unique derived encryption keys. Forward secrecy built in.</p>
251251
</div>
252252
<div class="card">
253-
<h3>Signal Strength</h3>
254-
<p>Live RSSI signal bars for each connected teammate. Warning alerts when connection quality drops.</p>
253+
<h3>Emergency Beacon</h3>
254+
<p>One-tap SOS sends your GPS to all teammates. Retransmits every 30 seconds. Full-screen alert with distance and bearing.</p>
255255
</div>
256256
<div class="card">
257-
<h3>FixPhrase</h3>
258-
<p>Share any location as 4 easy words with ~11m accuracy. Words work in any order. Patent-free.</p>
257+
<h3>Tactical Messaging</h3>
258+
<p>7 pre-canned tactical messages plus free text. HELP, STOP, RALLY ON ME, ALL CLEAR, and more. One tap to send.</p>
259259
</div>
260260
<div class="card">
261-
<h3>Offline Map Sources</h3>
262-
<p>Choose between OpenStreetMap or OpenTopoMap when downloading regions for offline use.</p>
261+
<h3>Extended Range</h3>
262+
<p>BLE Coded PHY now actually negotiated after connection. Signal quality bars for each teammate. Range warnings when signal weakens.</p>
263263
</div>
264264
</div>
265265
</div>

docs/roadmap.html

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -136,25 +136,37 @@ <h1>Product <span class="accent">Roadmap</span></h1>
136136
</div>
137137

138138
<div class="timeline-item completed">
139-
<div class="timeline-version">V1.4 — Android Launch + Extended Range</div>
139+
<div class="timeline-version">V1.4 — Extended Range</div>
140140
<div class="timeline-date">March 2026</div>
141141
<ul class="timeline-features">
142-
<li>Android release on Google Play</li>
143142
<li>BLE Long Range (Coded PHY) for 400m-1km range</li>
144143
<li>Connection quality indicator (RSSI signal bars)</li>
145144
<li>FixPhrase: 4-word location encoding (~11m accuracy)</li>
146145
<li>OpenStreetMap offline tile downloads</li>
147146
</ul>
148147
</div>
149148

149+
<div class="timeline-item completed">
150+
<div class="timeline-version">V1.5 — Security + Communication</div>
151+
<div class="timeline-date">April 2026</div>
152+
<ul class="timeline-features">
153+
<li>ECDH P-256 key exchange (per-peer encryption)</li>
154+
<li>Actual BLE Coded PHY negotiation for extended range</li>
155+
<li>Emergency beacon with one-tap SOS and team alerts</li>
156+
<li>Tactical messaging (8 pre-canned + free text)</li>
157+
<li>Connection quality warnings and signal bars</li>
158+
</ul>
159+
</div>
160+
150161
<div class="timeline-item current">
151-
<div class="timeline-version">V1.5Distribution + F-Droid</div>
162+
<div class="timeline-version">V1.6Meshtastic Bridge + Android Launch</div>
152163
<div class="timeline-date">Q2 2026</div>
153164
<ul class="timeline-features">
165+
<li>Meshtastic BLE bridge for multi-kilometer LoRa range</li>
154166
<li>Android production release on Google Play</li>
155167
<li>F-Droid submission</li>
156168
<li>Firebase Analytics integration</li>
157-
<li>App Store Optimization (ASO) improvements</li>
169+
<li>Session templates for SAR, hunting, and training</li>
158170
</ul>
159171
</div>
160172

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: red_grid_link
22
description: Offline-first MGRS-native proximity coordination platform
33
publish_to: 'none'
4-
version: 1.4.0+63
4+
version: 1.5.0+64
55

66
environment:
77
sdk: '>=3.2.0 <4.0.0'

0 commit comments

Comments
 (0)