Commit graph

1632 commits

Author SHA1 Message Date
7bf0eecfbe
chore: remove stale dialyzer ignores and fix CI PLT caching
All checks were successful
Elixir CI / Build and test (push) Successful in 1m21s
Elixir CI / Dialyzer (push) Successful in 5m44s
Elixir CI / Build and Push Docker Image (push) Successful in 27s
- Remove 5 unnecessary dialyzer ignore entries that no longer match warnings
- Narrow CI dialyzer cache from entire _build to PLT files only
- Add OTP/Elixir versions to cache key to prevent stale PLT on version bumps
- Add restore-keys fallback to GitHub Actions dialyzer cache
2026-07-27 16:58:12 -05:00
14d84bef01
switch from setup-beam to pre-built elixir-base container image
Some checks failed
Elixir CI / Dialyzer (push) Failing after 20s
Elixir CI / Build and test (push) Successful in 1m14s
Elixir CI / Build and Push Docker Image (push) Has been skipped
2026-07-27 14:33:35 -05:00
08b9720e3c
update vendor
All checks were successful
Elixir CI / Build and test (push) Successful in 1m30s
Elixir CI / Dialyzer (push) Successful in 7m47s
Elixir CI / Build and Push Docker Image (push) Successful in 2m20s
2026-07-27 14:20:22 -05:00
a9827f245e
fix: resolve all dialyzer warnings — unmatched returns, pattern mismatches, and Mix.Task PLT entries
Some checks failed
Elixir CI / Build and test (push) Successful in 1m33s
Elixir CI / Dialyzer (push) Has been cancelled
Elixir CI / Build and Push Docker Image (push) Has been cancelled
2026-07-27 14:18:42 -05:00
20c3eab1c1
chore: update vendor/aprs submodule (credo fixes)
Some checks failed
Elixir CI / Build and test (push) Successful in 1m31s
Elixir CI / Dialyzer (push) Failing after 5m22s
Elixir CI / Build and Push Docker Image (push) Has been skipped
Fixes 15 credo issues in vendor/aprs: trailing whitespace and long lines.
2026-07-27 13:42:23 -05:00
0b8225e402
fix: drop migration-created partitions in partition_manager test setup
Some checks failed
Elixir CI / Build and test (push) Successful in 3m3s
Elixir CI / Dialyzer (push) Failing after 5m30s
Elixir CI / Build and Push Docker Image (push) Has been skipped
The migration pre-creates partitions for today..today+2 at test DB setup
time. When ensure_partitions_exist/0 ran, it found them already existing
and returned {:ok, []}, causing the test assertion to fail.

Drop the pre-created partitions in the setup block so ensure_partitions_exist
has actual work to do and returns a non-empty list.
2026-07-27 13:33:28 -05:00
0742308d10
fix: read PGHOST env var in test config for CI postgres hostname
Some checks failed
Elixir CI / Build and test (push) Failing after 2m53s
Elixir CI / Dialyzer (push) Failing after 5m27s
Elixir CI / Build and Push Docker Image (push) Has been skipped
CI sets PGHOST=postgres for the Docker service network, but test.exs
hardcoded hostname to localhost, causing connection refused errors.
2026-07-27 13:19:59 -05:00
fe79561380
add styler in test
Some checks failed
Elixir CI / Build and test (push) Failing after 2m30s
Elixir CI / Dialyzer (push) Failing after 5m39s
Elixir CI / Build and Push Docker Image (push) Has been skipped
2026-07-27 13:13:10 -05:00
a52cb4cbd6
chore: retrigger CI after forgejo runner switched to node:24-trixie
Some checks failed
Elixir CI / Build and test (push) Failing after 2m28s
Elixir CI / Dialyzer (push) Failing after 6m32s
Elixir CI / Build and Push Docker Image (push) Has been skipped
2026-07-27 13:09:47 -05:00
a005780aff
chore: update aprs submodule pointer
Some checks failed
Elixir CI / Dialyzer (push) Failing after 13s
Elixir CI / Build and test (push) Failing after 26s
Elixir CI / Build and Push Docker Image (push) Has been skipped
2026-07-27 13:04:57 -05:00
a0c6b5a3b5
fix: use runs-on: ubuntu-24.04 label so forgejo-runner derives correct ImageOS
Some checks failed
Elixir CI / Dialyzer (push) Has been cancelled
Elixir CI / Build and test (push) Has been cancelled
Elixir CI / Build and Push Docker Image (push) Has been cancelled
forgejo's act runner unconditionally overwrites the ImageOS env var based on
the runs-on: platform label after job env is merged (run_context.go withGithubEnv),
hardcoding ubuntu-latest to ImageOS=ubuntu20 regardless of the actual container
image or any manual env override. Since ubuntu-20.04 has no stable OTP 29.0
builds, setup-beam failed even with an explicit ImageOS env var (silently
clobbered). Using the ubuntu-24.04 runner label (already registered to the
same node:24-bookworm image) makes the runner correctly derive ImageOS=ubuntu24,
which has real stable OTP 29.0 builds. Switched version-type back to strict
since we're now targeting a platform with the exact pinned versions.
2026-07-27 13:04:43 -05:00
f69fdcad48
fix: use Docker network for postgres, set PGHOST to avoid port conflicts
Some checks failed
Elixir CI / Dialyzer (push) Failing after 8s
Elixir CI / Build and test (push) Failing after 19s
Elixir CI / Build and Push Docker Image (push) Has been skipped
2026-07-27 12:57:27 -05:00
f171dac36e
chore: update aprs submodule pointer
Some checks failed
Elixir CI / Build and test (push) Failing after 2s
Elixir CI / Dialyzer (push) Failing after 8s
Elixir CI / Build and Push Docker Image (push) Has been skipped
2026-07-27 12:32:43 -05:00
61b131c2c6
fix: set ImageOS=ubuntu24 for OTP 29.0 build availability
Some checks failed
Elixir CI / Dialyzer (push) Failing after 8s
Elixir CI / Build and test (push) Failing after 20s
Elixir CI / Build and Push Docker Image (push) Has been skipped
2026-07-27 12:32:01 -05:00
fd6c8de938
chore: update aprs submodule pointer
Some checks failed
Elixir CI / Dialyzer (push) Failing after 8s
Elixir CI / Build and test (push) Failing after 20s
Elixir CI / Build and Push Docker Image (push) Has been skipped
2026-07-27 12:25:38 -05:00
514a4b5686
fix: use fully-qualified URL for setup-beam (bare ref resolves to github.com with DEFAULT_ACTIONS_URL set)
Some checks failed
Elixir CI / Dialyzer (push) Failing after 10s
Elixir CI / Build and test (push) Failing after 21s
Elixir CI / Build and Push Docker Image (push) Has been skipped
2026-07-27 12:25:13 -05:00
240e11c235
chore: update aprs submodule pointer
Some checks failed
Elixir CI / Dialyzer (push) Failing after 2s
Elixir CI / Build and test (push) Failing after 14s
Elixir CI / Build and Push Docker Image (push) Has been skipped
2026-07-27 12:14:29 -05:00
839a090b2d
fix: use bare same-instance ref for setup-beam, Forgejo checkout mirror
Some checks failed
Elixir CI / Dialyzer (push) Failing after 2s
Elixir CI / Build and test (push) Failing after 14s
Elixir CI / Build and Push Docker Image (push) Has been skipped
2026-07-27 12:11:24 -05:00
3738b8fe57
fix: use version-type loose for OTP compatibility
Some checks failed
Elixir CI / Dialyzer (push) Failing after 10s
Elixir CI / Build and test (push) Failing after 21s
Elixir CI / Build and Push Docker Image (push) Has been skipped
2026-07-27 11:10:51 -05:00
3d319a669d
chore: final CI test with clean mirror
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
2026-07-27 11:08:28 -05:00
e132ed0c61
fix: use .git suffix on setup-beam URL for git clone compatibility
Some checks failed
Elixir CI / Build and test (push) Failing after 20s
Elixir CI / Dialyzer (push) Failing after 7s
Elixir CI / Build and Push Docker Image (push) Has been skipped
2026-07-27 11:05:55 -05:00
55b5d306b9
chore: final CI test
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
2026-07-27 11:01:58 -05:00
b6fe8e66f8
fix: use internal forgejo hostname for setup-beam
Some checks failed
Elixir CI / Dialyzer (push) Failing after 2s
Elixir CI / Build and test (push) Failing after 13s
Elixir CI / Build and Push Docker Image (push) Has been skipped
2026-07-27 10:49:53 -05:00
5c0fbc1b7f
chore: retrigger CI
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
2026-07-27 10:48:08 -05:00
154f537d88
chore: retrigger CI
Some checks failed
Elixir CI / Dialyzer (push) Failing after 2s
Elixir CI / Build and test (push) Failing after 13s
Elixir CI / Build and Push Docker Image (push) Has been skipped
2026-07-27 10:45:23 -05:00
96dd1d96ba
chore: retrigger CI after setup-beam fix
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
2026-07-27 10:44:13 -05:00
938eef5823
chore: retrigger CI
Some checks failed
Elixir CI / Dialyzer (push) Failing after 2s
Elixir CI / Build and test (push) Failing after 13s
Elixir CI / Build and Push Docker Image (push) Has been skipped
2026-07-27 10:38:28 -05:00
a4f7391d6f
chore: retrigger CI
Some checks failed
Elixir CI / Dialyzer (push) Failing after 3s
Elixir CI / Build and test (push) Failing after 13s
Elixir CI / Build and Push Docker Image (push) Has been skipped
2026-07-27 10:35:21 -05:00
c77a12a8e7
chore: trigger CI
Some checks failed
Elixir CI / Dialyzer (push) Failing after 2s
Elixir CI / Build and test (push) Failing after 14s
Elixir CI / Build and Push Docker Image (push) Has been skipped
2026-07-27 10:25:10 -05:00
960ec415fc
fix: use local setup-beam mirror and bare action refs
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
2026-07-27 10:19:47 -05:00
f424180308
fix: correct submodule URL and CI git config for Forgejo port 2222
Some checks failed
Elixir CI / Dialyzer (push) Failing after 7s
Elixir CI / Build and test (push) Failing after 19s
Elixir CI / Build and Push Docker Image (push) Has been skipped
2026-07-27 08:54:36 -05:00
ff356d58ba
fix: configure git to use HTTPS token auth for submodules
Some checks failed
Elixir CI / Dialyzer (push) Failing after 6s
Elixir CI / Build and test (push) Failing after 17s
Elixir CI / Build and Push Docker Image (push) Has been skipped
2026-07-27 08:33:44 -05:00
e1a1925399
fix: use ubuntu-latest runner instead of docker container
Some checks failed
Elixir CI / Dialyzer (push) Failing after 5s
Elixir CI / Build and test (push) Failing after 34s
Elixir CI / Build and Push Docker Image (push) Has been skipped
2026-07-27 08:31:57 -05:00
25b5738de2
fix: switch CI to ubuntu:noble for setup-beam compatibility
Some checks failed
Elixir CI / Build and test (push) Failing after 1m11s
Elixir CI / Dialyzer (push) Failing after 1m12s
Elixir CI / Build and Push Docker Image (push) Has been skipped
2026-07-27 08:28:22 -05:00
716e8456b1
chore: update vendor/aprs submodule
Some checks failed
Elixir CI / Dialyzer (push) Failing after 57s
Elixir CI / Build and test (push) Failing after 1m9s
Elixir CI / Build and Push Docker Image (push) Has been skipped
2026-07-27 08:25:33 -05:00
c1b19fe662
fix: switch CI to debian:trixie-slim with setup-beam, add build step
Some checks failed
Elixir CI / Build and test (push) Failing after 1m17s
Elixir CI / Dialyzer (push) Failing after 57s
Elixir CI / Build and Push Docker Image (push) Has been skipped
2026-07-27 08:18:56 -05:00
91550bcdb1
fix: update GitHub CI to elixir 1.20 / erlang 29
Some checks are pending
Build and Push / Build and Push Docker Image (push) Waiting to run
2026-07-27 07:56:39 -05:00
541ce93051
fix: update vendor/aprs submodule for erlang 29 image
Some checks are pending
Build and Push / Build and Push Docker Image (push) Waiting to run
2026-07-27 07:56:20 -05:00
dbd131a4da
fix: update vendor/aprs submodule for runner label fix
Some checks are pending
Build and Push / Build and Push Docker Image (push) Waiting to run
2026-07-27 07:52:24 -05:00
d22079a7ad
fix: use docker runner label for Forgejo CI
Some checks are pending
Build and Push / Build and Push Docker Image (push) Waiting to run
2026-07-27 07:49:52 -05:00
ea28acbc51
fix: use docker build/push directly instead of kaniko
All checks were successful
Build and Push / Build and Push Docker Image (push) Successful in 2m18s
2026-07-26 19:01:55 -05:00
a7918f95f0
fix: drop explicit --dockerfile flag, let kaniko use default relative to context
Some checks failed
Build and Push / Build and Push Docker Image (push) Failing after 18s
2026-07-26 19:00:18 -05:00
a1525037ae
fix: install docker CLI and use kaniko executor image directly
Some checks failed
Build and Push / Build and Push Docker Image (push) Failing after 21s
2026-07-26 18:59:09 -05:00
304053f14b
fix: make CI standalone - use kaniko binary directly, no external action dependency
Some checks failed
Build and Push / Build and Push Docker Image (push) Failing after 3s
2026-07-26 18:57:10 -05:00
72e3e91d68
fix: use full URL for kaniko-build action to point to git.mcintire.me
Some checks failed
Build and Push / Build and Push Docker Image (push) Failing after 4s
2026-07-26 18:53:56 -05:00
cc88fd4a10
fix: dialyzer errors, pubsub failure handling, cache TTL, stream trim perf, and clearer warnings
Some checks failed
Build and Push / Build and Push Docker Image (push) Failing after 2s
2026-07-26 16:19:42 -05:00
0e1161de39
reliability: unbounded scan audit complete, handoff finalized
Some checks failed
Build and Push / Build and Push Docker Image (push) Failing after 2s
- Zero unbounded scans found. Every query has hard LIMIT, deterministic
  ORDER BY, and time-bounded filters
- Design strengths: QueryBuilder discipline, GiST indexes on all spatial
  queries, zoom-capped cumulative limits in historical loader
- 6 low-severity edges documented (missing explicit LIMIT, ILIKE index,
  intermediate CTE limits)
- Handoff: all remaining reliability items now done
2026-07-26 15:34:51 -05:00
2b64beac34
reliability: N+1 query audit complete, handoff updated
Some checks failed
Build and Push / Build and Push Docker Image (push) Failing after 2s
- Audit found no high-severity N+1 patterns. Cache layers and batch queries
  already eliminate classic patterns in hot paths
- Two medium-priority edge cases documented: InfoLive double-query per update,
  popup weather fallback cache key mismatch
- Handoff: marked reliability #4 as done
2026-07-26 15:32:51 -05:00
e1da1716b1
refactor: split MapLive.Index into focused modules
Some checks failed
Build and Push / Build and Push Docker Image (push) Failing after 2s
- State (177 lines): mount assigns, defaults, slideover, connection status
- Events (540 lines): 22 handle_event handlers, rate limiting, URL helpers
- Subscriptions (122 lines): PubSub setup, spatial registration, cleanup
- BoundsUpdater (172 lines): bounds pipeline, validation, debouncing
- index.ex: 2,062 -> 1,202 lines (42% reduction)
- Credo: initial_historical_completed, bounds_update_timer added to ignored_assigns
  (consumed by extracted modules, invisible to credo)
- All 361 map_live tests pass across multiple random seeds
- Handoff: marked maintainability #1 as done
2026-07-26 15:30:08 -05:00
eb389af64b
reliability: bound ingress buffers, payload limits, overflow telemetry
Some checks failed
Build and Push / Build and Push Docker Image (push) Failing after 2s
- PacketProducer: 15s periodic buffer depth telemetry, overflow events
- MobileChannel: 500-packet ring buffer with overflow drops, payload validation
  (query max 20 chars, callsign max 20 chars, results capped at 200,
   bounds area max 1000 sq deg), rejection telemetry
- PromEx: buffer depth/max/overflow metrics, mobile overlay, payload rejected
- Tests: 2491 passed, 0 failures
- Handoff document: marked reliability #1 and #2 as done
2026-07-26 15:10:54 -05:00