AccessiWeather v0.4.4 — One Year Anniversary 🎂
March 13, 2026 — Exactly one year since the first commit.
New Features
Weather Assistant
- Conversational AI chat with function calling, screen reader support, and global weather coverage
- OpenRouter Free Router as default AI model option
- Token count and cost display in AI dialogs
NOAA Weather Radio
- Streaming player with station preferences
- Dynamic stream discovery via wxradio.org API
- Play/stop as a single toggle button
Nationwide Weather Discussions
- AI-powered summarization of forecast discussions
- AFD update notifications enabled by default
Alerts & Notifications
- Alert lifecycle intelligence — new, updated, and cancelled summaries with NWS messageType labels
- Independent alert polling (60-second interval), split from weather refresh
- Conditional GET caching to reduce redundant NWS requests
- Genuine cancellation detection via NWS cancel endpoint
- Suppress stale-new notifications on first load
- Toast notifications via Windows toasted library (replaces desktop-notifier)
- Tray balloon fallback and debug tools
Forecasts
- Configurable forecast duration with automatic Open-Meteo tail fill
- NWS high/low temperature pairing
- Confidence indicator from cross-source agreement
- Option to display in user's local time or location's time
- Hourly metric fields and forecast low temp support
Audio & Soundpacks
- Per-event sound controls with user-level muting
- Hazard and severity sounds in default soundpack
- Data updated and fetch error sound events
- Default soundpack included in portable zip
Portable & Onboarding
- Secure API key portability flow with encrypted bundle import/export
- First-run onboarding wizard with portable setup and readiness summary
--wizardCLI flag to re-run onboarding- Keyring key export offered during wizard
- Auto-import encrypted API key bundle on portable startup
Other
- Configurable NWS station selection strategies with hybrid default
- Location name shown in current conditions header
- Regenerate AI explanation in-place instead of reopening dialog
- Show changelog in update dialog before downloading
- Include locations in settings export/import
Bug Fixes
Accessibility
- Set initial focus for Air Quality, UV Index, and Discussion dialogs
- Replace hardcoded foreground colors with system colors
- Handle Escape key in all wx dialogs
- Enter key and double-click open alert details
- SetName added to all Settings dialog controls and sub-dialogs
- Unblock UI thread during soundpack wizard sound test
Stability
- Fix stale weather refresh path and rain/snow condition edge cases
- Stabilize in-app auto-update check scheduling
- Clean up wx properly before applying updates
- Restore dialog default button behavior
- Fix portable mode detection and config transfer
- Don't wipe keyring API keys when settings field loads empty
- Harden install scope to prevent duplicate ARP entries
- Persist show_nationwide_location across restart
- Wire tray weather text controls in General tab
- Rebrand .awkeys extension to .keys with legacy fallback
- Zip slip detection hardened with Path.relative_to()
- Security warning when keyring is unavailable
Full changelog: v0.9.3.1...v0.4.4