Skip to content

Releases: JoshuaKimsey/variable-weather

Variable Weather v2.9.9

Choose a tag to compare

@JoshuaKimsey JoshuaKimsey released this 19 Jun 09:09
  • Changed start_url, id, and scope from relative "./" to absolute URLs on the canonical host (https://variablewx.librewxr.net/) so PWA Builder stops flagging start_url as missing. The id is now a stable absolute URL so the installed app keeps its identity across future moves.
  • Added "window-controls-overlay" as the first entry in display_override (PWA Builder expects it), with "standalone" kept as the fallback for browsers that don't support WCO.
  • Note: the manifest is now optimized for the canonical domain; the GitHub Pages mirror may see cross-origin start_url/scope and fall back to defaults, which is acceptable since librewxr.net is the official host.

Full Changelog: v2.9.8...v2.9.9

Variable Weather v2.9.8

Choose a tag to compare

@JoshuaKimsey JoshuaKimsey released this 19 Jun 08:56
  • Added periodic background sync (Android Chrome only) that re-fetches cached weather, alerts, and nowcast roughly every 12h when the app is closed, so offline loads see recent data instead of the last manual fetch
  • Used a URL-replay design via IndexedDB: the service worker can't read localStorage (where location, provider, and API-key prefs live), so the existing network-first API fetch handler records each successful request URL to IDB (deduped, capped at 12) and the periodicsync handler replays that list. Auto-handles provider switches, API-key changes, and location changes with zero duplicated provider logic
  • Silently no-ops on browsers without PeriodicSyncEvent (iOS Safari, desktop Firefox) — fine since the target is the Android TWA

Full Changelog: v2.9.7...v2.9.8

Variable Weather v2.9.7

Choose a tag to compare

@JoshuaKimsey JoshuaKimsey released this 19 Jun 08:43
  • Split manifest icon purposes into separate any/maskable/monochrome entries; added a padded maskable 512/192 so Android no longer crops the logo, plus a monochrome 512 for Android 13+ themed icons
  • Added app shortcuts (My Location, Search, Radar) to the manifest with dedicated 96x96 icons, and wired up ?action= launch params in main.js so the long-press menu actually opens the right UI
  • Added Play Store screenshots (two 1080x1920 mobile, one 1920x1080 desktop) as branded placeholders to be swapped for real screenshots before store submission
  • Added scope, display_override, orientation, dir, lang, categories, prefer_related_applications, and launch_handler to the manifest for native launch feel and a clean PWA Builder score
  • Added env(safe-area-inset-*) to the floating settings FAB, install banner, update banner, and the full-screen settings/radar modal headers so controls clear notches and Android gesture nav; viewport now uses viewport-fit=cover
  • Cached the new icons and screenshots in sw.js so addAll() stays atomic and they work offline

Full Changelog: v2.9.6...v2.9.7

Variable Weather v2.9.6

Choose a tag to compare

@JoshuaKimsey JoshuaKimsey released this 08 Jun 11:03
  • Switched the LibreWXR radar color palette from Rainbow SELEX-IS to Viper HD across both the main radar modal and the main-page radar preview

Full Changelog: v2.9.5...v2.9.6

Variable Weather v2.9.5

Choose a tag to compare

@JoshuaKimsey JoshuaKimsey released this 21 May 11:08
  • Service worker's API fetch handler used to resolve its timeout with the cached offline.html page, which fed HTML into JSON callers and produced "Unexpected token '<'" errors on slow first-loads (cold DNS, cold-start CDN edge, deep-link navigations from other sites)
  • Replaced the Promise.race + offline.html fallback with an AbortController-driven 10s timeout that aborts the in-flight fetch, falls back to cache if available, and otherwise returns a JSON 504 so response.json() never sees HTML

Full Changelog: v2.9.4...v2.9.5

Variable Weather v2.9.4

Choose a tag to compare

@JoshuaKimsey JoshuaKimsey released this 21 May 04:09
  • Manifest `start_url` and `id` now point to `./` instead of `./index.html`, fixing PWA launches from the home screen on Cloudflare Pages where `/index.html` was 308-redirected to `/` and breaking standalone mode
  • No effect on GitHub Pages deployments

Note: existing broken home-screen shortcuts won't auto-heal — delete the old shortcut and reinstall the PWA after this update applies.

Full Changelog: v2.9.3...v2.9.4

Variable Weather v2.9.3

Choose a tag to compare

@JoshuaKimsey JoshuaKimsey released this 21 May 03:14
  • Service worker now registers immediately during HTML parse instead of waiting for the window `load` event, so static PWA analyzers (PWABuilder, Lighthouse) correctly detect it
  • No behavior change in real browsers; runtime update flow is unchanged

Full Changelog: v2.9.2...v2.9.3

Variable Weather v2.9.2

Choose a tag to compare

@JoshuaKimsey JoshuaKimsey released this 21 May 03:08
  • Service worker now passes through third-party requests (analytics beacons, external scripts, CDNs) instead of intercepting them, eliminating spurious "Fetch failed" errors in the console
  • Same-origin app shell and the existing weather-API allowlist are unaffected

Full Changelog: v2.9.1...v2.9.2

Variable Weather v2.9.1

Choose a tag to compare

@JoshuaKimsey JoshuaKimsey released this 21 May 02:08
  • Location URL parameter is no longer stored — shared links now contain just `lat` and `lon`, and legacy `?location=` parameters are stripped on visit
  • Eliminated the brief timezone-string flash on cold loads; the label now shows "Loading location..." until reverse-geocoding resolves
  • Location label formatting now skips ZIP codes and county/parish/borough segments (e.g. "Atlanta, Georgia" instead of "Atlanta, Fulton County")

Full Changelog: v2.9.0...v2.9.1

Variable Weather v2.9.0

Choose a tag to compare

@JoshuaKimsey JoshuaKimsey released this 20 May 00:57
  • Tap any 7-day forecast card for a per-day detail modal with feels-like temps, wind, UV, humidity, dew point, cloud cover, sunrise/sunset, and a per-day hourly temperature curve
  • Hourly forecast on the main page is now an inline temperature curve with precipitation bars (height = chance %, color = intensity) and tap/hover tooltips, covering an inclusive 12-hour window
  • Daily forecast switches to a vertical list on mobile so all 7 days fit without horizontal scrolling
  • Radar animation waits for each frame's tiles to finish loading before advancing
  • Hour labels now follow the forecast location's timezone, not the user's browser
  • Pirate Weather hourly window extended to a full week via `extend=hourly`; Open-Meteo timestamps converted to real UTC

Full Changelog: v2.8.1...v2.9.0