Commit graph

1472 commits

Author SHA1 Message Date
FluxCD
a949d4e08d chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1777404332-0625438 [skip ci] 2026-04-28 19:25:39 +00:00
0625438700
Revert "ci: deploy via rollout restart instead of git-commit image bumps"
This reverts commit f093b1bb4b.
2026-04-28 14:24:53 -05:00
f093b1bb4b
ci: deploy via rollout restart instead of git-commit image bumps
Switch deployment to floating :main tag with imagePullPolicy: Always
and have CI trigger a rollout restart directly via kubectl. Removes
the [skip ci] image-bump commits from main's history.

Requires a KUBECONFIG_DATA secret (base64-encoded kubeconfig with
permission to restart deployment/aprs in the aprs namespace) in
Forgejo Actions.
2026-04-28 14:22:04 -05:00
FluxCD
61fa83b3c4 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1777403979-3f2e025 [skip ci] 2026-04-28 19:20:54 +00:00
3f2e0252d5
refactor: dedupe utilities, prefer pattern matching, tighten specs
- consolidate Haversine: CoordinateUtils delegates to GeoUtils;
  InfoLive.haversine/4 reuses it (m -> km)
- AprsSymbol: collapse 3 sprite-info builders onto build_sprite_info/2
  and add a sprite_info @type
- DataBuilder: 3 weather unit converters share convert_unit/4 with
  explicit clauses for "N/A", numeric, and binary inputs
- mobile_channel: do_callsign_match/2 uses pattern-match clauses for
  wildcard handling instead of nested if
- info_live: replace nested case in position_changed? with multi-clause
  coords_changed?/1; format_timestamp_for_display pipelines into a
  guarded build_timestamp_display/1
- api_docs_live: collapse chained single-key assigns into keyword-list
  assign/2 calls
- add strict @spec coverage on all touched helpers; tighten new specs to
  match dialyzer success typing (no contract_supertype warnings)
2026-04-28 14:18:58 -05:00
FluxCD
64f464e782 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1777312679-e590956 [skip ci] 2026-04-27 18:02:09 +00:00
e590956732
flux refactor 2026-04-27 12:56:59 -05:00
FluxCD
a3ead3f941 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1777301232-f005a1a [skip ci] 2026-04-27 14:49:56 +00:00
f005a1a119
fix: prevent incoming packets from closing user-opened map popup
Add a client-side userOpenedPopupMarkerId lock that's set instantly when
a user manually opens a popup (via click, OMS spiderfy click, or long-press)
and cleared when the popup closes. All programmatic openPopup paths
(highlight_packet, addMarker openPopup flag) now respect the lock.

Closes the network round-trip race where new packets arriving between
the user's click and the server's marker_clicked ack could steal the popup.
2026-04-27 09:46:45 -05:00
FluxCD
5e277ddb9d chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1777075248-ec0a64c [skip ci] 2026-04-25 00:01:15 +00:00
ec0a64cf5f
faster tests 2026-04-24 19:00:24 -05:00
FluxCD
fa0eb7704b chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1777053882-a377847 [skip ci] 2026-04-24 18:05:48 +00:00
a377847122
chore: remove unused deps, replace resend with custom Swoosh adapter, fix test isolation
Remove faker, floki, igniter, ecto_psql_extras (zero usages), exvcr
(zero usages), and resend. Replace resend with Aprsme.Swoosh.ResendAdapter
using the already-present req dependency. Frees 23 packages total from
the lockfile including hackney, certifi, and the tesla dependency chain.

Fix two pre-existing test isolation bugs:
- signal_handler_test called the real ShutdownHandler.shutdown() via SIGTERM
  simulation without restoring state, causing page_controller_test to see
  shutting_down: true and return 503
- page_controller_test setup now resets ShutdownHandler state defensively
2026-04-24 13:04:18 -05:00
FluxCD
5524f7be68 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1777042745-a4fed06 [skip ci] 2026-04-24 14:59:10 +00:00
a4fed063f7
test: normalize_ssid integer coercion + keyset cursor pagination 2026-04-24 09:58:40 -05:00
FluxCD
8af9300469 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1777042654-145ff5f [skip ci] 2026-04-24 14:57:39 +00:00
145ff5fecd
test: MapLive historical_loading_timeout matching generation + show_error handler 2026-04-24 09:57:11 -05:00
FluxCD
ef630f2712 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1777042413-a1f88c4 [skip ci] 2026-04-24 14:53:38 +00:00
a1f88c41bd
test: expand coverage for StatusLive cluster render + MobileChannel type conversions 2026-04-24 09:53:10 -05:00
FluxCD
97cbe8cf6f chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1777042295-4a4e25c [skip ci] 2026-04-24 14:51:41 +00:00
4a4e25c08f
test: cover InfoLive.Show path decode branches + position fallback 2026-04-24 09:51:07 -05:00
FluxCD
0994b4d2f8 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1777042104-2a69499 [skip ci] 2026-04-24 14:48:29 +00:00
2a69499488
test: expand Is coverage — terminate w/ socket, backpressure idempotency, status fallback 2026-04-24 09:47:59 -05:00
FluxCD
4096dbf82d chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1777041532-84a61bd [skip ci] 2026-04-24 14:38:58 +00:00
84a61bd95c
test: expand coverage on cluster, shutdown, signal, packets helpers 2026-04-24 09:38:27 -05:00
FluxCD
340707ebf9 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1777039907-3c5447e [skip ci] 2026-04-24 14:11:55 +00:00
3c5447e0b6
test: Packets MicE struct + ParseError position extraction 2026-04-24 09:11:11 -05:00
FluxCD
2352a7ef9e chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1777039685-4875904 [skip ci] 2026-04-24 14:09:17 +00:00
4875904303
test: InfoLive.Show weather link + no-packet branches 2026-04-24 09:07:29 -05:00
FluxCD
f421cf7b13 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1777039440-e3a6a82 [skip ci] 2026-04-24 14:04:08 +00:00
e3a6a8268d
test: MapLive tracked-callsign filtering + trail duration cleanup 2026-04-24 09:03:31 -05:00
FluxCD
247c77a177 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1777039336-cde015d [skip ci] 2026-04-24 14:02:23 +00:00
cde015deca
test: MapLive.Index invalid-bounds rejection 2026-04-24 09:01:48 -05:00
FluxCD
b8bbfaaaaa chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1777039212-dcb759e [skip ci] 2026-04-24 14:00:24 +00:00
dcb759ecfa
test: InfoLive.Show PHG render paths 2026-04-24 08:59:36 -05:00
FluxCD
b3f5b98a70 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1777039155-bd3f5c0 [skip ci] 2026-04-24 13:59:30 +00:00
bd3f5c0434
test: PacketConsumer item/object detection branches 2026-04-24 08:58:43 -05:00
FluxCD
4f41b4106c chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1777039061-4ea38c0 [skip ci] 2026-04-24 13:57:51 +00:00
4ea38c0585
test: store_bad_packet error-shape branches 2026-04-24 08:57:12 -05:00
FluxCD
509b859b0d chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1777038917-d01a15e [skip ci] 2026-04-24 13:55:44 +00:00
d01a15eac0
test: reset Hammer rate limiter state in MapLive.Index suite 2026-04-24 08:54:56 -05:00
FluxCD
519796de5d chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1777038648-eb6801c [skip ci] 2026-04-24 13:50:53 +00:00
eb6801c927
test: Application module smoke test 2026-04-24 08:50:24 -05:00
FluxCD
f49473e6cd chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1777038611-8be2fb5 [skip ci] 2026-04-24 13:50:17 +00:00
8be2fb5a77
test: LeaderElection attempt_election + leader_call callbacks 2026-04-24 08:49:53 -05:00
FluxCD
f4453078ae chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1777038555-d890ec1 [skip ci] 2026-04-24 13:49:22 +00:00
d890ec129a
test: TestHelpers module coverage 2026-04-24 08:48:54 -05:00
FluxCD
ed44a8c0d9 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1777038421-a964791 [skip ci] 2026-04-24 13:47:07 +00:00
a9647916fa
test: PacketsLive.CallsignView overflow + iso8601 broadcast paths 2026-04-24 08:46:35 -05:00
FluxCD
2446f010f8 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1777038312-1b8d359 [skip ci] 2026-04-24 13:45:17 +00:00