github pingular/pingularity v0.100.4

18 days ago

The first release since v0.70.1. Upgrading in place works: start the new version on the same database.

Before you upgrade

  • Check the database once: sqlite3 <your db> 'PRAGMA quick_check;' should print ok. This version reads more of the database at start-up than 0.70.1 did, so old damage that never showed can show now. If it does, the daemon stops and tells you how to recover the file instead of quietly replacing it. Add -on-corrupt rebuild only if you'd rather it start over on an empty database, and remove that flag before rolling back to 0.70.1.
  • Take a backup first. Once a speed test has run on this version, its backups can't be restored on 0.70.1.
  • macOS 13 or newer is required. On macOS 12, stay on 0.70.1.
  • If you pinned a city for speed tests, that setting is gone. Star the servers you want measured, or pin one. Your speed history will step at the upgrade.

Speed tests

  • Automatic server selection is new: it races the cities it knows, keeps the server it measured last time while it stays close to the fastest, and gives the strongest rival a turn every twelfth run. Each run records why its server was chosen, and the runs table shows it.
  • The server picker remembers itself, shows live pings, and lets you star favourites. "Best of" is now a number of servers, and you can keep every result of a round instead of only the winner.
  • Every automatic run has a backup server. A server that keeps failing is rested longer, and a good test clears its record.
  • Ookla and iperf3 have separate tabs, and each keeps its own direction and retry count. An upgraded install keeps the iperf3 values it was using.
  • Packet loss is measured against a pinned or starred server again.
  • Bufferbloat readings are no longer invented by dropped handshakes.

Dashboard

  • Usable by keyboard and with a screen reader.
  • Warnings use each theme's own colours, and the faint text, lights and outlines now read in every theme.
  • Typed date ranges are read the way you wrote them; durations no longer say "1y 12mo".
  • The heatmap keeps the right day across clock changes, including places where clocks jump at midnight.
  • A slow daemon is no longer reported as unreachable; a save that fails says so.
  • Hover bubbles are easier to read, and the settings rows line up.

Alerts and monitoring

  • A Test button for the heartbeat URL.
  • A warning when the dashboard is open to the network with no password, naming the addresses that reach it.
  • Speed-test verdicts say which thresholds they were judged against.
  • A schedule with no days selected is named at start-up instead of silently measuring nothing.
  • A sleep taken with monitoring off no longer shrinks an outage.

Reliability

  • A damaged database is refused with recovery instructions rather than replaced. If you choose the rebuild, the rebuilt database stays private to the machine until a password is set, and /readyz says so.
  • A database behind a symlink works again, including for reset-auth.
  • A mistyped -db path is refused instead of taken over.
  • Faster recovery after connection moves and DNS failures; one DNS question per probe.

Installing and upgrading

  • Homebrew: no more warning on every install, and the note after upgrading tells you to run sudo pingularity restart. Running install over an existing service now says that too, instead of "Init already exists".
  • The service finds iperf3 installed by Homebrew or MacPorts, which it couldn't before.
  • A .deb/.rpm upgrade that leaves the daemon down prints a line saying so.
  • The container's data directory ships locked down, and the container images carry the licences.
  • Built with Go 1.27. Two side effects: SSL_CERT_FILE/SSL_CERT_DIR now apply on macOS and Windows, and a webhook address with a bare IPv6 host must be written in brackets.

Removed

  • The "Auto location" city setting and its API fields. Sending one to the settings API is now refused with a message, so scripts learn instead of being silently ignored.

Don't miss a new pingularity release

NewReleases is sending notifications on new releases.