diff options
| author | Claude <noreply@anthropic.com> | 2026-04-22 05:35:49 +0000 |
|---|---|---|
| committer | Claude <noreply@anthropic.com> | 2026-04-22 05:35:49 +0000 |
| commit | eeafe2f0f3a3718bd52e9c333894e1abbc0611ab (patch) | |
| tree | 68ba329f0cadd64333fb5d72587f684fc38a500a /.agent/design.md | |
| parent | 3cddcd3b0a8719da5e828734a1d3054cef803235 (diff) | |
feat: vessel registry, crew management, and thermal alarm
- Vessel/CrewMember data classes with full profile fields
(MMSI, callsign, flag, home port, hull type, dimensions, roles)
- VesselRepository: in-memory CRUD for own vessel, fleet, and crew;
getOwnVessel(), getSkipper(), getCrewByRole() helpers
- VesselRegistryFragment: own-vessel card + crew list + known-vessels
list; AlertDialog editors for add/edit; long-press to delete
- ic_vessel.xml sailboat icon; 5th bottom-nav tab "Vessel"
- ThermalMonitor: thermalFlow() using Intent.ACTION_BATTERY_CHANGED
(battery °C) + PowerManager.OnThermalStatusChangedListener (API 29+);
ThermalState OK/WARM/HOT/CRITICAL with distinct-until-changed filter
- MainActivity: startThermalMonitoring() sounds mob_alarm + Toast on
HOT (≥45°C) and CRITICAL (≥50°C); auto-silences on OK/WARM
- MainViewModel: thermalState and thermalReading StateFlows
- 18 VesselRepositoryTest cases — all GREEN (test-runner)
- design.md: updated competitive matrix + feature implementation status
https://claude.ai/code/session_011h2dXbgXg3PesQMmQUNTCW
Diffstat (limited to '.agent/design.md')
| -rw-r--r-- | .agent/design.md | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/.agent/design.md b/.agent/design.md index ba82612..545fe65 100644 --- a/.agent/design.md +++ b/.agent/design.md @@ -72,9 +72,37 @@ Existing solutions force sailors to switch between a charting app, a weather app | Offline charts/weather | - | ✓* | ✓* | ✓✓ | ✓✓ | ✓ | ✓ | ✓✓ | | Trip logbook | ✓ | - | - | ✓* | - | - | - | ✓✓ | | Mobile-native UI | ✓✓ | ✓✓ | ✓✓ | - | ✓ | ✓✓ | ✓ | ✓✓ | +| Vessel registry / boat profile | ✓* | - | ✓* | ✓ | ✓* | - | ✓ | ✓✓ | +| Crew management | - | - | - | - | - | - | - | ✓✓ | +| Device thermal alarm | - | - | - | - | - | - | - | ✓✓ | ✓✓ = strong, ✓ = present, ✓* = via plugin/limited, - = absent +### Feature Implementation Status (as of 2026-04-22) + +| Feature | Status | Location | +|--------------------------------------|---------------|-----------------------------------------------| +| GPS navigation (position, SOG, COG) | ✅ Complete | `gps/GpsProvider`, `gps/DeviceGpsProvider` | +| NMEA 0183 parsing | ✅ Complete | `nmea/NmeaParser`, `nmea/AisVdmParser` | +| AIS target tracking + CPA/TCPA | ✅ Complete | `ais/AisRepository`, `ais/CpaCalculator` | +| AIS internet feed (AISHub) | ✅ Complete | `ais/AisHubApiService`, `ais/AisHubSource` | +| MOB alarm | ✅ Complete | `ui/MobHandler`, `ui/safety/SafetyFragment` | +| Anchor alarm + watch circle | ✅ Complete | `AnchorAlarmManager`, `ui/AnchorWatchHandler` | +| Trip track recording | ✅ Complete | `track/TrackRepository`, `ui/MapHandler` | +| Weather overlay (particle wind) | ✅ Complete | `ui/map/ParticleWindView` | +| Barometric pressure trend | ✅ Complete | `BarometerSensorManager`, `BarometerTrendView`| +| Performance / polar tracking | ✅ Complete | `PerformanceViewModel`, `PolarData` | +| Tidal harmonic prediction | ✅ Complete | `tide/HarmonicTideCalculator` | +| Isochrone weather routing | ✅ Complete | `routing/IsochroneRouter` | +| Trip logbook (voice + manual) | ✅ Complete | `logbook/`, `ui/voicelog/` | +| GRIB weather file management | ✅ Complete | `data/storage/GribFileManager` | +| Vessel registry + crew management | ✅ Complete | `vessel/VesselRepository`, `ui/vessel/` | +| Device thermal alarm | ✅ Complete | `thermal/ThermalMonitor` | +| Night mode | 🔲 Roadmap | Phase 1 (partial — theme exists) | +| Cloud sync | 🔲 Roadmap | Phase 4 | +| Satellite GRIB (Iridium) | 🔲 Roadmap | Phase 5 | +| Wearable companion (Wear OS) | 🔲 Roadmap | Phase 5 | + ### Gaps in Existing Solutions | Gap | Who suffers | Our answer | @@ -86,6 +114,8 @@ Existing solutions force sailors to switch between a charting app, a weather app | Tide apps are standalone, not integrated with charts | Coastal cruisers | Tide/current overlays on the chart | | Anchor alarms require separate apps | All anchoring sailors| Built-in anchor watch with configurable alerts| | No good offline weather routing on mobile | Offshore sailors | Offline GRIB processing + isochrone routing | +| No app tracks crew roster with roles + contacts | All skippers | Built-in crew registry, no third-party needed | +| No app warns about phone overheating at the helm | All mobile users | Battery temp + PowerManager thermal alarm | --- |
