Release Notes
These notes summarize release highlights. They are not a complete commit log.
For detailed asset-by-asset history, use the GitHub releases page:
0.4.6 - Streamlined Timeline Controls and Navigation
Added
- Added local
TL*/TL-andSTAT*/STAT-controls for showing or hiding the timeline and statistics areas.*means shown and-means hidden. - Added a right-side vertical elevator for each visible timeline. Drag the thumb or click the track to navigate the displayed future time window.
- Added
Page Up,Page Down,Home, andEndnavigation for the active timeline elevator. - Added optional
startupShowTimelineandstartupShowStatisticsconfig defaults for the first successful ALBCore startup.
Changed
- Reorganised the top button row into presentation, operational, and display groups, with clearer separators and stable button spacing.
- Added the visible
FULL/LEANcompute-mode control as a reserved future surface. It remains disabled in0.4.6, so ALB continues to run inFULLmode. - With the timeline hidden, ALB uses compact statistics-only or header-only presentation. Manual resizing is disabled in those compact views and normal timeline size is restored when the timeline is shown again.
- Improved LT order retention and tactical placement so normal estimate movement does not unnecessarily reshuffle the shared landing plan.
- Improved handling of contradictory route-distance evidence so it does not drive normal timing or sequencing until the route picture becomes credible.
Operational notes
TL,STAT, and the timeline elevator are local presentation controls only. They do not change aircraft state, sequencing, FMR authority, or peer data.- Use
Advance 1orResequencethrough the normal FMR workflow when the operational traffic situation genuinely requires a sequence change.
0.4.5
This release publishes the latest 0.4.x line through August 24, 2026.
Release position
0.4.5is the current public documentation baseline for the mature0.4.xline.- No new normal operator workflow was introduced on top of the late
0.4.4behavior summarized below.
0.4.4
This release follows 0.4.1A.
Changed
- Stabilized LT order retention and tactical landing placement so late entrants, startup sequencing, and protected traffic preserve a more coherent runway plan.
- Restored feeder-style AR demand and stream overview from valid via timing without requiring LT-only landing products.
- Runway
EAT:LTGain/Lose display now reads against the current live landing estimate branch instead of relying on a stale scheduler-only comparison basis.
Fixed
- Prevented catastrophic route-distance contradictions from poisoning
ETA:ES,ETA:ALB,ELT-ES, orELT-ALB. - Corrected the stable
30'overview column so unavailable values show as aligned--%instead of temporary factual-count substitutions. - Refined tactical LT admission and manual-slot precedence so unresolved tactical traffic no longer steals protected manual authority prematurely.
0.4.1A
This hotfix follows 0.4.0.
Fixed
- Prevented implausible near-via route timing from cascading into the
ETA:ALB/ELT-ALBbranch.
Changed
- When route-derived via-fix timing close to the via-fix is physically implausible, ALB now refuses to let that bad near-via estimate drive the ALB landing branch.
- In those situations, ALB can fall back to the live ES branch or retain a still-trusted prior ALB branch until the timing evidence becomes credible again.
- Exiting-hold traffic that is still operationally pre-via keeps its intended hold-planning context instead of being treated like a normal free near-via transition.
0.4.0
This release promotes the validated 0.3.1W line to the 0.4 series after
the successful VtC run on August 3, 2026.
Release position
0.4.0is the stable promotion of the matured0.3.1Wfeature and recovery line.- The user-facing behavioral highlights of that promoted line are already
summarized below under
0.3.1W.
0.3.1W
This release follows the previous public 0.3.1T release and includes the
user-facing work that landed through the internal 0.3.1U and 0.3.1V
milestones.
Added
- Added first-entry sequencing gating so newly observed aircraft are not turned into canonical ALB sequence traffic before they have reached the normal admission conditions.
- Added the informational
EST UNSTpre-entry estimate indication for route-resolved aircraft that are still being held outside normal canonical sequencing.
Changed
- Reworked normal backend seqsync sender behavior so estimate-only
SET2updates can be bounded and coalesced while operationally important canonical transitions still go out immediately. Reload confignow reapplies the configured legacy default AR or scenario baseline to restored timelines instead of letting retained AR state come back undefined.- Suppressed false
No Fixstyle warning behavior for traffic that is still intentionally pre-entry and not yet admitted to normal sequencing. - Peer presence and route aging now distinguish backend freshness from scratchpad freshness more cleanly, so peer display and transport-specific authority stay aligned with the route that is actually still fresh.
Fixed
- Protected follower
HOLD_EATtimeline lookup more safely. - Hardened peer receive handling so a same-revision conflicting
SET2payload is rejected instead of being treated like a harmless duplicate.
Technical notes
- This step also advanced the staged recovery-programme transport contract and related runtime hardening in the development source tree.
0.3.1V (Source-only)
Added
- Added the first-entry sequencing gate for newly observed aircraft.
Changed
- Successful config reload now restores the configured legacy default AR or scenario baseline for retained timelines instead of leaving active AR state undefined.
Technical notes
- Internal recovery-programme and validation material also advanced in the source tree during this milestone.
0.3.1U (Source-only)
Fixed
- Protected follower
HOLD_EATtimeline lookup more safely.
0.3.1T
This release follows the previous public 0.3.1R release and includes the
user-facing work that landed after the internal 0.3.1S milestone.
Added
- Allowed
EAT:LTto assign landing slots to aircraft that have a usable landingELTeven when fuller route-timing products are not yet available.
Changed
- Completely reworked the EAT and Combi tag callback path around prepared read-only display snapshots instead of callback-time mutable assembly.
- ALB can now seal the
ELT-ALBbranch earlier when a validated route via-fix bypass provides good enough timing evidence. - Feeder gain/lose no longer shows a misleading
G00for traffic that is already operationally downstream of where that feeder indication is useful. - The new callback model improves tag-rendering consistency, safety, and hot-path responsiveness.
Technical notes
- This step included the typed-display and immutable-snapshot preparation work needed to support that callback-path redesign.
0.3.1S (Source-only)
Added
- Enabled backend A2A participation for eligible
VIA_PROXYALB instances using normal canonical ALB identities.
Changed
- Tightened backend fallback convergence so mixed backend or scratchpad groups can agree on peer state more cleanly when some peers are on fallback.
EAT:LTmanualResequenceis now a more deterministic FMR-owned landing re-entry from the liveELTboundary instead of a generic best-fit style placement.- AR gain/lose now follows the final authoritative EAT-versus-ETO basis more
consistently and honors configured
holdLeXStateinside the hold threshold. HOLD_EATwrite, restore, provenance, and per-aircraft dedup handling were hardened so repeated planned updates are preserved more safely.- Timeline count publication and legend aggregate consistency were corrected.
- Sequencing integrity is preserved more safely across suppressed
RDAstates.
0.3.1R
This release follows 0.3.1Q.
Added
- Added optional
glEatCombiDisplay.gainLooseEmptyTextconfig support for a trimmed placeholder when Gain/Lose is the selected Combi state but the actual Gain/Lose value is empty.
Changed
Reload configno longer re-opens the ALB window if it is currently closed.- Combi radar-tag output is now gated by active timeline destination coverage, so only aircraft whose destination belongs to a currently active ALB timeline can show Combi output.
- Route-based
directRoutingfallback now shows the actual current next fix instead of the following waypoint. - Corrected certain compact field labels, including the combined Combi and via-fix timing headings.
Fixed
- Prevented unrelated non-ALB traffic from showing configured empty Gain/Lose placeholders in Combi output.
Technical notes
openAutomaticallyremains the startup auto-open behavior. It is no longer reapplied during later config reloads.gainLooseEmptyTextis backward-compatible and optional. If omitted or blank, ALB keeps the older empty-string behavior for empty Gain/Lose cases.
0.3.1Q
This release is the next published step after 0.3.1N.
It includes the public-facing work developed through the internal 0.3.1O and
0.3.1P source milestones as well as the final 0.3.1Q transport and
continuity hardening.
Added
- Added airport-configurable WTC-aware
EAT:LTlanding spacing forL,M,H, andJ. - Added the
Expected LRlanding-rate forecast row belowPLR. - Added startup-only baseline keys for preferred startup policy and hold-write state:
eatModeOnStartupetaModeOnStartupholdEatWriteOnStartup- Added a local runtime hold-display control for the compact
glEatCombifield.
Changed
EAT:LTnow uses the larger of PLR spacing, minimum spacing behind the leader, and minimum space required in front of the follower while preserving the established canonical landing order.- Runtime
EAT,ETA, andHLWselections are preserved more cleanly acrossReload config. - Config reload is now transactional and also tries to preserve the current timeline zoom.
- Backend reconnects and mixed backend or scratchpad peer routing are hardened so collaboration continuity is safer through reconnect windows.
Fixed
- Hardened ALB close or teardown behavior around config reload and controller finalization.
- Improved AR debounce shutdown handling on ALB window close.
- Hardened cloud send timeout handling so failed setup, send, or receive paths fail safely.
Technical notes
- Mixed-peer reconnect continuity is automatic. Operators still use the normal FMR, seqsync, and config-reload controls.
Expected LRremains informational. It does not automatically change PLR, LT order, EAT, or PLT.
0.3.1P (Source-only)
Changed
- Made config reload transactional instead of publishing partial live state.
- Preserved active UI and intercom state more cleanly across successful reload.
Fixed
- Replaced the detached ALB window finalizer with a joinable controller worker.
- Fixed finalizer publication and closed-ordering races.
- Destroyed the ALB controller before plugin singleton and log teardown.
- Fixed ALB window AR debounce worker lifetime on close.
0.3.1O (Source-only) - WTC-aware EAT:LT spacing and Expected LR
WTC-aware EAT:LT spacing
- Added airport-configurable WTC-dependent landing spacing for
L,M,H, andJ. - Landing spacing now uses the largest of:
- PLR-derived spacing
- minimum spacing behind the leader
- minimum space required in front of the follower
- Added complete built-in default matrices, making config overrides optional.
- Missing or unknown WTC uses the configured airport fallback category, defaulting to
M. - Applied pair spacing consistently through normal sequencing, forced placement, deferred placement, FIFO gap-fill, protected-
FZ2endpoint checks, and comparison chains. - Preserved natural traffic gaps and the established canonical landing order.
Expected landing rate
- Added a demand-limited Expected LR forecast based on final canonical LT PLTs.
- The default forecast window is 30 minutes and may be configured per airport.
- Added an
Expected LRrow directly below PLR. - The row shows:
- expected hourly landing rate
- eligible aircraft count
- forecast window
- difference from PLR
- A result below PLR is informational and is not automatically shown as a warning.
- No smoothing, trend, or automatic PLR adjustment is applied.
Hardening
- Improved duplicate-callsign handling in the Expected LR calculation.
- Preserved candidate-specific spacing during LT gap-fill.
- Strengthened protected-
FZ2adjacent-pair checks. - Extended WTC-spacing and Expected LR diagnostics.
- Corrected gap-fill preview diagnostics to use the final assigned PLT.
Compatibility
- Existing configurations remain valid.
- WTC matrix overrides are optional.
- No
SET2,POL,PREF, scratchpad, backend, or cloud-schema change was required. - FMR remains authoritative for canonical sequence, EAT, and PLT.
- LT slot tolerance remains PLR-based.
Validation status
- Implementation, static review, and direct
ALBCore.dllbuild verification are complete. - Operational live or playback validation remains pending.
0.3.1N (Source-only)
This section summarizes the 0.3.1N change set from the development source
tree.
Added
- Added a local runtime control for the combined hold-display threshold and pre-threshold display mode used by
glEatCombi. - Added grouped display buttons for the compact
EATorPLTcombi selection and the hold-display selection. - Added
holdEatWriteOnStartupsoHLWcan start in a chosen local state on the initial config load.
Changed
eatModeOnStartupandetaModeOnStartupare now applied only during the initial config load instead of being reapplied on every config reload.- Startup
EATandETAmode strings now accept valid values case-insensitively and fall back independently toARandESif missing or invalid. - Runtime
EAT,ETA, andHLWselections are now preserved acrossReload config. - Hold-display runtime settings are seeded from config and reset on a successful config reload.
- The new hold-display button keeps hold-inside-threshold display fixed to countdown while making the pre-threshold display easier to adjust locally.
- Control-bar display buttons now use grouped styling, fixed-width labels, and more stable spacing so neighboring buttons do not shift.
Fixed
- Unsupported
holdGtXStatevalues are now normalized more safely toBlank. - Tooltip and window cleanup around the new hold-display controls is handled more safely during shutdown.
Technical notes
- This change set is mainly startup-config and local display/runtime cleanup.
- Shared sequencing logic, peer synchronization, and the normal ALB planning models are not intentionally changed by the new hold-display controls.
0.3.1M (Source-only)
Added
- Added a cleaner normal operator surface by hiding more legacy-visible control-bar items.
Changed
- Hid the visible
FPCcontrol-bar button while preserving underlyingFPCstate, protocol behavior, peer sync, and logging behavior. - Hid the visible
Scenariosmenu while preserving internal scenario config and apply logic for compatibility. - Moved
Peers(...)to appear immediately afterLayoutin the visible menu order.
Technical notes
- This step is mainly public UI cleanup rather than a change to ALB planning logic.
0.3.1L (Source-only)
Added
- Expanded cloud operational logging across ALB authority and policy flows.
Technical notes
- This step is mainly operational logging and internal traceability work.
0.3.1J (Source-only)
Added
- Added backend-authority timeout and timeout-now release handling for reduced-sync and horizon coverage-loss cases.
- Added throttled backend-health and auto-fallback diagnostics.
- Added clearer FMR recovery and backend owner-shadow diagnostics.
- Added alias telemetry for the
MODEL_HANDOFFperformance cause.
Changed
- Runway
Advance 1peer requests can now proceed without requiring local predecessor context. Advance 1direct local apply and runway peer-request routing are now handled more explicitly.- Natural resequence reset now clears committed-slot and LT gap latches more cleanly.
- Repeated same-fix
HOLDscratchpad assignments now preserveHOLD_EATstate more safely. HOLDandXHOLDscratchpad ingestion is now treated more like event handling instead of implicit state clear on scratchpad restore.- Near-origin
RDAvisual-clear diagnostics were clarified.
Technical notes
- This step is a mixed backend-recovery, peer-sequencing, and hold-ingestion cleanup pass.
0.3.1I (Source-only)
Added
- Added a non-reentrant snapshot guard for structured backend recording.
- Added pending-retry tracking for temporary structured-recording snapshot collisions.
Changed
- Temporary device-busy or resource-busy snapshot collisions are now treated as recoverable instead of disabling structured recording for the session.
Fixed
- Fixed carrier-list self-lock and recording-lock callouts.
0.3.1H (Source-only)
Fixed
- Corrected a thrown exception.
0.3.1F (Source-only)
Added
- Added peer performance telemetry and FMR warning or report logging.
- Added lower-noise backend sequence authority-transition and blocked-write diagnostics.
- Added more focused apply-path and
HOLD_EATperformance diagnostics while reducingSET2receive churn.
Changed
- Separated active backend sequence authority from stale receive-revision memory so
DELclears peer write-blocking authority without losing stale-message protection. - Aligned source comments with the backend sequence
DELauthority teardown behavior.
0.3.1E (Released)
Changed
- Replaced the peer-list
HLSdisplay column with an EAT-policy column while keeping ETA as theESorALBbranch indicator. - Cleared
HIGand RT-issue state more cleanly on/XHOLD/and related non-hold scratchpad updates. - Preserved exiting-hold
HOLD_EATprotection more safely. - Kept OBS-list removal retryable when flight-plan removal is temporarily unavailable.
- Kept peer PRA display informational only while improving PR-count resolution by ICAO and callsign in the active-timeline context.
0.3.1D (Released)
Changed
- Fixed FMR EAT-mode policy synchronization on peers.
- Clarified
HOLD_EATauthority soHLWis the active local write gate. - Retired the
HLScontrol-bar button from normal operator use while keeping legacy compatibility state. - Kept
SEATas legacy or fallback-only hold-EAT handling rather than part of the normal backend-primary path. - Refreshed timeline notes more reliably on peer clear, expiry, and count changes.
0.3.1C
Added
- Added backend sequence synchronization load-management work through Stage 4.1.
- Added diagnostics-only instrumentation for backend
SEQ/SET2synchronization. - Added
HORIZONseqsync mode. - Added seqsync status and diagnostic visibility for reduced-sync operation.
- Added passive peer update-cycle health monitoring.
- Added backend-only peer health warnings for the FMR when a peer appears slow to apply shared backend updates.
Changed
- Backend sequence synchronization can now reduce traffic under load while preserving backend canonical sequence authority.
- Added bounded overlay-clear
DELhandling. - Added bounded return-to-normal recovery behavior after reduced-sync modes.
- When a manual FMR is active, non-FMR peers are now blocked from mutating shared
LT,PLR,AR, and scenario policy locally. - In runway-sequence collaboration,
Advance 1andResequencenow use a request-reply path and wait for canonical backend sync instead of silently applying a competing local result. - Tightened peer LT fallback gating so backend-primary runway-sequence handling stays aligned with canonical backend sync.
- Added timeout handling for pending runway peer
Advance 1andResequencerequests.
Technical notes
- Canonical per-aircraft sequence state remains backend-only.
FLOATremains parked and is not part of this release.- This work does not intentionally alter the
EAT:LTorEAT:ARsequencing algorithms.
0.3.1B
Added
- Added backend poll sub-phase performance breakdown.
- Added backend poll timing and backlog visibility to performance reporting.
Changed
- Improved diagnosis of backend-dominated timer spikes and performance pauses.
0.3.1A
Changed
- Adjusted perftest reporting.
- Refined live ALB policy button authority so active non-observer peers may control shared live policy when no manual FMR is present, while manual FMR ownership remains exclusive when active.
0.3.0
Added
- Established the
0.3.xrelease line. - Introduced the loader/core packaging model:
ALB.dllas the EuroScope loaderALBCore.dllas the runtime core- Updated public install and release documentation around the new packaging model.
Changed
- Set the source version and minimum protocol floor to
0.3.0.
Notes for users
If you are updating from an older ALB installation:
- make sure EuroScope loads
ALB.dll, notALBCore.dll - keep
alb-config.jsonas your live config - treat
alb-config.default.jsonas a template or default file
For installation details, see Download & Install.
Maintainer note
The 0.3.x release tags may not line up cleanly with the release-version
pointer history. For future release-note maintenance, prefer:
alb-plugin-release-version.txthistory inEuroscope-ALB_ReleasesMY_PLUGIN_VERSIONhistory inES-ArrivalLoadBallance- commit ranges between those anchors
- release tags only after checking what content they actually point to