Files
flightplanner/crates/core
Alexandre 481ac241a8 feat(routing): RAD-forbidden-segment avoidance + stall-tolerant repair
- Graph gains build_avoiding(): drop segments whose endpoint ident or
  airway is in an avoid set. plan_route_conn_avoiding /
  plan_route_best_avoiding thread it through (also from SID/STAR conns).
- New PROF204 repair: parse "TRAFFIC VIA <pts> IS ON FORBIDDEN ROUTE",
  exclude the cited enroute points (never airports), re-plan around them.
  Runs first (a hard "cannot use" beats splice/level moves) and the avoid
  set accumulates across iterations. Other re-plans are now avoid-aware.
- Repair loop tolerates MAX_STALL non-improving steps before reverting, so
  it can cross a valley where excluding one forbidden point forces a
  temporarily worse route en route to a fix. best-so-far still guards the
  result: this can only find an equal-or-better route, never a worse one.

LSZH-LFBZ: 13 -> 2 errors (FRA-border problem gone; remainder is one
Annex-2B-forbidden Swiss departure segment needing real SID modelling).
LFRS-LFST / LFRN-LFMN / LSGG-LFPO still pass, 0 iterations. 49 tests green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-21 12:38:29 +02:00
..