- Remove all CachedQueries usage throughout the codebase
- Replace with direct Packets module calls
- Delete CachedQueries module entirely
- Rename get_recent_packets_optimized to get_recent_packets
- Add has_weather_packets? function to Packets module
- Fix duplicate function definitions
- Update all test references to use new function names
This simplifies the codebase by removing the caching layer and
eliminates the database ownership errors in tests.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit addresses two major areas:
1. Crash Prevention & Error Handling:
- Added error handling to all database queries to prevent crashes
- Implemented circuit breaker pattern for APRS-IS connection
- Added timeouts to all Redis operations (5 second timeout)
- Fixed unsafe pattern matches that could cause MatchError crashes
- Added try/rescue blocks around background tasks
- Improved socket operation error handling with proper cleanup
- Enhanced packet cleanup worker with comprehensive error handling
2. RF Path Station Markers:
- Fixed issue where digipeater/iGate icons weren't shown when searching for callsigns
- Now loads and displays position markers for all stations in the RF path
- Extracts RF path stations from tracked callsign packets
- Fetches latest position for each digipeater/iGate
- Properly displays complete RF path visualization with station positions
Technical details:
- Added Process.alive? checks before sending messages
- Fixed resource cleanup in terminate functions
- Added proper error handling to File.read operations
- Implemented safe wrapper for ShutdownHandler health checks
- All changes ensure the app continues running even when errors occur
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Increase debounce time from 300ms to 400ms for bounds updates
- Cancel in-progress historical loading when new bounds are scheduled
- Add stale update detection to skip outdated bounds updates
- Clear timer reference and pending bounds when processing updates
- Add debug logging for cancelled loads and stale updates
This prevents overlapping historical data loads during rapid zoom
changes, eliminating duplicate packets and improving performance.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
The function was sending a message but not returning the socket,
causing an ArgumentError when the result was passed to assign/3.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>