Repository navigation
GeoChat v0.2.0 – Deterministic Propagation, Coroutine Scoping, and Test Enhancements
Pre-release
Pre-release
Released by @Danix002 – Sep 12, 2025
✨ New Features
- Added deterministic chat message propagation test for predictable multi-device scenarios.
- Introduced
getCurrentListOfMessages()utility to retrieve the current snapshot of messages. - Added
TimeProviderinterface to abstract current time access. - Added
dumpJobsutility in ViewModels to inspect coroutine jobs. - Enhanced message propagation logic and parameter refactoring.
- Multi-source message propagation improved and aggregated via Uuid.
🛠 Improvements
- Extended
CoroutineScopein ViewModels for safer coroutine management. - Unified heartbeat generation in
NearbyDevicesViewModel. - Refactored dynamic movement and message propagation tests for cleaner scoping.
- Improved GPS/location error handling and fallback strategies.
- UI improvements for username input and general style consistency.
- Project structure reorganized for better maintainability.
🐛 Fixes
- Fixed assignment of messages to indirect neighbors within a range.
- Corrected
_receivedlist type assignments and message distance rounding bugs. - Fixed test initialization and coroutine handling (
externalScope, completionChannel, stopping all device coroutines). - Consolidated test fixes, removed unfinished tests, and introduced
FakeMailbox.
🧪 Testing
- Migrated simulated chat and distance tests from
runBlockingtorunTest. - Added enhanced test coverage for multi-device simulation, message collection, and propagation order.
- Ensured connection and neighbor discovery tests terminate correctly.
- Added
TestParamsdata class to track device simulation state.
📖 Documentation
- Added KDoc for ViewModels and updated README with simulation references.
- Documented test behaviors and message propagation details.