Version 1.3.3

A calmer Radio tab, and credentials that stay put

This build is on the beta channel and has not been promoted to general release. It is still being tested, and these notes are updated as more work lands. To run it, enable Beta Updates in the app.

The Radio tab no longer freezes the app

Left open, the Radio tab redrew its entire contents every two seconds, channel map and every neighboring network included, whether or not anything about the air had changed. On a busy band that redraw took longer than macOS allows before it decides an app has stopped responding, so a Radio tab sitting open produced a steady stream of beachballs that got worse the longer it sat there. One Mac in the field recorded 5,887 unresponsive-app events in thirty days, almost all of them on this tab.

The tab now redraws when the scan results themselves change, or when you join or move to a different access point. The "scanned Ns ago" countdown keeps ticking on its own. A related case is fixed with it: a scan that comes back empty while your Mac is not on any network now clears the tab, where before it could leave neighbors and findings on screen that no longer existed.

Router credentials stay on your Mac

Network Weather signs in to your router to read its status, and two log lines written during that exchange carried more than they should have. One recorded a D-Link authentication challenge whose body holds a cookie and a public key; the other recorded TP-Link's session encryption key and initialization vector in plain text. Warning-level log lines are forwarded to us as diagnostics, and the local log file is attached to an in-app feedback report when you tick "include debug logs", so both had a route off your machine.

Both lines now record only what distinguishes one failure from another: which expected fields were readable, and whether a key was present at all. A check in the build rejects any new log line that prints a credential.

Battery health is reported again on macOS 27

macOS 27 moved a battery's capacity figures into a different place in the system's device registry, so Network Weather read nothing there and showed every macOS 27 laptop at 0% battery health. It now reads whichever layout the machine publishes, and macOS 14 through 26 are unchanged. macOS 27 publishes no battery temperature at all, so that field is left empty rather than filled with a substitute.

The share buttons wait until there is something to share

Copying a status report or a network snapshot was offered as soon as your Mac was online, which for about the first measurement cycle after launch is before Network Weather has taken a single reading. Clicking in that window copied nothing and said nothing. The buttons now switch on when a report can actually be produced.

Better crash and hang reports

Crash and hang reports are how problems that never reach a support email get found and fixed, and several things were wrong with them.

  • Nothing can silently switch crash reporting off. The app installed an exception handler of its own without chaining to the crash reporter's, so the first time that code ran, an entire class of crash stopped being reported for the rest of the session. That handler is gone, and a check in the build rejects a new one.
  • Crashes in the first moments of a launch are reported again. Reporting started on a background task, which delayed the point at which a crash handler existed without moving any work off the main thread. It now starts first thing.
  • One unhappy Mac can no longer use up the reporting budget. A single machine sent 5,896 of 8,300 reports in fourteen days. Unresponsive-app reports are now limited to five per hour and twenty per day per run of the app; crash reports are never dropped.
  • A report says what the network was doing. Reports from a network product used to name the macOS version and the Mac model and nothing else. Each now carries the link type, whether a VPN was carrying traffic, the gateway's vendor and model, the recent warning-level log lines, and a link to that machine's own diagnostic history.
  • Hangs are grouped by the screen they happened on, so a Radio hang and a Settings hang are separate problems rather than one unresolvable pile.

Smaller fixes

  • Traces share one copy of the bundled address-to-network database instead of loading a fresh one for every tracer the app builds.
  • The traceroute library can now cancel traces without clearing its lookup caches; Network Weather does not use those controls yet.
  • The updater framework moves to Sparkle 2.10.0.