Redraws:
- Merge bursts of session and bandmap events into one redraw
(Coalesced). Closed Bandmap and Available windows now unsubscribe.
- Grayline and Voice Keyer no longer subscribe to the session twice.
- Available summary, Score table and Log rows redraw only when their
contents change. Telnet lines are added in batches.
- Bandmap view reuses its layout, shaped text and brushes. Grayline
draws the coastlines as one cached shape.
Threads:
- Available, Bandmap colours, Check and Statistics do their judging
and counting on the thread pool and draw the result on the UI thread.
- ContestLog takes a lock in Judge and in each method that changes the
log, so a background Judge cannot read the indexes mid-edit.
Refresh rate:
- Statistics refreshes every 30 seconds and when the QSO count changes.
- Grayline refreshes at most every 15 seconds on session events.
Publish with ReadyToRun to cut startup JIT time.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
publish.sh takes a runtime id and publishes both programs into
dist/nonemm-<rid>, which holds the runtime and the Avalonia files once.
The archive is a zip for Windows and a tar.gz for the rest.
publish-windows.sh and publish-linux.sh call it with their default id.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>