aprs.me/test
Graham McIntire f0f0bdc589
Some checks are pending
Elixir CI / Build and test (push) Waiting to run
Elixir CI / Dialyzer (push) Waiting to run
Elixir CI / Build and Push Docker Image (push) Blocked by required conditions
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
..
aprsme perf: optimize packet receive→parse→store pipeline (35-60% throughput) 2026-08-02 15:13:42 -05:00
aprsme_web fix: resolve all credo issues — 0 warnings, 0 refactoring, 0 readability issues 2026-07-29 10:54:07 -05:00
assets/js Fix all mix credo --strict warnings (188 → 0) 2026-06-12 16:27:20 -05:00
integration fix: resolve all credo issues — 0 warnings, 0 refactoring, 0 readability issues 2026-07-29 10:54:07 -05:00
mix/tasks Fix all mix credo --strict warnings (188 → 0) 2026-06-12 16:27:20 -05:00
mix_unused Fix all mix credo --strict warnings (188 → 0) 2026-06-12 16:27:20 -05:00
support fix: resolve all credo issues — 0 warnings, 0 refactoring, 0 readability issues 2026-07-29 10:54:07 -05:00
types deps: ecto_sql 3.13→3.14, prom_ex 1.11→1.12, decimal 2.4→3.1, ecto 3.13→3.14; bump test pool for sandbox 2026-07-08 10:46:05 -05:00
aprs_is_mock_test.exs fix: repair all 60 failing tests after refactor and dep updates 2026-07-01 09:41:10 -05:00
test_helper.exs security: CSP nonces, RemoteIp CIDR gating, rate limiting, NetworkPolicies, deadlock fixes 2026-07-26 14:04:56 -05:00