ChangelogChangelog

What shipped recentlyWas zuletzt geshippt wurde

A running log of fixes and features across all missionctl tools, newest first. For the full roadmap of what's planned next, see the project's public GitHub repo.Ein laufendes Log aus Fixes und Features über alle missionctl-Tools hinweg, neueste zuerst. Für die volle Roadmap siehe das öffentliche GitHub-Repo.

2026-08-26

mailctl

New: Linux support via Thunderbird — reads your default Thunderbird profile's local mbox files and sends via the account's own SMTP server (STARTTLS + password, stored in the OS keyring via the new mailctl account set-password command). Same CLI/TUI/MCP surface as the existing Apple Mail backend. Currently in testing on real hardware — inbox only for now (no other folders), no attachments on send, no draft-saving or delete/mark-unread from mailctl (avoids writing into a Thunderbird mbox file it may have open). Feedback welcome.Neu: Linux-Unterstützung via Thunderbird — liest direkt aus den lokalen mbox-Dateien deines Standard-Thunderbird-Profils und sendet über den eigenen SMTP-Server des Kontos (STARTTLS + Passwort, gespeichert im OS-Keyring über den neuen Befehl mailctl account set-password). Gleiche CLI-/TUI-/MCP-Oberfläche wie das bestehende Apple-Mail-Backend. Derzeit auf echter Hardware in der Testphase — vorerst nur Posteingang (keine anderen Ordner), keine Anhänge beim Senden, kein Entwurf-Speichern oder Löschen/Ungelesen-Markieren aus mailctl heraus (vermeidet Schreibzugriffe auf eine Thunderbird-mbox-Datei, die eventuell noch offen ist). Feedback willkommen.

2026-08-22

suite-wide

Named theme presets — set preset: dracula (or catppuccin, gruvbox, nord, one-dark, solarized, tokyo-night) in ~/.config/missionctl/theme.yaml. Applies automatically to every tool sharing the suite palette; your own per-color overrides still win on top.Benannte Theme-Presets — preset: dracula (oder catppuccin, gruvbox, nord, one-dark, solarized, tokyo-night) in ~/.config/missionctl/theme.yaml setzen. Greift automatisch in jedem Tool mit der gemeinsamen Palette; eigene Farb-Overrides gewinnen weiterhin darüber.

budgetctl

budgetctl suggest-cuts — AI reviews this month's category spend against your trailing 3-month average and suggests up to 5 budget cuts; approve each one individually before it sets a real goal. missionctl Bundle feature.budgetctl suggest-cuts — KI vergleicht die Kategorie-Ausgaben dieses Monats mit dem 3-Monats-Schnitt und schlägt bis zu 5 Kürzungen vor; jede einzeln zu bestätigen, bevor ein echtes Ziel gesetzt wird. missionctl-Bundle-Feature.

budgetctl

budgetctl export --summary — year-end category totals for tax filing, instead of a raw transaction dumpbudgetctl export --summary — Kategorie-Jahressummen für die Steuererklärung, statt eines rohen Transaktions-Exports

taskctl

taskctl review — AI reviews this week's completed and pending tasks and suggests follow-ups with concrete due dates; approve each one before it creates anythingtaskctl review — KI schaut sich diese Woche erledigte und offene Tasks an und schlägt Folge-Tasks mit konkretem Fälligkeitsdatum vor; jeder wird einzeln bestätigt, bevor er angelegt wird

calctl

calctl export — write a week or date range of events to a file (--output), instead of only printing to the terminalcalctl export — einen Wochen- oder Datumsbereich an Terminen in eine Datei schreiben (--output), statt nur ins Terminal zu drucken

notectl

--tag filter on list/search, and a new --event-id on write to link a note to a calctl calendar event (find it back with list --event <id>)--tag-Filter bei list/search, und ein neues --event-id bei write, um eine Notiz mit einem calctl-Termin zu verknüpfen (wiederfinden mit list --event <id>)

2026-08-21

notectl

Fixed a serious bug where the terminal UI could show duplicated or stuck content — headers/tabs lingering, footers overlapping — especially with a lot of mouse movement or right after a sync. Rebuilt on a newer, more robust rendering engine.Ernsten Bug behoben, bei dem die Terminal-Oberfläche doppelten oder hängengebliebenen Inhalt zeigen konnte — Header/Tabs blieben stehen, Fußzeilen überlappten — besonders bei viel Mausbewegung oder direkt nach einem Sync. Auf eine neuere, robustere Rendering-Engine umgestellt.

suite-wide

mailctl, calctl, taskctl, budgetctl, timectl, diaryctl: preventive fix for the same rendering issue found in notectl — a status bar could very rarely overflow its width as a sync timestamp or counter changed, with no resize involvedmailctl, calctl, taskctl, budgetctl, timectl, diaryctl: vorbeugender Fix für dasselbe Rendering-Problem wie bei notectl — eine Statusleiste konnte in seltenen Fällen ihre Breite überschreiten, wenn sich ein Sync-Zeitstempel oder Zähler änderte, ganz ohne Fenstergrößenänderung

mailctl

Same rendering engine upgrade as notectl (bubbletea v2), plus a specific fix: long, multi-paragraph HTML emails could break the detail view's scrollbar partway down the message. Root cause was Apple Mail's HTML-to-text conversion leaving invisible line-break characters in the body — not a terminal or font issue, so no amount of column-width tweaking had fixed it before.Gleiches Rendering-Engine-Upgrade wie bei notectl (bubbletea v2), dazu ein konkreter Fix: lange, mehrabsätzige HTML-Mails konnten die Scrollbar in der Detailansicht ab einer bestimmten Stelle im Text zerreißen. Ursache waren unsichtbare Zeilenumbruch-Zeichen, die Apple Mails HTML-zu-Text-Konvertierung im Text hinterlässt — kein Terminal- oder Font-Problem, weshalb bisherige Versuche mit Spaltenbreiten-Korrekturen nichts gebracht hatten.

mailctl

mailctl search --live now actually works — it previously failed with a syntax error on every single call (Mail.app has no scriptable "search" command). Live search now matches by subject, typically in 6-7 seconds.mailctl search --live funktioniert jetzt tatsächlich — vorher schlug es bei jedem Aufruf mit einem Syntaxfehler fehl (Mail.app hat gar keinen scriptbaren "search"-Befehl). Die Live-Suche matcht jetzt nach Betreff, typischerweise in 6-7 Sekunden.

timectl

timectl start --notes now actually attaches the note — the flag was accepted but silently dropped beforetimectl start --notes hängt die Notiz jetzt tatsächlich an — das Flag wurde zuvor akzeptiert, aber stillschweigend verworfen

2026-08-14

habctl

habctl add <N> — add a suggested habit by number instead of retyping emoji-heavy titleshabctl add <N> — einen vorgeschlagenen Habit per Nummer hinzufügen, statt emoji-lastige Titel abzutippen

missionctl

missionctl doctor now reports real daemon status (running / crashed / idle), not just "loaded"missionctl doctor zeigt jetzt den echten Daemon-Status (läuft / abgestürzt / wartend), nicht nur "geladen"

2026-08-13

notectl

New delete_note MCP tool (8 tools total)Neues delete_note MCP-Tool (8 Tools insgesamt)

notectl

Notebook navigation redesigned: explicit expand/collapse, dedicated account line, fixed-width tabsNotizbuch-Navigation neu gestaltet: explizites Ein-/Ausklappen, eigene Account-Zeile, feste Tab-Breite

notectl

Fixed a bug where landing on certain tabs could collapse the whole notebook treeBug behoben, bei dem bestimmte Tabs das ganze Notizbuch-Baumdiagramm kollabieren ließen

2026-08-12

diaryctl / timectl

Fixed the MCP server holding its database lock for its entire lifetime, which could block the CLIBug behoben: der MCP-Server hielt seinen Datenbank-Lock über die gesamte Laufzeit und blockierte dadurch die CLI

mailctl

Faster inbox sync — bounded message access, lower default countSchnellerer Inbox-Sync — begrenzter Nachrichtenzugriff, niedrigere Standardanzahl

2026-08-07

postctl

Fixed a license-status caching edge case around rate-limited validation callsRandfall im License-Status-Cache behoben, der bei ratenbegrenzten Validierungs-Aufrufen auftrat

2026-08-06

taskctl

Fixed a bug where deleting a task could silently fail to remove the underlying reminderBug behoben, bei dem das Löschen eines Tasks die zugehörige Erinnerung stillschweigend nicht entfernte

2026-08-05

suite-wide

Local AI via Ollama rolled out across the suite — every tool can now run entirely on a local model (e.g. Mistral) instead of a cloud API key, with a per-tool model overrideLokale KI via Ollama in der ganzen Suite ausgerollt — jedes Tool kann jetzt komplett mit einem lokalen Modell (z.B. Mistral) statt einem Cloud-API-Key laufen, mit Modell-Override pro Tool

Missing something you'd expect? Reach out at contact@missionctl.sh.Fehlt dir etwas, das du erwartet hättest? Melde dich unter contact@missionctl.sh.