aprs.me/lib/aprsme_web/live
Graham McIntire f225f57044
perf(packets): keyset-based pagination for recent-packet queries
get_recent_packets/1 and get_recent_packets_for_map/1 now accept a
:cursor option (%{received_at: DateTime, id: uuid}) instead of :offset
for deep paging. On the 100M-row partitioned packets table, offset
scanning was linear in page depth; keyset is constant.

Ordering tightened to (received_at DESC, id DESC) so the cursor is
stable across ties. idx_packets_received_desc still covers the lookup;
a dedicated (received_at DESC, id DESC) index isn't worth its size
given microsecond timestamp granularity.

historical_loader migrated from batch_offset*batch_size scheduling to
a sequential cursor chain. The old loader fanned out N Process.send_after
batches up-front which could arrive out-of-order; the cursor version
waits for batch N before scheduling N+1, and also short-circuits the
remaining schedule when an under-full batch signals exhaustion.

mobile_channel load_historical_packets dropped its meaningless
`offset: 0`; callsign history already lacked offset.

No LiveView or WebSocket payload shapes changed. offset: 0 (or omitted)
still behaves as first page; non-zero offsets are silently ignored.
2026-04-21 10:15:04 -05:00
..
bad_packets_live chore(dialyzer): enable stricter flags and fix 97 resulting findings 2026-04-21 10:07:01 -05:00
components fix compile warnings 2025-07-09 16:58:07 -05:00
info_live chore(dialyzer): enable stricter flags and fix 97 resulting findings 2026-04-21 10:07:01 -05:00
map_live perf(packets): keyset-based pagination for recent-packet queries 2026-04-21 10:15:04 -05:00
packets_live chore(dialyzer): enable stricter flags and fix 97 resulting findings 2026-04-21 10:07:01 -05:00
shared chore(dialyzer): enable stricter flags and fix 97 resulting findings 2026-04-21 10:07:01 -05:00
status_live chore(dialyzer): enable stricter flags and fix 97 resulting findings 2026-04-21 10:07:01 -05:00
weather_live Remove dead PostGIS code, deduplicate utilities, and simplify module hierarchy 2026-02-20 13:39:07 -06:00
about_live.ex en español 2025-07-05 15:51:39 -05:00
about_live.html.heex Apply TailwindCSS Plus design patterns across site 2026-02-20 17:56:06 -06:00
api_docs_live.ex docs: add weather nearby API endpoint to documentation 2026-03-22 12:16:32 -05:00
locale_hook.ex chore(dialyzer): enable stricter flags and fix 97 resulting findings 2026-04-21 10:07:01 -05:00
theme_manager.ex more performance improvements/cleanup 2025-07-14 16:49:55 -05:00
user_confirmation_instructions_live.ex fix: address security vulnerabilities and concurrency issues 2026-03-23 16:59:09 -05:00
user_confirmation_live.ex Remove DaisyUI, migrate to pure Tailwind CSS with TailwindUI patterns 2026-02-19 10:07:50 -06:00
user_forgot_password_live.ex fix: address security vulnerabilities and concurrency issues 2026-03-23 16:59:09 -05:00
user_login_live.ex Remove DaisyUI, migrate to pure Tailwind CSS with TailwindUI patterns 2026-02-19 10:07:50 -06:00
user_registration_live.ex fix: address security vulnerabilities and concurrency issues 2026-03-23 16:59:09 -05:00
user_reset_password_live.ex Remove DaisyUI, migrate to pure Tailwind CSS with TailwindUI patterns 2026-02-19 10:07:50 -06:00
user_settings_live.ex fix: address security vulnerabilities and concurrency issues 2026-03-23 16:59:09 -05:00