Commit graph

32 commits

Author SHA1 Message Date
4213fa3105
test: Add comprehensive tests for non-position packets and edge cases
- Added tests for packets with has_position: false (status, messages, telemetry)
- Added callsign normalization to handle whitespace-only callsigns
- Added tests for edge cases (whitespace, lowercase callsigns)
- Improved robustness of callsign tracking feature

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 14:09:43 -05:00
047cd3a7ce
fix: Show all packets for tracked callsigns including non-position data
- Modified get_recent_packets to not filter by has_position when tracking a specific callsign
- Ensures users can see status updates, messages, and other non-position packets
- Fixes issue where callsigns without recent position data wouldn't show any packets
- Updated documentation to reflect this behavior

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 14:02:44 -05:00
41c148650d
refactor: Remove CachedQueries and rename optimized functions
- 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>
2025-07-30 13:17:56 -05:00
d5781f2581
Fix comprehensive crash prevention and add missing RF path station markers
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>
2025-07-28 11:56:00 -05:00
a3045371a1
Fix dialyzer warnings and improve type safety
- Fix Packet module usage in queries (use from/1 to create proper query)
- Fix error handling in DbOptimizer to use try/rescue
- Remove unused erlc_paths from mix.exs comment
- Improve type specifications consistency

All dialyzer specs now pass without critical errors.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-27 11:18:55 -05:00
566198afa7
clean up warnings 2025-07-16 08:55:46 -05:00
46340e008a
update deps 2025-07-16 08:20:20 -05:00
534bd8df8a
clean up status page 2025-07-15 13:56:01 -05:00
8e507702f7
more performance improvements/cleanup 2025-07-14 16:49:55 -05:00
3730b8c848
performance improvements 2025-07-14 16:35:58 -05:00
fa89712587
main map improvements 2025-07-13 14:58:13 -05:00
4348d34f62
fix weather 2025-07-12 10:53:11 -05:00
48447ab42e
refactor and performance improvements 2025-07-10 10:53:34 -05:00
514d1b66d5
fix all the main map display issues 2025-07-09 16:20:29 -05:00
7318d2dfbc
Optimize viewport-based loading with zoom-aware batching
Key improvements:
- Fix spatial query order: Apply bounds filtering BEFORE limit/offset
- Add zoom-level based batch sizing (20-100 packets per batch)
- Dynamic batch count based on zoom level (2-5 batches)
- Faster loading delays for high zoom levels (25ms vs 50ms)
- Include zoom level in cache keys for better cache efficiency

Performance benefits:
- Zoomed in far (zoom 15+): 2 batches of 20 packets each
- Moderately zoomed (zoom 12-14): 3 batches of 35 packets each
- Medium zoom (zoom 8-11): 4 batches of 50 packets each
- Zoomed out (zoom <8): 5 batches of 75-100 packets each

This ensures packets are loaded from the current viewport first,
dramatically reducing load times when zoomed in.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-09 09:14:12 -05:00
1932f63b91
Implement progressive loading for historical packets to improve map performance
- Add progressive loading system that splits 200 packets into 4 batches of 50 each
- Implement client-side chunked rendering to prevent UI blocking
- Add caching layer using Aprsme.CachedQueries for better database performance
- Maintain proper chronological ordering for trail drawing
- Use LiveView's efficient update mechanisms for smooth user experience

Performance improvements:
- Faster initial load with immediate visual feedback
- Reduced memory pressure through smaller batch sizes
- Better caching with automatic cache invalidation
- Smooth, non-blocking UI updates using requestAnimationFrame

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-09 09:08:10 -05:00
711d92ebb6
performance improvements 2025-07-08 10:03:52 -05:00
dd9dd7ce1d
improve status page 2025-07-07 12:20:03 -05:00
1406ae97f0
performance improvements 2025-07-05 14:34:34 -05:00
5bdb40b9f8
indexes 2025-07-04 12:49:35 -05:00
d6417ff16b
more live updates and chart version update 2025-07-04 12:15:38 -05:00
a78fb8a385
live update info page 2025-07-04 11:45:00 -05:00
7a36960eb6
device identifier fix and other cleanup 2025-07-04 11:39:43 -05:00
d15821e72e
more detail fixing 2025-07-04 10:23:37 -05:00
48b8c7de94
add index for weather 2025-07-03 13:07:34 -05:00
4baf3cffe7
dialyzer fixes 2025-07-03 10:56:06 -05:00
7ef3f59026
parsing improvements 2025-06-28 15:53:27 -05:00
1354b7da07
historical packets working again 2025-06-28 11:34:15 -05:00
f08330b46c
weather fixing 2025-06-25 11:40:04 -05:00
91cd2688f7
db timeout increase 2025-06-25 08:57:45 -05:00
0beb278371
add packet batcher 2025-06-24 15:06:09 -05:00
ce7c50caa1
refactor to use external parser 2025-06-24 14:22:09 -05:00
Renamed from lib/aprs/packets.ex (Browse further)