Release 1.4.1
The appearance release: the interface follows the machine's theme, comes in four colour palettes, and the preferences dialog was redesigned around the new choices — alongside the fixes an audit of the release legs turned up, the macOS binaries first among them. Upgrading is drop-in: no migrations, no configuration changes, and a theme you chose by hand is kept exactly as it was. The one behaviour that changes on its own: an instance nobody ever told stops assuming dark and follows its machine.
✨ New
- The interface follows the machine's theme — System is the new default and tracks the OS live, and the right colours are on the document before the first paint, in the browser chrome and on the installed app's splash, instead of a dark flash and a blue that left the stylesheet in January. Light mode was re-measured on the way: every grade, accent and chart mark now clears the contrast floor its role answers to (the old green read 2.42:1 as a verdict on a light page), and the chart marks stay apart under the two common colour blindnesses.
- Four colour palettes — Nord, Carbon and Ember join Slate, each previewed in its own colours before saving, and everything follows: the surfaces, the accents, the verdict colours, the charts, the browser chrome.
- Grade colours are a choice — the icon alone carries the verdict, or the figure is coloured with it.
- Full-resolution charts are a preference — the chart detail that could only be set from an expanded chart's toolbar is a default now, set beside everything else.
🐛 Fixes
- MySpeed-macos-x64 starts. Both macOS targets were built on one arm64 runner, so the x64 binary was compiled against a native binding that was never on disk — dead on arrival, and nothing in the pipeline ever ran it. Each architecture now builds on a runner of its own, and every macOS binary is booted and probed before it may reach a release, as Windows and Linux already were.
- A missing image renderer no longer stops the server. The social-preview renderer is a native addon, loaded when an image is first asked for rather than at boot; if it cannot load, the preview falls back to the project banner and everything else runs.
- An import that skipped rows says so — the counts, in orange, instead of the same green as a clean restore; and a refused configuration import names the stored key it choked on, instead of leaving the whole file to bisect by hand.
- Email subjects offer the template variables they always accepted — the chips appeared under the message and not under the subject right above it, which read as the subject taking none.
- The scrollbar has a thumb you can see. It wore a border colour that measured 1.30:1 against a dialog's surface, painted its track in the page colour inside lighter surfaces, and under 730px had no room to draw a thumb at all; Firefox, which none of those rules ever reached, is themed for the first time.
- The settings dialogs agree on one width, and the language list shows more than six of its fifteen languages.
- Every language is complete again — the strings 1.4.0 shipped in English and German only, and everything new in this release, are translated across all fifteen languages; no more fallbacks. With repairs on the way: the Dutch preferences menu item rendered a translation-pipeline artifact verbatim, six translation improvements are taken from upstream, and the measurement units are guarded against the mangling upstream ships today (a German jitter of "M" beside a ping of "ms").
Downloads
| Platform | x86-64 | ARM64 |
|---|---|---|
| Windows | EXE · MSI · EXE (no AVX2) · MSI (no AVX2) | |
| Linux | Binary · No AVX2 | Binary |
| macOS | Binary | Binary |
Source Distribution
- ZIP Archive (requires Bun runtime)
Docker Images
i7gamer/myspeed:latesti7gamer/myspeed:1.4.1
What's Changed
- Feat/upstream issue backlog by @i7Gamer in #30
- feat(i18n): complete every shipped locale, and hold them there by @i7Gamer in #31
- refactor(i18n): take the untranslatable strings out of the locales by @i7Gamer in #32
- Themes, colour palettes, and the audit findings behind them by @i7Gamer in #33
Full Changelog: v1.4.0...v1.4.1