diff options
Diffstat (limited to '.agent/worklog.md')
| -rw-r--r-- | .agent/worklog.md | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/.agent/worklog.md b/.agent/worklog.md index deefddb..55fd5a7 100644 --- a/.agent/worklog.md +++ b/.agent/worklog.md @@ -104,6 +104,25 @@ Section 7.4 Trip Reporting & Enhanced Tracks — COMPLETE (2026-04-04) - `activity_main.xml`: `fab_record_track` FAB anchored top|end of bottom nav - `drawable/ic_track_record.xml`: red dot record icon +### [APPROVED] Vessel Registry + Crew Management (2026-04-22) +- `android-app/app/src/main/kotlin/org/terst/nav/vessel/Vessel.kt` — data class: name, MMSI, callsign, flag, homePort, hullType, LOA, beam, draft, displacement, engineHp, notes, isOwnVessel +- `android-app/app/src/main/kotlin/org/terst/nav/vessel/CrewMember.kt` — data class: name, role (SKIPPER/FIRST_MATE/WATCH_CAPTAIN/CREW/GUEST), emergencyContact, emergencyPhone, certifications, notes +- `android-app/app/src/main/kotlin/org/terst/nav/vessel/VesselRepository.kt` — in-memory CRUD for vessels and crew; addVessel, updateVessel, removeVessel, getOwnVessel, addCrewMember, updateCrewMember, removeCrewMember, getSkipper, getCrewByRole +- `android-app/app/src/main/res/layout/fragment_vessel_registry.xml` — NestedScrollView with own vessel card, crew list, and known vessels list; + ADD buttons for crew and fleet +- `android-app/app/src/main/kotlin/org/terst/nav/ui/vessel/VesselRegistryFragment.kt` — fragment with AlertDialog editors for vessels and crew; long-press to delete +- `android-app/app/src/main/res/menu/bottom_nav_menu.xml` — added `nav_vessel` 5th tab with `ic_vessel` icon +- `android-app/app/src/main/res/drawable/ic_vessel.xml` — sailboat silhouette vector icon +- `MainViewModel.kt` — added `vesselRepository` property (public, for fragment access) +- `MainActivity.kt` — `R.id.nav_vessel` case loads `VesselRegistryFragment` +- Mirror classes in `test-runner/src/main/kotlin/org/terst/nav/vessel/` +- 18 tests in `test-runner/src/test/kotlin/org/terst/nav/vessel/VesselRepositoryTest.kt` — all GREEN + +### [APPROVED] Thermal Alarm (2026-04-22) +- `android-app/app/src/main/kotlin/org/terst/nav/thermal/ThermalMonitor.kt` — `thermalFlow(context)` as Kotlin Flow using `Intent.ACTION_BATTERY_CHANGED` for battery temperature; `PowerManager.addThermalStatusListener` on API 29+ for supplemental state; emits distinct `ThermalReading` only on state change +- `ThermalState` enum: OK (<40°C), WARM (40–45°C), HOT (45–50°C), CRITICAL (>50°C) +- `MainViewModel.kt` — `thermalState: StateFlow<ThermalState>`, `thermalReading: StateFlow<ThermalReading?>`, `onThermalReading()` entry point +- `MainActivity.kt` — `startThermalMonitoring()` called from `observeDataSources()`; HOT triggers Toast + alarm sound (reuses `R.raw.mob_alarm`); CRITICAL triggers urgent Toast + alarm; OK/WARM stops alarm; alarm released in `onDestroy()` + ## Next 3 Specific Steps 1. **Unit Tests for Trip Generators** — Add JVM tests in `test-runner` for `TripReportGenerator` and `PreTripReportGenerator`. 2. **Persist track to Room** — Replace in-memory `pastTracks` with a Room database for persistence across sessions. |
