← Alle Beiträge

Plainva 0.6.3: Eine Erinnerung, die nur läuft, solange das Fenster offen ist, ist keine

11. August 2026

Plainva hat seit 0.4.0 einen Kalender und seit derselben Version Mail. Beide konnten Dinge anzeigen. Keins von beiden konnte das eine, was man von ihnen will, sobald man den Laptop zuklappt: später Bescheid sagen.

Das ist der rote Faden dieses Releases. Nicht „Erinnerungen einbauen” — das Interessante ist, wo eine Erinnerung liegen muss, damit sie überhaupt funktioniert.

Eine Erinnerung ist keine Eigenschaft eines Fensters

Wenn Plainva eine Benachrichtigung in sich selbst plant, muss Plainva laufen, wenn der Moment kommt. Fenster zu, Erinnerung weg — und niemand sagt es Dir. Deshalb werden Erinnerungen an die Benachrichtigungszentrale des Betriebssystems übergeben. Die ist wach, wenn Deine App es nicht ist.

Am Rechner bleibt trotzdem eine Lücke: die App muss wenigstens einmal gelaufen sein, um etwas zu übergeben, und ein Gerät, das den ganzen Vormittag aus war, hat nichts eingereiht. Deshalb kann Plainva auf Wunsch im Hintergrund weiterlaufen — Autostart und ein Symbol im Infobereich, beide standardmäßig aus, angeboten in dem Moment, in dem Du die Erinnerungen einschaltest, statt in einer Einstellungsseite vergraben. Und die Einstellung sagt, was sie bedeutet: ausgeschaltet erreicht Dich eine Erinnerung nur, solange das Fenster offen ist.

Darunter liegt eine Grenze, und die wird ausgesprochen statt versteckt. Beide Betriebssysteme begrenzen, wie viele Benachrichtigungen eine App vormerken darf. Plainva plant bis zu dieser Grenze und sagt Dir dann, ab welchem Datum es nichts mehr zusagen kann. Den Rest still zu verschlucken war die eine Antwort, die es nicht gab.

Eine Regel gehört dorthin, wo sie wirkt

Dieselbe Frage, eine Ebene höher. Eine Mail-Regel, die in Plainva läuft, sortiert Deine Post nur, solange Plainva offen ist — und nur auf dem Rechner, auf dem sie offen ist. Das meint niemand, wenn er sagt „Newsletter in einen Ordner”.

Also wird eine Regel in das übersetzt, was Dein Anbieter wirklich spricht: Sieve, wo der Server ManageSieve anbietet, Microsofts eigene Nachrichtenregeln über Graph — und dort, wo es nichts gibt, lokal ausgeführt und als lokal gekennzeichnet, damit Du beides auseinanderhalten kannst.

Diese Entscheidung kostet etwas, und das gehört gesagt: Das Regel-Modell ist der kleinste gemeinsame Nenner dieser Server, nicht alles, was Plainva ausdrücken könnte. Eine Bedingung, die Sieve nicht darstellen kann, wäre eine Bedingung, die auf Deinem Schreibtisch greift und sonst nirgends.

Und noch etwas zu Sieve: In Deinem Skript stehen vielleicht Regeln, die Du selbst geschrieben hast oder ein anderes Programm für Dich. Plainva besitzt einen Abschnitt dieser Datei, als solchen markiert, niemals die Datei. Ein Skript, das es nicht sicher lesen kann, wird gemeldet — nicht überschrieben.

Nichts zu messen ist nicht null

Der zweite Strang: Datenbanken können jetzt ein Projekt planen.

Eine Auswertungsspalte rechnet einen Wert aus den Notizen auf der anderen Seite einer Relation — wie viele Aufgaben offen sind, was sie zusammen ergeben, welcher Anteil erledigt ist, das früheste Datum. Sie wird beim Lesen berechnet und nirgends gespeichert, und sie verweigert die Bearbeitung, weil hinter der Zelle nichts liegt, in das man schreiben könnte.

Beim Bauen kam eine Regel heraus, die danach noch dreimal wiederkam: Was soll die Summe von nichts anzeigen? Null ist die naheliegende und die falsche Antwort — eine Null neben einem geplanten Aufwand liest sich als Messung: wir haben gemessen, es war nichts. Ein Strich sagt die Wahrheit: hier war nichts zu messen. Dieselbe Frage stellte sich unter dem Spaltenfuß, in der Ist-Zeit eines Vaults ohne Kalenderkonto und bei einem Projekt ohne Aufgaben. Jedes Mal dieselbe Antwort.

Dazu: Meilensteine (ein Datum ohne Ende, gezeichnet als Raute), Abhängigkeiten in dem Format, das ein Obsidian-Plugin schon schreibt, Aufwand in Minuten und die Ist-Zeit, gelesen aus den Terminen, die eine Aufgabe geblockt hat, statt als Zahl gespeichert — so bleibt sie richtig, wenn Du den Termin auf einen anderen Nachmittag ziehst.

Abhängigkeiten melden einen Terminkonflikt; sie beheben ihn nie. Beginnt eine Aufgabe, bevor die endet, auf die sie wartet, wird der Pfeil rot und bleibt rot. Deinen Plan hinter Deinem Rücken umzustellen ist kein Gefallen.

Ein Passwort mit sechs Namen

Der dritte Strang begann mit einer Fehlermeldung, die recht hatte.

„missing mail credentials” für ein Gmail-Konto, dessen Kalender und Dateien einwandfrei liefen. Kein Datenverlust — eine fehlende Fläche. Mail läuft über IMAP mit einem App-Passwort, und das ist ein anderes Geheimnis als die OAuth-Tokens daneben; die Stelle, an der man es einträgt, gab es nur am Telefon.

Beim Nachgehen kam Größeres heraus. Die Kennung, unter der ein Passwort im geteilten Dokument lag, kam aus der lokalen Konto-ID — der, die sich jedes Gerät selbst ausdenkt. An einem echten Vault gemessen: sechs Einträge für ein Passwort, in allem Wesentlichen identisch, von drei Geräten geschrieben, fünf davon Grabsteine. Jedes Gerät las die Namen der anderen als verschwundene Konten.

Die Kennung kommt jetzt daher, was das Zugangsdatum ist: Dienst, Typ, Benutzer, Endpunkt. Die gefürchtete Migration entfiel größtenteils, weil der Import ohnehin immer über diese Bindung aufgelöst hat.

Und der Schlüsselbund ist nicht mehr nur beschreibbar. Es gibt eine Fläche, die zeigt, was Plainva für einen Vault gespeichert hat; „Vault vergessen” nimmt die Konten-, Kalender-, Mail- und Hauptschlüssel-Einträge mit; und die Einträge tragen lesbare Namen — plainva · wiki · Mail · fcb8f9ff statt einer Base64-Wand. Diese Umbenennung ist bewusst zaghaft: neuen Namen schreiben, zurücklesen, erst dann den alten löschen. Ein Schlüsselbund-Schreibvorgang kann still scheitern, und zuerst zu löschen macht daraus ein verlorenes Passwort.

Zwei kleine Dinge, die meine waren

Ein WebDAV-Server auf einem krummen Port wurde abgewiesen, mit einer Meldung über einen Berechtigungs-Scope. Der Scope stand auf http://**, was sich liest wie „jede http-URL” und es nicht ist: Das Muster füllt Platzhalter für Pfad, Abfrage und Fragment ein — für den Port aber nicht. Eine leere Port-Komponente trifft den Standardport und sonst nichts. Jeder selbst gehostete Server auf :8080 oder :8082 prallte ab.

Und eine Fehlermeldung, die „Grund:” sagte und dann nichts. Nicht abgeschnitten — leer. Fehler, die aus der Systemschicht herüberkommen, sind Zeichenketten, und der Code fragte sie nach einer .message, die sie nicht haben; ein undefinierter Wert rendert als gar nichts. Ausgerechnet die Meldung, deren einzige Aufgabe das Benennen einer Ursache war, sagte nichts. Verraten hat sie die Zeile zwei Anweisungen darüber, die denselben Fehler korrekt ins Diagnoseprotokoll schrieb.

Außerdem in diesem Release

Windows-Installer sind zum ersten Mal signiert. Ein weißes Fenster sagt jetzt, woran es liegt, statt weiß zu bleiben. Und die Systemanforderungen stehen schwarz auf weiß: macOS 12 oder neuer mit aktuellem Safari — die Anforderung, auf die es ankommt, ist Safari 16.4, denn auf macOS kommt die Engine einer App mit Safari, nicht mit dem System. Keine macOS-Version kann sie garantieren; deshalb entscheidet eine Prüfung in der App und keine Versionsnummer.

Plainva 0.6.3 herunterladen