Skip to content

Release 1.3.1

Choose a tag to compare

@github-actions github-actions released this 14 Aug 15:36

Changes since 1.3.0

New

  • A password can be reset from the command line. An instance whose password is set but no longer known had no way back in — the setup token only applies while no password is set, so every route was refused by the very credential that was lost. MySpeed --reset-password clears it and hands the instance back to the first-run setup flow; under Docker, docker exec <container> bun server/index.js --reset-password.
  • A new password has to be typed twice. The server hashes what it is given and never sees it again, so a typo caught afterwards is already the password. A mismatch is shown under the box as it is typed, not only once Save is pressed.
  • The stability card grades its ping deviation, and a deviation smaller than the millisecond it prints says so rather than claiming a line that never wavered.
  • A failed speedtest reaches Prometheus as a metric. The scrape used to answer 500 when the newest test had failed, which Prometheus reads as the exporter being down — so every myspeed_* series went stale and the alert blamed the wrong thing. myspeed_test_failed carries it now.
  • The header and toolbar hold together on a narrow screen. The start button drops to its gauge where the row runs out, the export keeps its label where there is room for it, and the opened test's facts are gathered into one row of the details grid.
  • The navigation and the integration menu answer the keyboard. Both were plain divs that Tab walked past — and on a healthy instance the pagination was the only route to the statistics, as that menu is the only route to adding an integration.

Fixed

  • A read-only visitor is no longer told the schedule. A shared dashboard withholds the cron and the quiet hours, but the status endpoint handed back the next test time drawn from them — one poll recovered the schedule, and polling across an evening recovered the quiet window.
  • An imported history is held to being numbers. Four of the ten measurement columns went unchecked, so a text value survived the write and returned the whole range's jitter average as nothing at all.
  • An interrupted server-list download no longer outlives itself. A container restarted mid-write left a file that could not be read, and the unreadable bytes were then handed out as the server list until the process was restarted.
  • One Escape closes one overlay. A metric's help alert opened over an expanded chart took the chart down with it.
  • The statistics show the range that was asked for. Choosing a wide range and then a narrow one let the slow query write its numbers under the heading of the range actually chosen, and an abandoned request that timed out replaced a page that had rendered correctly with an error.
  • The app no longer holds on its loading screen after an upgrade.
  • The date range popover opens where it sits rather than a third of the way off the right edge of a phone.
  • Also: a measurement that was never taken is no longer counted as a zero; Gotify posts to one slash however the URL was pasted; integration credentials are checked against the whole value rather than a fragment of it; and uninstall.sh removes the installation that is actually there, and says so when it cannot.

Under the hood

  • More tests, and a single shared answer to "did this test fail" in place of four that disagreed.

Downloads

Platform x86-64 ARM64
Windows EXE · MSI
Linux Binary Binary
macOS Binary Binary

Source Distribution

Docker Images

  • i7gamer/myspeed:latest
  • i7gamer/myspeed:1.3.1

What's Changed

  • chore(deps): Bump the server-minor-and-patch group with 2 updates by @dependabot[bot] in #11
  • chore(deps): Bump the client-minor-and-patch group in /client with 2 updates by @dependabot[bot] in #12

Full Changelog: v1.3.0...v1.3.1