Skip to content

0.15.0 - 2026-07-27

Choose a tag to compare

@github-actions github-actions released this 28 Jul 00:58
5f08e25

Release Notes

Added

  • Six more themes, and a t key 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 t to 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. Enter keeps what is on screen; Esc puts 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 set theme in your config and it seems to be ignored, you picked
    something else with t at 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 .tmp name, 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 — so chmod 600 on 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 into state.toml,
    after which setting [agenda].file in 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 in counter — 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 .ics larger 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 a Vec<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 from str::lines(), which strips the \r
    of a CRLF ending. Joining with \n then 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 | sh

Install 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/mirador

You 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>