← Devlogs

VRS X v0.8.0 — Skipped: Traffic Recorder and Route Recognition

Skipped release: Version 0.8.0 was skipped. All changes described below shipped in VRS X 0.8.1, together with SVG support and a multilingual radar interface. The original description is preserved here for reference.

Archived 0.8.0 description

VRS X 0.8.0 introduces durable flight history and a new evidence-based route recognition system. It is the largest data-focused update to VRS X so far, turning recorded traffic into useful playback, diagnostics and carefully moderated route suggestions without placing the live radar path at risk.

The new recording and reporting features are optional and disabled by default. Existing installations can continue using VRS X as a live radar without configuring TimescaleDB or enabling any data submission.

Traffic Recorder

  • Added the optional Traffic Recorder, backed by PostgreSQL 16 or newer and TimescaleDB 2.18 or newer.
  • Added recording for selected direct and merged feeds, with a configurable sampling interval, retention period and hard storage limit.
  • Added durable flight identities and sampled track storage without replacing or modifying the normal SQLite aircraft database.
  • Isolated recording from the live traffic path. A slow or unavailable history database cannot delay aircraft updates on the radar.
  • Added bounded buffering, dropped-sample accounting and automatic retry backoff when TimescaleDB is unavailable.
  • Added TimescaleDB retention, compression and size-management policies. The oldest complete data is removed first when the configured storage limit is reached.
  • Added administrator-only integrity checks, migration status, retry controls, rollback diagnostics and a protected Clear Recorder History operation.
  • Recorder credentials are stored separately from config.json using protected application storage and are never returned by the API or written to logs.
  • Disabling Traffic Recorder stops new writes and history access but keeps already recorded data intact.

Guided TimescaleDB Setup

  • Added a guided, cross-platform setup flow for Linux, Windows and macOS.
  • Added operating-system and architecture detection, Docker installation guidance, persistent-volume setup and tailored shell commands.
  • Added checks for Docker access, container state, shared memory, PostgreSQL connectivity, TimescaleDB availability, supported versions and database permissions.
  • Added safer password handling during Docker bootstrap so database credentials are not placed in shell history or retained in final container metadata.
  • Added TLS modes for local and remote databases, including full server-certificate verification.
  • Added an optional browser-generated configuration backup for administrators who explicitly want one. The file contains the database password in plaintext and must be stored securely.
  • Recorder settings can be tested, initialized and applied without restarting VRS X.

Durable Flight Sessions

  • Added a persisted flight sessionizer that distinguishes surface, stationary, departure, airborne, arrival and dormant phases.
  • Added provisional boundaries that can be corrected transactionally when later observations confirm a new flight.
  • Added deterministic handling for airline rotations, general aviation, military traffic, touch-and-go activity, go-arounds and callsign changes.
  • Added restart recovery. VRS X can continue a physically plausible interrupted flight while preventing unrelated traffic from being joined to the previous session.
  • Added historical resegmentation with checkpoints, shadow tables, integrity checks and an atomic cutover so older Recorder data can be upgraded safely.
  • Finalized flight identifiers remain stable, while provisional sessions can be corrected without creating duplicate history.
  • Improved session splitting around real landing and departure cycles while keeping temporary coverage loss from creating unnecessary flights.
  • Added protection against a hidden intermediate stop being reported as one false direct route. When the evidence suggests an arrival, a coverage gap and another departure, VRS X refuses to invent the missing airport or positions.

Air Traffic History and Playback

  • Added the public Playback view at /history.
  • Added aircraft search by callsign, registration and ICAO hex across every recorded feed the viewer is allowed to access.
  • Added a calendar of recorded activity and a session list for each selected day.
  • Added complete track playback with a scrubber and playback speeds from 1x to 120x.
  • Added synchronized altitude and speed profiles, aircraft heading, squawk, ground state and route information.
  • Added map presentation for estimated coverage gaps and linked fragments without presenting the missing section as measured positions.
  • Added aircraft-type icons, theme-aware playback maps and links between live aircraft details and retained history.
  • Added deep links for callsigns, registrations and ICAO addresses.
  • Applied the same public, private, hidden-feed and password-protected merged-feed rules to history that already protect the live radar.
  • Added automatic recovery when a provisional session is resegmented while its history page is open.

Automatic Route Recognition

  • Added a local, deterministic route recognition engine based on finalized Traffic Recorder sessions. This is an explainable rules-and-evidence system, not machine learning.
  • Added conservative origin and destination detection using surface activity, climb and descent profiles, movement direction, terminal proximity and competing-airport checks.
  • The first or last point of a recording is never treated as an airport merely because it is nearby. Coverage entry at cruise altitude and coverage loss before landing correctly remain UNKNOWN.
  • Added hard rejection before confidence scoring for tracks that are incompatible with a departure or arrival. Positive scoring cannot override impossible endpoint evidence.
  • Added airport eligibility filtering for route recognition. Large and medium airports are accepted, while small airports require scheduled service; heliports, seaplane bases, balloonports and closed facilities are excluded.
  • Added 30-day aggregation across independent observations, including weighted dominance and meaningful conflict detection. A single outlier no longer blocks an otherwise well-supported route.
  • Existing Central Repository routes are part of classification. Exact matches are recognized locally and are not reported again.
  • New routes and new multistop segments can be submitted after several strong, consistent observations.
  • A route that differs radically from every approved Central variant uses stricter evidence requirements and always requires manual moderation.
  • Unclear, incomplete or ambiguous results remain unreported. Precision is intentionally preferred over recall.
  • Added a durable report ledger so clearing ordinary Recorder history does not cause previously submitted candidates to be sent again.
  • Removed arbitrary local daily report limits. Submission proceeds in evidence order and respects authentication, validation and rate-limit feedback from Central.
  • Added a fast path for exceptionally strong unanimous observations during large historical backlogs, while keeping the normal 30-day model unchanged.
  • Report notes include endpoint confidence, observation support, alternatives and explainable evidence. Recorded tracks, positions, sessions and user data are never transmitted with a route report.

Seasonal Changes, Multistop Routes and Route Variants

  • Added independent temporal change detection that compares a recent 7-day window with the preceding 30-day baseline.
  • A clear change in the dominant route can be flagged earlier, but it remains advisory, always requires manual review and never automatically replaces an approved route.
  • Added support for the Central Repository routeVariants snapshot, including Primary and Alternate routes, active and retired lifecycle states, and observation dates.
  • Route snapshots are replaced atomically per callsign so removed or retired variants do not remain in the local overlay after synchronization.
  • Existing Central clients remain compatible through the established Flight, Route and Via fallback when routeVariants is absent.
  • When several active routes share a callsign, VRS X first resolves them using a confidently known current origin.
  • Multistop paths can be resolved from their intermediate departure airports as well as their first origin.
  • If the known origin still matches several variants, or no variant matches it, VRS X reports the ambiguity instead of guessing.
  • A callsign change remains a separate lookup key; VRS X does not invent aliases between seasonal flight numbers.

Experimental Long-Gap Recognition

  • Added optional long-gap session bridging for flights that disappear from one reception area and reappear later in another.
  • The feature matches only finalized sessions with strong aircraft identity, stable callsign, airborne state, plausible elapsed time, great-circle speed, heading and track geometry.
  • VRS X joins logical evidence only. It never creates, interpolates or modifies aircraft positions inside a coverage gap.
  • Added configurable minimum and maximum gap durations. The default experimental window is 120 minutes to 18 hours.
  • Added ambiguity protection: several credible continuations produce no bridge rather than an arbitrary best-score choice.
  • Added chains of compatible session fragments without allowing branches, loops or reuse of the same session in conflicting bridges.
  • Added conservative support for sparse ADS-C observations while retaining the same physical-plausibility checks.
  • Added versioned bridge evaluations tied to the sessionizer, endpoint algorithm and a deterministic airport-catalog fingerprint. Relevant historical data is reprocessed when those inputs change.
  • Optimized large archives with indexed identity and time lookups, faster handling of obvious insufficient candidates and resumable scan checkpoints.
  • Long-gap scanning waits for relevant endpoint analysis but never globally blocks ordinary complete routes or their reporting.
  • The feature is experimental, separately configurable and disabled by default.

Route Recognition Administration

  • Added a separate Route Recognition page under the Data section of administration.
  • Added a simplified overview showing candidates ready for reporting, routes still under classification, Central matches and the most recent submission.
  • Moved classifier breakdowns, confidence evidence, the report ledger, bridge evaluations, scanner checkpoints and other specialist diagnostics under Advanced Metrics.
  • Added expandable details for temporal changes and long-gap evidence without overloading the main Recorder page.
  • Added localized Route Recognition configuration and diagnostics in English, Polish, German, French and Spanish.

Radar Display Improvements

  • Added Aeronautical, Imperial, Metric and Custom display-unit modes.
  • Added independent custom choices for altitude, speed and vertical rate.
  • Added receiver range rings that automatically follow the selected distance units.
  • Improved selected-aircraft trails and preserved useful recent history across temporary coverage gaps.
  • Reworked live trail retention into a bounded, identity-aware memory archive and start a clean trail after a confirmed callsign change.
  • Improved trail rendering, timestamp handling and physically plausible gap presentation.
  • Restored human-readable METAR decoding in airport popups, with a simple switch between decoded conditions and the original raw report.
  • Added an optional CARTO API key in General Settings and applied it to CARTO basemaps on both the live radar and history playback.

ADS-B Decoding and Rebroadcasting

  • Improved recovery of Mode-S identity replies and squawk data.
  • Preserved receiver timestamps through Beast decoding and rebroadcasting.
  • Added true Beast binary rebroadcast while keeping existing AVR compatibility.
  • Improved outbound and inbound rebroadcast connection handling, restart behavior and live configuration updates.
  • Improved merged-feed arbitration so identity and position ownership remain stable across overlapping sources.

Licensing and Reliability

  • Improved online license validation so transient network, rate-limit and activation-service errors no longer cause a valid installation to ask for its key again.
  • Added activation-token renewal during successful validation.
  • Renewed license tokens are verified before use and saved using an atomic replacement, preventing a partial write from breaking activation after restart.
  • Only explicit permanent rejection states can now disable a locally valid activation.
  • Clarified the VRS X distribution terms, commercial-use conditions, required attribution and the relationship between the VRS X EULA and the upstream Virtual Radar Server BSD license.
  • Expanded backend, database, controller, load and frontend regression coverage for Recorder ingestion, sessionization, history visibility, route recognition, long-gap evaluation, Central synchronization, rebroadcasting and licensing.

Important: Update the Airport Database

An earlier v0.8.0 experimental build could parse some OurAirports CSV rows incorrectly when quoted values contained commas. The importer now follows RFC 4180 CSV rules, uses column headers and removes matching malformed legacy rows during reimport.

If your installation imported an OurAirports catalog with an affected experimental build, open the aircraft database administration page and run Update Airports once after upgrading. Reimport the configured source CSV if required by your setup. Existing shifted columns cannot be reconstructed safely from the already imported data alone, so this repair cannot be completed automatically without reading the source CSV again.

This step is not required for installations that did not import an airport catalog with an affected v0.8.0 build.

Notes

  • Traffic Recorder, automatic route reporting and experimental long-gap recognition are all disabled by default.
  • Traffic Recorder requires a separately managed PostgreSQL/TimescaleDB database. VRS X does not install or administer the database server automatically.
  • Existing live-radar functionality continues to work without Traffic Recorder.
  • Route reports are suggestions for Central moderation. VRS X never automatically replaces an approved Central route.
  • Recorded aircraft positions remain on the local VRS X installation.

Read the complete 0.8.1 release notes.