Skip to content

GeoChat v0.2.0 – Deterministic Propagation, Coroutine Scoping, and Test Enhancements

Pre-release
Pre-release

Choose a tag to compare

@Danix002 Danix002 released this 12 Sep 18:33
· 7 commits to master since this 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 TimeProvider interface to abstract current time access.
  • Added dumpJobs utility in ViewModels to inspect coroutine jobs.
  • Enhanced message propagation logic and parameter refactoring.
  • Multi-source message propagation improved and aggregated via Uuid.

🛠 Improvements

  • Extended CoroutineScope in 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 _received list 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 runBlocking to runTest.
  • Added enhanced test coverage for multi-device simulation, message collection, and propagation order.
  • Ensured connection and neighbor discovery tests terminate correctly.
  • Added TestParams data class to track device simulation state.

📖 Documentation

  • Added KDoc for ViewModels and updated README with simulation references.
  • Documented test behaviors and message propagation details.