From 4e92bbfc9f74524d28f2324e5a3cbbc910bb4c2f Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Sun, 26 Jul 2026 14:59:55 -0500 Subject: [PATCH] docs: supervision tree ownership map, naming issues documented - Mapped 18 top-level children + 2 nested supervisors in application.ex - Ownership: Is->PacketPipelineSupervisor (ingestion), PartitionManager (retention), SpatialPubSub (broadcast), CleanupScheduler+PacketCleanupWorker (bad-packet cleanup) - Removed Exq comment fossil from application.ex:72 - Known naming issues: PacketCleanupWorker only handles bad_packets, PostgresNotifier scope narrower than name, PacketConsumer is 776-line multi-concern - Handoff document: marked maintainability #2 as done --- docs/refactor-implementation-handoff.md | 4 ++-- lib/aprsme/application.ex | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/refactor-implementation-handoff.md b/docs/refactor-implementation-handoff.md index c98fbfc..48bf008 100644 --- a/docs/refactor-implementation-handoff.md +++ b/docs/refactor-implementation-handoff.md @@ -132,8 +132,8 @@ MIX_ENV=prod mix assets.deploy 1. Split `AprsmeWeb.MapLive.Index` into focused state, event, subscription, and rendering modules. Preserve LiveView behavior with integration tests first. -2. Review the now-smaller supervision tree for naming and ownership consistency; - document which process owns ingestion, retention, broadcast, and cleanup. +2. ~~Review the now-smaller supervision tree for naming and ownership consistency; + document which process owns ingestion, retention, broadcast, and cleanup.~~ **DONE** — supervision tree mapped (18 top-level children + 2 nested supervisors). Ownership documented: `Is` → `PacketPipelineSupervisor` (ingestion), `PartitionManager` (retention), `SpatialPubSub` (broadcast), `CleanupScheduler` + `PacketCleanupWorker` (bad-packet cleanup). Known naming issues documented but not changed: `PacketCleanupWorker` only handles bad_packets (not packets), `PostgresNotifier` is narrower than name implies, `PacketConsumer` is 776 lines of multi-concern logic, `Workers` sub-namespace has one module. 3. ~~Continue deleting obsolete configuration keys, telemetry names, docs, mocks, and aliases uncovered by the removed modules.~~ **DONE** — removed stale `.dialyzer_ignore.exs` entry, orphaned `:initialize_replay_delay` config key, updated `CLAUDE.md` StreamingPacketsPubSub → SpatialPubSub reference. No stale telemetry/metric or mock references remain. 4. ~~Review callsign naming. Ingestion currently accepts safe APRS transport diff --git a/lib/aprsme/application.ex b/lib/aprsme/application.ex index f6cd877..95f28cd 100644 --- a/lib/aprsme/application.ex +++ b/lib/aprsme/application.ex @@ -69,7 +69,6 @@ defmodule Aprsme.Application do children = maybe_add_cluster_components(children) children = maybe_add_is_supervisor(children, Application.get_env(:aprsme, :env)) - # Exq is now started automatically via config, not in supervision tree # See https://hexdocs.pm/elixir/Supervisor.html # for other strategies and supported options