EquiTrail — Complete Feature List¶
© 2026 EquiTrail / Nossie Consultancy B.V. — Proprietary & Confidential Updated: 2026-06-05 — v3.5.6+56 Source of truth: actual code, not plans. Read every screen + service before editing. Legend: 🆓 Free · 🔒 PRO only · ⚠️ UI exists, partial · 🔜 Planned (separate section)
✅ IMPLEMENTED — In the app now¶
1. Home Screen (Dashboard)¶
- Large gradient header (app logo, greeting)
- Quick stats bar: total rides count · total km ridden
- Quick Start button — one tap to open Track screen
- Horse scroll — horizontal carousel of your horses (tap → horse detail)
- Recent rides list — last 3 rides with distance, duration, tap → detail
- FOMO banner — rotating messages ("X ruiters rijden nu in jouw buurt…")
- Pending route banner — if website pushed a route to your account, banner appears on open with one-tap navigate
2. Tracking — Record Screen (Tab Switcher)¶
- Three-mode tab bar: GPS Rit / Arena / Springen
- Primary mode setting (which tab appears first — configurable in Settings)
IndexedStack— all 3 tracking screens stay alive when switching tabs- App bar buttons change per active mode
3. GPS Ride Tracking¶
- Start / Pause / Stop a GPS session
- Real-time map — live GPS trail drawn as gait-coloured polyline
- Green = walk · Orange = trot · Red = gallop
- Live stats panel: distance (km) · duration (stopwatch) · current speed · average speed · max speed · elevation gain (m)
- Gait detection — automatic from GPS speed:
- Walk < 8 km/h · Trot 8–20 km/h · Gallop > 20 km/h
- Live gait label + colour indicator
- Live calorie calculation — rider weight + horse weight (kg), updates every GPS point
- Live weather chip — temperature (°C) · wind speed + direction · humidity · UV index
- Photo capture during ride — camera button in app bar, photos stored per-ride
- POI overlay toggle — shows nearby points of interest on map:
- 🍽️ Restaurants · 🍺 Pubs · ☕ Cafés · 🏨 Hotels
- 💧 Horse watering points (drinkwater for horses)
- 🐴 Horse facilities (hitching posts, horse parking)
- Add custom POI at current GPS position
- Hazard report button (during tracking):
- 7 hazard types: 🌲 Fallen tree · ⚠️ Broken road · 🚧 Construction · 🕳️ Hole/pit · 🌿 Low branch · 💧 Water/flood · ❗ Other
- Pin appears on map, visible to other riders in ~20 km
- Group ride invite — invite friends before starting, mock friend avatars shown on map
- Draft / crash recovery — saved every 10 GPS points, restored automatically on reopen
- Foreground service notification — keeps GPS running when screen is locked
- Ride naming dialog — custom name on stop (pre-filled with date/time)
- Cloud upload on save — ride + track points + photos to Firestore + Firebase Storage
- Feed post created automatically (opt-in: photo sharing toggle)
4. Arena / Indoor Training Mode¶
- GPS-based circle detection (left hand / right hand)
- Circle count with direction history
- Live direction indicator (current hand: L / R)
- Gait distribution during session — Walk / Trot / Canter percentage
- Estimated stride count (speed-pattern based)
- Session timer + total distance
- Save session summary to ride history
5. Jumping Training Mode¶
- GPS altitude-based jump detection:
- Trigger: altitude rise ≥ 0.4 m within 3 seconds, followed by descent
- Jump count per session
- Max height per jump (GPS altitude delta in metres)
- Jump width (horizontal span in metres)
- Running distance + pace during session
- Session timer
- Jump history list within session (height + width per jump)
6. Navigation¶
- Destination search — type address, place, or POI name
- Address autocomplete — Nominatim API, 5 suggestions, 400 ms debounce
- Loop route planning — choose 2–30 km round trip, GraphHopper horse profile
- Turn-by-turn directions — spoken + on-screen step-by-step during ride
- Branch order — draggable waypoints to reorder route
Route Library (saved routes)¶
- GPX import from device files
- Route list — all saved routes with distance, elevation, map thumbnail
- Route detail — full map trace · elevation profile · total stats · description
- Ruiterlabel badge on certified Dutch horse routes
- Favourites — star routes to top of list
Trail Suggestions Screen¶
- Loop options — 5 / 10 / 15 / 20 km loops from current location
- "Explore new terrain" — suggests destinations you haven't ridden yet based on GPS history
- Estimated km + compass direction per suggestion
Ruiterlabel Info Screen¶
- What Ruiterlabel is and certification requirements
- Links to Natuurmonumenten and Buitenrijden.nl route databases
- CTA buttons to external sites
OSM Horse Trail Map (/ruiterpaden)¶
- Dedicated map screen showing all horse-designated trails from OpenStreetMap
- NL / BE / DE / FR coverage
7. Horse Management¶
- Add / Edit / Delete horses
- Fields: name · breed · age · notes
- Photo — gallery picker, uploaded to Firebase Storage (persists across devices and after re-login)
- Physical data: weight (kg) + height / stokmaat (cm) — used for calorie calculation
- Co-riders — link multiple riders to one horse; stats tracked separately per rider
- Horse detail screen — stats overview + ride list for that horse
- Free: 1 horse · PRO: unlimited 🔒
8. Ride History¶
- Full ride list — sorted newest first
- Filter by horse — dropdown in app bar
- Multi-select delete — tap trash bin icon → enter select mode → long-press or tap to select → confirm delete
- Ride detail screen:
- Full gait-coloured map trace
- Stats: distance · duration · avg speed · max speed · elevation gain · total calories (rider + horse)
- Gait bar (visual % walk/trot/gallop)
- Weather at start + end of ride
- Photos gallery (thumbnails → full-screen)
- Export / Share menu:
- 📄 PDF export — branded ride report (stats, map thumbnail, gait breakdown)
- 🗺️ GPX export — valid GPX 1.1 XML, shareable with any GPS app
- 🖼️ Social media card — branded PNG image with EquiTrail watermark + auto-generated hashtags (country-specific: NL/BE/DE/FR)
- 🔗 Share GPX with friends — share file directly to contacts
- 🌍 Share with community — posts route to community_trails (visible to all riders)
- 🔗 Link share — share ride summary as text link
- Free: 5 saved rides · PRO: unlimited 🔒
9. Cloud Sync & Backup¶
- Rides →
users/{uid}/rides/{id}— auto-uploaded on save - Horses →
users/{uid}/horses/{id}— auto-uploaded on save/edit - Settings →
users/{uid}/settings/prefs— synced on every change - Profile photo → Firebase Storage
avatars/{uid}/profile.jpg— URL in Firestore - Horse photos → Firebase Storage
avatars/{uid}/horse_{id}.jpg - Ride photos → Firebase Storage
photos/{uid}/{rideId}/{file} - syncFromCloud() on login — restores rides, horses, photos, settings
- Clears local user data on sign-out (prevents cross-user contamination on shared devices)
10. Statistics & Analytics¶
Stats Screen¶
- Summary cards: total rides · total km · average speed
- Distance bar chart (fl_chart) — weekly / monthly / yearly selector, touchable bars
- Gait pie chart — walk / trot / gallop %, touchable slices show exact %
- Speed line chart — average speed trend over time
- Horse filter — filter all charts to a specific horse
Trends Screen¶
- Same charts as Stats with time-axis trend
- PDF export of full stats report
- Compare with friend button (friend picker dialog)
Compare Rides Screen¶
- Pick two rides side-by-side
- Stats comparison table: distance · duration · avg speed · elevation · calories
- Side-by-side gait bars
- PDF export of comparison report
11. Gait Info — Strides Screen¶
- Live gait card (shown only during active tracking) — current gait label + speed
- Educational gait cards — Walk / Trot / Gallop with speed ranges and descriptions
- Accessible from main menu
12. Profile & Account¶
- Register (email + password + display name)
- Login (email + password, or Google Sign-In)
- Profile name — displayed publicly
- Profile photo — gallery picker, uploaded to Firebase Storage (persists after logout + re-login)
- Nickname — private alias shown only on leaderboard, not real name
- Unique Vriend-ID — ET-XXXXXXXX format, copyable + shareable
- PRO badge — ⭐ shown on profile and leaderboard when PRO
- Special role badges displayed: Founder 🏛️ · Tester 🧪 · Ambassador 🤝 · Influencer 📣 · Sponsor 💎
- Change password (email accounts)
- Easter egg 1: 5 taps on profile header avatar → animated horse GIF
- Easter egg 2: 5 taps on info tile → secret code dialog (enter HIPPISCH → 7-day PRO trial)
13. Social Feed¶
- Global feed of all public rides, newest first
- Feed post card: nickname · ride title · distance · duration · gait bar · horse name · photo thumbnails · relative time
- Like a post (tap heart, count shown)
- Tap post → author profile sheet: stats · badges · horse · most recent ride · Follow button
- Report post: 3 unique reports → auto-hidden + Discord moderation webhook
- Blocked users filtered out of feed automatically
- Photo sharing opt-in in Settings > Sociaal & Privacy (default: on)
14. Friends & Social Connections¶
- Search users by display name (Firestore prefix query)
- Send friend request — notification created for recipient
- Incoming request inbox — "Verzoeken" section with Accept / Decline buttons
- Friends list — with online indicator (green dot) + last-seen time
- Nudge 🏇 "Zin om samen te rijden?" — feature flag off, ready to enable
- Block / Unblock users
- Blocked users management screen
15. Nearby Riders Map¶
- Real-time map showing active riders in ~25 km radius
- Opt-in toggle — "Zichtbaar voor andere ruiters" (default: off)
- Privacy: location rounded to ~1 km grid — never exact coordinates stored
- Only published during active GPS tracking session
- Tap marker → rider profile sheet (nickname, roles, last active time)
- "Verbinden" button → sends friend request to that rider
- Hint card shown when opted in but no riders found (explains active tracking requirement)
16. Achievements & Badges (35+ total)¶
Distance milestones: 1 km 🌱 · 10 km 🐴 · 50 km ⭐ · 100 km 🏅 · 500 km 🥇 · 1,000 km 🏆 · 5,000 km 💎
Time in saddle: 1 hour ⏱️ · 10 hours 🕐 · 50 hours 🕑 · 100 hours 🏇
Ride count: 1st ride 🔰 · 5 rides 📍 · 25 rides 🗺️ · 100 rides 🌍
Gait mastery: Walk Master 🚶 · Trot Champion 🏇 · Galloper ⚡
Weekly challenges: Week Warrior 🗓️ (5 rides in 7 days) · 100 km Week 💪
Exploration — Dutch coast & forest: Beach Rider 🏖️ (Dutch coast) · Forest Explorer 🌲 (Veluwe / Utrechtse Heuvelrug)
Exploration — All 12 Dutch provinces (individual badges): Drenthe · Flevoland · Friesland · Gelderland · Groningen · Limburg · Noord-Brabant · Noord-Holland · Overijssel · Utrecht · Zeeland · Zuid-Holland
Exploration — Province collector: Province Collector 🗺️ (ridden in 5+ provinces)
Exploration — International: Belgium 🇧🇪 · Germany 🇩🇪 · France 🇫🇷
Hidden / Mystery badges (shown as ??? until earned — condition secret): - Night Owl 🦉 — ride between 22:00–05:00 - Rain Dancer 🌧️ — ride in rain (detected from weather data or ride title) - Carousel Rider 🎠 — 50+ arena circles in training mode - Flying Dutchman ⚡ — single ride > 50 km - EquiTrail Veteran 🏆 — 500 km cumulative total
Special / admin-assigned: - Founder 🏛️ — registered before Dec 31, 2026 + installed production build - Tester 🧪 — used internal/beta build (permanent, kept even after production install) - Ambassador 🤝 — admin-assigned - Influencer 📣 — admin-assigned - Sponsor 💎 — admin-assigned
17. Challenges¶
- Active challenges list with visual progress bars
- Personal challenges — weekly distance / ride count targets
- Club challenges — shared goals with club members
- Challenge splash screen on first completion
- Progress path visualisation — animated trail graphic
18. Leaderboard¶
- Friends leaderboard (total km, sorted)
- Regional leaderboard (Dutch province level)
- National leaderboard (NL)
- PRO badge displayed next to name ⭐
- Opt-out option (Settings > privacy — hide from leaderboard)
19. Clubs & Groups¶
- Create a club (name, description, public/private)
- Join / Leave a club
- Member list with roles
- Club stats — combined km, ride count, member count
- Club challenges — shared distance or ride-count goals
- Club activity feed — recent member rides
20. Share Card & Export¶
- Ride share card — branded PNG image:
- EquiTrail logo watermark
- Ride title, distance, duration, gait bar
- Auto-generated caption + hashtags (country-specific: NL/BE/DE/FR)
- Shared via OS share sheet
- Achievement share card — same format with badge + title
- GPX export — valid GPX 1.1 XML, all track points with lat/lng/alt/time
- PDF export — printable ride report:
- Stats table, gait breakdown, ride title, horse name, EquiTrail branding
21. Community Tips Screen¶
- 5 daily riding tips: fire safety · pacing · health & safety · hydration · temperature management
- Coming-soon banner for full community features
22. Country Content (NL / DE / FR / GB)¶
- Per-country GPX route sources (e.g. NL: Ruiterlabel, Buitenrijden.nl)
- Per-country POI tips for riders
- Per-country equestrian organisations list
23. Gamification & Engagement¶
- Streak chip — consecutive days ridden, shown on profile
- FOMO banners — rotating peer-pressure messages on home + feed
- Referral system:
- Personal EQUI-XXXXXX code (generated from UID)
- Apply code at registration → counted for referrer
- Every 3 referrals = 1 month PRO free for referrer
- Referral leaderboard (top referrers visible)
- "Invite friends" card — inserted every 4 posts in the feed
24. Navigation Bar¶
- 3–5 configurable tabs (Home + Settings always present)
- Toggle visibility of: Track · Horses · History · Social
- Reorder tabs (up/down arrows)
- Disabled tabs accessible via Settings > Meer menu's (shown as direct links)
- Icon scaling — icons auto-shrink when 5 tabs shown
25. Settings¶
| Section | Settings |
|---|---|
| Profiel | Name · Photo · Nickname · Vriend-ID |
| Uiterlijk | Dark / Light / System theme · Language (NL/EN/FR/DE) |
| Eenheden | km / miles · °C / °F |
| Gewicht | Rider weight (kg) for calorie calculation |
| Opnamemodus | Primary tracking mode (GPS / Arena / Jumping) |
| Navigatiebalk | Choose 3–5 tabs + order · Disabled menus accessible |
| Sociaal & Privacy | Photo sharing in feed (on/off) · Location visibility for nearby riders |
| Community | Discord invite link |
| Discover | Achievements link · Challenges link · FAQ link · Stats link |
| Veiligheid | Safety screen · Device info |
| Account | Sign out |
| Juridisch | Privacy policy · Terms · GDPR data deletion |
| Geblokkeerde gebruikers | Manage block list |
| [debug] | Test challenge toggle |
| [easter egg] | Secret code dialog (5 taps on info tile) |
26. Safety Screen¶
- Emergency stop UI (no real alert dispatch yet — #312 planned)
- Emergency contacts UI (shows "binnenkort" — #312 planned)
- Location sharing indication
- Battery overlay displayed on tracking screen (live % + charging state)
27. FAQ Screen¶
- Gait & Strides section — Walk/Trot/Gallop speed ranges + descriptions
- General questions — common app usage questions
28. Deep Link Handling¶
equitrail://navigate→ opens Navigation screenequitrail://route?id=X&name=Y→ opens Navigation with specific route pre-loadedequitrail://achievements→ opens Achievements screen- Handles both: app launched via link + link received while running
29. App Update (Google Play)¶
- Auto-checks Play Store for updates on each launch
- Custom update dialog (not Android default) with styled prompt
- If dismissed: nags again every 1 hour
- Graceful failure if not running from Play Store (emulator / sideload)
30. Pending Route (Website → App)¶
- Website can write a route to
users/{uid}/pending_routesin Firestore - On next app open after login: banner appears with route name
- One-tap to navigate with that route loaded
- Route doc deleted immediately after pickup (no duplicate banners)
31. PRO Subscription¶
| Feature | Free 🆓 | PRO 🔒 |
|---|---|---|
| Horses | 1 | Unlimited |
| Saved rides (app) | 5 | Unlimited |
| PRO badge (⭐ profile + leaderboard) | ✗ | ✅ |
| All tracking modes (GPS/Arena/Jumping) | ✅ | ✅ |
| Cloud sync + backup | ✅ | ✅ |
| Feed, social, achievements | ✅ | ✅ |
Pricing: - Via website (recommended): €10/mo · €90/yr · 0% commission - Via Google Play: €11.99/mo · €109.99/yr · 15% Play fee - Via App Store: €11.99/mo · €109.99/yr · 15% Apple fee
Trial: Secret code HIPPISCH → 7-day PRO (easter egg: 5 taps on ⓘ in profile)
32. Referral System¶
- Every user gets a unique EQUI-XXXXXX code on first login
- Enter referral code at registration → attributes install to referrer
- Firestore:
referrals/{uid}tracks count + referred UIDs - 3 referrals = 1 month PRO free (applied to referrer)
- Referral leaderboard — top referrers shown (anonymised)
33. Security & Integrity¶
- Device ID collection (anonymised, used for fraud prevention)
- GDPR screen — data deletion request · data export request
- All cloud data in europe-west4 (Amsterdam) — EU residency
- Ride data obfuscated in release builds (split debug symbols)
- Firestore security rules — user data isolated by UID, admin role gated
34. Localisation (4 languages)¶
All UI strings translated in NL / EN / FR / DE: - App navigation, labels, buttons, error messages - Gait descriptions, FAQ, tips - Share card captions + hashtags country-specific
35. Discord Bot (EquiTrail#3566)¶
Onboarding flow:
1. Join server → only #welcome, #rules, #get-your-role visible
2. React ✅ in #rules → bot DMs step 2
3. Type ET-XXXXXXXX in #get-your-role → bot verifies + assigns 🐴 Ruiter role
4. Language selector DM → assigns NL/EN/DE/FR role → unlocks channels
RouteHelper (merged into main bot):
- Drop .gpx in #share-routes → bot parses, stores, replies with stats
- /route [regio] · /gpx [naam] (DMs file) · /routekaart [naam]
Roles managed: 🐴 Ruiter · ⭐ PRO · 🌟 Founder · 🤝 Ambassador · 📣 Influencer · 💎 Sponsor · 🏅 Tester · 🇳🇱🇬🇧🇩🇪🇫🇷 language roles
36. Website (equitrail.horse)¶
| Page | URL | Status |
|---|---|---|
| Homepage (NL/EN/DE/FR) | / | ✅ |
| PRO pricing | /pro | ✅ |
| Privacy policy | /privacy | ✅ |
| Terms | /terms | ✅ |
| Partnership | /partnership | ✅ |
| Rider directory | /riders | ✅ |
| History | /history | ✅ |
| Delete account | /delete-account | ✅ |
| Routes hub (NL provinces + country flags) | /routes/ | ✅ |
| 🇳🇱 12 Dutch province pages | /routes/nederland/{prov}.html | ✅ all 12 |
| 🇧🇪 10 Belgian province pages | /routes/belgie/{prov}.html | ✅ all 10 |
| 🇩🇪 16 German Bundesländer | /routes/duitsland/{staat}.html | ✅ all 16 |
| 🇫🇷 13 French region pages | /routes/frankrijk/{region}.html | ✅ all 13 |
| Beta tester survey | /beta/ | ✅ tester-gated |
| Beta admin dashboard | /beta/admin.html | ✅ admin-gated |
| Admin panel | /admin.html | ✅ |
Each region page has: Leaflet OSM map · fitBounds to province · province boundary highlight + greyed surroundings · Overpass API horse trail polylines · real Firestore ride data · full SEO (canonical, hreflang nl/en/de/fr, schema.org BreadcrumbList + CollectionPage + SportsActivityLocation + GeoShape) · breadcrumbs · accessibility aria labels · province interlinking · other-country flags · download CTA
Generator: scripts/generate_region_pages.py — run to regenerate all 56 pages
37. Support Portal (support.equitrail.horse)¶
- Support ticket creation — no login required
- Ticket confirmation email via Microsoft Graph API (Office 365 shared mailbox support@equitrail.horse)
- "My tickets" view — login to see own tickets (query by email, no userId needed)
- Admin can read + update all tickets (isAdmin flag)
- Support daemon (Oracle server,
equitrail-supportsystemd service): - Polls Firestore every 2 min for new tickets needing confirmation
- Polls Office 365 inbox every 15 min for email replies, matches
[TICKET-ID]in subject
38. Beta Tester Survey (equitrail.horse/beta/)¶
- Tester-gated — checks
isTestUser == truein Firestore after login - 7-section survey: profile · onboarding · GPS · horses/social · UI/UX · bugs · overall
- Auto-save to localStorage (resume banner on next visit)
- Submit via Firestore REST + ID token auth
- Admin dashboard (/beta/admin.html):
- List view + aggregated view + backlog generator
- KB overlap detection
- Feedback pattern → auto-generated backlog items
39. Admin macOS App (equitrail-admin)¶
- Login via Firebase Auth REST (no native SDK — works without Apple Developer team ID)
- Token auto-refresh in SharedPreferences (UserDefaults)
- Screens: Users overview (free/PRO/platform split) · Community trails map with Dutch province sidebar · Dashboard stats
- Admin identification via
users/{uid}.isAdmin == truein Firestore
40. Build System & Infrastructure¶
- Flutter 3.44 / Dart 3.12 · Android + iOS parity
- Build track constant (
AppConstants.buildTrack): 'internal'= current (setsisTestUser=true→ Tester badge)'production'= first public release (setshasProductionInstall=true→ Founder badge)- Obfuscated release AAB + split debug symbols (
symbols/) - Cloud: all in europe-west4 Amsterdam (NEVER us-central1)
- Routing: GraphHopper on Oracle Cloud (via Tailscale 100.126.14.49)
- Discord bot: Oracle Cloud systemd user service
- Website: Plesk FTP deploy (
scripts/deploy_website.sh) - Backup:
scripts/backup_to_server.sh→ Oracle ~/equitrail-backup/
🔜 PLANNED — Not yet in the app¶
Payments & Revenue¶
#83Stripe / iDEAL website payments#84Google Play Billing#85App Store IAP#138Mollie integration#286Admin premium code generator (trackable codes, usage limits)#287–288Full referral tier system (3/5/25/50/100 referrals → Supporter/Ambassador/Elite/Sponsor Partner)#102Horse PRO shared subscription (co-rider model)
iOS & Apple¶
- Apple Developer enrollment (pending)
- TestFlight + App Store submission
- Apple Small Business Programme
Safety (real alerting — UI exists, dispatch not wired)¶
#312No-movement auto-alert: 5 min standstill during active session → 30-sec countdown → SMS + GPS to emergency contacts#313Fall detection: accelerometer G-spike → near-zero motion → alert flow (same as #312)- Actual SMS/email dispatch via Cloud Function
Training Expansion¶
#293Arena dressage letters overlay (A/B/C/E/F/G/H/K/M/X + 20×40m layout)#293Dutch proef sequences (Oefenklasse B, L1, L2) with guided movements#293Non-circle patterns: serpentine · diagonal · shoulder-in · half-pass#294Jump height: obstacle height entry before session + clearance per jump#309Endurance mode: FEI rules · vet check markers · pace zones · TREC / CTR#314Posture coach (V1: GPS turn asymmetry → V2: accelerometer lean → V3: watch wrist IMU)
Social & Friends¶
#22FCM push notifications (friend requests, likes, club events)#308"Send to app" deep link from website route pages (equitrail://route?...)#311Public rider directory (opt-in, nickname-only, filter by province)#89GPX sharing directly from social feed#90Club group chat
Horse & Stats¶
#305Horse stats dashboard: km · gait distribution · calories · jumps · arena metrics per horse#306Clearer horse selection UX at ride start (prominent picker)#303Horse breed autocomplete (200+ breeds, NL/EN/DE/FR, fuzzy match)
Referral & Ambassador¶
#287–290Full tier: Supporter / Ambassador / Elite Ambassador / Sponsor Partner#289Ambassador dashboard (installs, conversions, commission, rank)#307Ambassador page on website
Admin & Feature Flags¶
#301Remote Firestore feature flag control (Free/PRO/Hidden per feature, admin toggle without app update)#302Profile photo in leaderboard + ranking screens- Admin macOS app Google Sign-In (needs Apple Developer team ID)
Website & Routes¶
#304External route importer (OSM/ODbL data, Cloud Function, weekly sync)#296Feed click → ride detail slide-up (route trace + photos)#297Feed photo thumbnails in feed card#292Trailer-friendly parking search in navigation
Infrastructure & Monitoring¶
#242Brevo newsletter setup (GDPR-compliant, region segmentation)#276Firebase spend alerts + GCP budget anomaly detection- Firestore daily export → GCS backup
- Keystore → 1Password offline backup
- Import Uptime Kuma monitors (192.168.1.111:3001)
#106Full automated test suite run
Wearables & Devices¶
#310Galaxy Watch companion (code in repo atandroid/wearable/, feature flag off)#310Garmin Connect IQ (large equestrian user base)#310Fitbit / Google Pixel Watch#20Apple Watch
On-Device Bugs (needs device testing)¶
#298Grey screen on Track after PRO unlock — likely proServiceProvider rebuild cascade#300Friend name overflow in search results — maxLines/ellipsis fix