0.15.0 - 2026-07-27
Release Notes
Added
-
Six more themes, and a
tkey to try them on. Nord, Gruvbox, Dracula,
Catppuccin Mocha, Tokyo Night and Solarized Dark now ship inside the binary
alongside mirador's own four, so the dashboard can match whatever your editor
and terminal are already wearing. The values come from each palette's own
specification and the theme file cites its source: these are ports, not
interpretations.Press
tto browse them. The list previews as you move through it, on
your real dashboard rather than on a swatch, because a theme you cannot see is
a theme you cannot choose.Enterkeeps what is on screen;Escputs back
what you had. Themes of your own are listed alongside the shipped ones and
marked as yours.Your choice is remembered the same way your weather units and sort order are.
If you setthemein your config and it seems to be ignored, you picked
something else withtat some point — pick it again, or delete the state
file.All six keep
text = "reset", so body text still follows the foreground you
have already tuned your terminal to.
Fixed
-
A theme name is a name, not a path.
theme = "../../elsewhere"resolved,
reading and parsing a file outside your themes directory. Nothing escalated —
the config and anything it could reach are yours — but a name whose meaning
depends on where your config sits is not a name. -
Two mirador windows no longer take each other's saves away. Every writer
of a file used the same.tmpname, so whoever renamed second found it gone.
Measured with eight concurrent writers: 2,100 of 2,400 saves failed — and
a failed save is reported, so the second window filled with "could not be
saved" for no reason. Temporary names are now unique per write. -
A file you restricted stays restricted. A save replaces the file, and the
replacement was created per the umask — sochmod 600on your tasks was
silently widened to world-readable the next time you added one. -
An untouched dashboard no longer writes to its state file.
[agenda].file
ships commented out, so the baseline was empty while the panel reported a
resolved path; one keystroke anywhere pinned that path intostate.toml,
after which setting[agenda].filein the config did nothing, because the
state file outranks it. That is the failure invariant 17 exists to prevent,
reached by a new route. -
The agenda cloned its whole event list three more times per frame. Once in
render, once incounter— which the frame renderer calls on every frame
with nothing guarding it — and twice more in key handlers that cloned the list
only to read its length. Measured against a calendar of three hundred daily
meetings: 210,000 event clones in thirty idle seconds, now zero. A
recurring rule expands, so the list is far longer than the file looks. -
A
.icslarger than 10MB is refused rather than read. The network side
was bounded and the local side was not, and reading a calendar costs more than
its size — unfolding makes aVec<String>of it and recurrence expands it
again. -
Editing a config on Windows no longer rewrites every line in it. Both
places that rewrite a file you wrote by hand — the layout editor and the
config migrator — reassembled it fromstr::lines(), which strips the\r
of a CRLF ending. Joining with\nthen converted the whole file to LF: you
moved one panel and git reported every line as changed. The ending the file
already uses is preserved now, in both directions.
Install mirador 0.15.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/jchultarsky/mirador/releases/download/v0.15.0/mirador-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/jchultarsky/mirador/releases/download/v0.15.0/mirador-installer.ps1 | iex"Download mirador 0.15.0
| File | Platform | Checksum |
|---|---|---|
| mirador-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| mirador-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| mirador-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| mirador-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo jchultarsky/miradorYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>