Skip to content

Changelog

What shipped each week in the app, the API, the Weather MCP, and the developer platform.

Get the changelog by email

One email a week with what shipped. No marketing, no noise.

Double opt-in; unsubscribe with one click from any email.

AppAPIMCPDeveloper platform

Week of October 23

App

  • Native raster_tiles: newest sector epoch + floating fit (iOS, Android).
  • Fix(gis): weight block-group population by land area, not water.
  • Map(frame): Data controls v2, five-family Expert chips, Simple presets, Past + Future view row.
  • Web: sunset card polish (event-aware header, scaled curve, sky score ramp, coverage from data).
  • Viz-catalog: generic data axes (family, source, region, run, product) and Simple presets.
  • Wx-pipeline: autoscale the satellite lane (2-4), stop deploys resetting lane capacity, East Meso 2 true color.
  • Data primitives Phase 2b: get_forecast hourly fold, get_forecast_skill map fold.
  • Map(frame): Playback v2, Stop hidden when stopped and slides out from Play; fully rounded bars.
  • Web: remove keepSky (client-side sky carry-over).
  • Meso true color: East Meso 1 + floating-sector tile seam.
  • Data primitives Phase 2a: find_places, search_data, describe_data, get_status renames.
  • Map v2: no autoplay; Stop beside Pause returns to the latest observed frame.
  • Tiled GOES: atlas sized at load camera never grows on zoom-in.
  • Viz-catalog: publish GOES-West CONUS view.
  • Map v2: radar site still shows no time in the bottom bar after a paused pick.
  • Map(frame): Mobile Radar products sheet and compact bar.
  • Map(frame): All products, searchable, plain names first.
  • Web: tiled renderer for scalar composites (budgeted R8 tile atlas).
  • Satellite source row: sector first, then the bands that sector has.
  • Map v2: engine seams for the bottom bar — still time on lazy picks, speed on the merged loop, radar Space listener (C3c).
  • Map v2: keep the bottom-bar pulse dot from re-blurring the glass every vsync.
  • Clients + viz-catalog: floating 1-min mesoscale views.
  • Fix(map): no full map redraw on playback ticks that change nothing (lightning every-tick repaint, bottom-bar per-tick render).
  • Fix(app): location button fails after a denied or missed page-load prompt; phone tray spins forever.
  • Map engine: loop correctness — radar slot mapping, composites ring sized from maxFrames, radar product-switch lifecycle, radar opacity.
  • Map(frame): Layers regrouped: Hazards, Storms, Ground truth, Map.
  • Map(frame): one 56 px bar for time and legend, with Loop | Rain totals.
  • Map(frame): playback channel and generic forecast continuation.
  • iOS: read view domain/camera from the viz catalog.
  • Web: remove the unused companion footprint mask.
  • Android: read view domain/camera from the viz catalog.
  • Map(frame): product bar, More, expert chip, Expert controls switch and source row.
  • Basemap-style: move Americana vendor URLs so Chrome drops its cached no-CORS sprite and shields (#20392 follow-up).
  • Sw-ui-web + web chat: React wrappers over sw-scene-web, ops consumer, a11y, Skycons, snapshot map.
  • Map(frame): v2 chrome latch, product activation helper, top-right cluster and zoom stack.
  • Fix(web-map): primary=goes_truecolor_conus deep link lands on MRMS.
  • Map(frame): map_chrome_v2 flag and catalog product-bar taxonomy.
  • Feat(web-map): frames carry a valid time window from the processing rules; overlays hide outside it.
  • Sw-mcp widget: Skycons icons with a vocabulary guard, white brand mark, full-width daily strip (claude.ai dogfood fixes).
  • Map(basemap): Graphite default + Paper light basemaps.
  • Fix(map): playhead at the primary's cadence, every lightning strike per step, blend-off products skip sub-frame work.
  • Viz-catalog + web: catalog-described views (product domain, view camera/floating).
  • Viz-catalog: remove satellite companions and relabel GOES views.
  • Telemetry(map): record the product on map_dataset_activated; drop the load-time emit.
  • Fix(web-map): GOES full-disk companions draw over the CONUS layer, so satellite loops stutter at half rate.
  • Map(color): one .pal parser, L3 KDP palette, IR/WV break, full-scale legends.
  • Sw-mcp + sw-agent: weather provenance to the chat sources event.
  • Web chat: one persistent agent face for the session — hero → docked in the composer corner, reacting to every turn; no per-message avatars.
  • Web chat: shell — rail, context chip, empty state, sources line, work timeline, palette B.
  • Web: app header v4 — Places, Search · ⌘K, account; phone ‹ Places + More (Share); title handoff; never over sheets.

API

  • Sw-api: path on /v1/series with the shared route sampler (ADR 082 Phase 3 d).
  • Wx-reader + libs/wxreader: path on the generic feature door, per-feature crossings (ADR 082 Phase 3 d prerequisite).
  • Sky: verify time-lagged HRRR blends against GOES cloud (offline harness + readout).
  • Sw-api: /v1/features/{product_id}, area, reference layers and nws_alerts public (ADR 082 Phase 3 b, closes #18017).
  • Fix(gis): weight block-group population by land area, not water.
  • Agent reception P2-c: MCP list_ideas and vote_idea.
  • GOES meso: daylight gate stops frames while most of the sector is still sunlit (sun-up 90 deg, 10 %).
  • Agent reception P2-a: community board service (posts type seam, ideas, principal-bound votes).
  • Sw-api: /v1/series operators and local times; /v1/windows on the shared scan (ADR 082 Phase 3 a, closes #18334).
  • Wx-reader + libs/wxreader: generic feature door, table stores, declared aggregates, check 21 (ADR 082 Phase 3 b, #18017).
  • Sw-mcp + sw-agent: get_data over grid and snapshot replaces query_dataset (ADR 082 Phase 3 c1).
  • Wx-reader: key multi-variable values by valid_time (queryHourlyStore misalignment).
  • Wx-reader + libs/wxreader: get_data operators on /v1/query (ADR 082 Phase 3 a, #18334).
  • Gis-pipeline + db + catalog: ACS B01003 block-group population, one population method, feature-concept roles (ADR 082 Phase 3 b).
  • Wx-reader CI: db-integration job runs the DB-backed tests against the test-DB image (ADR 082 check 21 prerequisite).
  • Sky: per-event gate - write each ready sunrise/sunset instead of skipping the day.
  • Viz-catalog: generic data axes (family, source, region, run, product) and Simple presets.
  • Wx-pipeline: autoscale the satellite lane (2-4), stop deploys resetting lane capacity, East Meso 2 true color.
  • Static-map-service: encode the scene image to a byte target (encode.quality / encode.maxBytes).
  • Data primitives Phase 2b: get_forecast hourly fold, get_forecast_skill map fold.
  • Data primitives Phase 2b-0: instructions head as the search prompt, check 22 description rubric.
  • Sw-api: never cache or stale-store a weather body with a failed section (astro leg in the forecast bundle).
  • Meso true color: East Meso 1 + floating-sector tile seam.
  • Wx-pipeline: local_timezone day boundary + hours coverage for observed daily rollups.
  • Data primitives Phase 2a: find_places, search_data, describe_data, get_status renames.
  • Sw-agent: map_preview prompt describes still + tap-to-live map.
  • Sky: client-expose sky_enabled and admit the app keys to the sw-api sky gate.
  • Sw-api: adopt wxblend v0.26.0 (observed today high, no made-up extremes).
  • Viz-catalog: publish GOES-West CONUS view.
  • Data primitives Phase 1a: catalog v2 blocks, reference layers, sw-api/sw-mcp serving.
  • One agent: checkpoints not made-up paths, ask before substituting a channel (#20751 items 3-4).
  • Route weather: local times in /v1/weather/route (#20751 item 1).
  • Static-map-service: GLM lightning compositor so stills carry strikes.
  • Sw-agent: delete forecaster, communicator, rosters, kill switch; ADR 079/080 (one agent T4).
  • Wx-reader: adopt om-go one-GET open + in-memory LUT (#20706); bound metadata cache bytes.
  • Static-map-service: Scene path can render the live Graphite/Paper basemap (opt-in theme).
  • Sw-agent one agent: deferred-tool discovery (route tool denied) and cold-turn prompt size (T3 follow-up).
  • Clients + viz-catalog: floating 1-min mesoscale views.
  • Status subscriptions: webhooks and per-source / per-incident email (Proposed in the status redesign).
  • Wx-reader: AssetCache keeps expired catalog resolutions until 1,000 entries (+4 MiB/h live heap, #20079 follow-up).
  • Status subscriptions: public incident events, Follow this incident (part of #20349).
  • Status page: subscribe POST gets a 401; route /v1/status/* same-origin (part of #20349).
  • Wx-reader: hedge slow S3 range GETs (query p95 waits for the slowest parallel product read).
  • Sw-agent evals/bench/workflows: collapse roster arms onto the one agent (one agent T4a).
  • Freshness: per-input arrival clocks so processing_late only fires when work is actually waiting (11/16 public incidents misclassified).
  • Sw-api + wx-agent: include=sky enriches the astro block; flag sky_enabled.
  • Genui: find_best_window light: day|night|any and max_cloud_cover (stargazing).
  • Writer: batched viz ledger updates fail with NameError since #20519 (ledgers frozen).
  • Sw-agent: serve the one agent by default (one agent T3).
  • Genui: find_best_window starts windows at sunrise inside a sample; decision card cites readable sources.
  • Writer: _advisory_unlock can leak a session advisory lock on a pooled connection (bundle_now day lock, BundleProduct).
  • Sw-api freshness: run_lane: product products report their source's run and data age.
  • Sw-mcp + sw-agent: capability index, reachability guard, ADR 079 (one agent T1).
  • Writer: per-frame GOES scalar tile pyramids (scalar_tiles PMTiles emitter).
  • Sw-ui-web: lift the v2 windows_ref handshake hold after #20447 is in prod.
  • Wx-pipeline: ingest GOES-East and GOES-West mesoscale 1-min sectors.
  • Wx-pipeline: ingest GOES-West CONUS (PACUS) 5-min imagery.
  • Fix(mcp-apps): ChatGPT shows "CSP off" because widgets send only _meta.ui.csp; also send openai/widgetCSP.
  • Genui: windows by reference on decision_card (model points, host resolves /v1/windows).
  • Agent reception P1a-2: identity tiers (key, Web Bot Auth signed, vendor IP) + internal-caller assertion.
  • Status: L1 overview page (banner, incidents, components with uptime, subscribe) per the Claude Design boards.
  • Pipeline: serve sky_hrrr_conus via a daily bundle in its own wx.runs lane (astro model).
  • Reader: resolve run_lane: product products from their own wx.runs lane (part of #18726).
  • Agent reception P1a-0: prod DNS for community.smarterweather.com (zone, delegation, cert).
  • Freshness-monitor: public status data for the redesigned status page (data time, cause detail, provider names, incident timelines).
  • Internal chat tier never degrades to fast; cap 250/month, outside system budget.
  • Wx-reader: asset resolution: possible stale bundle_now byte_size read, then attribute the ~100 ms miss cost.
  • Sw-ui-web + web chat: React wrappers over sw-scene-web, ops consumer, a11y, Skycons, snapshot map.
  • Freshness-monitor: score staleness on data valid time, not only arrival time (AirNow frozen 4 h while status stayed green).
  • Writer: sky_optics finite-share guard so a NaN-filled input never emits a partly-empty row (root cause fixed by #18487).
  • Route ops-mode UI by question shape, decision first (dark).
  • Map(frame): map_chrome_v2 flag and catalog product-bar taxonomy.
  • Sw-api /v1/weather/route: SPC convective and WPC excessive-rainfall outlooks along the route (route weather A2c).
  • Sw-api, wx-agent: pin libs/wxblend v0.24.1 (sub-half-inch snow accumulation).
  • Wx-pipeline: quantize_linear truncates instead of rounding (systematic low bias up to one step).
  • Writer: store NBM 1 h qpf as uint16 (0.39 mm quantization shows on cards after #18702).
  • Feat(wx-pipeline): viz ledgers carry frame validity derived from processing rules.
  • Ui_op stream, data by reference, one repair round (dark).
  • Wx-pipeline: day bundles for MRMS QPE 06h/24h and no full-download fallback after deadline (verify-burst contention).
  • Sw-api /v1/weather/route: alerts along the route (route weather A2b).
  • Bound render_ui actions by client capabilities.
  • Viz-catalog + web: catalog-described views (product domain, view camera/floating).
  • Wx-reader + libs/wxreader: active NWS alerts along a path (route weather A2a).
  • Nexrad: decommission nexrad-start-service and nexrad3-ledger (eMudhra follow-up).
  • Viz-catalog: remove satellite companions and relabel GOES views.
  • Wx-reader: memory climbs steadily between deploys since 2026-10-24 (82.4% peak, 24 h gate failed).
  • Sw-agent: resolve sw-ui-spec scene $refs and drop an uncompilable component instead of 400ing the turn.
  • Site guide: plans article writes overage as $0.1 instead of $0.10.
  • Sw-mcp: forecast _sources should cite only the products behind the returned values.
  • Sw-api: coverage uses the batched state lookup (A2a-0, part 2).
  • Wx-pipeline reader: parallel point shards on the latest ladder and parallel 3D cell reads.
  • Wx-pipeline reader: config-declared feature-proximity index replaces the per-point GLM lightning SQL.
  • Sw-mcp: any agent can find and call every tool in-session (find_tools + call_tool).
  • Site guide: ask box appears ~5 s after FAQ page load (waits on cold status preflight).
  • Wx-reader + libs/wxreader: batched state lookup for coverage (A2a-0, part 1).
  • Sw-mcp + sw-agent: weather provenance to the chat sources event.
  • Sw-mcp: tool-deferring hosts get every toolset at POST /.
  • Site-guide: register site_guide_asked so ask-box usage reaches the lake.
  • Wxblend: export the FMH-1 12-h history request so sw-api and wx-agent stop mirroring lib internals.
  • Wx-reader: multi-point cold reads fit the budget (parallel 4D cells with a process-wide cap, batched lightning and land snap) for /v1/weather/route.
  • Wxbase: refresh ca-certificates and certifi for the eMudhra CA compromise; rebuild the writer.
  • Wx-pipeline reader: MRMS truth windows come back truncated because the bundle_now stage reads cells serially and starves the per-timestep fallback.
  • Sw-api: daily row serves null for known zero values (precip_probability, cloud, wind, CAPE).
  • Site-guide: grader rejects comma-formatted article numbers; site_guide_asked telemetry never delivered.
  • Wx-agent: serve null, never a fabricated value, for unresolved current/hourly/daily fields.
  • Sw-api: /v1/weather/batch makes single-point reader calls in waves of 5 locations (iOS 10-12 locations p50 ~1.0-1.2 s).
  • Sw-api: POST /v1/weather/route (A1, path-in route weather, internal flag).
  • Lambdas(python): distrust emSign ECC Root CA - G3 on Amazon Linux 2023 images.
  • Lambdas(node): rebuild Node 22 Lambda images built before the eMudhra CA fix.
  • Wx-pipeline: one name per sea-level reduction (fix HRRR MSLMA, rename RRFS MSLET); uint16 pressure quantization.
  • Site-guide: prod launch (prod stack, Turnstile, preflight, budget alert, prod flag).
  • Geocode_address: document-level address retrieval and proximity ranking.
  • Nwws-reader: remove the 6h backfill override and log CAP parse failures once.
  • Wx-pipeline: remove the concluded wx_hrrr_quant_shadow arm (verify schedule, verify entry, writer rule, flag).
  • Sw-api, wx-agent: use wxblend.ForecastWindow (consumer of #19679).

MCP

  • Sw-api: path on /v1/series with the shared route sampler (ADR 082 Phase 3 d).
  • Sw-mcp widget: hide ui/update-model-context from the user on every host (annotations.audience) and stamp each map card's context with its result time.
  • Wx-reader + libs/wxreader: path on the generic feature door, per-feature crossings (ADR 082 Phase 3 d prerequisite).
  • Sw-mcp: with the map card attached, link the interactive map (open_map_url) instead of the static image_url.
  • Sw-api: /v1/features/{product_id}, area, reference layers and nws_alerts public (ADR 082 Phase 3 b, closes #18017).
  • Fix(gis): weight block-group population by land area, not water.
  • Sw-mcp: tell the model what the map widget shows (frames, layers, interactivity) when the envelope is attached.
  • Sw-mcp map widget: update model context only on settled user changes (ChatGPT composer blocked by re-sent context).
  • Sw-api: /v1/series operators and local times; /v1/windows on the shared scan (ADR 082 Phase 3 a, closes #18334).
  • Wx-reader + libs/wxreader: generic feature door, table stores, declared aggregates, check 21 (ADR 082 Phase 3 b, #18017).
  • Sw-mcp + sw-agent: get_data over grid and snapshot replaces query_dataset (ADR 082 Phase 3 c1).
  • Gis-pipeline + db + catalog: ACS B01003 block-group population, one population method, feature-concept roles (ADR 082 Phase 3 b).
  • Web: sunset card polish (event-aware header, scaled curve, sky score ramp, coverage from data).
  • Wx-pipeline: autoscale the satellite lane (2-4), stop deploys resetting lane capacity, East Meso 2 true color.
  • Sw-mcp: fit the map widget result budget with an encoded model image and log every widget drop.
  • Data primitives Phase 2b: get_forecast hourly fold, get_forecast_skill map fold.
  • Data primitives Phase 2b-0: instructions head as the search prompt, check 22 description rubric.
  • Sw-mcp map widget: respect host safe-area insets (ChatGPT composer covers fullscreen playback controls).
  • Meso true color: East Meso 1 + floating-sector tile seam.
  • Sw-mcp: observable flag deadlines, ring pre-warm at auth, list-time deadline.
  • Wx-pipeline: local_timezone day boundary + hours coverage for observed daily rollups.
  • Data primitives Phase 2a: find_places, search_data, describe_data, get_status renames.
  • Sw-mcp ui: CORS-faithful scene harness, still=/image= diagnostics, ChatGPT invocation strings.
  • Data primitives Phase 2a-0: strict-safe schemas, get_route_weather flatten, checks 11 and 13.
  • Sw-mcp: scene_map widget, the whole D22 board.
  • Viz-catalog: publish GOES-West CONUS view.
  • Data primitives Phase 1a: catalog v2 blocks, reference layers, sw-api/sw-mcp serving.
  • One agent: checkpoints not made-up paths, ask before substituting a channel (#20751 items 3-4).
  • Sw-agent one agent: deferred-tool discovery (route tool denied) and cold-turn prompt size (T3 follow-up).
  • Clients + viz-catalog: floating 1-min mesoscale views.
  • Genui: find_best_window light: day|night|any and max_cloud_cover (stargazing).
  • Genui: find_best_window starts windows at sunrise inside a sample; decision card cites readable sources.
  • Sw-api freshness: run_lane: product products report their source's run and data age.
  • Sw-mcp + sw-agent: capability index, reachability guard, ADR 079 (one agent T1).
  • Wx-pipeline: ingest GOES-East and GOES-West mesoscale 1-min sectors.
  • Wx-pipeline: ingest GOES-West CONUS (PACUS) 5-min imagery.
  • Fix(mcp-apps): ChatGPT shows "CSP off" because widgets send only _meta.ui.csp; also send openai/widgetCSP.
  • Sw-mcp widget probe reads the host context before ui/initialize answers (platform/modes/caps unknown on ChatGPT).
  • Genui: windows by reference on decision_card (model points, host resolves /v1/windows).
  • Sw-mcp: widget host probe reads the keyless basemap alerts feed.
  • Sw-mcp widget: SI (kelvin) temperatures print a degree sign (°K, 290°).
  • Sw-mcp widget: internal-ring host probe and instance supersession (MCP Apps host evidence for the map widget).
  • Feat(wx-pipeline): viz ledgers carry frame validity derived from processing rules.
  • Sw-mcp widget: Skycons icons with a vocabulary guard, white brand mark, full-width daily strip (claude.ai dogfood fixes).
  • Viz-catalog: remove satellite companions and relabel GOES views.
  • Sw-mcp: MCP Apps contract v2 (widget in result _meta, capability-gated, ext-apps 2.x view).
  • Sw-mcp: forecast _sources should cite only the products behind the returned values.
  • Sw-mcp: any agent can find and call every tool in-session (find_tools + call_tool).
  • Sw-mcp + sw-agent: weather provenance to the chat sources event.
  • Sw-mcp: tool-deferring hosts get every toolset at POST /.
  • Sw-mcp: sign in or pay - 401 for identified interactive hosts on anonymous paid calls, 402 default.
  • Sw-mcp: log caller identity (Client, UaFamily, Ua) on tool.error_count.
  • Wx-pipeline: one name per sea-level reduction (fix HRRR MSLMA, rename RRFS MSLET); uint16 pressure quantization.
  • [sw-mcp] Ask which place on location_ambiguous via MCP 2026-07-28 form elicitation.

Portal

  • Sw-api: /v1/features/{product_id}, area, reference layers and nws_alerts public (ADR 082 Phase 3 b, closes #18017).
  • Fix(gis): weight block-group population by land area, not water.
  • Agent reception P2-c: MCP list_ideas and vote_idea.
  • Web: portal data sources read source.credits[] and label census/overture/osm (ADR 082 Phase 3 prerequisite).
  • Data primitives Phase 2b: get_forecast hourly fold, get_forecast_skill map fold.
  • Data primitives Phase 2a: find_places, search_data, describe_data, get_status renames.
  • Sw-api: adopt wxblend v0.26.0 (observed today high, no made-up extremes).
  • Route weather: local times in /v1/weather/route (#20751 item 1).
  • Fix(web): footer link prefetches 404 (missing trailing slashes in shared footer paths).
  • Sw-api + wx-agent: include=sky enriches the astro block; flag sky_enabled.
  • Genui: find_best_window light: day|night|any and max_cloud_cover (stargazing).
  • Status: L2 data details and incident detail pages per the Claude Design boards.
  • Site chrome: one sizing system across apex, developers and status (84rem shell, shared footer, title scale).
  • Basemap-style: move Americana vendor URLs so Chrome drops its cached no-CORS sprite and shields (#20392 follow-up).
  • Web: one site header across smarterweather.com, developers and status (snap to developers shell).
  • Map(basemap): Graphite default + Paper light basemaps.
  • Sw-mcp: any agent can find and call every tool in-session (find_tools + call_tool).
  • Site guide: ask box appears ~5 s after FAQ page load (waits on cold status preflight).
  • Sw-mcp: tool-deferring hosts get every toolset at POST /.
  • Sw-api: POST /v1/weather/route (A1, path-in route weather, internal flag).
  • Site-guide: prod launch (prod stack, Turnstile, preflight, budget alert, prod flag).
  • Web(developers): #19590 review round 2 follow-ups (leaked-keys, errors, pack URLs, llms.txt).
AppAPIMCPDeveloper platform

Week of October 16

App

  • Web(developers): launch-page rewrite in the developer voice, and merges.
  • Web: alert map preview, area links, and cold-link landing over a location.
  • Location search: autosuggest bias should prefer the user's location over the viewed forecast.
  • Web(apex): launch-page rewrite in the marketing voice, and cuts.
  • Wxblend: day/night half labels disagree with their hours (dry-half precip, phantom family, thunder, seed vs hourly).
  • Web: alert tap opens detail in place; fix alert-route fullscreen map (header, exit, tray X).
  • Fix(wxblend): precip_type enum, rain-and-snow threshold and mix, thunder-then-snow labels (v0.16.0).
  • Fix(wx-agent): get_forecast says 'chance of rain' at 26 F where sw-api says snow.
  • Web: location page cards on the sky — thin plate material, one scale, Skycons, 10-day range bars, real map preview.
  • Web: sky glass performance — blur in the WeatherCanvas render pass, device tiers, material constants, measurement plan.
  • Web: foundation tokens (type, spacing, radii, motion), palette B light / dark, prefers-color-scheme.
  • Web map: blank corner at CONUS view since companion in-view gating.
  • Web: location page states — not found, outside coverage, bad coordinates, loading, tablet truncation.
  • Web map: companion regions never animate (exact-timestamp match against primary).
  • Web: location alerts — severity dot + word, place-local times, and the hard-coded "Severe Weather" card title.
  • Brand: app colour roles in assets/brand (app: block, schema, validator, generator).
  • Web chat: answer-quality bugs seen in the review — rain question → temperature card, card range ≠ columns, seven-card pile-up, "corrected itself" leak, permanent usage bar at 111 %.
  • Ios map: stop re-downloading loaded frames on ledger refresh.
  • Web map: load companion regions only when in view.
  • Android map: add an HTTP disk cache for map data.
  • Web map: disarm the satellite loop on Stop.
  • Web map: bound decoded frames queued in CompositeLoader.streamFrames.
  • Web map: use hd composite tiers on mobile instead of qhd.
  • Web map: set a real tile cache cap and remove dead MapLibre calls in Map.tsx.
  • Sw-api /v1/weather: current.time is request time and feels_like is not wind chill/heat index (contract).
  • Wxblend: missing day-period cloud read as 0% in day/night conditions and fillDailyFromHourlyProducts meanOf.
  • Web weather canvas paints near-clear sky under mostly cloudy (layer fractions x genus weights collapse cover).

API

  • Web(developers): launch-page rewrite in the developer voice, and merges.
  • Site-guide: bound the cost of the live ask-box endpoint (thread cap, cache key, global daily cap).
  • Nwws-reader: CAP alerts dropped, JAXB lookup fails on threads with the system context class loader.
  • Reader: point-alert cache keyed on a 0.01° cell serves a neighbour's result for exact-point queries.
  • Wxblend: presence flags for daily PoP, wind, humidity, cloud cover, CAPE and snow level (lib half of #19714).
  • Nwws-reader: move to Java 25 so the JVM stops trusting the compromised eMudhra CAs.
  • Db: alert area points must lie inside the alert polygon (storm-based warnings).
  • Shared MCP-server helper lib for sw-mcp / sw-onboarding / sw-ops-mcp; align sw-mcp error classification and seam fail-soft.
  • Wx-pipeline: nowcast writer lane holds ~7 of 8 GiB at idle (leaked import traceback pins ~3 GiB + tcmalloc retention).
  • Sw-api/wx-agent: adopt wxblend v0.17.0 half labels (#19632 consumer).
  • Web(apex): launch-page rewrite in the marketing voice, and cuts.
  • Data-api: remove the #19608 address-display one-shot after both envs report 0.
  • Web: pilot rewrite in the new voice — apex home, developers overview, quickstart.
  • Address results: consistent display formatting (title case, suffixes, city from ZIP).
  • Sw-onboarding: MCP TypeScript SDK v2 + zod 4.
  • Sw-api: representative_place and per-area zone coordinates on /v1/alerts.
  • Data-api: remove the #17235 address-label one-shot after both envs report 0.
  • Static-map-service: clean per-alert area render for the in-app alert preview.
  • Wx-pipeline reader + libs/wxreader: alert representative_place and areas (#19563 PR B).
  • Db: alert areas + representative_place columns, trigger, and backfill (#19563 PR A).
  • Sw-mcp: migrate to the MCP TypeScript SDK v2 (MCP 2026-07-28).
  • Wx-pipeline: satellite writer lane loses tasks without SIGTERM (5 in 6 days) at 99% memory.
  • Chore(sw-api,wx-agent): bump wxblend to v0.16.0 (#19472, #19573).
  • Sw-mcp: zod 3 -> zod 4 on MCP SDK 1.32.1 (prep for #19454).
  • Wx-pipeline: cut the batch-binary extraction peak (memmap the -bin file, quantize while streaming, disk-backed 3D stack over 512 MB).
  • Chore(sw-api,wx-agent): bump wxblend to v0.14.0 (H4).
  • Sw-agent: eval fakes and the series summarizer follow the REST-backed catalog triad (query_dataset units/unit_labels/status/paging, describe_dataset catalog shape, summary keeps truncated/next_cursor/data_status).
  • Sw-mcp: list_datasets reads freshness from the REST catalog; drop the top-level freshness record.
  • Chore(sw-api,wx-agent): bump wxblend pin for the snow consistency gate.
  • Sw-mcp, sw-onboarding, sw-ops-mcp + web playground: upgrade @modelcontextprotocol/sdk to 1.32.1 (advisory fixes, tool-input element cap) before the developer launch.
  • Data-catalog: aigefs_surface public on REST; a public.mcp grid/snapshot must be public.rest.
  • Forecast-verify: cut gfs conus cycle shards by cycle age.
  • Fix(user-data-api): migrate saved favorites off the old place centroids.
  • Docs(sw-api): Daily rows span 06:00-06:00 local; totals, aggregates and low described per source.
  • Wx-pipeline: daily products reuse instantaneous standard_names (nbm_daily_surface max wind as wind_speed_10m).
  • Data-catalog: normalize unit spellings and assert the display vocabulary.
  • Sw-mcp: list_datasets lists the public catalog when called without a location.
  • Sw-agent: cap automatic day cards, clear the card ledger on retraction, no UTC hourly subtitle.
  • Retire GFS DUVB; gfs_surface no longer carries duvb, use uv_index for UV.
  • Sw-api /v1/series: 2-minute MRMS windows over ~2 h, or batches over ~5 locations, return 504 (5 s upstream timeout).
  • Catalog: MRMS precip_type is kind=category with empty categories, so 0/1 codes have no labels.
  • Wx-pipeline writer: round noisy uint16 viz frames to 10 significant bits.
  • Sw-api: pin wxblend v0.11.3 (drop gfs_daily_uv fetch, staleness parity).
  • Billing-config: plans.yaml developer features_display copy (Free daily cap is requests, email support).
  • Reader: MRMS time-range catalog lookup takes ~3 s, so every /v1/series MRMS read times out and returns 503.
  • Sw-api /v1/series: a slow MRMS range read returns 200 status=unavailable with no frames, and the empty result is cached.
  • Sw-api /v1/weather: current.time is request time and feels_like is not wind chill/heat index (contract).
  • Fix(wx-pipeline): NBM PTYPE snow and ice-pellet selectors are swapped (all domains).
  • Attribution: /acknowledgements, subprocessors and ATTRIBUTION.md omit ECMWF (CC BY 4.0), EPA AirNow and NASA SPoRT.
  • Api edge: unknown /v1 paths return bare gateway 403 and POST /v1/pois/exposure is unreachable.
  • Wxblend: current.time = observation valid time; feels_like per NWS (wind chill / heat index only).
  • Billing: consumer Free plan says 20 questions per day; enforced limit is a weekly allowance.
  • Catalog: unpublish gfs_daily_uv until the DUVB quantization fix.
  • Reader: /v1/query flags a product whose catalog resolution timed out in product_errors.
  • Forecast-verify: cut cycle shards by cycle age so shards stop writing every CELL# row twice.
  • Wx-pipeline: batch-medium tasks die at concurrent 109-213-variable NBM extractions since #18495; admit heavy work against a per-task memory budget.
  • Wxblend + sw-api: include=uncertainty documents fields it never fills (7/15 hourly, 12/12 daily) and serves undocumented daily fields.
  • Forecast-verify: MRMS truth withheld most waves bunches nbm conus precip scoring.
  • Sw-mcp: units (imperial | metric) on the remaining tools that return values with units.
  • Sw-api, wx-agent: adopt wxblend BlendDailyPrepared in the daily fallback; both-path uv_index_max test.
  • Wx-pipeline: MRMS AK/HI reflectivity and precip type publish raw variable ids (seamlesshsr_*, precipflag_*) instead of the CONUS standard_names.
  • Wx-agent: apply the state coverage verdict on /v1/weather and /v1/astro (PR1 of #18731).
  • Sw-mcp: trial and rate budget in result _meta; does a 400 argument error spend a trial call.
  • Sw-api: storm-reports and record-events accept hours the reader silently clamps.
  • Data-catalog + sw-mcp: HeatRisk has no /v1/point block, MCP serves 3 of 7 days; heatrisk/airquality_forecast/uv_index horizons null.
  • Sw-agent evals: shared weather fake is wall-clock dependent; SW Agent CI red on every PR since 2026-10-17.
  • Ratelimit: replace float token math with a fixed-point/GCRA bucket in sw-api and sw-mcp (removes the epsilon pair).
  • Forecast-verify: shard nbm conus (10Z wave duration alarm, 805-807 s).
  • Wx-pipeline writer: HeatRisk (ordinal OM grids) serves the encoding (~1.0-1.05), not the 0-4 level, and stamps day N a day late.
  • Sw-api: accept location= and zip= (later address/POI) on the four lat/lon-only point routes.
  • Web-next/docs: portal copy fixes (broken relative links, stale mirror link, private-issue links, RFC, cache labels, small inaccuracies).
  • Data-catalog: WSSI day 1-3 advertised public on REST and MCP with no data door; mark public:false until #10707.
  • Rate limiter: idle eviction / rebuild resets the per-key daily quota.
  • Fix(sw-api): nowcast already_occurring disagrees with starts_at; document ends_at.

MCP

  • Shared MCP-server helper lib for sw-mcp / sw-onboarding / sw-ops-mcp; align sw-mcp error classification and seam fail-soft.
  • Mcp-server-js: shared MCP-server helper lib; sw-mcp adopts it (warn classification, fail-soft unknown-tool seam).
  • Address results: consistent display formatting (title case, suffixes, city from ZIP).
  • Sw-onboarding: MCP TypeScript SDK v2 + zod 4.
  • Sw-mcp CD: post-deploy probe expects 406 on bare POST /, SDK v2 answers 400.
  • Sw-mcp: migrate to the MCP TypeScript SDK v2 (MCP 2026-07-28).
  • Sw-mcp: zod 3 -> zod 4 on MCP SDK 1.32.1 (prep for #19454).
  • Sw-agent: eval fakes and the series summarizer follow the REST-backed catalog triad (query_dataset units/unit_labels/status/paging, describe_dataset catalog shape, summary keeps truncated/next_cursor/data_status).
  • Sw-mcp: list_datasets reads freshness from the REST catalog; drop the top-level freshness record.
  • Sw-mcp: describe_dataset v2 and query_dataset units/format/168-point cap (ADR 074 P1-8b).
  • Sw-mcp: query_dataset reads /v1/series and list_datasets reads /v1/catalog?include=freshness (ADR 074 §3.3 transport convergence for the catalog triad).
  • Sw-mcp, sw-onboarding, sw-ops-mcp + web playground: upgrade @modelcontextprotocol/sdk to 1.32.1 (advisory fixes, tool-input element cap) before the developer launch.
  • Data-catalog: aigefs_surface public on REST; a public.mcp grid/snapshot must be public.rest.
  • Sw-mcp x402: payment-verified identity is written into the shared per-HTTP-request context, so other tool calls in the same request can run as paid.
  • Wx-pipeline: daily products reuse instantaneous standard_names (nbm_daily_surface max wind as wind_speed_10m).
  • Sw-mcp: ~40% of prod tool calls error with no logged reason (get_forecast 59/130, list_datasets 26/42, get_alerts 17/43).
  • Data-catalog: normalize unit spellings and assert the display vocabulary.
  • Sw-mcp: list_datasets lists the public catalog when called without a location.
  • Retire GFS DUVB; gfs_surface no longer carries duvb, use uv_index for UV.
  • Catalog: MRMS precip_type is kind=category with empty categories, so 0/1 codes have no labels.
  • Sw-mcp: list_datasets/query_dataset ignore catalog public flags (serve non-public products).
  • Sw-mcp: catalog says 36 tools at the root but it serves 14; tool-not-found gives no toolset hint.
  • Wx-agent: apply the state coverage verdict on /v1/weather and /v1/astro so sw-mcp can drop its duplicate lookup.
  • Catalog: unpublish gfs_daily_uv until the DUVB quantization fix.
  • Sw-mcp: units (imperial | metric) on the remaining tools that return values with units.
  • Wx-pipeline: MRMS AK/HI reflectivity and precip type publish raw variable ids (seamlesshsr_*, precipflag_*) instead of the CONUS standard_names.
  • Wx-agent: apply the state coverage verdict on /v1/weather and /v1/astro (PR1 of #18731).
  • Sw-mcp: trial and rate budget in result _meta; does a 400 argument error spend a trial call.
  • Data-catalog + sw-mcp: HeatRisk has no /v1/point block, MCP serves 3 of 7 days; heatrisk/airquality_forecast/uv_index horizons null.
  • Ratelimit: replace float token math with a fixed-point/GCRA bucket in sw-api and sw-mcp (removes the epsilon pair).
  • Wx-pipeline writer: HeatRisk (ordinal OM grids) serves the encoding (~1.0-1.05), not the 0-4 level, and stamps day N a day late.
  • Data-catalog: WSSI day 1-3 advertised public on REST and MCP with no data door; mark public:false until #10707.
  • Rate limiter: idle eviction / rebuild resets the per-key daily quota.
  • Fix(sw-api): nowcast already_occurring disagrees with starts_at; document ends_at.

Portal

  • Web(developers): launch-page rewrite in the developer voice, and merges.
  • Db: alert area points must lie inside the alert polygon (storm-based warnings).
  • Web(apex): restore the mission statement on About and the home link preview.
  • Sw-api/wx-agent: adopt wxblend v0.17.0 half labels (#19632 consumer).
  • Web(apex): launch-page rewrite in the marketing voice, and cuts.
  • Web: pilot rewrite in the new voice — apex home, developers overview, quickstart.
  • Web playground MCP client: @modelcontextprotocol/client v2 (auto era).
  • Address results: consistent display formatting (title case, suffixes, city from ZIP).
  • Fix(web,docs): contradictions between legal, pricing and llms-full before launch.
  • Sw-mcp: migrate to the MCP TypeScript SDK v2 (MCP 2026-07-28).
  • Fix(web): sandbox key that timed out reads as "calls used up".
  • Chore(sw-api,wx-agent): bump wxblend to v0.16.0 (#19472, #19573).
  • Sw-mcp: zod 3 -> zod 4 on MCP SDK 1.32.1 (prep for #19454).
  • Web: footer Security link opens the 404 page (next/link to /.well-known/security.txt).
  • Sw-mcp, sw-onboarding, sw-ops-mcp + web playground: upgrade @modelcontextprotocol/sdk to 1.32.1 (advisory fixes, tool-input element cap) before the developer launch.
  • Docs(sw-api): Daily rows span 06:00-06:00 local; totals, aggregates and low described per source.
  • Wx-pipeline: daily products reuse instantaneous standard_names (nbm_daily_surface max wind as wind_speed_10m).
  • Data-catalog: normalize unit spellings and assert the display vocabulary.
  • Catalog: MRMS precip_type is kind=category with empty categories, so 0/1 codes have no labels.
  • Apex: blog in nav with no posts, sitemap/canonical mismatch, /accuracy numbers client-only, home image weight, stale copy.
  • Fix(web): sw-warning / sw-success text contrast (warning-text token, dashboard badges, banners).
  • Fix(web): /accuracy skill percentages use the fill scale as text colour (fails AA light and dark).
  • Fix(web): playground content wider than the developers header.
  • Fix(web): Open App pill fails text contrast (4.2:1) on every page.
  • Fix(web): remaining text contrast on developer pages (sidebar active link, badges, footer copyright, search placeholder).
  • Sw-api /v1/series: a slow MRMS range read returns 200 status=unavailable with no frames, and the empty result is cached.
  • Sw-api /v1/weather: current.time is request time and feels_like is not wind chill/heat index (contract).
  • Attribution: /acknowledgements, subprocessors and ATTRIBUTION.md omit ECMWF (CC BY 4.0), EPA AirNow and NASA SPoRT.
  • Sw-mcp: catalog says 36 tools at the root but it serves 14; tool-not-found gives no toolset hint.
  • Api edge: unknown /v1 paths return bare gateway 403 and POST /v1/pois/exposure is unreachable.
  • Developers docs: Free is non-commercial on /pricing, drop /livez from /authentication, Node 22.20+ for npx skills.
  • Fix(web): fold AA link colours into theme.link site-wide, drop the AA variants.
  • Fix(web): FooterStatusPill fetches status.json once per instance.
  • Fix(web): KeyNote Quickstart link fails AA contrast.
  • Wxblend + sw-api: include=uncertainty documents fields it never fills (7/15 hourly, 12/12 daily) and serves undocumented daily fields.
  • Fix(web): playground sends the site-key GET /v1/weather twice on first load.
  • Sw-api, wx-agent: adopt wxblend BlendDailyPrepared in the daily fallback; both-path uv_index_max test.
  • Docs: add a "Build a weather app" guide and a compact /v1/weather field reference.
  • Fix(web): plain key line in curl samples instead of the .env sed loader.
  • Sw-api: storm-reports and record-events accept hours the reader silently clamps.
  • Data-catalog + sw-mcp: HeatRisk has no /v1/point block, MCP serves 3 of 7 days; heatrisk/airquality_forecast/uv_index horizons null.
  • Feat(web): developer portal nav regroup, slim overview, /guides (v3 PR 5).
  • Sw-api: accept location= and zip= (later address/POI) on the four lat/lon-only point routes.
  • Web-next/docs: portal copy fixes (broken relative links, stale mirror link, private-issue links, RFC, cache labels, small inaccuracies).
  • Developer playground: live answers on load with the site key; sample fallback with age badge.
  • Fix(sw-api): nowcast already_occurring disagrees with starts_at; document ends_at.
  • Developer portal: VS Code-style code blocks, copy on every block, remembered language.
AppAPIMCPDeveloper platform

Week of October 9

This week, Smarter Weather introduced updates to data storage, API features, and user interface improvements. Several enhancements focus on providing more accurate and accessible weather information across platforms.

Highlights

  • Requests rejected by the trial gate still count against the rate limit and daily quota.
  • The developer playground v3 includes new interactive features.

App

  • The atmosphere data on Android and iOS treats PM2.5 as an AQI sub-index, with smoke thresholds around 100/150 AQI.
  • AQI categories are now truncated instead of rounded.
  • Today's weather card updates earlier in the day.
  • iOS now shows outside-coverage messages, previews, and GPS home.
  • Android now shows outside-coverage messages and previews.
  • Daily, day/night, and hourly precipitation amounts are available from the NBM/GFS 6-hour buckets.
  • Outside-coverage notices are shown, with no auto-report and recent data rows.
  • Reader errors now include typed BadRequestError with status and detail.
  • UV index data across the US now reflects correct hourly and daily values.
  • Add a trigram index on GIS POI names to improve venue search.
  • Decode astronomical no-event sentinels for polar day/night and moon phases.
  • Add data freshness method for health data endpoint.
  • Location resolution and reverse geocoding are cached for 24 hours.
  • The CPC outlook drill-down now shows the CPC discussion for week 3-4, monthly, and 6-10/8-14 periods.
  • The seasonal outlooks now include a lead-aware map and catalog.

API

  • Requests rejected by the trial gate still count against the rate limit and daily quota.
  • Openapi documentation has been updated to remove internal jargon, fix shared parameters, and describe undocumented parameters and warning codes.
  • A stale_source warning now appears for stale AirNow AQI data, keyed by product ID.
  • A per-minute 429 rate limit still consumes a daily request quota, with reset and retry times rounded up by one second.
  • Coverage checks now compare state rather than grid boxes.
  • AirNow AQI sub-indices are documented as µg/m³ or ppb.
  • The developer portal now includes playground links and an overview hero.
  • Coverage gating now applies to all point routes in the API.
  • The get_path_exposure function now considers civic POI exposure on developer_location_search.
  • The pipeline publishes partial edge days for NBM daily sums and adjusts for misplacement of 6-hour buckets.
  • The /v1/series endpoint now returns unavailable for certain time-range reads due to store skipping.
  • Source no-data values are served as 0% for urban/water mask sources, with reserve_stored_zero set.
  • Out-of-coverage trigger locations are rejected at creation, with user notification; existing non-US triggers are audited.
  • Coverage documentation now states US-only coverage and removes non-US examples.
  • The API can now be tried without an account, using the sandbox key panel and playground D.
  • Developers can now access the API from developers.smarterweather.com in CORS.
  • List available MCP tools with the X-SW-Toolsets header.
  • Toolset endpoints now support the /x/{toolset} path and X-SW-Toolsets header.
  • Precipitation samples now include total_precipitation sums under the standard name 'precipitation'.
  • Forecast windows now align with the native step size for each product.
  • The query endpoint now resolves standard variables against the served key.
  • The point endpoint uses catalog name; series uses standard_name, with a unified variable vocabulary.
  • Responses from the API now include signals about coverage and territory.
  • The API now restricts exposure requests to certain developer locations.
  • The observations API now returns all stations regardless of provided location.
  • The trial API body now documents the client name and problem types.
  • Rate limiting headers now report burst limits on all tiers.
  • The API omits alerts and outlooks when they are empty.
  • The API now shows no event for polar day/night when the day length is -1.
  • Include address and POI in public autosuggest for developer keys.
  • Configure and verify the AIGEFS ensemble statistics product.
  • Provide location search by address or POI for developers and chat.
  • Extend the daily astronomical data fetch window by one day.
  • Maintain one polygon in area data for live alerts.
  • Add freshness to catalog endpoints and replace allowlist with public REST.
  • The alerts search API now supports routes for lightning, text products, and climate reports.
  • A new rule for sky conditions in the CONUS region has been added.
  • Weather data responses can now be formatted as concise or detailed with specific fields.
  • The alerts detail API now uses caller-specific cache control headers.
  • The nowcast API now returns empty results for non-CONUS regions without a reader call.
  • The API now serves CPC week 3-4, monthly, and seasonal discussions in /v1/outlooks/climate and get_outlooks.
  • The data API now polls CPC web discussions for specified periods into text_products.
  • The API rejects non-finite or out-of-range latitude/longitude points with a 400 error.
  • The pipeline now selects cloud base, top, and ceiling heights, PWAT, AOTK, COLMD, MASSDEN, and SBT synthetic brightness temperature.
  • The pipeline now ingests ABI L2 ACHAC (cloud-top height) and ACMC (clear-sky mask) data from GOES-East and GOES-West.
  • The SW-agent update_trigger tool and PATCH /triggers/:id now support additional fields like description and condition.
  • The system rejects non-finite or out-of-range coordinates with an error.
  • The seasonal outlooks now include a lead-aware map and catalog.

MCP

  • The ratelimit tool now mirrors the behavior of RPM 429, consuming daily quota and adding 1 second to Retry-After/Reset.
  • Tool-description examples in Sw-mcp now work live, with improved REST and MCP parity.
  • Coverage checks now compare state rather than grid boxes.
  • AirNow AQI sub-indices are documented as µg/m³ or ppb.
  • The get_period_totals function now sums precipitation over 6-hour buckets.
  • The get_path_exposure function now considers civic POI exposure on developer_location_search.
  • The pipeline publishes partial edge days for NBM daily sums and adjusts for misplacement of 6-hour buckets.
  • The /mcp-server pages are regenerated from mcp-tools.json, listing current tools.
  • The developer portal origin is now allowed on the hosted MCP.
  • Coverage documentation now states US-only coverage and removes non-US examples.
  • The MCP response contract now includes structured content, meta, error shape, and detail level.
  • List available MCP tools with the X-SW-Toolsets header.
  • Toolset endpoints now support the /x/{toolset} path and X-SW-Toolsets header.
  • Precipitation samples now include total_precipitation sums under the standard name 'precipitation'.
  • Forecast windows now align with the native step size for each product.
  • Coverage checks now include warnings for out-of-coverage locations.
  • Responses from the API now include signals about coverage and territory.
  • The trial API body now documents the client name and problem types.
  • Rate limiting headers now report burst limits on all tiers.
  • Setup documentation for OAuth and skill configuration has been corrected.
  • Configure and verify the AIGEFS ensemble statistics product.
  • Provide location search by address or POI for developers and chat.
  • Add freshness to catalog endpoints and replace allowlist with public REST.
  • Search locations now include address and point of interest details.
  • A new rule for sky conditions in the CONUS region has been added.
  • The API now serves CPC week 3-4, monthly, and seasonal discussions in /v1/outlooks/climate and get_outlooks.
  • The pipeline now selects cloud base, top, and ceiling heights, PWAT, AOTK, COLMD, MASSDEN, and SBT synthetic brightness temperature.
  • The pipeline now ingests ABI L2 ACHAC (cloud-top height) and ACMC (clear-sky mask) data from GOES-East and GOES-West.
  • The seasonal outlooks now include a lead-aware map and catalog.

Portal

  • Developer playground v3 includes a question bar, answer canvas, drawers, and command palette.
  • Openapi documentation has been updated to remove internal jargon, fix shared parameters, and describe undocumented parameters and warning codes.
  • A stale_source warning now appears for stale AirNow AQI data, keyed by product ID.
  • A per-minute 429 rate limit still consumes a daily request quota, with reset and retry times rounded up by one second.
  • The documentation now explains the free tier path for developers.
  • AirNow AQI sub-indices are documented as µg/m³ or ppb.
  • The developer portal now includes playground links and an overview hero.
  • Developer playground v2 now includes a value layer for maps and decision charts.
  • A new inspector-style tool runs on the developer portal for MCP.
  • Reference pages on the developer portal now use the playground key strip.
  • Coverage gating now applies to all point routes in the API.
  • The /mcp-server pages are regenerated from mcp-tools.json, listing current tools.
  • A new anonymous-first API playground is available in developer playground v2.
  • Coverage documentation now states US-only coverage and removes non-US examples.
  • The API can now be tried without an account, using the sandbox key panel and playground D.
  • You can try the web API with your own key on the developer portal.
  • The MCP response contract now includes structured content, meta, error shape, and detail level.
  • Toolset endpoints now support the /x/{toolset} path and X-SW-Toolsets header.
  • Developers.smarterweather.com/ now redirects to /overview/.
  • The theme is now correctly applied on developers.smarterweather.com/.
  • Forecast windows now align with the native step size for each product.
  • The developer portal has updates to theme, logo, pricing, and plans.
  • The point endpoint uses catalog name; series uses standard_name, with a unified variable vocabulary.
  • Developers.smarterweather.com/ now redirects to the main site.
  • The mobile navigation now appears as a full-screen sheet.
  • Tap targets on mobile are now 44 pixels.
  • The mobile footer is now more compact.
  • Responses from the API now include signals about coverage and territory.
  • The API now restricts exposure requests to certain developer locations.
  • Marketing text on the web now uses the full content column on every page.
  • Page transitions now animate across the marketing site.
  • Marketing pages now render correctly after navigating back from the portal.
  • The observations API now returns all stations regardless of provided location.
  • The trial API body now documents the client name and problem types.
  • Rate limiting headers now report burst limits on all tiers.
  • Setup documentation for OAuth and skill configuration has been corrected.
  • The API omits alerts and outlooks when they are empty.
  • The API now shows no event for polar day/night when the day length is -1.
  • Include address and POI in public autosuggest for developer keys.
  • Add freshness to catalog endpoints and replace allowlist with public REST.
  • The alerts search API now supports routes for lightning, text products, and climate reports.
  • Weather data responses can now be formatted as concise or detailed with specific fields.
  • The alerts detail API now uses caller-specific cache control headers.
  • The API now serves CPC week 3-4, monthly, and seasonal discussions in /v1/outlooks/climate and get_outlooks.
  • The API rejects non-finite or out-of-range latitude/longitude points with a 400 error.
AppAPIMCPDeveloper platform

Week of October 2

This week, Smarter Weather introduced updates across various features, including enhancements to forecast data, location handling, and API capabilities. Several improvements aim to provide more accurate and accessible weather information for users and partners.

Highlights

  • Extreme Heat Warning/Watch alerts are now included in the notification catalog.
  • CPC outlook rows are now visible in iOS and Android outlook pickers.

App

  • CPC outlook rows are now visible in iOS and Android outlook pickers.
  • CPC outlook inspector card shows valid period, issue date, and probability context.
  • Extreme Heat Warning/Watch alerts are now included in the notification catalog.
  • CPC official US outlooks are available for multiple time periods.
  • Android now includes street information in chat context for picks and recents.
  • Address picks and recents now include the street in chat context and the widget picker.
  • Address favorites store the street as a label visible in chat.
  • Saved location identities are stored on the server and local kinds are migrated.
  • iOS search v2 now supports unit-aware recents, unlabelled chat Home, and spaceless postal codes.
  • Search on Android has been updated with rule refinements from iOS.
  • iOS search now uses the same rules as Android for location-aware points and keys.
  • The Air Quality card restarts its count-up animation on each re-render.
  • The app now shows a message when search results are unknown-only pages.
  • The address search feature now includes address and POI sections, with better accessibility and empty state handling.
  • The iOS address search now includes address and POI sections, with improved handling of empty states.

API

  • The legacy home location is read to ensure existing homes reach the agent.
  • Triggers now display cron, timezone, place, threshold, delivery method, cooldown, and expiry information.
  • Support for ECMWF AIFS Single data for agents and publisher index.
  • A new schema for period-based CPC climate outlooks is available.
  • Point serving for CPC outlooks is available via reader and API.
  • NOAA AIGFS data is now available for agents.
  • CPC discussions for PMDMRD, PMDTHR, and PMDENS are now ingested.
  • Extreme Heat Warning/Watch alerts are now included in the notification catalog.
  • CPC official US outlooks are available for multiple time periods.
  • Addresses marked as favorites no longer store street labels.
  • The MCP service is now available at the hostname apex.
  • Saved locations include geo_kind, place_id, title, and subtitle.
  • New tools have been added to the forecaster allowlist.
  • Grandfathered price IDs now correctly reflect their plan's tier.
  • Product variable lists in the catalog are now available in the pipeline and SW-MCP; list_datasets has been fixed.

MCP

  • Support for ECMWF AIFS Single data for agents and publisher index.
  • A new schema for period-based CPC climate outlooks is available.
  • Point serving for CPC outlooks is available via reader and API.
  • NOAA AIGFS data is now available for agents.
  • Forecast skill descriptions now specify scope distances of approximately 50 km and 300 km.
  • CPC discussions for PMDMRD, PMDTHR, and PMDENS are now ingested.
  • CPC official US outlooks are available for multiple time periods.
  • The MCP service is now available at the hostname apex.
  • Sunrise and sunset times are provided in UTC and read as local time by agents.
  • The weather forecast display on the web has been cropped for better readability.
  • Product variable lists in the catalog are now available in the pipeline and SW-MCP; list_datasets has been fixed.

Portal

  • A new schema for period-based CPC climate outlooks is available.
  • Point serving for CPC outlooks is available via reader and API.
  • CPC discussions for PMDMRD, PMDTHR, and PMDENS are now ingested.
  • The weather forecast display on the web has been cropped for better readability.
AppAPIMCPDeveloper platform

Week of September 25

This week, Smarter Weather introduced new features for weather data visualization, updates to the user interface, and enhancements to the API and developer tools. Several improvements focus on making weather information clearer and more accessible across platforms.

Highlights

  • Precipitation data from MRMS QPE is now available in the current weather endpoint.
  • The 10-day forecast now shows weekday labels, rain chance, current temperature dots, absolute temperature colors, and thicker bars.
  • Skycons are now used with optical balance in the weather display.
  • The app now shows the plan after purchase, including billing status and account details.

App

  • Temperature delta attributes now include a quantity attribute and unit-neutral labels.
  • The agent face is designed to be readable at small sizes.
  • The stop indicator in web chat shows the happy face as if the turn has finished.
  • The agent character face is mounted in iOS chat, with an empty background and status row.
  • The agent character face is mounted in Android chat, with turn-phase model, empty background, and status row.
  • The app shows the plan after purchase, including billing status on success and account details.
  • Skycons are centered within their boxes using centroid alignment.
  • The inset first and last columns are aligned to the card gutter in the hourly strip.
  • Skycons are now used with optical balance in the weather display.
  • The 10-day forecast now shows weekday labels, rain chance under icons, current temperature dots, absolute temperature colors, and thicker bars.
  • Partial autosuggest results now show a 'still searching / try again' message instead of 'No matches'.
  • The Android upgrade card no longer includes a link; iOS copy has been localized for non-US users.
  • Hourly weather now labels temperatures on the curve, shows rain chance in color, includes a sunset glyph, highlights the current time, and uses compact temperature symbols.
  • The web collection experience has been refined for better user interaction.
  • Cloud sync settings now ignore cloud preferences and read preferences directly from a flat GET request.
  • Skycons are now optically balanced across different weather types.
  • Weather icons for hourly and 10-day forecasts now render at full size.
  • iOS now opens Stripe Checkout in Safari and returns to the app after payment.
  • Autosuggest partial-section status is now accessible.
  • All billing URLs now point to the same pricing page.
  • Consumer catalog now offers a Pro plan at $9.99/month or $79.99/year.
  • The geocode address feature may select the wrong city for partial city names.
  • The iOS map inspector tray now tracks drags more smoothly.
  • The storm-report playhead predicate on iOS now uses NSNumber for better precision.
  • The Hurricane Hunters overlay and inspector mission page are now available on iOS.
  • The Hurricane Hunters overlay and inspector mission page are now available on Android.

API

  • Precipitation data from MRMS QPE is available in the current weather endpoint.
  • The agent character face is mounted in iOS chat, with an empty background and status row.
  • The agent character face is mounted in Android chat, with turn-phase model, empty background, and status row.
  • The app shows the plan after purchase, including billing status on success and account details.
  • Partial autosuggest results now show a 'still searching / try again' message instead of 'No matches'.
  • iOS now opens Stripe Checkout in Safari and returns to the app after payment.
  • The API now passes autosuggest partial status and avoids caching it.
  • All billing URLs now point to the same pricing page.
  • Autosuggest now reports unfinished sections as partial results.
  • Alert expiration times are now aligned with event end times.
  • Consumer catalog now offers a Pro plan at $9.99/month or $79.99/year.
  • The API for sw-api and sw-mcp now only accepts successful responses.
  • Pricing details for developer catalog v2 are now clarified.

MCP

  • New documentation is available for catalog v2 onboarding and usage.
  • The API for sw-api and sw-mcp now only accepts successful responses.

Portal

  • Precipitation data from MRMS QPE is available in the current weather endpoint.
  • The app shows the plan after purchase, including billing status on success and account details.
  • iOS now opens Stripe Checkout in Safari and returns to the app after payment.
  • Pricing card call-to-action buttons are aligned.
  • All billing URLs now point to the same pricing page.
  • Pricing cards are now clearer and checkout is unified across web and apps.
  • New documentation is available for catalog v2 onboarding and usage.
  • Developer API quotas for catalog v2 are now documented.
AppAPIMCPDeveloper platform

Week of September 18

The weather visualization tools now feature new overlays and data sources, such as hurricane tracks and recon data. Additionally, user interface improvements and new trial key management features have been deployed across the platform.

Highlights

  • Hurricane Hunter tracks are now displayed under the radar.
  • The 10-day forecast on the web now displays readable rows with aligned icons.

App

  • Hurricane Hunter tracks are now displayed under the radar.
  • Address autosuggest times out on cold prefixes due to heap fetches and cold probes.
  • Typed city in address autosuggest is ranked by city population, favoring map-bias state.
  • The web map now includes Hurricane Hunters overlay and inspector mission page.
  • The 10-day forecast on the web now displays readable rows with aligned icons.
  • The weather canvas now hides the moon until the disc appears photorealistic.
  • The hold process now finishes loops before fading on /chat.
  • The brand mark hold is shown while /chat access is undecided.
  • Do not hold the chat header while access is undecided.
  • Display chat paint before chat access is determined.
  • Device location sampling is now available on web, iOS, and Android.
  • Update address search v2 to include new API and web tray integration.
  • Add full-tier god rays and moon to the weather canvas.
  • Severe alerts now ignore playhead on the National Radar HRRR forecast.

API

  • Address autosuggest now includes a per-state street index with partial city support.
  • House-number queries in address autosuggest now always return empty results when timing out.
  • The portal's human path now always offers Sign Up, with the homepage directing to Quickstart.
  • Tropical observations are available via the public REST API.
  • MCP unauthenticated error parity with REST next_steps has been implemented.
  • Tropical observations can be retrieved via GET /v1/tropical/observations.
  • Hurricane Hunter recon data is now ingested on a shared poll policy.
  • Next steps commands are now named for login and trial in the developer workflow.
  • Claim tickets are now managed in B+D, and trial bearers are no longer included in MCP JSON.
  • Trial keys are now minted as sw_live_* and remain trial until claimed.
  • Claim a trial key through the portal or API.
  • Serve cached answers on the Site Guide before applying the anonymous rate limit.
  • Use the user's current location as a pointer to their presence information.
  • Enforce trial key validation in the weather API, including handling trial end and claim release.
  • Refuse to ask "Is this billed annually?" after a long silent wait in the Site Guide.
  • Implement agent-first onboarding with device flow, trial, and claim steps.
  • Key CRUD operations are now available at api.smarterweather.com/developer/keys.
  • Materialize alert path impact at write so include=impact is a row read.
  • Ingest MRMS MultiSensor_QPE_01H_Pass2 data for Alaska and Hawaii.
  • Update address search v2 to include new API and web tray integration.
  • Publish matched-sample comparisons JSON for forecast verification.
  • Enhance address search v2 with intent routing, POI kinds, and telemetry.

MCP

  • MCP unauthenticated error parity with REST next_steps has been implemented.
  • Tropical observations can be retrieved via GET /v1/tropical/observations.

Portal

  • The portal's human path now always offers Sign Up, with the homepage directing to Quickstart.
  • Tropical observations are available via the public REST API.
  • The device approval page layout has been polished.
  • The device approval page is now branded, with keyless MCP install and login on /agents.
  • Next steps commands are now named for login and trial in the developer workflow.
  • Claim tickets are now managed in B+D, and trial bearers are no longer included in MCP JSON.
  • The /claim success screen is organized into labeled sections.
  • Trial keys are now minted as sw_live_* and remain trial until claimed.
  • The /claim page now has richer copy and layout for signed-in users.
  • Claim a trial key through the portal or API.
  • Center the About page header to match the alignment of the Products page.
  • Show typing indicator while waiting and provide a discoverable FAQ.
  • Enforce trial key validation in the weather API, including handling trial end and claim release.
  • Publish matched-sample comparisons JSON for forecast verification.
  • The homepage showcase card now fits within the mobile viewport.
AppAPIMCPDeveloper platform

Week of September 11

This week, Smarter Weather focused on enhancing data accuracy, user interface clarity, and platform consistency across its products. Several updates improved the reliability of weather data displays and the accessibility of key features.

Highlights

  • The weather page now recovers from stale data chunks and isolates WebGL crashes in the map.
  • The homepage now shows serious off-roster warnings and 8 to 10 rows of information.
  • The weather canvas now displays low, mid, and high cloud cover, as well as METAR sky layers and present weather.
  • Native route shields from MUTCD are now available on iOS and Android.

App

  • The next-hour nowcast graph has been rebuilt without card-title icons.
  • The weather page now recovers from stale data chunks and isolates WebGL crashes in the map.
  • Device tokens for notifications are kept active and disabled SNS endpoints are cleaned.
  • Native route shields from MUTCD are now available on iOS and Android.
  • The weather canvas now displays low, mid, and high cloud cover.
  • Duplicate house numbers are hidden and local streets are widened at high zoom levels.
  • The Apple Weather scale uses uppercase headers and a denser 10-day forecast row.
  • Mobile apps now consume the published basemap style catalog.
  • A new v2 basemap style is published and switched to from assets.
  • The lake widget now refreshes on home and lock screens when tapped.
  • The sample images show the primary sky, not the sun wash.
  • Weather information is now displayed with white ink on dark sky-hued glass across platforms.
  • First-launch notifications, live updates, and account selection are now available on Android.
  • Android now supports push notifications when updates are killed.
  • Nowcast precipitation ramp and pre-storm sky are visible on the weather canvas.
  • Display METAR sky layers and present weather on the weather canvas.
  • Show wind, dew point, humidity, and precipitation type probabilities on the weather canvas.
  • Expose RTMA cloud ceiling data on the current weather view.
  • Render physically based sky and layered cloud field on the weather canvas.

API

  • The homepage now shows plain staff advice without wordplay.
  • The system now estimates polygon POIs for heat risk and exposure.
  • Device tokens for notifications are kept active and disabled SNS endpoints are cleaned.
  • The homepage now interprets weather for a person or an operation.
  • The weather canvas now displays low, mid, and high cloud cover.
  • The homepage now shows serious off-roster warnings and 8 to 10 rows of information.
  • The city carousel on the homepage now features fade-in conditions and typed advice.
  • The homepage always displays live data rows, not static quiet periods.
  • Publish different weather data strips for wind and wet conditions.
  • Expose alert details with points of interest after reading weather data.
  • Publish location data contract so third-party clients can access it.
  • Expose weather polygon points of interest via the API.
  • Accept decade ranges when reference values fall within the decade.
  • Civic amenities are now queryable for alert and storm-track path enrichment.
  • Only public models are published on the accuracy page, with honest metrics.
  • The agent now finishes its turn properly, with safeguards against infinite loops.
  • The lake portal CTA now directs users to sign up.
  • The lake widget now refreshes on home and lock screens when tapped.
  • The agent now handles missing data more gracefully by delivering on a healthy channel.
  • The data cards for alerts are now deterministic, and the UI pipeline can run in a speculative mode.
  • Onboarding for MCP activation now guides users through sign-up, key setup, and configuration.
  • Android now supports push notifications when updates are killed.
  • Display METAR sky layers and present weather on the weather canvas.
  • Expose RTMA cloud ceiling data on the current weather view.

MCP

  • The system now estimates polygon POIs for heat risk and exposure.
  • Publish location data contract so third-party clients can access it.

Portal

  • The advice typewriter on the homepage is now restored.
  • The homepage now shows plain staff advice without wordplay.
  • The homepage now shows serious off-roster warnings and 8 to 10 rows of information.
  • The city carousel on the homepage now features fade-in conditions and typed advice.
  • The homepage always displays live data rows, not static quiet periods.
  • Publish different weather data strips for wind and wet conditions.
  • Use new themes and features in the marketing website.
  • Show persistence in hourly precipitation forecasts instead of mean squared error.
  • Refresh the marketing homepage with new content and research.
  • The accuracy page now has mobile-friendly navigation and stacked layout.
  • The accuracy page now includes a map, a first-party basemap, and jump navigation.
  • The accuracy page now prioritizes the map and includes a first-party basemap with navigation.
  • Only public models are published on the accuracy page, with honest metrics.
  • The lake portal CTA now directs users to sign up.
AppAPI

Week of September 4

This week's updates include enhancements to weather imagery positioning, new land cover data, and improvements to alert systems. Several API features now support additional data and operational efficiencies, while the Android app has received new display options.

Highlights

  • Weather raster images are now positioned under the Great Lakes shoreline.
  • A new land cover base map from ESA WorldCover replaces the previous county patchy map.
  • The live tornado alert system now serves alerts based on forecast data, not model predictions.
  • The Android app now includes GOES true-color raster PMTiles.

App

  • Weather raster images are now positioned under the Great Lakes shoreline.
  • The Android app now includes GOES true-color raster PMTiles.
  • A new land cover base map from ESA WorldCover replaces the previous county patchy map.
  • The Android dataset switcher now includes a rotate lock feature.

API

  • The system now submits feedback emails from the consumer Clerk.
  • The live tornado alert system now serves alerts based on forecast data, not model predictions.
AppAPI

Week of August 28

Highlights

  • The Android onboarding process now includes chat-first onboarding with feature parity for the interview widget.

App

  • The Android onboarding process now includes chat-first onboarding with feature parity for the interview widget.
  • The chat-first onboarding now includes location pick and OS permission cards.

API

  • Create a plan for the named activity in consumer onboarding.
  • Add a teammate interview prompt for consumer onboarding.
AppAPIMCPDeveloper platform

Week of August 21

This week, Smarter Weather introduced new features and data enhancements across its platform, focusing on forecast accuracy, user notifications, and system integrations. Several updates improve the presentation and accessibility of weather data, as well as automation capabilities for partners.

Highlights

  • National Radar data is now available into HRRR 15 minutes after the current time.
  • Weather updates include on-and-off rain forecasts for upcoming days.

App

  • iOS alerts now support opt-in Live Activities.
  • The georeference for National Radar MRMS to HRRR has been fixed.
  • The onboarding process now supports chat and weather entry.
  • National Radar data is now available into HRRR 15 minutes after the current time.
  • RRFS CONUS 15-minute forecast data has been added to the forecast picker.
  • Android Settings now match iOS in Phase 2f.
  • Show a live map preview on the Android home screen.
  • Add new appearance themes, weather widgets, and icons on Android.
  • Add shared tray, location search, and forecast details on Android.
  • Display clouds, precipitation, fog, and lightning on the weather canvas.
  • The Android weather canvas now includes sun, flare, and stars.
  • The Android weather canvas now features GLES host and sky.
  • The Android weather canvas now has a live sky backdrop.
  • Web sign-in now treats Clerk Device Trust as a silent no-op.
  • The Android app now packages the iOS AppIcon as the Play launcher icon.
  • See live NWS alert polygons on the map.
  • See packed GLES and play features on the Android map.
  • View idle Chrome map on Android with the MapNowPanel.
  • Use MapLibre shell and national MRMS as default on Android.
  • Android Phase 2c+ now supports drag-reorder on the home screen.
  • Android Phase 2c now includes home editing and family packs.
  • Android Phase 2 now supports home parity.
  • Alert categories now show accurate reasons for being disabled.
  • The first frame of the National Radar is pre-fetched on weather page mount.
  • Radar overlay ingest starvation on iOS can cause Play to freeze.
  • Full weather data is pre-fetched on recent-chip and search hops.
  • Legal information is now consistent across CRA and iOS platforms.
  • Last-known forecast is persisted for instant weather paint on revisit.
  • Fix crash in radar animation on iOS after guidance z-order update.
  • Limit live warning alerts to current Watch or Warning status.

API

  • iOS alerts now support opt-in Live Activities.
  • Weather updates include on-and-off rain forecasts for the upcoming days.
  • Nowcast precipitation notifications are now more selective, skipping minor showers.
  • See relative humidity at 2 meters in the HRRR model.
  • See one-hour accumulated precipitation data in the RRFS model.
  • See one-hour accumulated precipitation data in the HRRR model.
  • See one-hour accumulated precipitation data in the GFS model.
  • RRFS CONUS 15-minute forecast data has been added to the forecast picker.
  • Use a static Stripe deposit address for payments.
  • Serve RRFS data in a specific regional blend and verify snapshots.
  • Onboard RRFS CONUS 2dfld data into the weather pipeline.
  • WSSI status false outage is now marked as a processing delay during catalog lag.
  • Distinguish draft-consent cards from tool-consent cards for better user experience.
  • Weather MCP is now advertised at mcp.smarterweather.com without the /mcp path.

MCP

  • Use a static Stripe deposit address for payments.
  • Serve RRFS data in a specific regional blend and verify snapshots.
  • Sw-mcp now passes through extra fields on MCP outputSchema objects.
  • The OAuth resource URL for Weather MCP no longer has a trailing slash.
  • The Weather MCP /mcp alias has been removed and is now served only at the hostname apex.
  • Weather MCP is now advertised at mcp.smarterweather.com without the /mcp path.
  • Weather MCP is now accessible at mcp.smarterweather.com apex.

Portal

  • Web sign-in now treats Clerk Device Trust as a silent no-op.
  • Weather MCP is now advertised at mcp.smarterweather.com without the /mcp path.
  • Developer-site onboarding issues that blocked initial MCP installation have been fixed.
AppAPIMCPDeveloper platform

Week of August 14

Several improvements focus on data accuracy, system stability, and user interface consistency.

Highlights

  • Guidance polygons now cover radar on iOS and web.
  • Forecast tray text can now scroll when clipped.

App

  • Guidance polygons now cover radar on iOS and web.
  • Forecast tray text can now scroll when clipped.
  • GOES-West full disk IR/WV images now smear across the antimeridian.
  • See full-disk IR/WV satellite imagery and view picker on the map.
  • Enabled PMD desks are now included in guidance.
  • WFO HLS has been added to include guidance.
  • Precipitation discussions have been added to flood discussions.
  • Parallel processing of per-source address extracts has been enabled in data transformation.
  • Basemap v2 includes full address, POI, and park layer buildout with DuckDB-accelerated GIS pipeline.
  • Weather overlays now animate with the timeline on web and iOS.
  • Weather overlays can be animated with the map playhead.
  • iOS map now does not keep live alerts on screen during the first seconds of playback.
  • Live alerts are no longer shown on the screen during the first seconds of Play.
  • The web map chrome UX has been ported to iOS.
  • The now panel now shows pause and scrub controls during mobile playback.
  • Tropical inspector now displays TCD, TCP, TWO discussions, and CAP on watch/warning cards.
  • The platform now supports fullscreen datasets and sharing of still images or GIFs.

API

  • Checkout has switched to Stripe Hosted Checkout with a two-column layout.
  • Sw-agent now caps remember-and-watch asks off weather fetches.
  • Sw-agent now includes a Layer-3 explore pack for remember-field.
  • GOES-West full disk IR/WV images now smear across the antimeridian.
  • See full-disk IR/WV satellite imagery and view picker on the map.
  • Stripe embedded checkout is available on a first-party branded page.
  • Enabled PMD desks are now included in guidance.
  • WFO HLS has been added to include guidance.
  • The developer free self-serve and agent onboarding path have been made more honest.
  • Precipitation discussions have been added to flood discussions.
  • The display name for current location now treats Name and ST as the same.
  • Only NYC tokens are accepted on a bare New York City ask.
  • Current location display names are now rejected on weather tools.
  • Statewide NY is rejected on a bare New York City ask.
  • One static map POST request now serves both map snapshot and preview.
  • The all-clear message for New York now correctly refers to New York City.
  • Get alerts now correctly treats bare New York as New York State.
  • Extreme warnings are now hidden when get_alerts returns no data.
  • Responses now exclude assets over the maximum per timestep, but still return a success status.
  • A new view compares forecast data with actual results to identify discrepancies.
  • Snapshots of event cadence are now available for map animations.
  • The get_alerts function now retrieves in-effect snapshots for agents.
  • The GET /v1/alerts endpoint now returns in-effect snapshots.
  • Forecast verification now surfaces persistence skill on GET /v1/forecast/skill and get_forecast_skill endpoints.
  • PostGIS now supports place rank and place_id for geocoding.
  • Tropical inspector now displays TCD, TCP, TWO discussions, and CAP on watch/warning cards.
  • Alert notifications now include action-aware titles for different alert states.
  • Alert history now records alert versions and VTEC actions.

MCP

  • Precipitation discussions have been added to flood discussions.
  • One static map POST request now serves both map snapshot and preview.
  • A new view compares forecast data with actual results to identify discrepancies.
  • The get_alerts function now retrieves in-effect snapshots for agents.
  • Forecast verification now surfaces persistence skill on GET /v1/forecast/skill and get_forecast_skill endpoints.
  • PostGIS now supports place rank and place_id for geocoding.

Portal

  • Checkout has switched to Stripe Hosted Checkout with a two-column layout.
  • Surface OAuth errors on custom sign-in.
  • Stripe embedded checkout is available on a first-party branded page.
  • A well-known onboarding Agent Plugin skill and public repository sync pair have been added.
  • The developer free self-serve and agent onboarding path have been made more honest.
  • An Agent Plugin for the weather MCP has been released.
AppAPIMCP

Week of August 7

This week, Smarter Weather introduced new data sources and enhanced visualization features, including tropical cyclone data and mesoscale guidance. Several updates focused on improving map interactions, alert displays, and data accessibility across platforms.

Highlights

  • Tropical cyclone data is now available through the GET /v1/tropical endpoint.
  • Guidance GeoJSON now includes MCD bulletin bodies for mesoscale guidance.
  • The map inspector on desktop now shows expanded view, contrast options, and formatted product text.
  • Lightning data is now shown on iOS.
  • The alerts layout on the web has been improved.

App

  • Tropical cyclone data is now available through the GET /v1/tropical endpoint.
  • Precipitation guidance surfaces can be viewed on the map.
  • NWS text products are now accessible on the map control panel, including guidance.
  • The map inspector on desktop now shows expanded view, contrast options, and formatted product text.
  • The desktop map inspector includes a place card with a resizable tray.
  • URLs for shareable alerts open the live map inspector.
  • The map inspector tray now shows inline alert, outlook, and MCD details.
  • The web map inspector tray includes a companion panel, scrolling, and map padding options.
  • Fullscreen overlays are no longer fetched in the web map preview.
  • Guidance GeoJSON now includes MCD bulletin bodies for mesoscale guidance.
  • Guidance user experience now features MCD in narration and threat-first widgets for AFD, HWO, and MCD.
  • Guidance bodies and MCD map display have been polished, including a blue overlay and hiding the Show on map option.
  • Weather discussions now include a mesoscale map overlay on web and iOS.
  • Near-term probability of precipitation is now pulled down when the nowcast peak is not available.
  • Near-term probability of precipitation from nowcast has been floored, and storm narration has been fixed for contradictions.
  • Lightning data is now shown on iOS.
  • High energy usage on idle web has been reduced.
  • The alerts layout on the web has been improved.
  • The energy usage of the WebGL sky background on the web has been reduced during idle.
  • Map pan and zoom performance has been improved, and GPU energy usage regression has been addressed.
  • The world-bounds fix for the Gis pipeline improves map accuracy.
  • The iOS app now includes web mobile UX features such as alerts, forecast tray, and basemap.
  • Alert polygon styling on the web has been improved.
  • Mobile tray user experience on the web has been enhanced.

API

  • Tropical cyclone data is now available through the GET /v1/tropical endpoint.
  • Precipitation guidance surfaces can be viewed on the map.
  • NWS text products are now accessible on the map control panel, including guidance.
  • NWS discussion text products are ingested via NWWS for various product types.
  • NWS CAP test and exercise alerts are no longer relayed to users.
  • Guidance GeoJSON now includes MCD bulletin bodies for mesoscale guidance.
  • Guidance user experience now features MCD in narration and threat-first widgets for AFD, HWO, and MCD.
  • Guidance bodies and MCD map display have been polished, including a blue overlay and hiding the Show on map option.
  • The Wx-reader /v1/guidance/mesoscale and text-products endpoints omit the body content.
  • Weather discussions now include a mesoscale map overlay on web and iOS.
  • The API now provides mesoscale discussion data as a GeoJSON FeatureCollection.
  • The HRRR subhourly visualization has been reprojected to EPSG:4326 with a close-packed sync guard.
  • A hotfix now displays hourly HRRR hybrid radar data until subhourly data is available in geographic coordinates.
  • Satellite lane health checks have been fixed, pipeline PMTiles emission improved, and truecolor download loss reduced.
  • Cache-Control headers have been added to the SW API responses to enable edge caching.
  • Radar nowcast asset lookup has been optimized to prevent timeouts after restarts.
  • The NBM daily departure API now handles approximately three forecast days.

MCP

  • NWS text products are now accessible on the map control panel, including guidance.
  • Guidance user experience now features MCD in narration and threat-first widgets for AFD, HWO, and MCD.
  • A hotfix now displays hourly HRRR hybrid radar data until subhourly data is available in geographic coordinates.
AppAPIMCPDeveloper platform

Week of July 31

This week, Smarter Weather introduced new features to enhance the forecast experience on web and iOS, including climate compare tools, detailed normals, and forecast maps. Several updates also improved the consistency and clarity of weather data presentation across platforms.

Highlights

  • The web forecast now includes climate compare and map features.
  • Daily climate normals and departure are shown in forecast details on web and iOS.
  • Forecast period maps are now included in the forecast detail view on iOS.
  • Forecast period still images now display the full day.
  • The forecast map is now shown beside the forecast and within reach of a forecast day.

App

  • The web forecast experience now includes climate compare and map features.
  • Daily climate normals and departure are now shown in forecast details on web and iOS.
  • A forecast-period map is now included in the forecast detail view on iOS.
  • Forecast period still images now display the full day, not limited to 24 hours.
  • Desktop forecast detail now features a single day/night panel with the map on the right.
  • Forecast period previews now share one off-screen MapLibre instance instead of creating a new WebGL context for each panel.
  • The /map route now collapses the map instead of navigating back, preventing users from getting stranded.
  • When sidecar fetch fails, composite rasters now render into a guessed CONUS box silently.
  • Management list cards now share a two-tap confirmation process.
  • Settings and connect card renderers now include a time-limited undo option.
  • A period with no frame continues to display the other period's map.
  • App intents are now run and their outcomes are reported to the agent.
  • The forecast preview now draws over the labels the main map draws underneath.
  • iOS now resolves a forecast frame by variable, not just by date.
  • Web now resolves a forecast frame by variable, not just by date.
  • iOS now renders four display-only chat cards for nowcast, usage, onboarding progress, and plan review.
  • A preview map can now draw any product, not just national radar.
  • iOS now renders question cards so the agent can ask structured questions.
  • The forecast map is now shown beside the forecast.
  • The forecast map is now within reach of a forecast day.
  • A product's colour scale is now described in human terms.
  • Forecast cards now follow the new headings and window labels as specified.
  • A forecast period map preview is now available.
  • The frame for a forecast period is now loaded and colorized.
  • A single composite frame can now be rendered to a still image in the browser.
  • A forecast period is now resolved to a map frame and variable on both clients.
  • Temperature departure maps now display typical departures with clearer colors.
  • Forecast composite layers open on the farthest lead instead of the nearest.
  • Trigger thresholds now include more variables stored in app units.
  • Trigger thresholds convert app units to product-native units at registration.
  • The metadata now credits a distant station for grid-sourced normals when appropriate.
  • Thinking indicator in web chat now remains active during turns.
  • SPC fire outlooks are now available as a separate picker option.
  • SPC dry-thunderstorm fire outlooks are now available as a separate picker group.
  • Surface SPC dry-thunderstorm fire outlooks now include drill-down and detail band features.
  • A new palette for SPC dry-thunderstorm fire outlooks has been added to assets.

API

  • Notifications for the same place are now de-duplicated.
  • The static map service now picks a frame based on the actual rendered variable.
  • Chat now includes a progress preamble when it is silent for the whole turn.
  • Chat widgets now show place names instead of raw coordinates.
  • Publish daily high and low temperature maps with day/night variables.
  • Add contingency counters such as POD, FAR, CSI, and ETS to forecast verification.
  • Forecast skill now shows the regime label and chain.
  • Trigger thresholds convert app units to product-native units at registration.
  • Add departure-from-normal map layer for CONUS.
  • Products may show as OUTAGE when sibling updates occur without notifications.
  • A new product shows temperature departure from normal for the continental US.
  • The normal_precip data is available on the climate normals endpoint.
  • A tool call that reaches the iteration limit may end without a response.
  • Daily precipitation normals are published but not included in the climate normals endpoint.
  • The documentation for the overnight high/low temperature row has been corrected.
  • Null is now served for the absent high temperature in the overnight row.
  • Daily data rows do not include active period information between midnight and 6 AM when derived from hourly data.
  • The wxclimo API now correctly flags gridded normals as exact.
  • The chat latency has been reduced by skipping the final language model round trip when the message only involves display-only tool calls.
  • Climate normals overlay now uses the correct data keys.
  • Previously fetched batch results may expire earlier due to budget limits.
  • Normals method is now visible in the surface API.
  • Empty frames now retain previous weather features.
  • Chat response speed is improved by adjusting effort and capacity.
  • A new palette for SPC dry-thunderstorm fire outlooks has been added to assets.
  • Climate normals are now accessible on the on-demand lane.

MCP

  • Chat widgets now show place names instead of raw coordinates.
  • Add contingency counters such as POD, FAR, CSI, and ETS to forecast verification.
  • Forecast skill now shows the regime label and chain.

Portal

  • Add contingency counters such as POD, FAR, CSI, and ETS to forecast verification.
AppAPIMCPDeveloper platform

Week of July 24

This week, Smarter Weather introduced new features for fire outlooks, including dedicated display bands and additional hazard data. The system now supports more detailed forecast verification and climate normals, with updates to the weather API and data ingestion processes. Several improvements enhance the reliability and clarity of weather and fire data presentation for users and partners.

Highlights

  • Fire outlooks now have their own display band in wxblend and are ranked with the convective risk table.
  • Rain hazard data is now included in the weather outlook API with narrative and polygons.
  • The weather API now supports including climate normals and station data, with a new endpoint for climate normals.
  • The weather agent now mirrors climate normals data from the API and supports forecast skill qualification.

App

  • Clients cannot distinguish between 'no areas' and 'no data' in fire outlook trust reports.
  • Parse and rank SPC dry-thunderstorm fire outlooks in wxblend.
  • A Climate Almanac section has been added to the CRA weather page.
  • Non-drawable fire outlook GeoJSON is filtered on iOS to prevent crashes.
  • The WPC ERO outlook features now include hazard=rain.
  • The climate almanac card on iOS can now be added from the UI.
  • The climate almanac card on iOS now shows normals and departure from normal.
  • Fire-weather outlooks are now ranked with the convective risk table, resolving nested areas.
  • A new climate domain layer for day-of-year normals has been added.
  • A new client method for GET /v1/climate-normals has been added to wxreader.
  • The climate normals data now includes a table and a loader for NCEI 1991-2020 station daily normals.
  • The Outlook callout now allows viewing details for SPC convective days 1-3.
  • SPC significant-severe data is now included alongside hazard probability, and national text-product queries are supported.
  • The wx-chat and wx-mcp services are retired.
  • The narration for low-percentage forecasts has been clarified.
  • The agriculture widget load failure issue has been addressed.
  • The upgrade widget now displays correctly at tier limit.
  • The email consent prompt now behaves correctly, even if previously given.
  • Make agent message approval a durable, revocable permission instead of a one-time prompt.

API

  • Surface SPC dry-thunderstorm fire outlooks as their own band in wxblend.
  • Clients cannot distinguish between 'no areas' and 'no data' in fire outlook trust reports.
  • Give SPC dry-thunderstorm fire outlooks their own outlook type in wx-reader.
  • Ingest SPC dry-thunderstorm fire weather outlooks into the wx-pipeline.
  • Add gridded climate normals for CONUS in climatology store and OM day-of-year.
  • Publish the public accuracy scorecard in forecast verification.
  • Enable forecast skill qualification in sw-mcp and sw-agent.
  • Surface measured forecast skill is now available to the weather agent.
  • A Brier score with reliability bins is available for probabilistic forecasts.
  • A grid georeferencing bug affecting sampling accuracy has been fixed.
  • Empty fire geometry frames are now dropped from the weather pipeline.
  • Rain hazard data is now exposed in the weather outlook API with narrative.
  • ERO day data is now included in the outlook point queries.
  • Severe-weather guidance is now directed at national discussions.
  • The fire-weather outlooks are accessible via a new API endpoint.
  • A new tool for getting climate normals is now available and whitelisted for the agent.
  • The weather agent now mirrors the climate normals data from the API.
  • The weather API now supports including climate data in responses.
  • The outlook API no longer includes LLM narrative summaries.
  • The climate normals endpoint is now exposed via the API.
  • The endpoint GET /v1/climate-normals now provides nearest-station day-of-year series.
  • All 53 NBM variables are now archived with full float precision.
  • Today's elapsed high temperature is now presented as an upcoming high in the evening.
  • Velocity product codes are now renderable in radar, and storm tracks can be shown on the map preview.
  • SPC fire weather and WPC excessive rainfall discussions are now ingested into the system.
  • The /v1/outlooks API now provides probabilities per hazard, significant severe alerts, and SPC discussions.
  • SPC outlook narrative IDs now follow the correct format, SWODY.
  • The wx-chat and wx-mcp services are retired.
  • The agriculture widget load failure issue has been addressed.
  • The upgrade widget now displays correctly at tier limit.
  • The email consent prompt now behaves correctly, even if previously given.
  • Weather alert records now sync correctly without crashing.
  • Scheduled briefings now send as expected, even when escalation blocks occur.
  • Verify third-party email addresses before allowing an agent to send messages.
  • Make agent message approval a durable, revocable permission instead of a one-time prompt.

MCP

  • Enable forecast skill qualification in sw-mcp and sw-agent.
  • Rain hazard is now included in the outlooks with polygons and narrative.
  • A new tool for getting climate normals is now available and whitelisted for the agent.
  • Today's elapsed high temperature is now presented as an upcoming high in the evening.
  • SPC outlook narrative IDs now follow the correct format, SWODY.
  • The wx-chat and wx-mcp services are retired.
  • Model-run provenance information is now available in query results.

Portal

  • Publish the public accuracy scorecard in forecast verification.
  • The public OpenAPI spec now correctly returns 403 for the /.well-known/deprecations endpoint.
  • Web now includes llms-full.txt and an API catalog for agent discovery.
AppAPIMCPDeveloper platform

Week of July 17

This week, Smarter Weather introduced updates across its map features, including deep-linking and visual polish, and enhanced its user experience on iOS and web platforms. Additionally, new newsletter and email features were rolled out to improve communication with users and partners.

Highlights

  • The web map now applies deep links and syncs the URL during exploration.
  • Tropical map overlay visuals have been polished, including symbols, dual-stroke lines, and the legend.
  • The iOS home map preview tap-to-open feature has been restored.
  • The agent now always emits day/night precipitation probability at standard detail level.
  • The newsletter subscription service and UI are now available.

App

  • The web map now applies deep links and syncs the URL during exploration.
  • Tapping the map preview on iOS opens the live map with camera and product.
  • Tropical map overlay visuals have been polished, including symbols, dual-stroke lines, and the legend.
  • The iOS home map preview tap-to-open feature has been restored.
  • Tropical map inspector cards now include additional properties from NHC.
  • Forecast day vs night PoP is now shown on iOS chat cards.
  • The web agent map preview now shows CDN stills and no longer includes the Map Test deep-link.
  • Enhanced the user experience for SOTA agent on iOS and web, including generative UI and approvals.
  • Corrected the Wind card compass arrow to point TO rather than FROM.
  • Added coverage-aware gallery and calmer unavailable product widgets.
  • Displayed an empty state for SOTA when location or GPS data is unavailable.
  • Restored NWS headlines alongside CAP timing.
  • Alert detail end times now match the CAP end times.
  • You can now search for and star saved locations from Settings.
  • The copy for receiving alerts has been clarified.
  • Alert banner end times now match the alert detail end times.
  • Weather canvas behavior now considers DeviceConditions and Low Power Mode.

API

  • The user memory architecture includes profile, semantic memories, and episodic observations.
  • Chat map stills now support deep-linking into the live map with specific view parameters.
  • The static map now supports a 3×3 tent spatial blend for packed precipitation stills.
  • The NHC tropical ingest in the Wx pipeline has been fixed to include Content-Length.
  • The map preview now enforces same-turn and day/night PoP prompt rules.
  • Goes truecolor stills no longer appear blank due to tile size mismatch.
  • The agent now uses hybrid default stills with NEXRAD retry and fallback.
  • The static map now includes a packed precip compositor and NEXRAD error surfacing.
  • Fixed map preview stills with default and product IDs.
  • Enhanced the user experience for SOTA agent on iOS and web, including generative UI and approvals.
  • Made the newsletter digest email more human-readable.
  • Branded newsletter emails and fixed digest rendering issues.
  • Digest emails now render and can be triggered by promote actions.
  • Newsletter subscription service and UI are now available.

MCP

  • The user memory architecture includes profile, semantic memories, and episodic observations.
  • The agent now always emits day/night precipitation probability at standard detail level.

Portal

  • Made the newsletter digest email more human-readable.
  • The changelog page now features a branded social preview image.
  • Newsletter subscription service and UI are now available.
AppAPI

Satellite Layers, UV Index, and Smarter Alerts

Summer has been busy at Smarter Weather. The map got a big visual upgrade with true-color satellite imagery, iOS picked up UV index conditions and per-location alerts you can tune to each saved place, and the API moved onto dedicated production infrastructure without a second of downtime. Here's the full rundown.

App

  • GOES true-color satellite layers on the map, with hourly coverage that follows the map as you pan (iOS and web)
  • UV index conditions, including an optional home-screen widget on iOS
  • Per-location weather alerts on iOS: choose alert types for every saved place, or start from a preset and fine-tune
  • Refreshed iOS settings with light/dark/system themes, faster search, and reorderable home-screen widgets

API

  • api.smarterweather.com now runs on dedicated production infrastructure — migrated with zero downtime, same endpoint and keys
AppAPIMCPDeveloper platform

Week of July 10

This week, Smarter Weather released updates across its website, APIs, and mobile applications. Changes include new advisory feeds, user interface improvements, and enhancements to alert and monitoring features.

Highlights

  • The status site UX for resolve and reopen actions has been updated.
  • A new NWS advisory feed for CPC UV Index messages has been added.
  • The UV Index writer now correctly converts units from W/m2 to UV index.
  • The portal has been overhauled with new content and a new root domain at developers.smarterweather.com.

App

  • The status site UX for resolve and reopen actions has been updated.
  • The status site now correctly formats incident start times as relative times.
  • The Android beta PWA now uses app.* URLs and prefers fullscreen display.
  • Mobile viewport and safe-area handling have been improved for standalone PWA.
  • The beta PWA start URL now points to app.*, not apex.
  • Per-product alert toggles now support partial category states.
  • Default and custom alert types can now be overridden per location.
  • The alert category L2 info sheets explain what each bucket covers.
  • A Status link has been added to the footers of marketing/portal and web app pages.
  • The status page fixes the No signal pill wrap and adjusts spacing for past-incident cards.
  • Add Status link to marketing/portal and web app footers.
  • The status.smarterweather.com site now features a marketing shell, responsive layout, nested advisories, and warming states.
  • The PWA toast about a new version being available is now fixed to avoid getting stuck, and auto-update is now silent.
  • The iOS and web apps now feature config-driven Try-it deep-link CTAs in the What's New section.
  • Interactive controls for What's New are now more secure.
  • You can now see multiple locations and control alerts for each on iOS.
  • Alert types now include animated presets and explanations of filter composition.
  • Multi-location alert notifications now support multiple API targets and deduplication.
  • iOS alert settings now include presets, toggles for warning, watch, statement, and hazard categories.
  • Alert notification filtering now uses shared catalogs and supports various filters and preferences.
  • Multi-location schema added to user notification settings.
  • Security information is now available on all hosts, along with developer documentation in JSON-LD format.
  • Web interface improvements include a Google Analytics linker strip, a real logo for Open Graph, first-party agent artifacts, a custom Clerk UI, and uniform element widths.
  • The portal footer now includes links to the Company and Developers pages.
  • The apex hero search now correctly handles route grammar and pre-fills search queries.
  • Headers policy for migrate.html has been fixed to use CSP via SecurityHeadersConfig.
  • A localStorage migration bridge has been added for Track-E beta to app transition.
  • The hostname for CRA has been decoupled and OG service is now on app.smarterweather.com.

API

  • A new NWS ADM advisory feed for CPC UV Index messages has been added.
  • The UV Index writer now correctly converts units from W/m2 to UV index.
  • AirNow AQI values above 500 are now supported.
  • Per-product alert toggles now support partial category states.
  • AirNow URLs have been restored after upstream renaming.
  • The freshness monitor now handles etag-idle ingest and catalog silence without false outages.
  • Default and custom alert types can now be overridden per location.
  • The alert category L2 info sheets explain what each bucket covers.
  • False freshness outages caused by catalog entities that are never heard are now fixed.
  • Fixes have been made to prevent 404 errors on the status page caused by wrong bucket name and missing CloudFront behavior.
  • Status-page email subscriptions now support subscriber store/API, SES notifier, double opt-in, and relayed provider updates.
  • Provider advisory feed adapters have been added for automatic outage communication ingestion.
  • The status page now supports public aliasing, surfaces/categories, Platform Services block, and portal status pill.
  • The status page displays uptime history, past incidents, and offers an RSS feed.
  • The Sw-api now provides a public GET /v1/status platform data-freshness endpoint.
  • Multi-location alert notifications now support multiple API targets and deduplication.
  • Alert notification filtering now uses shared catalogs and supports various filters and preferences.
  • Errors related to Stripe permissions and authentication now return explicit 502 status codes.
  • CORS settings for billing now include allowed origins for developers.smarterweather.com in production.
  • Stripe checkout user experience has been completed.
  • A custom sign-in UI and theme parity between dashboard and authentication have been implemented.
  • A request-access waitlist flow and limited preview copy are now available.
  • The hostname for CRA has been decoupled and OG service is now on app.smarterweather.com.

MCP

  • The Sw-mcp now includes the get_platform_status tool and data_status forecast annotations.
  • The service now serves a well-known JSON file for the Glama connector.
  • The x402 production environment is now live with CDP facilitator authentication and shadow mode.

Portal

  • Add Status link to marketing/portal and web app footers.
  • The SLA page and DATA_FRESHNESS.md now include cross-links to status.smarterweather.com.
  • The status page now supports public aliasing, surfaces/categories, Platform Services block, and portal status pill.
  • Shared Open Graph image generator and About page mission preview are now available.
  • The About page mission statement has been updated.
  • The service now serves a well-known JSON file for the Glama connector.
  • Security information is now available on all hosts, along with developer documentation in JSON-LD format.
  • Errors related to Stripe permissions and authentication now return explicit 502 status codes.
  • Marketing pages now have a consistent content width across all tabs.
  • Web interface improvements include a Google Analytics linker strip, a real logo for Open Graph, first-party agent artifacts, a custom Clerk UI, and uniform element widths.
  • The portal has been overhauled with new agent-first content and a flagship onboarding experience.
  • The portal now features a unified three-tier content width system.
  • Navigation active states, host-aware dashboard pills, and dark mode support have been added to the portal.
  • Marketing pages now have width constraints and host-aware call-to-action buttons.
  • Stripe checkout user experience has been completed.
  • The portal now resides at developers.smarterweather.com root.
  • A custom sign-in UI and theme parity between dashboard and authentication have been implemented.
  • A request-access waitlist flow and limited preview copy are now available.
  • Follow-up updates include fixing the pricing tab, curating the blog, and creating a single developer home page.
  • The platform now has a new design with a ChatGPT-like shell, a composer typeahead, and dark mode.
  • The apex hero search now correctly handles route grammar and pre-fills search queries.
  • Edge SEO fixes, security-header parity, and www redirector have been implemented for Track-E.