# ADSB Analyzer — Changelog

## v6.0 · 2026-09-20
- Now tab added — live aircraft table auto-refreshing every 30 seconds
- Shows all aircraft currently visible to the Pi with altitude, speed, distance
- Notable aircraft highlighted in red using full prestige system
- ⌖ map button opens tar1090 zoomed to that aircraft's hex
- ↗ live FR24 link goes to live tracker (not history) for current flights
- Live pulse indicator with seconds-since-last-refresh counter
- App now opens on Now tab by default
- Three data tabs: Now · Aircraft Log · Analysis
- Live map remains full-screen overlay from header button
- Float menu updated to include Now tab

## v5.9 · 2026-09-17
- Live map tab added — full screen tar1090 iframe at 192.168.1.113/tar1090
- "⊕ Live map" button in header opens live map full screen
- Floating ☰ Menu button in corner lets you switch to Log or Analysis without leaving the map
- Live map loads tar1090 on first open and stays cached for the session

## v5.8 · 2026-09-13
- KSEA runway detection completely rebuilt around Class B airspace geometry
- Aircraft must be inside KSEA Class B rings (0-5NMI SFC, 5-10NMI 1500ft floor, 10-20NMI 3000ft floor)
- Must be descending (-200 to -3000 fpm) — eliminates departures and transits
- Must be on approach track (340°±20° for 34s, 160°±20° for 16s)
- Must be at approach speed (100-200kt ground speed)
- Logs arr_34, arr_16, total_classb per sample for transparency
- Web app flip table now shows vote counts (34s:N 16s:N) instead of raw sample count

## v5.7 · 2026-09-13
- KSEA flip detection now requires two consecutive matching samples before declaring a flip
- Eliminates false flips during transition periods with low traffic
- CSV export now quotes wx and metar_raw fields — fixes #NAME? error in Excel
- All fields starting with - or + are quoted to prevent formula interpretation

## v5.6 · 2026-09-12
- KSEA runway config panel added to Analysis tab
- Shows last 50 samples newest first with timestamp, config, wind, ceiling, visibility, temp, sample count
- Config flip rows highlighted in amber
- Current config and wind shown in panel header
- Total samples and flip count summary
- Export CSV button downloads full ksea_config.json as CSV
- Panel auto-refreshes every 10 minutes

## v5.5 · 2026-09-09
- KSEA runway config logging added to logger.py (v3)
- Samples aircraft within 10 NMI of KSEA below 5,000ft every 10 minutes
- Fetches KSEA METAR from aviationweather.gov every 10 minutes
- Logs every sample to /data/ksea_config.json — continuous record
- config_changed flag marks every flip event
- Wind direction fallback when traffic sample too small
- server.py exposes /ksea (JSON) and /ksea/csv (download) endpoints

## v5.4 · 2026-09-09
- Complete Notable Catches prestige system rebuild
- Tier 1 (red) — Named prestige airframes: U-2/ER-2, B-52, E-4B, C-5, Dreamlifter, A380, A350-1000, AN-124, E-3 AWACS, F-15EX, B-1, B-2, F-22 and more
- Tier 1 — Special callsigns: JANET, NASA, NOAA, SAM/EXEC VIP, CRYPT
- Tier 1 — Any aircraft above FL500 regardless of type
- Tier 1 — Foreign military operators (RAF, RCAF, JASDF, RAAF etc)
- Tier 1 — Carrier ops: F/A-18, EA-18G, E-2, C-2 below 10,000ft
- Tier 2 (amber) — All military callsigns including Oregon ANG (KLAMATH, ROCKER)
- Tier 2 — UAVs (B6) and balloons (B2) and fast movers (A6)
- Helicopters (A7) explicitly excluded — never flagged
- Panel now shows up to 20 aircraft, sorted by tier then visit count
- Tag colors match tier: red for Tier 1, amber for Tier 2

## v5.3 · 2026-09-08
- FlightRadar24 links on Top Callsigns and Notable Catches panels
- Clicking a callsign opens FR24 in a new tab
- Dotted underline on hover, turns green on hover
- Works with both flight numbers and raw hex codes
- Category breakdown panel now shows plain English descriptions next to codes

## v5.2 · 2026-09-08
- FAA pill now age-aware — green (≤30 days), amber (≤90 days), red/stale (>90 days)
- Hover tooltip on FAA pill shows exact last updated date and days ago
- FAA Not Synced state always visible in header instead of hiding pill
- Changelog modal added to header with formatted version history
- Version number pulled dynamically from version.json on Pi
- server.py exposes /version and /changelog endpoints

## v5.1 · 2026-09-08
- Centered loading modal — full screen overlay with backdrop blur
- Self-calibrating load time estimates using localStorage per size bucket
- Shows measured vs estimated load times (★ Using measured load times)
- Live countdown during load, "Complete ✓" on finish
- Data size and estimate shown during load (X MB · est. Ys)

## v5.0 · 2026-09-08
- Migrated logger and server from start.sh to systemd services
- Auto-restart on failure, journalctl logging, systemctl status
- Removed @reboot crontab entry — systemd handles boot startup
- Loading spinner added to Load Data button
- Progress bar with estimated time based on data size

## v4.0 · 2026-08-27
- Complete UI redesign — ops terminal aesthetic
- Medium gray base, green accents, Inter + JetBrains Mono fonts
- FAA registry integration — make, model, owner for all US aircraft
- faa_sync.py reads MASTER and ACFTREF files directly
- Enriches all existing daily log files on first run
- Analysis tab expanded to 6 panels including Top Models and Top Operators
- Notable Catches panel — JANET, military, balloons, UAVs, fast movers
- Tailscale installed — Pi accessible from anywhere via 100.98.67.31

## v3.0 · 2026-03-05
- 24/7 background logging — no browser needed
- logger.py polls aircraft.json every 30 seconds
- Daily JSON files in /home/pi/adsb-analyzer/data/
- 4GB storage cap with automatic oldest-day deletion
- server.py with /data, /status, /aircraft endpoints
- Date range picker with Today/Yesterday/7 Days/30 Days/All
- Visit tracking with 15 minute gap threshold
- Web app loads data from Pi on demand

## v2.0 · 2026-03-04
- Persistent database saved to Pi (adsb_database.json)
- Visit counting and total sightings per aircraft
- Configurable visit gap threshold
- Distance filter (max NMI)
- Pi SD card storage panel
- Database file size indicator

## v1.0 · 2026-03-04
- Initial build
- Browser-based collection with Start/Stop
- Field selector checkboxes
- Live aircraft table with filtering and sorting
- Analysis tab — top callsigns, category breakdown, heavies, special interest
- CSV export
- Poll interval selector (30s to 5m)
- Session stats panel


## v5.0 · 2026-09-08
- Migrated logger and server from start.sh to systemd services
- Auto-restart on failure, journalctl logging, systemctl status
- Removed @reboot crontab entry — systemd handles boot startup
- Loading spinner added to Load Data button
- Progress bar with estimated time based on data size

## v4.0 · 2026-08-27
- Complete UI redesign — ops terminal aesthetic
- Medium gray base, green accents, Inter + JetBrains Mono fonts
- FAA registry integration — make, model, owner for all US aircraft
- faa_sync.py reads MASTER and ACFTREF files directly
- Enriches all existing daily log files on first run
- Analysis tab expanded to 6 panels including Top Models and Top Operators
- Notable Catches panel — JANET, military, balloons, UAVs, fast movers
- Tailscale installed — Pi accessible from anywhere via 100.98.67.31

## v3.0 · 2026-03-05
- 24/7 background logging — no browser needed
- logger.py polls aircraft.json every 30 seconds
- Daily JSON files in /home/pi/adsb-analyzer/data/
- 4GB storage cap with automatic oldest-day deletion
- server.py with /data, /status, /aircraft endpoints
- Date range picker with Today/Yesterday/7 Days/30 Days/All
- Visit tracking with 15 minute gap threshold
- Web app loads data from Pi on demand

## v2.0 · 2026-03-04
- Persistent database saved to Pi (adsb_database.json)
- Visit counting and total sightings per aircraft
- Configurable visit gap threshold
- Distance filter (max NMI)
- Pi SD card storage panel
- Database file size indicator

## v1.0 · 2026-03-04
- Initial build
- Browser-based collection with Start/Stop
- Field selector checkboxes
- Live aircraft table with filtering and sorting
- Analysis tab — top callsigns, category breakdown, heavies, special interest
- CSV export
- Poll interval selector (30s to 5m)
- Session stats panel
