Skip to content

fix(alerts): cap predictive AGL look-ahead at 120s#49

Merged
ifnull merged 1 commit into
mainfrom
fix/agl-horizon
Jun 20, 2026
Merged

fix(alerts): cap predictive AGL look-ahead at 120s#49
ifnull merged 1 commit into
mainfrom
fix/agl-horizon

Conversation

@ifnull

@ifnull ifnull commented Jun 20, 2026

Copy link
Copy Markdown
Owner

The inbound AGL gate (max_alt_agl_ft + max_closest_approach_nm) projected the track's altitude over the full ETA to closest approach. That extrapolation is a straight line — current AGL + vertical_rate * time — so over a multi-minute ETA a routine descent rate drove the projected altitude far below the threshold while the aircraft was still high and tens of nm out. A descending Global Express at ~3000 ft, 20+ nm away, tripped a 1000 ft AGL drone-conflict rule ~6 min early.

Cap the look-ahead at 120s: keep the "fire before it dips into drone airspace" early-warning, but only when the track will actually be low soon (~6 nm), not on the first sign of any descent far out.

Also surface vertical_rate_fpm in the alert info attributes so the per-rule binary_sensor shows the rate that drove a predictive firing — it was previously invisible, leaving no way to see why the gate tripped.

The inbound AGL gate (max_alt_agl_ft + max_closest_approach_nm) projected the
track's altitude over the *full* ETA to closest approach. That extrapolation is a
straight line — current AGL + vertical_rate * time — so over a multi-minute ETA a
routine descent rate drove the projected altitude far below the threshold while
the aircraft was still high and tens of nm out. A descending Global Express at
~3000 ft, 20+ nm away, tripped a 1000 ft AGL drone-conflict rule ~6 min early.

Cap the look-ahead at 120s: keep the "fire before it dips into drone airspace"
early-warning, but only when the track will actually be low soon (~6 nm), not on
the first sign of any descent far out.

Also surface vertical_rate_fpm in the alert `info` attributes so the per-rule
binary_sensor shows the rate that drove a predictive firing — it was previously
invisible, leaving no way to see why the gate tripped.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@ifnull
ifnull merged commit 9b11699 into main Jun 20, 2026
3 checks passed
@ifnull
ifnull deleted the fix/agl-horizon branch June 26, 2026 03:34
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