Stop pushing dark aircraft as ADS-B - #11
Merged
Merged
Conversation
_push_adsb_live substituted the simulator object id for a missing transponder hex, so every dark aircraft got a fake live transponder on the server: dark solves claimed against it, keyed mn-adsb-obj-*, and the server's dark lane (mn-dark-* store, violet icons, the claiming path) was permanently empty — measured live 2026-08-26 as 15008/15008 multinode samples ADS-B-assisted with zero dark tracks. The push is the simulated ADS-B broadcast; a dark target emits none. Extract the loop body as build_adsb_push_payload (the build_ground_truth_payload precedent) that keeps transponder aircraft only. Dark aircraft still reach the server through the ground-truth push, where the object id is the intended key. The server side hardens independently (transponder-hex gate on /api/sim/adsb/push and on the solver keying rule), so both sides hold regardless of the other's version. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
_push_adsb_livesubstituted the simulator object id for a missing transponder hex, so every dark aircraft got a fake live transponder on the server. Dark solves then claimed against it, keyedmn-adsb-obj-*, and the server's dark lane (mn-dark-* store, violet icons, the entire claiming path) was permanently empty — measured live on the test droplet 2026-08-26 as 15008/15008 multinode samplesadsb_assisted: truewith zero dark tracks.Changes
build_adsb_push_payload(mirroringbuild_ground_truth_payload), which drops aircraft with noadsb_hexinstead of substituting the object id. Dark aircraft still reach the server through the ground-truth push, where the object id is the intended key.Test coverage
tests/test_adsb_push_payload.py: transponder aircraft pushed under their hex with the schema intact, dark aircraft absent entirely, and a mixed fleet keeps only transponder entries. Ran the new tests plustest_ground_truth_push.py(7 passed); ruff check/format clean.Review notes
/api/sim/adsb/pushand on the solver keying rule, Tower-Finderfix/dark-adsb-lane), so both sides hold regardless of the other's version.state.adsb_aircraft(they were never supposed to be there), so they can no longer appear in the ADS-B single-node lane either.🤖 Generated with Claude Code