What 1.12.0 fixed

As of 2026-07-25. A snapshot; follow the links for whatever changed since.

Nothing to configure — upgrading is enough. No new features here: every item is something that was quietly broken.


A crash can no longer destroy your configuration

Saving config.json was not atomic, so a crash mid-write left a half-written file. The next boot read that as corrupt, and the lenient loader turns corrupt into an empty config — every provider, launcher and header button, gone. Writes are atomic now: a failure leaves the previous file in place.

If this happened to you, set things up again with the configuration guide.

API tokens outlived their sessions

A session’s settings file holds the provider’s API token. Cleanup only ran on a clean exit, so after a crash the token survived the session — survived being rotated, survived the provider being removed. Boot now prunes settings files with no surviving session.

Worth upgrading for if you use a provider.Using another model

The Firestore command channel gave up permanently after a sleep or a network change, while the toolbar kept showing the last state it happened to fetch — so the only symptom was the phone failing to connect. It reconnects now. → Using MulmoTerminal from your phone

Windows: four silent failures

  • A config file saved on Windows read as no config at all. Notepad and PowerShell write a UTF-8 BOM; JSON parsing failed on character one, and colors, badges, buttons and model settings were dropped with nothing displayed. The BOM is stripped now.
  • DOS device names (CON, NUL, …) reached the file routes. NUL read empty; CON hung the request until console input arrived.
  • Deleting a locked file threw, stopping cleanup partway.

Windows-specific traps are collected in docs/windows-gotchas.md.


Changelog / What’s new in 2.0.0


This site uses Just the Docs, a documentation theme for Jekyll.