From 793324431f58bc168ba61f9585a5a1ae384d2325 Mon Sep 17 00:00:00 2001 From: Jehan Azad Date: Sun, 13 Sep 2026 19:02:57 +0000 Subject: [PATCH] Pin retina-simulation to the merged live-ADS-B feed sanity (c62f6e4) retina-simulation#15: ground rows retire the live aircraft on the spot, an altitude that jumps >1 km from the coasted one is held off unless a self-consistent run persists for a minute, rows older than the stale window are ignored, and expiry is keyed on the fix's age rather than the last poll that echoed it. docs/simulation.md reworded to match. Co-Authored-By: Claude Fable 5.1 --- docs/simulation.md | 11 ++++++++--- libs/retina-simulation | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/docs/simulation.md b/docs/simulation.md index 23ca8399..d31c1d32 100644 --- a/docs/simulation.md +++ b/docs/simulation.md @@ -145,9 +145,14 @@ orchestrator polls the feed's `/v2/point/{lat}/{lon}/{radius_nm}` for the (`SimulationWorld.ingest_live_aircraft`). Each real aircraft becomes a `live-` world aircraft flying its reported position, altitude, ground speed, track and vertical rate — extrapolated from the fix's capture time, -dead-reckoned between polls, dropped 60 s after the feed last reported it. -The synthetic nodes echo it like any other aircraft (delay/Doppler from its -real kinematics), so the fleet flies real traffic. +dead-reckoned between polls, dropped 60 s after its last fix (not after the +feed last echoed a stale row for it), and retired on the spot when the feed +reports it on the ground. The feed is not trusted blindly: a row whose fix is +already older than that window is ignored, and an altitude that jumps more +than 1 km from the coasted one is held off unless it persists, self-consistently, +for a minute (adsb.retina.fm has been seen serving another aircraft's cruise +altitude in a low GA row). The synthetic nodes echo it like any other aircraft +(delay/Doppler from its real kinematics), so the fleet flies real traffic. The feed owns these aircraft: no waypoints, no separation slowing, no lifetime, and they never count toward `min_aircraft` / `max_aircraft` — diff --git a/libs/retina-simulation b/libs/retina-simulation index 6ffb6781..c62f6e46 160000 --- a/libs/retina-simulation +++ b/libs/retina-simulation @@ -1 +1 @@ -Subproject commit 6ffb6781cae1c3fbde3972faca1c7d2d24ff6d2f +Subproject commit c62f6e46d8a757b95e2b7496900b3aa5093b062d