Skip to content

Make the adsb.lol relay opt-in and declare its world - #12

Merged
jehanazad merged 1 commit into
mainfrom
feat/real-adsb-opt-in
Aug 27, 2026
Merged

jehanazad merged 1 commit into
mainfrom
feat/real-adsb-opt-in

Conversation

@jehanazad

Copy link
Copy Markdown
Contributor

Summary

Metro config alone (--metro/--metros + a validation URL) used to switch on relaying real adsb.lol traffic into the server, over the same footprint the synthetic fleet flies in. Each relayed aircraft was a decoy the server's claiming stage could bind a synthetic node's echo to on a delay/Doppler coincidence — a plane icon at a position no radar in either world measured (measured live 2026-08-27: 35% of synthetic-node single-claim icons were such ghosts). The relay is now explicit opt-in, and when on, its pushes declare which world they belong to.

Changes

  • New --real-adsb flag (default off) gates _push_real_adsb; metro config alone no longer implies it. A log line notes the relay is disabled when metro config is present without the flag.
  • Push bodies now carry source: "real" (extracted as build_real_adsb_body), so the server tags the cache entries and its claiming world-gate refuses cross-world binds even when the relay is on (retina-server companion PR). The fleet's own broadcast stays untagged and defaults to the simulated world server-side.
  • retina-server's fleet-entrypoint.sh gains a FLEET_REAL_ADSB passthrough in the companion PR; nothing needs setting to keep the relay off.

Test coverage

  • TestBuildRealAdsbBody covers the source tag and body shape. Suite green (167 passed); pre-commit gate green.
  • The main_async wiring condition itself is untested (task-assembly code with no harness) — verified by reading and by the entrypoint default.

Review notes

  • Default-off is a behavior change: any environment that wanted the "realistic mix" must now set FLEET_REAL_ADSB=true (safe once the server-side world gate is deployed). No compose file sets it, so all environments stop injecting on the next fleet rebuild.

🤖 Generated with Claude Code

Metro config alone used to switch on the relay of real adsb.lol traffic
into the server, over the same footprint the synthetic fleet flies in.
Each relayed aircraft was a decoy the server's claiming stage could bind
a synthetic node's echo to on a delay/Doppler coincidence — a plane icon
at a position no radar in either world measured (measured live
2026-08-27: 35% of synthetic-node single-claim icons were such ghosts).

The relay now runs only with --real-adsb, and its push body declares
source=real so the server stores the world on each cache entry and
claiming refuses cross-world binds even when the relay is on.  The
fleet's own broadcast stays untagged and defaults to the simulated
world server-side.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@jehanazad
jehanazad merged commit 754cca1 into main Aug 27, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant