Skip to content

Commit e55e0ac

Browse files
committed
docs: complete 3.5.0 release notes
1 parent df1ef53 commit e55e0ac

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
2424
and frame-by-frame coordinate agreement for v2.21.1, released v3.4.0, and
2525
v3.5.0 in addition to throughput.
2626

27+
### Changed
28+
29+
- `crc_valid` is now `None` when an address-parity message cannot be checked
30+
independently. It remains `True` or `False` for frames whose parity can be
31+
validated without assuming the address derived from that same parity.
32+
- `PipeDecoder` uses each message's source timestamp for state validity while
33+
retaining a monotonic high-water mark for eviction. Reordered capture data
34+
therefore cannot revive expired observations or prematurely evict newer
35+
state.
36+
- Plausibility and position validation are isolated in a dedicated internal
37+
module, keeping the streaming pipeline and its decision comments easier to
38+
follow without changing the public API.
39+
- Release publishing now runs only after the full test matrix succeeds, checks
40+
that the Git tag matches the package version, and smoke-tests the exact wheel
41+
artifact that will be uploaded.
42+
2743
### Fixed
2844

2945
- Surface references remain optional and are used only for BDS 0,6 surface
@@ -33,6 +49,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
3349
separate last-accepted airborne reference is maintained and TTL-evicted.
3450
- Bootstrap promotion, including `flush()`, initializes the latest accepted
3551
airborne reference while keeping surface-derived positions separate.
52+
- Globally decoded surface CPR positions now select the correct longitude zone
53+
across the antimeridian and other CPR zone boundaries.
54+
- Beast stream input resynchronizes after malformed or truncated frames instead
55+
of losing subsequent valid messages.
56+
- Beast receiver timestamps are back-projected from the current wall clock with
57+
rollover-safe receiver-tick deltas, avoiding dates near the Unix epoch and
58+
preserving correct timing across the 12 MHz counter rollover.
59+
- BDS inference compares headings using circular angular distance, so values
60+
around 0/360 degrees are scored correctly.
61+
- Trusted ICAO observations expire according to the configured state TTL and
62+
cannot be refreshed by older, reordered messages.
63+
- Integer messages outside the valid 56-bit and 112-bit Mode S frame ranges are
64+
rejected instead of being silently truncated or misclassified.
65+
- Network endpoint and surface-reference CLI arguments are validated before a
66+
stream starts, and network sources are closed deterministically on normal
67+
exit, errors, and interruption.
68+
- The live terminal UI synchronizes access to shared aircraft state, preventing
69+
concurrent decoder and renderer updates from racing.
3670

3771
## [3.4.0] — 2026-07-13
3872

0 commit comments

Comments
 (0)