fix(opensky): cool down before reading a 429, and test the six caps

A 429 now starts the credit cooldown from its headers and drops the body
unread, so a stalled or oversized 429 cannot skip the governor; an oversized
snapshot is not retried. A 429 without retry-after now waits the intended
2 minutes (headers.get() returns null, which Number() read as 0 s). Adds
oversized-stream tests for OpenSky, adsb.lol, CelesTrak and TomTom that fail
on main, names the six reads in the changelog, and corrects the docs on
what was already bounded.
This commit is contained in:
Sameh Khamis committed 2026-10-15 13:08:37 -07:00
1 parent 1bb8643a28
commit a02f729191
6 files changed
+292 -26

No files matched your search

+6 -3
View File
@@ -147,9 +147,12 @@
## [Unreleased]
- Bound the remaining upstream body reads (FIRMS, CelesTrak, adsb.lol,
TomTom, OpenSky, adsbdb) with streaming size caps and shared deadlines; the
adsb.lol military poll gains a deadline of its own.
- Bound six upstream body reads (FIRMS CSV, CelesTrak TLE groups, adsb.lol
`/v2/mil`, TomTom flow tiles, OpenSky `states/all` and adsbdb lookups) with
streaming size caps that cancel the body at the cap or the route's deadline;
the adsb.lol military poll gains a deadline of its own. An oversized OpenSky
snapshot is not retried, and an OpenSky 429 starts its cooldown before the
body is read.
- Keep later satellites when a TLE catalog entry is missing an orbital line.
The parser skips the incomplete set and resumes at the next complete named