Commit graph

1223 commits

Author SHA1 Message Date
9c7c190979
chore: trigger CI rebuild 2026-04-17 12:46:28 -05:00
adaf9599e2
chore: update dependencies and fix pre-existing issues
Dep upgrades (mix deps.update --all):
- phoenix_live_view 1.1.27 → 1.1.28
- swoosh 1.23.1 → 1.25.0
- bandit 1.10.3 → 1.10.4
- credo 1.7.17 → 1.7.18
- hammer 7.2.0 → 7.3.0
- igniter 0.7.6 → 0.7.9
- and minor: fine, lazy_html, meck, mimerl
- removed stale lock entries: geocalc, gettext_pseudolocalize, gridsquare

Bug fixes surfaced during update:
- ETS cache tables were :protected (owned by Application master), preventing
  the Cache GenServer from writing; change to :public + write_concurrency
  so device/symbol/query caches actually work
- historical_dot_html returned Phoenix.HTML.safe tuple instead of plain string;
  symbol_html is JSON-encoded for JS so it must be binary
- String.slice always returns binary so the || "Unknown error" fallback was
  unreachable dead code (dialyzer guard_fail)
- Supervisor.which_children always returns a list so the _ -> branch in
  database_metrics was unreachable dead code (dialyzer pattern_match_cov)
- Add @type t :: %__MODULE__{} to User schema to resolve unknown_type in user_auth spec
- Extract nested if in leader_election to fix Credo nesting depth violation
- Update .dialyzer_ignore.exs: remove 2 stale entries, add false positives for
  Ecto.Multi/Gettext opaque types and Mix.Task PLT limitations
2026-04-15 14:07:29 -05:00
CI
54a7b2c0f2 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1774646325-51d5107 [skip ci] 2026-03-27 21:20:35 +00:00
Claude
51d5107983
fix: inline regex module attributes to fix deprecation warning
Elixir 1.19 deprecates storing regexes in module attributes. Inline
@wx_preamble_pattern and @wx_field_patterns directly into their
respective functions to resolve the --warnings-as-errors CI failure.

https://claude.ai/code/session_01Ps7Zq3wiBur1RtRKN7JM6X
2026-03-27 16:18:27 -05:00
Claude
a8051ce247
fix: code review refinements
- RegexCache: change ETS table from :public to :protected for consistency
  with other tables, preventing uncontrolled writes bypassing GenServer
- MobileChannel: ensure_float now returns nil instead of the original
  unparsed string on parse failure, so validate_bounds properly rejects it
- map.ts: remove dead commented-out localStorage code
- map.ts: use instanceof HTMLAnchorElement instead of unsafe type cast
  in popup navigation handler
- TrailManager: add destroyed flag to prevent stale RAF and debounce
  callbacks from firing after destroy, and clean up hover timer on destroy

https://claude.ai/code/session_01Ps7Zq3wiBur1RtRKN7JM6X
2026-03-27 16:18:27 -05:00
CI
36a86114a7 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1774568941-2300dcd [skip ci] 2026-03-26 23:50:42 +00:00
2300dcd69c
fix: stabilize moving station tracking 2026-03-26 18:48:43 -05:00
CI
d2cc7ffa4d chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1774546637-bc82777 [skip ci] 2026-03-26 17:39:09 +00:00
bc82777d34
fix: close review findings 2026-03-26 12:36:50 -05:00
CI
a343febdd0 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1774303163-288b9fb [skip ci] 2026-03-23 22:00:54 +00:00
288b9fbbb2
fix: address security vulnerabilities and concurrency issues
- Fix SQL injection in partition_manager, db_optimizer, and release.ex
- Fix XSS vulnerabilities with proper HTML escaping in LiveViews
- Add proper error handling for email delivery functions
- Fix race conditions with advisory locks and atomic operations
- Replace unsupervised spawn/Task.start with supervised alternatives
- Convert ETS operations to GenServer serialization for thread safety
- Change ETS tables from :public to :protected access
- Add client limits to prevent unbounded memory growth
- Add PubSub cleanup in GenServer terminate callbacks
- Fix device upsert to use atomic Repo.insert_all
2026-03-23 16:59:09 -05:00
CI
4477fdf615 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1774294338-4644962 [skip ci] 2026-03-23 19:33:49 +00:00
464496222f
fix: harden frontend reconnect callbacks 2026-03-23 14:31:08 -05:00
CI
85858d8fd8 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1774292943-512b7c4 [skip ci] 2026-03-23 19:10:31 +00:00
512b7c4fe9
fix: clean up map resize hook listeners 2026-03-23 14:08:30 -05:00
CI
be1c9f1038 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1774291436-d1110ec [skip ci] 2026-03-23 18:45:38 +00:00
d1110eca38
fix: sanitize invalid map timestamps 2026-03-23 13:43:37 -05:00
c9e5ece185
fix: guard frontend theme storage access 2026-03-23 13:42:36 -05:00
d2fd0d181f
fix: harden frontend browser compatibility 2026-03-23 13:41:16 -05:00
CI
6e47d3b15c chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1774286951-e048be1 [skip ci] 2026-03-23 17:30:40 +00:00
e048be18d1
fix: harden frontend hook lifecycle cleanup 2026-03-23 12:28:54 -05:00
CI
0b7b421c52 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1774219967-08880b1 [skip ci] 2026-03-22 22:54:21 +00:00
08880b1fcb
Fix CI: switch Docker cache from registry to inline
Registry cache export was failing with 500 errors from the container
registry. Inline cache embeds metadata in the image itself, avoiding
the separate cache manifest upload.
2026-03-22 17:52:30 -05:00
d234c313ca
fix: harden mobile channel numeric params 2026-03-22 17:36:09 -05:00
35962c195b
fix: guard device cache refresh when stopped 2026-03-22 17:31:54 -05:00
CI
59aee0416e chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1774218063-21d28af [skip ci] 2026-03-22 22:21:43 +00:00
21d28afe8e
refactor: reduce map live complexity 2026-03-22 17:20:47 -05:00
CI
fba78766c8 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1774217823-f840e8f [skip ci] 2026-03-22 22:17:42 +00:00
f840e8fd34
fix: guard APRS send_message when disconnected 2026-03-22 17:16:44 -05:00
CI
29da875a00 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1774217679-4d45c83 [skip ci] 2026-03-22 22:15:22 +00:00
4d45c8351a
fix: guard pubsub APIs when not running 2026-03-22 17:14:24 -05:00
CI
1e98a71431 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1774217556-7c0861f [skip ci] 2026-03-22 22:13:16 +00:00
7c0861f216
fix: replace duplicate spatial registrations 2026-03-22 17:12:20 -05:00
CI
f1c68fbcfc chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1774217363-1631352 [skip ci] 2026-03-22 22:10:10 +00:00
1631352786
fix: guard connection monitor stats lookup 2026-03-22 17:09:07 -05:00
CI
37c5932f96 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1774215459-22ccec7 [skip ci] 2026-03-22 21:38:12 +00:00
22ccec7d06
Add hover tooltips to weather charts showing values at cursor position 2026-03-22 16:37:24 -05:00
CI
8333ee3219 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1774215287-4847def [skip ci] 2026-03-22 21:35:33 +00:00
4847def0d8
Add referrer meta tag to fix OSM tile 403 errors
OSM tile servers require a Referer header. Cloudflare appears to be
stripping the Referrer-Policy HTTP header, so add a meta tag that
the browser will always respect.
2026-03-22 16:34:32 -05:00
CI
95aedacf53 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1774214879-a9cf2d3 [skip ci] 2026-03-22 21:28:43 +00:00
a9cf2d3eb8
Add logging to map location determination for debugging 2026-03-22 16:27:43 -05:00
CI
cbbe5f7720 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1774214293-c769d89 [skip ci] 2026-03-22 21:18:56 +00:00
c769d89264
fix: stabilize packet broadcast tests 2026-03-22 16:17:55 -05:00
CI
ff81984a83 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1774213748-139568c [skip ci] 2026-03-22 21:09:55 +00:00
139568cd05
Log Cloudflare geolocation headers on each request 2026-03-22 16:08:52 -05:00
6988116a42
Fix Cloudflare IP geolocation not reaching LiveView on page load
The IPGeolocation plug was setting session data, but the live_session
wasn't forwarding it to the LiveView mount. Also removed the root-path
restriction so geolocation works on any initial page load.
2026-03-22 16:08:00 -05:00
CI
b45aae070b chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1774213340-8937c1f [skip ci] 2026-03-22 21:03:06 +00:00
8937c1fb57
fix: handle APRS status DB ownership exits 2026-03-22 16:02:03 -05:00
CI
26e86ddba8 chore: update aprs.me image to git.mcintire.me/graham/aprs.me:main-1774210808-0d4314b [skip ci] 2026-03-22 20:20:49 +00:00
0d4314b880
Fix object positioning to use object name instead of origin callsign
Objects and items were being displayed at the origin station's location
instead of their actual coordinates because the broadcast used the
sender (origin callsign) as the identifier instead of object_name/item_name.

For example, object CALGRY sent by VE6RWB-15 was appearing at VE6RWB-15's
location instead of CALGRY's actual coordinates.

Changes:
- Modified broadcast_single_packet to use object_name for objects
  and item_name for items as the identifier instead of sender
- Added tests verifying objects and items broadcast with correct identifier
- Objects/items now display at their specified coordinates, not origin station

Fixes the positioning bug where objects appeared at sender location.
2026-03-22 15:19:52 -05:00