New:
- Flight logbook safety net: disabled by default, requires confirming
a full-screen warning before it can be turned on, and automatically
switches off again after exactly 24 hours - survives restarts and
power cycles (no valid enable timestamp = guaranteed off). Each
activation now writes its own CSV file instead of endlessly
appending to one growing file, and every file can be deleted
individually from Logbook files.
- Adjustable display brightness (10-100% in 10% steps, Menu -> System
-> "Brightness") with a live preview.
- About screen (Menu -> System -> "About") showing project name,
description, and firmware version.
Fixed:
- Radar's red altitude band (>9100m/30000ft) no longer gets dimmed at
night - the previous dim tone looked orange-brown and was hard to
tell apart from yellow. Legend and markers are consistent again.
- Radius change no longer leaves a stale "tail" trail behind each
aircraft between the old and new position.
- Splash screen no longer shows a time-of-day greeting that appeared
too late in the boot sequence to be useful; the star animation now
starts immediately instead of only near the end of boot.
- Clock stayed on raw UTC after the first boot instead of local time
(missing DST handling in some timezones) because the location wait
loop skipped the timezone lookup once a location was already saved.
- Header clock no longer leaves stale digit fragments behind the
current time, most visible on the last minute digit.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
New:
- Aircraft list (Menu -> Flight Options, top entry): sortable list
(distance/altitude/callsign) of every aircraft currently in range,
with the same altitude color-coding and emergency/watchlist border
highlighting as the radar. Tapping a row jumps back to the radar
with that aircraft's detail panel already open.
- Night dimming now also softens the radar screen itself (aircraft
markers and the sweep line switch to darker tones) during the
existing 22:00-06:00 window, reusing the same setting - no new
toggle.
Improved:
- Removed the unused built-in TFT_eSPI number fonts (GLCD/Font2/
Font4/Font6/Font7/Font8) from platformio.ini - the project only
ever uses the custom UI font via setFreeFont(). Saves ~15KB flash.
Also documents a CYD-flightradar.bin staleness safety check in the
CLAUDE.md release workflow (delete any leftover copy from a previous
release before renaming the fresh build, so an old binary can never
be silently re-used for a GitHub release).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Three small layout bugs found after v2.7.0:
- Watchlist info screen title now wraps word-by-word via
layoutWrapped() instead of println(), which cut it off mid-word.
- Watchlist overview screen draws the "?" info button first, so the
title and two description lines start below it instead of running
underneath and getting obscured.
- The radar's "empty sky for..." timer now shows only whole minutes
once past the first minute (e.g. "2min" instead of "2min 05s"),
since the seconds suffix collided with the range button.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Three small usability additions:
- Splash screen now shows a "Good morning/day/evening" greeting under
the title, based on local time (computed after the timezone offset
from IP geolocation is applied via configTime(), not before, so it
reflects actual local time rather than UTC).
- Selecting an aircraft on the radar now also draws a dotted bearing
line plus a degree label from the radar center to the compass edge,
showing which direction to actually look to spot it in the sky
(distinct from the aircraft's own heading arrow).
- The radar info bar now shows "Empty sky for <time>" instead of the
"tap for details" hint whenever no aircraft are currently in range
after all filters, counting up from the last sighting.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
drawAircraftMarker() previously drew a plain symmetric line for an
aircraft's heading, making it impossible to tell at a glance which
end pointed "forward". The line now ends in a small two-stroke
arrowhead (chevron), so the direction of travel is unambiguous.
Also documents that the index.html version-badge check (release
workflow step 4) is mandatory and not optional, since it was
accidentally skipped on a recent patch release.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>