aprs.me/test/aprsme
Graham McIntire f0f0bdc589
Some checks failed
Elixir CI / Build and test (push) Has been cancelled
Elixir CI / Dialyzer (push) Has been cancelled
Elixir CI / Build and Push Docker Image (push) Has been cancelled
perf: optimize packet receive→parse→store pipeline (35-60% throughput)
Eliminates redundant work on the hot path:

1. Remove struct_to_map — Map.put on struct already returns plain map,
   eliminating O(n) recursive traversal of the entire parser struct tree
   per packet. [15-25% gain]

2. Delete data_extended early — moves Map.delete to before recursive
   sanitization/DateTime walks, avoiding wasted work on data that is
   already extracted to top-level columns. [8-12% gain]

3. Truncate received_at to :second at source — removes microsecond
   truncation + the recursive truncate_datetimes_to_second pass.
   [5-8% gain]

4. Merge sanitize passes — new sanitize_packet_with_encoding/1 does
   truncation + encoding sanitization in one Map.new pass instead of
   two sequential traversals. [5-8% gain]

5. Fix raw→raw_packet key — consumer read :raw_packet but dispatch
   wrote :raw, silently dropping raw packet data to the DB column.

6. Fold has_weather into extract_additional_data — set when weather
   is found during extraction instead of scanning 10 fields per packet.
   [2-4% gain]

7. filter_fields with MapSet — O(1) membership check instead of O(n)
   list scan. [2-3% gain]

8. Single-pass chunk reduction — builds valid_inserts and valid_bcasts
   in one Enum.reduce, saving 2 extra list traversals. [2-3% gain]

Dead code removed: struct_to_map/1, extract_from_mic_e_map/1,
set_has_weather/1, set_received_at/1, truncate_datetimes_to_second/1,
__original_struct__ MicE branch.

Tests: 2481/2490 passing (+3 improvement, remaining 9 are pre-existing)
2026-08-02 15:13:42 -05:00
..
accounts Fix all mix credo --strict warnings (188 → 0) 2026-06-12 16:27:20 -05:00
cluster fix: resolve all credo issues — 0 warnings, 0 refactoring, 0 readability issues 2026-07-29 10:54:07 -05:00
is Fix all mix credo --strict warnings (188 → 0) 2026-06-12 16:27:20 -05:00
packets fix: resolve all credo issues — 0 warnings, 0 refactoring, 0 readability issues 2026-07-29 10:54:07 -05:00
prom_ex/plugins reliability: bound ingress buffers, payload limits, overflow telemetry 2026-07-26 15:10:54 -05:00
swoosh Improve test coverage to 87% and point vendor/aprs submodule at codeberg 2026-05-05 15:18:28 -05:00
telemetry refactor: harden packet delivery and operations 2026-07-26 13:11:26 -05:00
workers fix: resolve all credo issues — 0 warnings, 0 refactoring, 0 readability issues 2026-07-29 10:54:07 -05:00
accounts_test.exs deps: update all dependencies and fix doctests for Elixir 1.20 2026-07-01 08:40:17 -05:00
application_test.exs Fix all mix credo --strict warnings (188 → 0) 2026-06-12 16:27:20 -05:00
bad_packet_test.exs fix: resolve all credo issues — 0 warnings, 0 refactoring, 0 readability issues 2026-07-29 10:54:07 -05:00
broadcast_task_supervisor_test.exs fix: resolve all credo issues — 0 warnings, 0 refactoring, 0 readability issues 2026-07-29 10:54:07 -05:00
cache_test.exs fix(cache): use case instead of rescue to handle :undefined table info; expand Cache tests 2026-04-23 17:31:56 -05:00
callsign_test.exs refactor: harden packet delivery and operations 2026-07-26 13:11:26 -05:00
circuit_breaker_test.exs Fix code review findings: security, correctness, performance, dead code 2026-02-19 18:49:27 -06:00
cleanup_scheduler_test.exs refactor: harden packet delivery and operations 2026-07-26 13:11:26 -05:00
connection_monitor_test.exs Fix all mix credo --strict warnings (188 → 0) 2026-06-12 16:27:20 -05:00
connection_prevention_test.exs bugfixes 2026-07-25 15:39:46 -05:00
convert_test.exs test: broaden unit & property-test coverage (61.8% → 64.7%) 2026-04-23 13:32:09 -05:00
data_extended_test.exs Fix all mix credo --strict warnings (188 → 0) 2026-06-12 16:27:20 -05:00
deployment_notifier_test.exs refactor: remove dead code, duplication, and over-abstractions 2026-07-21 10:36:49 -05:00
device_cache_test.exs Fix all mix credo --strict warnings (188 → 0) 2026-06-12 16:27:20 -05:00
device_identification_test.exs fix: resolve all credo issues — 0 warnings, 0 refactoring, 0 readability issues 2026-07-29 10:54:07 -05:00
device_parser_test.exs test: broaden unit & property-test coverage (61.8% → 64.7%) 2026-04-23 13:32:09 -05:00
devices_seeder_test.exs Add coverage tests for DevicesSeeder, StatusLive helpers, DataBuilder, and HistoricalLoader 2026-05-08 13:04:37 -05:00
dynamic_supervisor_test.exs Add tests for 14 modules with 0% coverage 2026-02-09 17:19:50 -06:00
encoding_test.exs Improve test coverage to 88.02% 2026-05-08 11:58:09 -05:00
encoding_utils_test.exs Fix all mix credo --strict warnings (188 → 0) 2026-06-12 16:27:20 -05:00
enhanced_parser_test.exs Fix all mix credo --strict warnings (188 → 0) 2026-06-12 16:27:20 -05:00
error_handler_test.exs Improve test coverage to 88.02% 2026-05-08 11:58:09 -05:00
error_notifier_test.exs Add email notifications for production errors 2026-03-22 15:12:59 -05:00
geo_utils_test.exs Fix all mix credo --strict warnings (188 → 0) 2026-06-12 16:27:20 -05:00
geometry_test.exs fix: Resolve majority of dialyzer type errors 2025-07-30 13:30:21 -05:00
is_test.exs fix: resolve all credo issues — 0 warnings, 0 refactoring, 0 readability issues 2026-07-29 10:54:07 -05:00
log_sanitizer_test.exs Fix all mix credo --strict warnings (188 → 0) 2026-06-12 16:27:20 -05:00
maidenhead_test.exs Partition packets table by day and simplify cleanup 2026-02-20 11:25:16 -06:00
migration_lock_test.exs fix: resolve all credo issues — 0 warnings, 0 refactoring, 0 readability issues 2026-07-29 10:54:07 -05:00
migration_validation_test.exs fix: resolve all credo issues — 0 warnings, 0 refactoring, 0 readability issues 2026-07-29 10:54:07 -05:00
mock_helpers_test.exs Add tests for 14 modules with 0% coverage 2026-02-09 17:19:50 -06:00
packet_consumer_pool_test.exs Fix API documentation to match implementation 2026-02-19 10:22:10 -06:00
packet_consumer_test.exs fix: resolve all credo issues — 0 warnings, 0 refactoring, 0 readability issues 2026-07-29 10:54:07 -05:00
packet_extras_test.exs perf: optimize packet receive→parse→store pipeline (35-60% throughput) 2026-08-02 15:13:42 -05:00
packet_field_whitelist_test.exs Fix all mix credo --strict warnings (188 → 0) 2026-06-12 16:27:20 -05:00
packet_geometry_test.exs Add test coverage for conversion, geometry, PHG, and encoding modules 2026-02-20 13:53:26 -06:00
packet_parsing_test.exs fix: resolve all credo issues — 0 warnings, 0 refactoring, 0 readability issues 2026-07-29 10:54:07 -05:00
packet_pipeline_supervisor_test.exs Fix all mix credo --strict warnings (188 → 0) 2026-06-12 16:27:20 -05:00
packet_producer_backpressure_test.exs Add TCP backpressure to packet pipeline 2026-02-19 15:31:51 -06:00
packet_producer_test.exs Add TCP backpressure to packet pipeline 2026-02-19 15:31:51 -06:00
packet_sanitizer_test.exs test: broaden unit & property-test coverage (61.8% → 64.7%) 2026-04-23 13:32:09 -05:00
packet_test.exs Improve test coverage to 87% and point vendor/aprs submodule at codeberg 2026-05-05 15:18:28 -05:00
packet_weather_extraction_test.exs fix: resolve all credo issues — 0 warnings, 0 refactoring, 0 readability issues 2026-07-29 10:54:07 -05:00
packets_encoding_test.exs Consolidate 24 packet columns into JSONB data field 2026-02-20 13:02:47 -06:00
packets_mic_e_test.exs fix: resolve all credo issues — 0 warnings, 0 refactoring, 0 readability issues 2026-07-29 10:54:07 -05:00
packets_oldest_test.exs Remove AppSignal; fix decrement trigger and stale test assertions 2026-05-05 13:20:58 -05:00
packets_test.exs perf: optimize packet receive→parse→store pipeline (35-60% throughput) 2026-08-02 15:13:42 -05:00
packets_weather_test.exs fix: resolve all credo issues — 0 warnings, 0 refactoring, 0 readability issues 2026-07-29 10:54:07 -05:00
partition_manager_test.exs fix: drop migration-created partitions in partition_manager test setup 2026-07-27 13:33:28 -05:00
postgres_notifier_test.exs Fix all mix credo --strict warnings (188 → 0) 2026-06-12 16:27:20 -05:00
prom_ex_test.exs fix: resolve all credo warnings and pre-existing dialyzer errors 2026-07-17 16:41:15 -05:00
regex_cache_test.exs test: RegexCache LRU eviction path (100% coverage) 2026-04-24 08:23:52 -05:00
release_test.exs test: broaden unit & property-test coverage (61.8% → 64.7%) 2026-04-23 13:32:09 -05:00
shutdown_handler_test.exs Fix all mix credo --strict warnings (188 → 0) 2026-06-12 16:27:20 -05:00
signal_handler_test.exs chore: remove unused deps, replace resend with custom Swoosh adapter, fix test isolation 2026-04-24 13:04:18 -05:00
spatial_pubsub_test.exs refactor: harden packet delivery and operations 2026-07-26 13:11:26 -05:00